@vkontakte/vkui 4.35.2 → 4.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +21609 -18312
- package/.cache/ts/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
- package/.cache/ts/src/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
- package/.cache/ts/src/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/.cache/ts/src/components/ButtonGroup/ButtonGroup.d.ts +6 -2
- package/.cache/ts/src/components/Chip/Chip.d.ts +12 -5
- package/.cache/ts/src/components/ChipsInput/ChipsInput.d.ts +5 -26
- package/.cache/ts/src/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
- package/.cache/ts/src/components/ChipsSelect/ChipsSelect.d.ts +4 -4
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/.cache/ts/src/components/DateInput/DateInput.d.ts +4 -2
- package/.cache/ts/src/components/DateRangeInput/DateRangeInput.d.ts +4 -2
- package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +4 -2
- package/.cache/ts/src/components/FormField/FormField.d.ts +2 -1
- package/.cache/ts/src/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
- package/.cache/ts/src/components/FormStatus/FormStatus.d.ts +1 -0
- package/.cache/ts/src/components/Input/Input.d.ts +1 -1
- package/.cache/ts/src/components/List/List.d.ts +2 -1
- package/.cache/ts/src/components/ModalPage/ModalPage.d.ts +13 -1
- package/.cache/ts/src/components/NativeSelect/NativeSelect.d.ts +3 -2
- package/.cache/ts/src/components/Select/Select.d.ts +1 -1
- package/.cache/ts/src/components/SelectMimicry/SelectMimicry.d.ts +2 -2
- package/.cache/ts/src/components/Textarea/Textarea.d.ts +3 -2
- package/.cache/ts/src/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
- package/{dist/cssm/components/ChipsSelect → .cache/ts/src/hooks}/useChipsSelect.d.ts +4 -4
- package/.cache/ts/src/index.d.ts +3 -0
- package/.cache/ts/src/tokenized/index.d.ts +56 -0
- package/README.md +3 -2
- package/dist/cjs/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +24 -0
- package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +10 -8
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -5
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js +15 -39
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js +2 -3
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js +11 -12
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +2 -5
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js +4 -17
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js +41 -47
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -21
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js +2 -5
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js +15 -198
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +215 -0
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +44 -27
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +32 -31
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +4 -2
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +4 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js +16 -7
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +4 -2
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +12 -3
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js +4 -6
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +3 -11
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js +4 -3
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/Input/Input.js +4 -2
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js +1 -6
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +11 -10
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +3 -4
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -18
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +3 -11
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +4 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +4 -10
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js +2 -11
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js +2 -7
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js +5 -4
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +4 -8
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js +1 -6
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +7 -9
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +4 -2
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js +2 -5
- package/dist/cjs/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js +2 -7
- package/dist/cjs/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +1 -6
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +2 -5
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.js +8 -16
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +4 -2
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js +71 -34
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.js +2 -7
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +1 -10
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/{components/ChipsInput → hooks}/useChipsInput.js +0 -0
- package/dist/cjs/hooks/useChipsInput.js.map +1 -0
- package/dist/cjs/{components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
- package/dist/cjs/hooks/useChipsSelect.js.map +1 -0
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/animate.js +2 -2
- package/dist/cjs/lib/animate.js.map +1 -1
- package/dist/cjs/lib/platform.js +9 -4
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/cjs/lib/testing.js +2 -2
- package/dist/cjs/lib/testing.js.map +1 -1
- package/dist/cjs/lib/touch.js +2 -2
- package/dist/cjs/lib/touch.js.map +1 -1
- package/dist/cjs/tokenized/index.js +232 -0
- package/dist/cjs/tokenized/index.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
- package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
- package/dist/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
- package/dist/components/ActionSheet/ActionSheetDropdown.js +7 -7
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js +16 -36
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js +12 -12
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +2 -5
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/Avatar/Avatar.js +4 -17
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Banner/Banner.js +41 -48
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.d.ts +6 -2
- package/dist/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +4 -21
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js +1 -3
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Chip/Chip.d.ts +12 -5
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.d.ts +5 -26
- package/dist/components/ChipsInput/ChipsInput.js +14 -183
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
- package/dist/components/ChipsInputBase/ChipsInputBase.js +188 -0
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -4
- package/dist/components/ChipsSelect/ChipsSelect.js +42 -26
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +32 -31
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +4 -2
- package/dist/components/DateInput/DateInput.js +4 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +4 -2
- package/dist/components/DateRangeInput/DateRangeInput.js +4 -2
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts +4 -2
- package/dist/components/DropdownIcon/DropdownIcon.js +15 -7
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/FormField/FormField.d.ts +2 -1
- package/dist/components/FormField/FormField.js +4 -2
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/FormStatus/FormStatus.d.ts +1 -0
- package/dist/components/FormStatus/FormStatus.js +4 -4
- package/dist/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/components/Header/Header.js +3 -10
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/IconButton/IconButton.js +4 -3
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Input/Input.d.ts +1 -1
- package/dist/components/Input/Input.js +4 -2
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/List/List.d.ts +2 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/ModalDismissButton/ModalDismissButton.js +1 -4
- package/dist/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +13 -1
- package/dist/components/ModalPage/ModalPage.js +12 -10
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js +3 -3
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -18
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +3 -11
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +3 -2
- package/dist/components/NativeSelect/NativeSelect.js +4 -2
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +4 -8
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js +2 -11
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +1 -4
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/Search/Search.js +6 -8
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/Select/Select.d.ts +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.d.ts +2 -2
- package/dist/components/SelectMimicry/SelectMimicry.js +4 -2
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/components/SliderSwitch/SliderSwitch.js +1 -4
- package/dist/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/components/SliderSwitch/SliderSwitchButton.js +1 -5
- package/dist/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js +1 -4
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +2 -5
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Tappable/Tappable.js +3 -10
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Textarea/Textarea.d.ts +3 -2
- package/dist/components/Textarea/Textarea.js +4 -2
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js +69 -28
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.js +2 -7
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +1 -10
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components.css +93 -15
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.css +3 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +4 -4
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.d.ts +3 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js +10 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -0
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +7 -7
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -4
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.css +7 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.d.ts +5 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +16 -36
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +2 -4
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.css +7 -1
- package/dist/cssm/components/Alert/Alert.js +12 -12
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.css +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +2 -5
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +4 -17
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js +41 -48
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.d.ts +6 -2
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +4 -21
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +1 -3
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -1
- package/dist/cssm/components/Chip/Chip.css +1 -1
- package/dist/cssm/components/Chip/Chip.d.ts +12 -5
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.css +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.d.ts +5 -26
- package/dist/cssm/components/ChipsInput/ChipsInput.js +14 -183
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.css +1 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +17 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +189 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.css +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -4
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +42 -26
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.css +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +32 -31
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.css +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +4 -2
- package/dist/cssm/components/DateInput/DateInput.js +4 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.css +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +4 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.d.ts +4 -2
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +15 -8
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.css +4 -4
- package/dist/cssm/components/FormField/FormField.d.ts +2 -1
- package/dist/cssm/components/FormField/FormField.js +4 -2
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +5 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +9 -3
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.css +3 -1
- package/dist/cssm/components/FormStatus/FormStatus.d.ts +1 -0
- package/dist/cssm/components/FormStatus/FormStatus.js +4 -4
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Header/Header.css +1 -1
- package/dist/cssm/components/Header/Header.js +3 -10
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +4 -3
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Input/Input.css +1 -1
- package/dist/cssm/components/Input/Input.d.ts +1 -1
- package/dist/cssm/components/Input/Input.js +4 -2
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/List/List.d.ts +2 -1
- package/dist/cssm/components/List/List.js +1 -1
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.css +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -4
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.css +5 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +13 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +12 -10
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.css +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +3 -3
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -18
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +3 -11
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +3 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.css +19 -1
- package/dist/cssm/components/Panel/Panel.js +4 -8
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.css +9 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +2 -11
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -6
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.css +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -7
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +2 -2
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.css +5 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +5 -5
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.css +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -7
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +2 -2
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +2 -2
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.css +3 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -4
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/Search/Search.css +27 -1
- package/dist/cssm/components/Search/Search.js +6 -8
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Select/Select.css +1 -1
- package/dist/cssm/components/Select/Select.d.ts +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.d.ts +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +4 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js +1 -4
- package/dist/cssm/components/SliderSwitch/SliderSwitch.js.map +1 -1
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js +1 -5
- package/dist/cssm/components/SliderSwitch/SliderSwitchButton.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.css +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.css +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -4
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.css +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +2 -5
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +3 -10
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.css +1 -1
- package/dist/cssm/components/Textarea/Textarea.d.ts +3 -2
- package/dist/cssm/components/Textarea/Textarea.js +4 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.css +1 -1
- package/dist/cssm/components/Typography/Text/Text.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.css +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +69 -28
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.js +2 -7
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +1 -10
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
- package/dist/{components/ChipsInput → cssm/hooks}/useChipsInput.js +0 -0
- package/dist/cssm/hooks/useChipsInput.js.map +1 -0
- package/{.cache/ts/src/components/ChipsSelect → dist/cssm/hooks}/useChipsSelect.d.ts +4 -4
- package/dist/{components/ChipsSelect → cssm/hooks}/useChipsSelect.js +1 -1
- package/dist/cssm/hooks/useChipsSelect.js.map +1 -0
- package/dist/cssm/index.d.ts +3 -0
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/animate.js +1 -1
- package/dist/cssm/lib/animate.js.map +1 -1
- package/dist/cssm/lib/platform.js +8 -3
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/lib/testing.js +1 -1
- package/dist/cssm/lib/testing.js.map +1 -1
- package/dist/cssm/lib/touch.js +1 -1
- package/dist/cssm/lib/touch.js.map +1 -1
- package/dist/cssm/styles/components.css +93 -15
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/styles/unstable.css +1 -1
- package/dist/cssm/tokenized/index.d.ts +56 -0
- package/dist/cssm/tokenized/index.js +29 -0
- package/dist/cssm/tokenized/index.js.map +1 -1
- package/dist/{components/ChipsInput → hooks}/useChipsInput.d.ts +4 -3
- package/dist/{cssm/components/ChipsInput → hooks}/useChipsInput.js +0 -0
- package/dist/hooks/useChipsInput.js.map +1 -0
- package/dist/{components/ChipsSelect → hooks}/useChipsSelect.d.ts +4 -4
- package/dist/{cssm/components/ChipsSelect → hooks}/useChipsSelect.js +1 -1
- package/dist/hooks/useChipsSelect.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/animate.js +1 -1
- package/dist/lib/animate.js.map +1 -1
- package/dist/lib/platform.js +8 -3
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/testing.js +1 -1
- package/dist/lib/testing.js.map +1 -1
- package/dist/lib/touch.js +1 -1
- package/dist/lib/touch.js.map +1 -1
- package/dist/tokenized/index.d.ts +56 -0
- package/dist/tokenized/index.js +29 -0
- package/dist/tokenized/index.js.map +1 -1
- package/dist/unstable.css +1 -1
- package/dist/unstable.css.map +1 -1
- package/dist/vkui.css +94 -16
- package/dist/vkui.css.map +1 -1
- package/package.json +9 -9
- package/src/components/ActionSheet/ActionSheet.css +31 -59
- package/src/components/ActionSheet/ActionSheet.tsx +4 -7
- package/src/components/ActionSheet/ActionSheetDefaultIosCloseItem.tsx +12 -0
- package/src/components/ActionSheet/ActionSheetDropdown.tsx +9 -6
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +4 -4
- package/src/components/ActionSheet/Readme.md +6 -30
- package/src/components/ActionSheetItem/ActionSheetItem.css +67 -120
- package/src/components/ActionSheetItem/ActionSheetItem.tsx +42 -71
- package/src/components/AdaptivityProvider/AdaptivityProvider.tsx +5 -5
- package/src/components/Alert/Alert.css +79 -79
- package/src/components/Alert/Alert.tsx +14 -14
- package/src/components/Alert/Readme.md +83 -104
- package/src/components/AppRoot/AppRoot.css +2 -1
- package/src/components/AppRoot/AppRoot.tsx +1 -4
- package/src/components/Avatar/Avatar.tsx +15 -17
- package/src/components/Avatar/Readme.md +3 -3
- package/src/components/Banner/Banner.tsx +58 -63
- package/src/components/ButtonGroup/ButtonGroup.tsx +6 -3
- package/src/components/ButtonGroup/Readme.md +13 -11
- package/src/components/Calendar/Readme.md +3 -0
- package/src/components/CalendarDay/CalendarDay.tsx +21 -20
- package/src/components/CalendarRange/Readme.md +3 -0
- package/src/components/CardScroll/CardScroll.tsx +1 -2
- package/src/components/Cell/CellCheckbox/CellCheckbox.css +2 -2
- package/src/components/Cell/CellDragger/CellDragger.css +1 -1
- package/src/components/Chip/Chip.css +1 -0
- package/src/components/Chip/Chip.tsx +14 -2
- package/src/components/ChipsInput/ChipsInput.css +0 -71
- package/src/components/ChipsInput/ChipsInput.tsx +20 -220
- package/src/components/ChipsInputBase/ChipsInputBase.css +73 -0
- package/src/components/ChipsInputBase/ChipsInputBase.tsx +206 -0
- package/src/components/ChipsSelect/ChipsSelect.css +8 -0
- package/src/components/ChipsSelect/ChipsSelect.tsx +47 -39
- package/src/components/CustomSelect/CustomSelect.css +1 -0
- package/src/components/CustomSelect/CustomSelect.tsx +2 -3
- package/src/components/CustomSelect/Readme.md +8 -2
- package/src/components/DateInput/DateInput.css +1 -1
- package/src/components/DateInput/DateInput.tsx +6 -3
- package/src/components/DateInput/Readme.md +13 -0
- package/src/components/DateRangeInput/DateRangeInput.css +1 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +6 -3
- package/src/components/DateRangeInput/Readme.md +13 -0
- package/src/components/DropdownIcon/DropdownIcon.tsx +22 -8
- package/src/components/Epic/Readme.md +10 -5
- package/src/components/FormField/FormField.css +58 -6
- package/src/components/FormField/FormField.tsx +3 -0
- package/src/components/FormItem/FormItem.css +5 -3
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +35 -0
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +13 -2
- package/src/components/FormLayoutGroup/Readme.md +58 -48
- package/src/components/FormStatus/FormStatus.css +8 -5
- package/src/components/FormStatus/FormStatus.tsx +4 -8
- package/src/components/FormStatus/Readme.md +4 -0
- package/src/components/Gallery/Readme.md +64 -18
- package/src/components/Header/Header.css +8 -12
- package/src/components/Header/Header.tsx +9 -8
- package/src/components/HorizontalCell/Readme.md +1 -1
- package/src/components/IconButton/IconButton.tsx +2 -2
- package/src/components/Input/Input.css +1 -1
- package/src/components/Input/Input.tsx +2 -0
- package/src/components/Link/Link.css +2 -1
- package/src/components/List/List.tsx +3 -4
- package/src/components/ModalDismissButton/ModalDismissButton.css +6 -6
- package/src/components/ModalDismissButton/ModalDismissButton.tsx +1 -5
- package/src/components/ModalDismissButton/Readme.md +1 -1
- package/src/components/ModalPage/ModalPage.css +69 -63
- package/src/components/ModalPage/ModalPage.tsx +24 -11
- package/src/components/ModalPageHeader/ModalPageHeader.css +9 -12
- package/src/components/ModalPageHeader/ModalPageHeader.tsx +3 -2
- package/src/components/ModalRoot/ModalRoot.tsx +24 -24
- package/src/components/ModalRoot/ModalRootDesktop.tsx +12 -14
- package/src/components/ModalRoot/Readme.md +8 -3
- package/src/components/NativeSelect/NativeSelect.tsx +5 -2
- package/src/components/Panel/Panel.css +52 -24
- package/src/components/Panel/Panel.tsx +7 -9
- package/src/components/PanelHeader/PanelHeader.css +28 -21
- package/src/components/PanelHeader/PanelHeader.tsx +11 -12
- package/src/components/PanelHeaderBack/PanelHeaderBack.tsx +6 -5
- package/src/components/PanelHeaderButton/PanelHeaderButton.css +8 -15
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +6 -6
- package/src/components/PanelHeaderClose/PanelHeaderClose.tsx +2 -6
- package/src/components/PanelHeaderContent/PanelHeaderContent.css +17 -23
- package/src/components/PanelHeaderContent/PanelHeaderContent.tsx +11 -5
- package/src/components/PanelHeaderContext/PanelHeaderContext.css +9 -25
- package/src/components/PanelHeaderContext/PanelHeaderContext.tsx +11 -7
- package/src/components/PanelHeaderContext/Readme.md +85 -101
- package/src/components/PanelHeaderEdit/PanelHeaderEdit.tsx +2 -2
- package/src/components/PanelHeaderSubmit/PanelHeaderSubmit.tsx +2 -6
- package/src/components/PromoBanner/PromoBanner.css +10 -22
- package/src/components/PromoBanner/PromoBanner.tsx +1 -5
- package/src/components/RichTooltip/Readme.md +2 -2
- package/src/components/Search/Search.css +134 -48
- package/src/components/Search/Search.tsx +13 -8
- package/src/components/Select/Select.css +2 -2
- package/src/components/SelectMimicry/Readme.md +3 -3
- package/src/components/SelectMimicry/SelectMimicry.tsx +3 -1
- package/src/components/SliderSwitch/SliderSwitch.tsx +5 -5
- package/src/components/SliderSwitch/SliderSwitchButton.tsx +7 -7
- package/src/components/Snackbar/Readme.md +12 -3
- package/src/components/Spacing/Readme.md +20 -20
- package/src/components/Spacing/Spacing.css +5 -1
- package/src/components/SplitLayout/Readme.md +1 -1
- package/src/components/SubnavigationBar/SubnavigationBar.css +7 -19
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +1 -8
- package/src/components/SubnavigationButton/SubnavigationButton.css +13 -0
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -4
- package/src/components/TabbarItem/Readme.md +6 -1
- package/src/components/Tabs/Readme.md +10 -2
- package/src/components/TabsItem/TabsItem.css +1 -1
- package/src/components/Tappable/Tappable.tsx +9 -11
- package/src/components/Textarea/Textarea.css +1 -1
- package/src/components/Textarea/Textarea.tsx +5 -2
- package/src/components/Tooltip/Readme.md +2 -2
- package/src/components/Touch/Readme.md +4 -4
- package/src/components/Typography/Headline/Headline.css +10 -0
- package/src/components/Typography/Text/Text.css +10 -0
- package/src/components/UsersStack/UsersStack.css +42 -0
- package/src/components/UsersStack/UsersStack.tsx +71 -15
- package/src/components/View/Readme.md +5 -5
- package/src/components/View/View.tsx +2 -9
- package/src/components/View/ViewInfinite.tsx +14 -14
- package/src/{components/ChipsInput → hooks}/useChipsInput.ts +5 -8
- package/src/{components/ChipsSelect → hooks}/useChipsSelect.ts +4 -4
- package/src/index.ts +3 -0
- package/src/lib/animate.ts +1 -1
- package/src/lib/platform.ts +12 -6
- package/src/lib/testing.ts +1 -1
- package/src/lib/touch.ts +1 -1
- package/src/styles/components.css +1 -0
- package/src/tokenized/index.ts +85 -0
- package/.cache/ts/src/components/UsersStack/masks.d.ts +0 -1
- package/dist/cjs/components/ChipsInput/useChipsInput.js.map +0 -1
- package/dist/cjs/components/ChipsSelect/useChipsSelect.js.map +0 -1
- package/dist/cjs/components/UsersStack/masks.js +0 -29
- package/dist/cjs/components/UsersStack/masks.js.map +0 -1
- package/dist/components/ChipsInput/useChipsInput.js.map +0 -1
- package/dist/components/ChipsSelect/useChipsSelect.js.map +0 -1
- package/dist/components/UsersStack/masks.d.ts +0 -1
- package/dist/components/UsersStack/masks.js +0 -20
- package/dist/components/UsersStack/masks.js.map +0 -1
- package/dist/cssm/components/ChipsInput/useChipsInput.js.map +0 -1
- package/dist/cssm/components/ChipsSelect/useChipsSelect.js.map +0 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.css +0 -1
- package/dist/cssm/components/UsersStack/masks.d.ts +0 -1
- package/dist/cssm/components/UsersStack/masks.js +0 -20
- package/dist/cssm/components/UsersStack/masks.js.map +0 -1
- package/src/components/DropdownIcon/DropdownIcon.css +0 -3
- package/src/components/UsersStack/masks.tsx +0 -69
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
+
import { FormFieldProps } from "../FormField/FormField";
|
|
2
3
|
import { HasRef, HasRootRef } from "../../types";
|
|
3
4
|
import { AdaptivityProps } from "../../hoc/withAdaptivity";
|
|
4
5
|
import "./Textarea.css";
|
|
5
|
-
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, HasRef<HTMLTextAreaElement>, HasRootRef<HTMLElement>, AdaptivityProps, Pick<React.CSSProperties, "maxHeight"> {
|
|
6
|
+
export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, HasRef<HTMLTextAreaElement>, HasRootRef<HTMLElement>, AdaptivityProps, Pick<React.CSSProperties, "maxHeight">, Pick<FormFieldProps, "status"> {
|
|
6
7
|
grow?: boolean;
|
|
7
8
|
onResize?(el: HTMLTextAreaElement): void;
|
|
8
9
|
defaultValue?: string;
|
|
@@ -10,4 +11,4 @@ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextArea
|
|
|
10
11
|
/**
|
|
11
12
|
* @see https://vkcom.github.io/VKUI/#/Textarea
|
|
12
13
|
*/
|
|
13
|
-
export declare const Textarea: React.FC<Pick<TextareaProps, "required" | "disabled" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "color" | "wrap" | "maxHeight" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "name" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "value" | "autoFocus" | "autoComplete" | "maxLength" | "minLength" | "readOnly" | "cols" | "dirName" | "rows" | "getRootRef" | "getRef" | "grow" | "onResize"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
14
|
+
export declare const Textarea: React.FC<Pick<TextareaProps, "required" | "disabled" | "hidden" | "dir" | "form" | "slot" | "style" | "title" | "color" | "wrap" | "maxHeight" | "translate" | "prefix" | "children" | "className" | "id" | "lang" | "name" | "role" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "status" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "placeholder" | "spellCheck" | "radioGroup" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "value" | "autoFocus" | "autoComplete" | "maxLength" | "minLength" | "readOnly" | "cols" | "dirName" | "rows" | "getRootRef" | "getRef" | "grow" | "onResize"> & import("../AdaptivityProvider/AdaptivityContext").SizeProps>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["defaultValue", "grow", "style", "onResize", "className", "getRootRef", "getRef", "sizeY", "rows", "maxHeight"];
|
|
4
|
+
var _excluded = ["defaultValue", "grow", "style", "onResize", "className", "getRootRef", "getRef", "sizeY", "rows", "maxHeight", "status"];
|
|
5
5
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { classNames } from "../../lib/classNames";
|
|
@@ -24,6 +24,7 @@ var TextareaComponent = function TextareaComponent(_ref) {
|
|
|
24
24
|
_ref$rows = _ref.rows,
|
|
25
25
|
rows = _ref$rows === void 0 ? 2 : _ref$rows,
|
|
26
26
|
maxHeight = _ref.maxHeight,
|
|
27
|
+
status = _ref.status,
|
|
27
28
|
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
28
29
|
|
|
29
30
|
var _useEnsuredControl = useEnsuredControl(restProps, {
|
|
@@ -55,7 +56,8 @@ var TextareaComponent = function TextareaComponent(_ref) {
|
|
|
55
56
|
className: className,
|
|
56
57
|
style: style,
|
|
57
58
|
getRootRef: getRootRef,
|
|
58
|
-
disabled: restProps.disabled
|
|
59
|
+
disabled: restProps.disabled,
|
|
60
|
+
status: status
|
|
59
61
|
}, createScopedElement("textarea", _extends({}, restProps, {
|
|
60
62
|
style: {
|
|
61
63
|
maxHeight: maxHeight
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;;
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Textarea/Textarea.tsx"],"names":["React","classNames","FormField","withAdaptivity","useEnsuredControl","useExternRef","TextareaComponent","defaultValue","grow","style","onResize","className","getRootRef","getRef","sizeY","rows","maxHeight","status","restProps","value","onChange","currentScrollHeight","useRef","elementRef","useEffect","el","current","offsetParent","height","scrollHeight","disabled","Textarea","displayName"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,SAAT;AAEA,SAASC,cAAT;AACA,SAASC,iBAAT;AACA,SAASC,YAAT;;AAeA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,OAaL;AAAA,+BAZnBC,YAYmB;AAAA,MAZnBA,YAYmB,kCAZJ,EAYI;AAAA,uBAXnBC,IAWmB;AAAA,MAXnBA,IAWmB,0BAXZ,IAWY;AAAA,MAVnBC,KAUmB,QAVnBA,KAUmB;AAAA,MATnBC,QASmB,QATnBA,QASmB;AAAA,MARnBC,SAQmB,QARnBA,SAQmB;AAAA,MAPnBC,UAOmB,QAPnBA,UAOmB;AAAA,MANnBC,MAMmB,QANnBA,MAMmB;AAAA,MALnBC,KAKmB,QALnBA,KAKmB;AAAA,uBAJnBC,IAImB;AAAA,MAJnBA,IAImB,0BAJZ,CAIY;AAAA,MAHnBC,SAGmB,QAHnBA,SAGmB;AAAA,MAFnBC,MAEmB,QAFnBA,MAEmB;AAAA,MADhBC,SACgB;;AACnB,2BAA0Bd,iBAAiB,CAACc,SAAD,EAAY;AAAEX,IAAAA,YAAY,EAAZA;AAAF,GAAZ,CAA3C;AAAA;AAAA,MAAOY,KAAP;AAAA,MAAcC,QAAd;;AACA,MAAMC,mBAAmB,GAAGrB,KAAK,CAACsB,MAAN,EAA5B;AACA,MAAMC,UAAU,GAAGlB,YAAY,CAACQ,MAAD,CAA/B,CAHmB,CAKnB;;AACAb,EAAAA,KAAK,CAACwB,SAAN,CAAgB,YAAM;AACpB,QAAMC,EAAE,GAAGF,UAAU,CAACG,OAAtB;;AAEA,QAAIlB,IAAI,IAAIiB,EAAJ,aAAIA,EAAJ,eAAIA,EAAE,CAAEE,YAAhB,EAA8B;AAC5BF,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,GAAkB,EAAlB;AACAH,MAAAA,EAAE,CAAChB,KAAH,CAASmB,MAAT,aAAqBH,EAAE,CAACI,YAAxB;;AAEA,UAAIJ,EAAE,CAACI,YAAH,KAAoBR,mBAAmB,CAACK,OAAxC,IAAmDhB,QAAvD,EAAiE;AAC/DA,QAAAA,QAAQ,CAACe,EAAD,CAAR;AACAJ,QAAAA,mBAAmB,CAACK,OAApB,GAA8BD,EAAE,CAACI,YAAjC;AACD;AACF;AACF,GAZD,EAYG,CAACrB,IAAD,EAAOW,KAAP,EAAcL,KAAd,EAAqBS,UAArB,EAAiCb,QAAjC,CAZH;AAcA,SACE,oBAAC,SAAD;AACE,IAAA,SAAS,EAAET,UAAU,CACnB,UADmB,EAEnB;AAFmB,8BAGAa,KAHA,EADvB;AAME,IAAA,SAAS,EAAEH,SANb;AAOE,IAAA,KAAK,EAAEF,KAPT;AAQE,IAAA,UAAU,EAAEG,UARd;AASE,IAAA,QAAQ,EAAEM,SAAS,CAACY,QATtB;AAUE,IAAA,MAAM,EAAEb;AAVV,KAYE,6CACMC,SADN;AAEE,IAAA,KAAK,EAAE;AAAEF,MAAAA,SAAS,EAATA;AAAF,KAFT;AAGE,IAAA,IAAI,EAAED,IAHR;AAIE,IAAA,SAAS,EAAC,cAJZ;AAKE,IAAA,KAAK,EAAEI,KALT;AAME,IAAA,QAAQ,EAAEC,QANZ;AAOE,IAAA,GAAG,EAAEG;AAPP,KAZF,CADF;AAwBD,CAzDD;AA2DA;AACA;AACA;;;AACA,OAAO,IAAMQ,QAAQ,GAAG5B,cAAc,CAACG,iBAAD,EAAoB;AAAEQ,EAAAA,KAAK,EAAE;AAAT,CAApB,CAA/B;AAEPiB,QAAQ,CAACC,WAAT,GAAuB,UAAvB","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { FormField, FormFieldProps } from \"../FormField/FormField\";\nimport { HasRef, HasRootRef } from \"../../types\";\nimport { withAdaptivity, AdaptivityProps } from \"../../hoc/withAdaptivity\";\nimport { useEnsuredControl } from \"../../hooks/useEnsuredControl\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport \"./Textarea.css\";\n\nexport interface TextareaProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRef<HTMLTextAreaElement>,\n HasRootRef<HTMLElement>,\n AdaptivityProps,\n Pick<React.CSSProperties, \"maxHeight\">,\n Pick<FormFieldProps, \"status\"> {\n grow?: boolean;\n onResize?(el: HTMLTextAreaElement): void;\n defaultValue?: string;\n}\n\nconst TextareaComponent = ({\n defaultValue = \"\",\n grow = true,\n style,\n onResize,\n className,\n getRootRef,\n getRef,\n sizeY,\n rows = 2,\n maxHeight,\n status,\n ...restProps\n}: TextareaProps) => {\n const [value, onChange] = useEnsuredControl(restProps, { defaultValue });\n const currentScrollHeight = React.useRef<number>();\n const elementRef = useExternRef(getRef);\n\n // autosize input\n React.useEffect(() => {\n const el = elementRef.current;\n\n if (grow && el?.offsetParent) {\n el.style.height = \"\";\n el.style.height = `${el.scrollHeight}px`;\n\n if (el.scrollHeight !== currentScrollHeight.current && onResize) {\n onResize(el);\n currentScrollHeight.current = el.scrollHeight;\n }\n }\n }, [grow, value, sizeY, elementRef, onResize]);\n\n return (\n <FormField\n vkuiClass={classNames(\n \"Textarea\",\n // TODO. v5.0.0 Новая адаптивность\n `Textarea--sizeY-${sizeY}`\n )}\n className={className}\n style={style}\n getRootRef={getRootRef}\n disabled={restProps.disabled}\n status={status}\n >\n <textarea\n {...restProps}\n style={{ maxHeight }}\n rows={rows}\n vkuiClass=\"Textarea__el\"\n value={value}\n onChange={onChange}\n ref={elementRef}\n />\n </FormField>\n );\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Textarea\n */\nexport const Textarea = withAdaptivity(TextareaComponent, { sizeY: true });\n\nTextarea.displayName = \"Textarea\";\n"],"file":"Textarea.js"}
|
|
@@ -1,36 +1,77 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["
|
|
3
|
+
var _excluded = ["photoSize", "direction"],
|
|
4
|
+
_excluded2 = ["photos", "visibleCount", "size", "layout", "children"];
|
|
4
5
|
import { createScopedElement } from "../../lib/jsxRuntime";
|
|
5
6
|
import { hasReactNode } from "../../lib/utils";
|
|
6
7
|
import { classNames } from "../../lib/classNames";
|
|
7
|
-
import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
|
|
8
8
|
import { Footnote } from "../Typography/Footnote/Footnote";
|
|
9
9
|
import { Caption } from "../Typography/Caption/Caption";
|
|
10
|
-
import { createMasks } from "./masks";
|
|
11
|
-
import { useDOM } from "../../lib/dom";
|
|
12
10
|
|
|
11
|
+
function PathElement(_ref) {
|
|
12
|
+
var photoSize = _ref.photoSize,
|
|
13
|
+
direction = _ref.direction,
|
|
14
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
15
|
+
|
|
16
|
+
switch (direction) {
|
|
17
|
+
case "circle":
|
|
18
|
+
var radius = photoSize / 2;
|
|
19
|
+
return createScopedElement("circle", _extends({
|
|
20
|
+
cx: radius,
|
|
21
|
+
cy: radius,
|
|
22
|
+
r: radius
|
|
23
|
+
}, props));
|
|
24
|
+
|
|
25
|
+
case "right":
|
|
26
|
+
switch (photoSize) {
|
|
27
|
+
case 24:
|
|
28
|
+
return createScopedElement("path", _extends({
|
|
29
|
+
d: "M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625"
|
|
30
|
+
}, props));
|
|
31
|
+
|
|
32
|
+
default:
|
|
33
|
+
return createScopedElement("path", _extends({
|
|
34
|
+
d: "M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75"
|
|
35
|
+
}, props));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
default:
|
|
39
|
+
switch (photoSize) {
|
|
40
|
+
case 16:
|
|
41
|
+
return createScopedElement("path", _extends({
|
|
42
|
+
d: "M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285"
|
|
43
|
+
}, props));
|
|
44
|
+
|
|
45
|
+
case 24:
|
|
46
|
+
return createScopedElement("path", _extends({
|
|
47
|
+
d: "M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625"
|
|
48
|
+
}, props));
|
|
49
|
+
|
|
50
|
+
default:
|
|
51
|
+
return createScopedElement("path", _extends({
|
|
52
|
+
d: "M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75"
|
|
53
|
+
}, props));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
}
|
|
13
58
|
/**
|
|
14
59
|
* @see https://vkcom.github.io/VKUI/#/UsersStack
|
|
15
60
|
*/
|
|
16
|
-
export var UsersStack = function UsersStack(_ref) {
|
|
17
|
-
var _ref$photos = _ref.photos,
|
|
18
|
-
photos = _ref$photos === void 0 ? [] : _ref$photos,
|
|
19
|
-
_ref$visibleCount = _ref.visibleCount,
|
|
20
|
-
visibleCount = _ref$visibleCount === void 0 ? 3 : _ref$visibleCount,
|
|
21
|
-
_ref$size = _ref.size,
|
|
22
|
-
size = _ref$size === void 0 ? "s" : _ref$size,
|
|
23
|
-
_ref$layout = _ref.layout,
|
|
24
|
-
layout = _ref$layout === void 0 ? "horizontal" : _ref$layout,
|
|
25
|
-
children = _ref.children,
|
|
26
|
-
restProps = _objectWithoutProperties(_ref, _excluded);
|
|
27
61
|
|
|
28
|
-
var _useDOM = useDOM(),
|
|
29
|
-
document = _useDOM.document;
|
|
30
62
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
63
|
+
export var UsersStack = function UsersStack(_ref2) {
|
|
64
|
+
var _ref2$photos = _ref2.photos,
|
|
65
|
+
photos = _ref2$photos === void 0 ? [] : _ref2$photos,
|
|
66
|
+
_ref2$visibleCount = _ref2.visibleCount,
|
|
67
|
+
visibleCount = _ref2$visibleCount === void 0 ? 3 : _ref2$visibleCount,
|
|
68
|
+
_ref2$size = _ref2.size,
|
|
69
|
+
size = _ref2$size === void 0 ? "s" : _ref2$size,
|
|
70
|
+
_ref2$layout = _ref2.layout,
|
|
71
|
+
layout = _ref2$layout === void 0 ? "horizontal" : _ref2$layout,
|
|
72
|
+
children = _ref2.children,
|
|
73
|
+
restProps = _objectWithoutProperties(_ref2, _excluded2);
|
|
74
|
+
|
|
34
75
|
var othersCount = Math.max(0, photos.length - visibleCount);
|
|
35
76
|
var canShowOthers = othersCount > 0 && size !== "xs";
|
|
36
77
|
var CounterTypography = size === "m" ? Footnote : Caption;
|
|
@@ -48,24 +89,24 @@ export var UsersStack = function UsersStack(_ref) {
|
|
|
48
89
|
role: "presentation"
|
|
49
90
|
}, photosShown.map(function (photo, i) {
|
|
50
91
|
var direction = i === 0 && !canShowOthers ? "circle" : directionClip;
|
|
51
|
-
var pathHref = "#users_stack_".concat(photoSize, "_").concat(direction);
|
|
52
|
-
var clipPathHref = "url(#users_stack_mask_".concat(photoSize, "_").concat(direction, ")");
|
|
53
92
|
return createScopedElement("svg", {
|
|
54
93
|
xmlns: "http://www.w3.org/2000/svg",
|
|
55
94
|
vkuiClass: "UsersStack__photo",
|
|
56
95
|
key: i,
|
|
57
96
|
"aria-hidden": true
|
|
58
97
|
}, createScopedElement("g", {
|
|
59
|
-
|
|
60
|
-
}, createScopedElement(
|
|
61
|
-
|
|
62
|
-
|
|
98
|
+
vkuiClass: "UsersStack__mask--".concat(photoSize, "-").concat(direction)
|
|
99
|
+
}, createScopedElement(PathElement, {
|
|
100
|
+
direction: direction,
|
|
101
|
+
photoSize: photoSize,
|
|
102
|
+
vkuiClass: "UsersStack__fill"
|
|
63
103
|
}), createScopedElement("image", {
|
|
64
104
|
href: photo,
|
|
65
105
|
width: photoSize,
|
|
66
106
|
height: photoSize
|
|
67
|
-
}), createScopedElement(
|
|
68
|
-
|
|
107
|
+
}), createScopedElement(PathElement, {
|
|
108
|
+
direction: direction,
|
|
109
|
+
photoSize: photoSize,
|
|
69
110
|
fill: "none",
|
|
70
111
|
stroke: "rgba(0, 0, 0, 0.08)"
|
|
71
112
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["hasReactNode","classNames","
|
|
1
|
+
{"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"names":["hasReactNode","classNames","Footnote","Caption","PathElement","photoSize","direction","props","radius","UsersStack","photos","visibleCount","size","layout","children","restProps","othersCount","Math","max","length","canShowOthers","CounterTypography","xs","s","m","directionClip","photosShown","slice","map","photo","i"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { hasReactNode } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { Footnote } from \"../Typography/Footnote/Footnote\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport \"./UsersStack.css\";\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: \"xs\" | \"s\" | \"m\"; // TODO: \"s\" | \"m\" | \"l\"\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n */\n layout?: \"vertical\" | \"horizontal\";\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: \"circle\" | \"right\" | \"left\";\n}\n\nfunction PathElement({ photoSize, direction, ...props }: PathElementProps) {\n switch (direction) {\n case \"circle\":\n const radius = photoSize / 2;\n\n return <circle cx={radius} cy={radius} r={radius} {...props} />;\n\n case \"right\":\n switch (photoSize) {\n case 24:\n return (\n <path\n d=\"M22,18.625A12 12 0 0 1 12 24A12 12 0 0 1 12 0A12 12 0 0 1 22 5.375A12 12 0 0 0 22,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M30,23.75A16 16 0 0 1 16 32A16 16 0 0 1 16 0A16 16 0 0 1 30 8.25A16 16 0 0 0 30,23.75\"\n {...props}\n />\n );\n }\n\n default:\n switch (photoSize) {\n case 16:\n return (\n <path\n d=\"M2,13.285A8 8 0 0 0 8 16A8 8 0 0 0 8 0A8 8 0 0 0 2 2.715A8 8 0 0 1 2,13.285\"\n {...props}\n />\n );\n case 24:\n return (\n <path\n d=\"M2,18.625A12 12 0 0 0 12 24A12 12 0 0 0 12 0A12 12 0 0 0 2 5.375A12 12 0 0 1 2,18.625\"\n {...props}\n />\n );\n\n default:\n return (\n <path\n d=\"M2,23.75A16 16 0 0 0 16 32A16 16 0 0 0 16 0A16 16 0 0 0 2 8.25A16 16 0 0 1 2,23.75\"\n {...props}\n />\n );\n }\n }\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n size = \"s\",\n layout = \"horizontal\",\n children,\n ...restProps\n}: UsersStackProps) => {\n const othersCount = Math.max(0, photos.length - visibleCount);\n const canShowOthers = othersCount > 0 && size !== \"xs\";\n const CounterTypography = size === \"m\" ? Footnote : Caption;\n\n const photoSize = {\n xs: 16,\n s: 24,\n m: 32,\n }[size];\n const directionClip = canShowOthers ? \"right\" : \"left\";\n\n const photosShown = photos.slice(0, visibleCount);\n\n return (\n <div\n {...restProps}\n vkuiClass={classNames(\n \"UsersStack\",\n `UsersStack--size-${size}`,\n `UsersStack--l-${layout}`,\n canShowOthers && \"UsersStack--others\"\n )}\n >\n <div vkuiClass=\"UsersStack__photos\" role=\"presentation\">\n {photosShown.map((photo, i) => {\n const direction =\n i === 0 && !canShowOthers ? \"circle\" : directionClip;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n vkuiClass=\"UsersStack__photo\"\n key={i}\n aria-hidden\n >\n <g vkuiClass={`UsersStack__mask--${photoSize}-${direction}`}>\n <PathElement\n direction={direction}\n photoSize={photoSize}\n vkuiClass=\"UsersStack__fill\"\n />\n <image href={photo} width={photoSize} height={photoSize} />\n <PathElement\n direction={direction}\n photoSize={photoSize}\n fill=\"none\"\n stroke=\"rgba(0, 0, 0, 0.08)\"\n />\n </g>\n </svg>\n );\n })}\n\n {canShowOthers && (\n <CounterTypography\n caps\n weight=\"1\"\n level=\"2\" // TODO: remove only level in #2343\n vkuiClass=\"UsersStack__photo UsersStack__photo--others\"\n aria-hidden\n >\n <span>+{othersCount}</span>\n </CounterTypography>\n )}\n </div>\n {hasReactNode(children) && (\n <Footnote vkuiClass=\"UsersStack__text\">{children}</Footnote>\n )}\n </div>\n );\n};\n"],"file":"UsersStack.js"}
|
|
@@ -153,8 +153,6 @@ export var View = function View(_ref) {
|
|
|
153
153
|
var prevSwipeBackResult = usePrevious(swipeBackResult);
|
|
154
154
|
var prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);
|
|
155
155
|
var prevOnTransition = usePrevious(onTransition);
|
|
156
|
-
var hasPopout = !!popout;
|
|
157
|
-
var hasModal = !!modal;
|
|
158
156
|
var panels = React.Children.toArray(children).filter(function (panel) {
|
|
159
157
|
var panelId = getNavId(panel.props, warn);
|
|
160
158
|
return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
|
|
@@ -332,9 +330,6 @@ export var View = function View(_ref) {
|
|
|
332
330
|
React.useEffect(function () {
|
|
333
331
|
popout && blurActiveElement(document);
|
|
334
332
|
}, [document, popout]);
|
|
335
|
-
React.useEffect(function () {
|
|
336
|
-
modal && blurActiveElement(document);
|
|
337
|
-
}, [document, modal]);
|
|
338
333
|
React.useEffect(function () {
|
|
339
334
|
// Нужен переход
|
|
340
335
|
if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
|
|
@@ -450,9 +445,9 @@ export var View = function View(_ref) {
|
|
|
450
445
|
}, createScopedElement(NavTransitionProvider, {
|
|
451
446
|
entering: panelId === nextPanel || panelId === swipeBackNextPanel
|
|
452
447
|
}, panel)));
|
|
453
|
-
})), createScopedElement(AppRootPortal, null,
|
|
448
|
+
})), createScopedElement(AppRootPortal, null, !!popout && createScopedElement("div", {
|
|
454
449
|
vkuiClass: "View__popout"
|
|
455
|
-
}, popout),
|
|
450
|
+
}, popout), !!modal && createScopedElement("div", {
|
|
456
451
|
vkuiClass: "View__modal"
|
|
457
452
|
}, modal)));
|
|
458
453
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","hasPopout","hasModal","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n modal && blurActiveElement(document);\n }, [document, modal]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,UAAT;AACA,SAASC,cAAT;AACA,SAASC,GAAT;AACA,SAASC,KAAT;AACA,SAASC,iBAAT;AACA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,SAASC,SAAT,EAAoBC,MAApB,EAA4BC,iBAA5B;AACA,SAASC,SAAT;AACA,SAASC,qBAAT;AACA,SAASC,QAAT;AACA,SAASC,QAAT;AACA,SAASC,WAAT;AACA,SAASC,iBAAT;AACA,SAASC,uBAAT;AACA,SAASC,UAAT;AACA,SAASC,WAAT;AACA,SAASC,yBAAT;AACA,SAASC,IAAT;IAGKC,gB;;WAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;AAAAA,EAAAA,gB,CAAAA,gB;GAAAA,gB,KAAAA,gB;;AAaL,OAAO,IAAIC,YAA0B,GAAG,EAAjC;AAqDP,IAAMC,IAAI,GAAGV,QAAQ,CAAC,MAAD,CAArB;AAEA;AACA;AACA;;AACA,OAAO,IAAMW,IAAI,GAAG,SAAPA,IAAO,OAaH;AAAA,MAZfC,MAYe,QAZfA,MAYe;AAAA,MAXfC,KAWe,QAXfA,KAWe;AAAA,MAVFC,eAUE,QAVfC,WAUe;AAAA,MATfC,OASe,QATfA,OASe;AAAA,MARfC,GAQe,QARfA,GAQe;AAAA,MAPfC,YAOe,QAPfA,YAOe;AAAA,MANfC,WAMe,QANfA,WAMe;AAAA,MALfC,gBAKe,QALfA,gBAKe;AAAA,MAJIC,qBAIJ,QAJfC,iBAIe;AAAA,MAHfC,QAGe,QAHfA,QAGe;AAAA,MADZC,SACY;;AACf,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1Cf,IAAAA,MAAM,IACJF,IAAI,CACF,mGADE,CADN;AAIAG,IAAAA,KAAK,IACHH,IAAI,CACF,kGADE,CADN;AAID;;AAED,MAAMkB,OAAO,GAAG1C,KAAK,CAAC2C,MAAN,CACdpB,YAAY,CAACV,QAAQ,CAAC;AAAEkB,IAAAA,GAAG,EAAHA,GAAF;AAAOa,IAAAA,EAAE,EAAEN,SAAS,CAACM;AAArB,GAAD,CAAT,CAAZ,IAA+D,EADjD,CAAhB;AAGA,MAAMC,eAAe,GAAG7C,KAAK,CAAC2C,MAAN,CAAatB,IAAb,CAAxB;AAEArB,EAAAA,KAAK,CAAC8C,SAAN,CAAgB;AAAA,WAAM,YAAM;AAC1B,UAAMF,EAAE,GAAG/B,QAAQ,CAAC;AAAEkB,QAAAA,GAAG,EAAHA,GAAF;AAAOa,QAAAA,EAAE,EAAEN,SAAS,CAACM;AAArB,OAAD,CAAnB;;AACA,UAAIA,EAAJ,EAAQ;AACNrB,QAAAA,YAAY,CAACqB,EAAD,CAAZ,GAAmBF,OAAO,CAACK,OAA3B;AACD;AACF,KALe;AAAA,GAAhB;AAOA,MAAMC,UAAU,GAAGhD,KAAK,CAAC2C,MAAN,CAAsD,EAAtD,CAAnB;;AAEA,gBAA6BlC,MAAM,EAAnC;AAAA,MAAQwC,MAAR,WAAQA,MAAR;AAAA,MAAgBC,QAAhB,WAAgBA,QAAhB;;AACA,MAAMC,MAAM,GAAGxC,SAAS,EAAxB;AACA,MAAMyC,cAAc,GAAG/C,iBAAiB,EAAxC;AACA,MAAMgD,QAAQ,GAAG/C,WAAW,EAA5B;AACA,MAAMgD,QAAQ,GAAGvC,WAAW,EAA5B;;AAEA,wBAAgCf,KAAK,CAACuD,QAAN,CAAe,KAAf,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBC,WAAjB;;AAEA,yBAA0CzD,KAAK,CAACuD,QAAN,CAAe,CAAC3B,eAAD,CAAf,CAA1C;AAAA;AAAA,MAAO8B,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,yBAAsC3D,KAAK,CAACuD,QAAN,CACpC3B,eADoC,CAAtC;AAAA;AAAA,MAAOC,WAAP;AAAA,MAAoB+B,cAApB;;AAGA,yBAA4B5D,KAAK,CAACuD,QAAN,CAAoCM,SAApC,CAA5B;AAAA;AAAA,MAAOC,MAAP;AAAA,MAAeC,SAAf;;AACA,yBAAkC/D,KAAK,CAACuD,QAAN,CAA8B,IAA9B,CAAlC;AAAA;AAAA,MAAOS,SAAP;AAAA,MAAkBC,YAAlB;;AACA,0BAAkCjE,KAAK,CAACuD,QAAN,CAA8B,IAA9B,CAAlC;AAAA;AAAA,MAAOW,SAAP;AAAA,MAAkBC,YAAlB;;AAEA,0BAAsCnE,KAAK,CAACuD,QAAN,CAAwB,KAAxB,CAAtC;AAAA;AAAA,MAAOa,WAAP;AAAA,MAAoBC,cAApB;;AACA,0BAA8CrE,KAAK,CAACuD,QAAN,CAAuB,CAAvB,CAA9C;AAAA;AAAA,MAAOe,eAAP;AAAA,MAAwBC,kBAAxB;;AACA,0BAA4CvE,KAAK,CAACuD,QAAN,CAAuB,CAAvB,CAA5C;AAAA;AAAA,MAAOiB,cAAP;AAAA,MAAuBC,iBAAvB;;AACA,0BAAoDzE,KAAK,CAACuD,QAAN,CAElD,IAFkD,CAApD;AAAA;AAAA,MAAOmB,kBAAP;AAAA,MAA2BC,qBAA3B;;AAGA,0BAAoD3E,KAAK,CAACuD,QAAN,CAElD,IAFkD,CAApD;AAAA;AAAA,MAAOqB,kBAAP;AAAA,MAA2BC,qBAA3B;;AAGA,0BACE7E,KAAK,CAACuD,QAAN,CAAwC,IAAxC,CADF;AAAA;AAAA,MAAOuB,eAAP;AAAA,MAAwBC,kBAAxB;;AAGA,0BAAwC/E,KAAK,CAACuD,QAAN,CAAe,KAAf,CAAxC;AAAA;AAAA,MAAOyB,YAAP;AAAA,MAAqBC,eAArB;;AAEA,MAAMC,eAAe,GAAG/D,WAAW,CAACS,eAAD,CAAnC;AACA,MAAMuD,eAAe,GAAGhE,WAAW,CAACiD,WAAD,CAAnC;AACA,MAAMgB,gBAAgB,GAAGjE,WAAW,CAAC6D,YAAD,CAApC;AACA,MAAMK,mBAAmB,GAAGlE,WAAW,CAAC2D,eAAD,CAAvC;AACA,MAAMQ,sBAAsB,GAAGnE,WAAW,CAACyD,kBAAD,CAA1C;AACA,MAAMW,gBAAgB,GAAGpE,WAAW,CAACa,YAAD,CAApC;AAEA,MAAMwD,MAAM,GACVxF,KAAK,CAACyF,QAAN,CAAeC,OAAf,CAAuBrD,QAAvB,CADa,CAEbsD,MAFa,CAEN,UAACC,KAAD,EAA+B;AACtC,QAAMC,OAAO,GAAGhF,QAAQ,CAAC+E,KAAK,CAACE,KAAP,EAActE,IAAd,CAAxB;AAEA,WACGqE,OAAO,KAAKhC,SAAZ,IAAyBH,aAAa,CAACqC,QAAd,CAAuBF,OAAvB,CAA1B,IACAA,OAAO,KAAKjB,kBADZ,IAEAiB,OAAO,KAAKnB,kBAHd;AAKD,GAVc,CAAf;AAYA,MAAMsB,gBAAgB,GACpB,CAAA5C,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAE6C,uBAAhB,MAA4C,KAA5C,IAAqD,EAAC5C,QAAD,aAACA,QAAD,eAACA,QAAQ,CAAE6C,OAAX,CADvD;;AAGA,MAAMC,SAAS,GAAG,SAAZA,SAAY,CAACvD,EAAD,EAAuB;AACvC,QAAIA,EAAE,KAAK,IAAX,EAAiB;AACf,aAAO,IAAP;AACD;;AACD,WAAOI,UAAU,CAACD,OAAX,CAAmBH,EAAnB,CAAP;AACD,GALD;;AAOA,MAAMwD,eAAe,GAAGpG,KAAK,CAACqG,WAAN,CACtB,UAACrC,SAAD,EAAoBsC,gBAApB,EAAkD;AAChD,QAAIA,gBAAJ,EAAsB;AACpB5D,MAAAA,OAAO,CAACK,OAAR,CAAgBiB,SAAhB,IAA6B,CAA7B;AACD;;AACDC,IAAAA,YAAY,CAAC,IAAD,CAAZ;AACAE,IAAAA,YAAY,CAAC,IAAD,CAAZ;AACAR,IAAAA,gBAAgB,CAAC,CAAC/B,eAAD,CAAD,CAAhB;AACAgC,IAAAA,cAAc,CAAChC,eAAD,CAAd;AACA6B,IAAAA,WAAW,CAAC,KAAD,CAAX;AACAM,IAAAA,SAAS,CAACF,SAAD,CAAT;;AAEAhB,IAAAA,eAAe,CAACE,OAAhB,GAA0B,YAAM;AAC9BI,MAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEoD,QAAR,CACE,CADF,EAEED,gBAAgB,GAAG5D,OAAO,CAACK,OAAR,CAAgBnB,eAAhB,CAAH,GAAsC,CAFxD;AAIAI,MAAAA,YAAY,IACVA,YAAY,CAAC;AACX8B,QAAAA,MAAM,EAAEwC,gBADG;AAEXE,QAAAA,IAAI,EAAExC,SAFK;AAGXyC,QAAAA,EAAE,EAAE7E;AAHO,OAAD,CADd;AAMD,KAXD;AAYD,GAxBqB,EAyBtB,CAACA,eAAD,EAAkBI,YAAlB,EAAgCmB,MAAhC,CAzBsB,CAAxB;AA4BA/B,EAAAA,yBAAyB,CAAC,YAAM;AAC9ByB,IAAAA,eAAe,CAACE,OAAhB;AACAF,IAAAA,eAAe,CAACE,OAAhB,GAA0B1B,IAA1B;AACD,GAHwB,EAGtB,CAACwB,eAAe,CAACE,OAAjB,CAHsB,CAAzB;AAKA,MAAM2D,oBAAoB,GAAG1G,KAAK,CAACqG,WAAN,CAC3B,UAACM,CAAD,EAAoC;AAClC,QACE,CAAC,CAACA,CAAD,IACC,CACE,iCADF,EAEE,8BAFF,EAGE,kCAHF,EAIE,+BAJF,EAKEZ,QALF,CAKWY,CAAC,CAACC,aALb,CADF,KAOA5C,SAAS,KAAK,IARhB,EASE;AACAoC,MAAAA,eAAe,CAACpC,SAAD,EAAY6C,OAAO,CAAC/C,MAAD,CAAnB,CAAf;AACD;AACF,GAd0B,EAe3B,CAACsC,eAAD,EAAkBtC,MAAlB,EAA0BE,SAA1B,CAf2B,CAA7B;;AAkBA,8BAAiC/C,uBAAuB,EAAxD;AAAA,MAAQ6F,oBAAR,yBAAQA,oBAAR;;AACA,MAAMC,sBAAsB,GAAG7F,UAAU,CACvCwF,oBADuC,EAEvCpD,QAAQ,KAAKnD,GAAb,GAAmB,GAAnB,GAAyB,GAFc,CAAzC;AAKA,MAAM6G,kBAAkB,GAAGhH,KAAK,CAACqG,WAAN,CAAkB,YAAM;AACjDpE,IAAAA,WAAW,IAAIA,WAAW,EAA1B;AACD,GAF0B,EAExB,CAACA,WAAD,CAFwB,CAA3B;AAIA,MAAMG,iBAAiB,GAAGpC,KAAK,CAACqG,WAAN,CAAkB,YAAM;AAChDlE,IAAAA,qBAAqB,IAAIA,qBAAqB,EAA9C;AACA0C,IAAAA,qBAAqB,CAAC,IAAD,CAArB;AACAF,IAAAA,qBAAqB,CAAC,IAAD,CAArB;AACAN,IAAAA,cAAc,CAAC,KAAD,CAAd;AACAU,IAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAR,IAAAA,kBAAkB,CAAC,CAAD,CAAlB;AACAE,IAAAA,iBAAiB,CAAC,CAAD,CAAjB;AACD,GARyB,EAQvB,CAACtC,qBAAD,CARuB,CAA1B;AAUA,MAAM8E,+BAA+B,GAAGjH,KAAK,CAACqG,WAAN,CACtC,UAACM,CAAD,EAA+B;AAC7B;AACA,QACE,CAACA,CAAD,IACCA,CAAC,SAAD,IAAAA,CAAC,WAAD,IAAAA,CAAC,CAAEO,YAAH,CAAgBnB,QAAhB,CAAyB,WAAzB,KACC,CAAAY,CAAC,SAAD,IAAAA,CAAC,WAAD,YAAAA,CAAC,CAAEQ,MAAH,MAAchB,SAAS,CAACzB,kBAAD,CAH3B,EAIE;AACA,cAAQI,eAAR;AACE,aAAKxD,gBAAgB,CAAC8F,IAAtB;AACEhF,UAAAA,iBAAiB;AACjB;;AACF,aAAKd,gBAAgB,CAAC+F,OAAtB;AACEL,UAAAA,kBAAkB;AALtB;AAOD;AACF,GAhBqC,EAiBtC,CAAC5E,iBAAD,EAAoB4E,kBAApB,EAAwCtC,kBAAxC,EAA4DI,eAA5D,CAjBsC,CAAxC;;AAoBA,MAAMwC,OAAO,GAAG,SAAVA,OAAU,CAACX,CAAD,EAAyB;AACvC,QAAI3F,iBAAiB,CAAC2F,CAAD,CAArB,EAA0B;AACxB;AACD;;AAED,QACErD,QAAQ,KAAKnD,GAAb,IACA,EAACiD,cAAD,aAACA,cAAD,eAACA,cAAc,CAAEmE,SAAjB,CADA,KAECZ,CAAC,CAACa,MAAF,IAAY,EAAZ,IAAkBb,CAAC,CAACa,MAAF,IAAYvE,MAAM,CAAEwE,UAAR,GAAqB,EAFpD,KAGA,CAACzC,YAJH,EAKE;AACAC,MAAAA,eAAe,CAAC,IAAD,CAAf;AACD;;AAED,QAAI3B,QAAQ,KAAKnD,GAAb,IAAoBiD,cAApB,aAAoBA,cAApB,eAAoBA,cAAc,CAAEmE,SAApC,IAAiDtF,WAArD,EAAkE;AAChE,UAAKuB,QAAQ,IAAImD,CAAC,CAACa,MAAF,IAAY,EAAzB,IAAgC,CAACvE,MAArC,EAA6C;AAC3C;AACD;;AAED,UAAI0D,CAAC,CAACa,MAAF,IAAY,EAAZ,IAAkB,CAACpD,WAAnB,IAAkCtC,OAAlC,IAA6CA,OAAO,CAAC4F,MAAR,GAAiB,CAAlE,EAAqE;AACnE,YAAI7F,WAAW,KAAK,IAApB,EAA0B;AACxBa,UAAAA,OAAO,CAACK,OAAR,CAAgBlB,WAAhB,IAA+BsB,MAA/B,aAA+BA,MAA/B,uBAA+BA,MAAM,CAAEwE,SAAR,GAAoBC,CAAnD;AACD;;AAEDvD,QAAAA,cAAc,CAAC,IAAD,CAAd;AACAE,QAAAA,kBAAkB,CAACoC,CAAC,CAACa,MAAH,CAAlB;AACA3C,QAAAA,qBAAqB,CAAChD,WAAD,CAArB;AACA8C,QAAAA,qBAAqB,CAAC7C,OAAO,CAAC+F,KAAR,CAAc,CAAC,CAAf,EAAkB,CAAlB,CAAD,CAArB;AACD;;AACD,UAAIzD,WAAJ,EAAiB;AACf,YAAII,eAAc,GAAG,CAArB;;AACA,YAAImC,CAAC,CAACmB,MAAF,GAAW,CAAf,EAAkB;AAChBtD,UAAAA,eAAc,GAAG,CAAjB;AACD,SAFD,MAEO,IAAImC,CAAC,CAACmB,MAAF,GAAW7E,MAAM,CAACwE,UAAP,GAAoBnD,eAAnC,EAAoD;AACzDE,UAAAA,eAAc,GAAGvB,MAAH,aAAGA,MAAH,uBAAGA,MAAM,CAAEwE,UAAzB;AACD,SAFM,MAEA;AACLjD,UAAAA,eAAc,GAAGmC,CAAC,CAACmB,MAAnB;AACD;;AACDrD,QAAAA,iBAAiB,CAACD,eAAD,CAAjB;AACD;AACF;AACF,GAzCD;;AA2CA,MAAMuD,KAAK,GAAG/H,KAAK,CAACqG,WAAN,CACZ,UAACM,CAAD,EAAyB;AACvB,QAAIvC,WAAW,IAAInB,MAAnB,EAA2B;AAAA;;AACzB,UAAM+E,KAAK,GAAIxD,cAAc,GAAGmC,CAAC,CAACsB,QAApB,GAAgC,IAA9C;;AACA,UAAIzD,cAAc,KAAK,CAAvB,EAA0B;AACxBpC,QAAAA,iBAAiB;AAClB,OAFD,MAEO,IAAIoC,cAAc,2BAAKvB,MAAL,aAAKA,MAAL,uBAAKA,MAAM,CAAEwE,UAAb,mEAA2B,CAA3B,CAAlB,EAAiD;AACtDT,QAAAA,kBAAkB;AACnB,OAFM,MAEA,IACLgB,KAAK,GAAG,GAAR,IACA1D,eAAe,GAAGE,cAAlB,GAAmCvB,MAAM,CAACwE,UAAP,GAAoB,CAFlD,EAGL;AACA1C,QAAAA,kBAAkB,CAACzD,gBAAgB,CAAC+F,OAAlB,CAAlB;AACD,OALM,MAKA;AACLtC,QAAAA,kBAAkB,CAACzD,gBAAgB,CAAC8F,IAAlB,CAAlB;AACD;AACF;AACF,GAjBW,EAkBZ,CACEhF,iBADF,EAEE4E,kBAFF,EAGExC,cAHF,EAIEF,eAJF,EAKEF,WALF,EAMEnB,MANF,CAlBY,CAAd;;AA4BA,MAAMiF,oBAAoB,GAAG,SAAvBA,oBAAuB,CAC3BrC,OAD2B,EAEH;AACxB,QAAI,CAACrF,SAAD,IAAc,CAACyC,MAAnB,EAA2B;AACzB,aAAO,EAAP;AACD;;AAED,QAAMkF,MAAM,GAAGtC,OAAO,KAAKjB,kBAA3B;AACA,QAAMwD,MAAM,GAAGvC,OAAO,KAAKnB,kBAA3B;;AAEA,QAAK,CAACyD,MAAD,IAAW,CAACC,MAAb,IAAwBtD,eAA5B,EAA6C;AAC3C,aAAO,EAAP;AACD;;AAED,QAAIuD,kBAAkB,aAAM7D,cAAN,OAAtB;AACA,QAAI8D,kBAAkB,aACpB,CAAC,EAAD,GAAO9D,cAAc,GAAG,GAAlB,GAAyBvB,MAAM,CAACwE,UAAhC,GAA6C,CAD/B,MAAtB;AAGA,QAAIc,eAAe,GAChB,OAAOtF,MAAM,CAACwE,UAAP,GAAoBjD,cAA3B,CAAD,GAA+CvB,MAAM,CAACwE,UADxD;;AAGA,QAAI3C,eAAJ,EAAqB;AACnB,aAAOqD,MAAM,GACT;AAAEK,QAAAA,SAAS,sCAA+BD,eAA/B;AAAX,OADS,GAET,EAFJ;AAGD;;AAED,QAAIH,MAAJ,EAAY;AACV,aAAO;AACLK,QAAAA,SAAS,wBAAiBH,kBAAjB,YADJ;AAELI,QAAAA,eAAe,wBAAiBJ,kBAAjB;AAFV,OAAP;AAID;;AACD,QAAIH,MAAJ,EAAY;AACV,aAAO;AACLM,QAAAA,SAAS,wBAAiBJ,kBAAjB,YADJ;AAELK,QAAAA,eAAe,wBAAiBL,kBAAjB,YAFV;AAGLG,QAAAA,SAAS,sCAA+BD,eAA/B;AAHJ,OAAP;AAKD;;AAED,WAAO,EAAP;AACD,GA1CD;;AA4CAvI,EAAAA,KAAK,CAAC8C,SAAN,CAAgB,YAAM;AACpBpB,IAAAA,MAAM,IAAIhB,iBAAiB,CAACwC,QAAD,CAA3B;AACD,GAFD,EAEG,CAACA,QAAD,EAAWxB,MAAX,CAFH;AAIA1B,EAAAA,KAAK,CAAC8C,SAAN,CAAgB,YAAM;AACpB;AACA,QACEoC,eAAe,IACfA,eAAe,KAAKtD,eADpB,IAEA,CAACuD,eAFD,IAGA,CAACC,gBAJH,EAKE;AACA,UAAMuD,YAAY,GAChB3I,KAAK,CAACyF,QAAN,CAAeC,OAAf,CAAuBrD,QAAvB,CADmB,CAGlBuG,GAHkB,CAGd,UAAChD,KAAD;AAAA,eAAW/E,QAAQ,CAAC+E,KAAK,CAACE,KAAP,EAActE,IAAd,CAAnB;AAAA,OAHc,EAIlBqH,IAJkB,CAIb,UAACjG,EAAD;AAAA,eAAQA,EAAE,KAAKsC,eAAP,IAA0BtC,EAAE,KAAKhB,eAAzC;AAAA,OAJa,CAArB;AAMA,UAAM0E,gBAAgB,GAAGqC,YAAY,KAAK/G,eAA1C;AACAc,MAAAA,OAAO,CAACK,OAAR,CAAgBmC,eAAhB,IAAmC/B,MAAnC,aAAmCA,MAAnC,uBAAmCA,MAAM,CAAEwE,SAAR,GAAoBC,CAAvD;;AAEA,UAAI5B,gBAAJ,EAAsB;AACpBI,QAAAA,eAAe,CAAClB,eAAD,EAAkBoB,gBAAlB,CAAf;AACD,OAFD,MAEO;AACL5F,QAAAA,iBAAiB,CAACwC,QAAD,CAAjB;AAEAS,QAAAA,gBAAgB,CAAC,CAACuB,eAAD,EAAkBtD,eAAlB,CAAD,CAAhB;AACAqC,QAAAA,YAAY,CAACiB,eAAD,CAAZ;AACAf,QAAAA,YAAY,CAACvC,eAAD,CAAZ;AACAgC,QAAAA,cAAc,CAAC,IAAD,CAAd;AACAH,QAAAA,WAAW,CAAC,IAAD,CAAX;AACAM,QAAAA,SAAS,CAACuC,gBAAD,CAAT,CARK,CAUL;;AACA,YAAI,CAACpG,cAAc,CAAC4I,SAApB,EAA+B;AAC7B/B,UAAAA,sBAAsB,CAACgC,GAAvB;AACD;AACF;AACF,KAlCmB,CAoCpB;;;AACA,QACE7D,eAAe,IACfA,eAAe,KAAKtD,eADpB,IAEAuD,eAHF,EAIE;AACA,UAAMjB,UAAS,GAAGtC,eAAlB;AACA,UAAMoC,UAAS,GAAGkB,eAAlB;;AACA,UAAII,sBAAJ,EAA4B;AAC1B5C,QAAAA,OAAO,CAACK,OAAR,CAAgBuC,sBAAhB,IAA0C,CAA1C;AACD;;AAEDT,MAAAA,qBAAqB,CAAC,IAAD,CAArB;AACAF,MAAAA,qBAAqB,CAAC,IAAD,CAArB;AACAN,MAAAA,cAAc,CAAC,KAAD,CAAd;AACAU,MAAAA,kBAAkB,CAAC,IAAD,CAAlB;AACAR,MAAAA,kBAAkB,CAAC,CAAD,CAAlB;AACAE,MAAAA,iBAAiB,CAAC,CAAD,CAAjB;AACAb,MAAAA,cAAc,CAACM,UAAD,CAAd;AACAP,MAAAA,gBAAgB,CAAC,CAACO,UAAD,CAAD,CAAhB;;AAEArB,MAAAA,eAAe,CAACE,OAAhB,GAA0B,YAAM;AAC9B,YAAImB,UAAS,KAAK,IAAlB,EAAwB;AACtBf,UAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEoD,QAAR,CAAiB,CAAjB,EAAoB7D,OAAO,CAACK,OAAR,CAAgBmB,UAAhB,CAApB;AACD;;AACDqB,QAAAA,gBAAgB,IACdA,gBAAgB,CAAC;AACfzB,UAAAA,MAAM,EAAE,IADO;AAEf0C,UAAAA,IAAI,EAAExC,UAFS;AAGfyC,UAAAA,EAAE,EAAEvC;AAHW,SAAD,CADlB;AAMD,OAVD;AAWD,KApEmB,CAsEpB;;;AACA,QAAI,CAACiB,eAAD,IAAoBf,WAAxB,EAAqC;AACnClC,MAAAA,gBAAgB,IAAIA,gBAAgB,EAApC;AACD,KAzEmB,CA2EpB;;;AACA,QAAI,CAACmD,mBAAD,IAAwBP,eAA5B,EAA6C;AAC3CgC,MAAAA,oBAAoB,CAClBX,SAAS,CAACzB,kBAAD,CADS,EAElBuC,+BAFkB,EAGlB3D,QAAQ,KAAKnD,GAAb,GAAmB,GAAnB,GAAyB,GAHP,CAApB;AAKD,KAlFmB,CAoFpB;;;AACA,QACEkF,mBAAmB,KAAK/D,gBAAgB,CAAC8F,IAAzC,IACA,CAACtC,eADD,IAEAjD,WAAW,KAAK,IAHlB,EAIE;AACAsB,MAAAA,MAAM,SAAN,IAAAA,MAAM,WAAN,YAAAA,MAAM,CAAEoD,QAAR,CAAiB,CAAjB,EAAoB7D,OAAO,CAACK,OAAR,CAAgBlB,WAAhB,CAApB;AACD,KA3FmB,CA6FpB;;;AACA,QAAIqD,eAAe,KAAKtD,eAApB,IAAuCoD,YAA3C,EAAyD;AACvDC,MAAAA,eAAe,CAAC,KAAD,CAAf;AACAd,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACAF,MAAAA,YAAY,CAAC,IAAD,CAAZ;AACAR,MAAAA,WAAW,CAAC,KAAD,CAAX;AACAE,MAAAA,gBAAgB,CAAC,CAAC/B,eAAD,CAAD,CAAhB;AACAgC,MAAAA,cAAc,CAAChC,eAAD,CAAd;AACD;AACF,GAtGD,EAsGG,CACDA,eADC,EAEDC,WAFC,EAGDkF,sBAHC,EAID/B,YAJC,EAKD3C,QALC,EAMD2D,gBANC,EAOD9C,QAPC,EAQDkD,eARC,EASDlE,gBATC,EAUDsD,MAVC,EAWDlC,QAXC,EAYD4B,eAZC,EAaDE,gBAbC,EAcDG,gBAdC,EAeDD,sBAfC,EAgBDD,mBAhBC,EAiBDF,eAjBC,EAkBDhC,MAlBC,EAmBDuB,kBAnBC,EAoBDI,eApBC,EAqBDV,WArBC,EAsBD6C,+BAtBC,EAuBDH,oBAvBC,CAtGH;AAgIA,SACE,oBAAC,KAAD;AACE,IAAA,SAAS,EAAC;AADZ,KAEMxE,SAFN;AAGE,IAAA,SAAS,EAAErC,UAAU,CACnB,MADmB,EAEnBqD,QAAQ,KAAKnD,GAAb,IAAoB,WAFD,EAGnB,CAAC6F,gBAAD,IAAqBxC,QAArB,IAAiC,gBAHd,EAInB,CAACwC,gBAAD,IAAqB5B,WAArB,IAAoC,oBAJjB,EAKnB4B,gBAAgB,IAAI,iBALD,CAHvB;AAUE,IAAA,OAAO,EAAEsB,OAVX;AAWE,IAAA,KAAK,EAAES;AAXT,MAaE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGvC,MAAM,CAACoD,GAAP,CAAW,UAAChD,KAAD,EAA+B;AAAA;;AACzC,QAAMC,OAAO,GAAGhF,QAAQ,CAAC+E,KAAK,CAACE,KAAP,EAActE,IAAd,CAAxB;AACA,QAAM2G,MAAM,GACVtC,OAAO,KAAK7B,SAAZ,IAAyB6B,OAAO,KAAKjB,kBADvC;AAEA,QAAMoE,kBAAkB,GACtBxF,QAAQ,IAAIqC,OAAO,MAAM/B,MAAM,GAAGE,SAAH,GAAeE,SAA3B,CADrB;AAEA,QAAM+E,gBAAgB,GACpBd,MAAM,IACNtC,OAAO,KAAKnB,kBADZ,IAECmB,OAAO,KAAK3B,SAAZ,IAAyBJ,MAH5B;AAKA,WACE;AACE,MAAA,SAAS,EAAE7D,UAAU,CACnB,aADmB,EAEnB4F,OAAO,KAAKhE,WAAZ,IAA2B,qBAFR,EAGnBgE,OAAO,KAAK7B,SAAZ,IAAyB,mBAHN,EAInB6B,OAAO,KAAK3B,SAAZ,IAAyB,mBAJN,EAKnB2B,OAAO,KAAKjB,kBAAZ,IACE,8BANiB,EAOnBiB,OAAO,KAAKnB,kBAAZ,IACE,8BARiB,EASnBI,eAAe,KAAKxD,gBAAgB,CAAC+F,OAArC,IACE,iCAViB,EAWnBvC,eAAe,KAAKxD,gBAAgB,CAAC8F,IAArC,IACE,gCAZiB,CADvB;AAeE,MAAA,cAAc,EACZ4B,kBAAkB,GAAGtC,oBAAH,GAA0B7C,SAhBhD;AAkBE,MAAA,GAAG,EAAE,aAACqF,EAAD;AAAA,eACHrD,OAAO,KAAKhC,SAAZ,KAA0Bb,UAAU,CAACD,OAAX,CAAmB8C,OAAnB,IAA8BqD,EAAxD,CADG;AAAA,OAlBP;AAqBE,MAAA,KAAK,EAAEhB,oBAAoB,CAACrC,OAAD,CArB7B;AAsBE,MAAA,GAAG,EAAEA;AAtBP,OAwBE;AACE,MAAA,SAAS,EAAC,gBADZ;AAEE,MAAA,KAAK,EAAE;AACLsD,QAAAA,SAAS,EAAEF,gBAAgB,GACvB,sBAAEvG,OAAO,CAACK,OAAR,CAAgB8C,OAAhB,CAAF,+DAAwC,CAAxC,CADuB,GAEvBhC;AAHC;AAFT,OAQE,oBAAC,qBAAD;AACE,MAAA,QAAQ,EACNgC,OAAO,KAAK3B,SAAZ,IAAyB2B,OAAO,KAAKnB;AAFzC,OAKGkB,KALH,CARF,CAxBF,CADF;AA2CD,GAtDA,CADH,CAbF,EAsEE,oBAAC,aAAD,QACG,CAAC,CAAClE,MAAF,IAAY;AAAK,IAAA,SAAS,EAAC;AAAf,KAA+BA,MAA/B,CADf,EAEG,CAAC,CAACC,KAAF,IAAW;AAAK,IAAA,SAAS,EAAC;AAAf,KAA8BA,KAA9B,CAFd,CAtEF,CADF;AA6ED,CAjgBM","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|
|
@@ -544,16 +544,7 @@ var ViewInfiniteComponent = /*#__PURE__*/function (_React$Component) {
|
|
|
544
544
|
var scrollList = panelId && _this4.scrolls[panelId] || [];
|
|
545
545
|
var scroll = scrollList[scrollList.length - 1] || 0;
|
|
546
546
|
return createScopedElement("div", {
|
|
547
|
-
|
|
548
|
-
vkuiClass: classNames("View__panel", {
|
|
549
|
-
"View__panel--active": panelId === activePanel,
|
|
550
|
-
"View__panel--prev": panelId === prevPanel,
|
|
551
|
-
"View__panel--next": panelId === nextPanel,
|
|
552
|
-
"View__panel--swipe-back-prev": panelId === swipeBackPrevPanel,
|
|
553
|
-
"View__panel--swipe-back-next": panelId === swipeBackNextPanel,
|
|
554
|
-
"View__panel--swipe-back-success": swipeBackResult === SwipeBackResults.success,
|
|
555
|
-
"View__panel--swipe-back-failed": swipeBackResult === SwipeBackResults.fail
|
|
556
|
-
}),
|
|
547
|
+
vkuiClass: classNames("View__panel", panelId === activePanel && "View__panel--active", panelId === prevPanel && "View__panel--prev", panelId === nextPanel && "View__panel--next", panelId === swipeBackPrevPanel && "View__panel--swipe-back-prev", panelId === swipeBackNextPanel && "View__panel--swipe-back-next", swipeBackResult === SwipeBackResults.success && "View__panel--swipe-back-success", swipeBackResult === SwipeBackResults.fail && "View__panel--swipe-back-failed"),
|
|
557
548
|
onAnimationEnd: isTransitionTarget ? _this4.transitionEndHandler : undefined,
|
|
558
549
|
ref: function ref(el) {
|
|
559
550
|
return panelId !== undefined && (_this4.panelNodes[panelId] = el);
|