@vkontakte/vkui 5.5.4 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDefaultIosCloseItem.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +6 -5
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.js +5 -3
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cjs/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cjs/components/Avatar/helpers.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.d.ts +5 -1
- package/dist/cjs/components/Banner/Banner.js +4 -3
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/cjs/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cjs/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cjs/components/Button/Button.d.ts +2 -1
- package/dist/cjs/components/Button/Button.js +5 -3
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +2 -1
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/cjs/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cjs/components/Cell/useDraggable.js.map +1 -1
- package/dist/cjs/components/CellButton/CellButton.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/cjs/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cjs/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cjs/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/cjs/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cjs/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/cjs/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.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/DatePicker/DatePicker.js +8 -5
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/Div/Div.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cjs/components/Epic/Epic.d.ts +1 -0
- package/dist/cjs/components/Epic/Epic.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cjs/components/Footer/Footer.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cjs/components/Gallery/Gallery.js.map +1 -1
- package/dist/cjs/components/Gradient/Gradient.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +8 -8
- package/dist/cjs/components/Group/Group.js +1 -1
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js +56 -0
- package/dist/cjs/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/Image/Image.js.map +1 -1
- package/dist/cjs/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBase.js +4 -2
- package/dist/cjs/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cjs/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cjs/components/ImageBase/context.js.map +1 -1
- package/dist/cjs/components/ImageBase/helpers.js.map +1 -1
- package/dist/cjs/components/ImageBase/validators.js +3 -4
- package/dist/cjs/components/ImageBase/validators.js.map +1 -1
- package/dist/cjs/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLike.js +6 -4
- package/dist/cjs/components/InputLike/InputLike.js.map +1 -1
- package/dist/cjs/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/List/List.js.map +1 -1
- package/dist/cjs/components/List/ListContext.js.map +1 -1
- package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cjs/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cjs/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/cjs/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cjs/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +4 -2
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.js +2 -1
- package/dist/cjs/components/Pagination/Pagination.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cjs/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cjs/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cjs/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cjs/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/Popper/Popper.js.map +1 -1
- package/dist/cjs/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cjs/components/Progress/Progress.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cjs/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.js +2 -2
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cjs/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cjs/components/Root/Root.d.ts +1 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +2 -2
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/Separator/Separator.js.map +1 -1
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js +27 -0
- package/dist/cjs/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cjs/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cjs/components/Slider/helpers.js.map +1 -1
- package/dist/cjs/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cjs/components/Spinner/Spinner.js +19 -4
- package/dist/cjs/components/Spinner/Spinner.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cjs/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +2 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +4 -2
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cjs/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.js +1 -1
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Touch/TouchContext.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.d.ts +1 -0
- package/dist/cjs/components/View/View.js +16 -8
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/View/utils.js +2 -2
- package/dist/cjs/components/View/utils.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/appearance.js.map +1 -1
- package/dist/cjs/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cjs/helpers/math.js.map +1 -1
- package/dist/cjs/helpers/range.js.map +1 -1
- package/dist/cjs/hoc/withContext.js.map +1 -1
- package/dist/cjs/hoc/withInsets.js.map +1 -1
- package/dist/cjs/hoc/withPlatform.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/index.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useAppearance.js.map +1 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/cjs/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cjs/hooks/useBooleanState.js.map +1 -1
- package/dist/cjs/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cjs/hooks/useCalendar.js +6 -3
- package/dist/cjs/hooks/useCalendar.js.map +1 -1
- package/dist/cjs/hooks/useChipsInput.js +2 -1
- package/dist/cjs/hooks/useChipsInput.js.map +1 -1
- package/dist/cjs/hooks/useChipsSelect.js.map +1 -1
- package/dist/cjs/hooks/useDateInput.js +5 -3
- package/dist/cjs/hooks/useDateInput.js.map +1 -1
- package/dist/cjs/hooks/useEffectDev.js.map +1 -1
- package/dist/cjs/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cjs/hooks/useEventListener.js.map +1 -1
- package/dist/cjs/hooks/useExternRef.js.map +1 -1
- package/dist/cjs/hooks/useFocusVisible.js.map +1 -1
- package/dist/cjs/hooks/useFocusWithin.js.map +1 -1
- package/dist/cjs/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cjs/hooks/useId.js.map +1 -1
- package/dist/cjs/hooks/useInsets.js.map +1 -1
- package/dist/cjs/hooks/useIsClient.js.map +1 -1
- package/dist/cjs/hooks/useKeyboard.js +4 -4
- package/dist/cjs/hooks/useKeyboard.js.map +1 -1
- package/dist/cjs/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cjs/hooks/useMediaQueries.js.map +1 -1
- package/dist/cjs/hooks/useObjectMemo.js.map +1 -1
- package/dist/cjs/hooks/useOrientationChange.js +1 -1
- package/dist/cjs/hooks/useOrientationChange.js.map +1 -1
- package/dist/cjs/hooks/usePagination.js.map +1 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js +2 -1
- package/dist/cjs/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cjs/hooks/usePlatform.js.map +1 -1
- package/dist/cjs/hooks/usePrevious.js.map +1 -1
- package/dist/cjs/hooks/useTimeout.js +2 -1
- package/dist/cjs/hooks/useTimeout.js.map +1 -1
- package/dist/cjs/hooks/useTodayDate.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/SSR.js.map +1 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- package/dist/cjs/lib/adaptivity/constants.js.map +1 -1
- package/dist/cjs/lib/adaptivity/functions.js.map +1 -1
- package/dist/cjs/lib/animate.js.map +1 -1
- package/dist/cjs/lib/browser.js.map +1 -1
- package/dist/cjs/lib/calendar.js.map +1 -1
- package/dist/cjs/lib/callMultiple.js.map +1 -1
- package/dist/cjs/lib/date.js.map +1 -1
- package/dist/cjs/lib/dom.js.map +1 -1
- package/dist/cjs/lib/floating/adapters.js.map +1 -1
- package/dist/cjs/lib/floating/functions.js.map +1 -1
- package/dist/cjs/lib/floating/index.js.map +1 -1
- package/dist/cjs/lib/fx.js.map +1 -1
- package/dist/cjs/lib/getNavId.js.map +1 -1
- package/dist/cjs/lib/isRefObject.js.map +1 -1
- package/dist/cjs/lib/matchMedia.js.map +1 -1
- package/dist/cjs/lib/offset.js +6 -5
- package/dist/cjs/lib/offset.js.map +1 -1
- package/dist/cjs/lib/platform.js.map +1 -1
- package/dist/cjs/lib/polyfills.js.map +1 -1
- package/dist/cjs/lib/removeObjectKeys.js.map +1 -1
- package/dist/cjs/lib/select.js +2 -2
- package/dist/cjs/lib/select.js.map +1 -1
- package/dist/cjs/lib/styles.js.map +1 -1
- package/dist/cjs/lib/supportEvents.js.map +1 -1
- package/dist/cjs/lib/taptic.js.map +1 -1
- package/dist/cjs/lib/testing.js.map +1 -1
- package/dist/cjs/lib/tokensClassProvider.js.map +1 -1
- package/dist/cjs/lib/touch.js.map +1 -1
- package/dist/cjs/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/cjs/lib/warnOnce.js.map +1 -1
- package/dist/cjs/shared/breakpoints.js.map +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +4 -2
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +6 -5
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.js +5 -3
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/components/Avatar/helpers.js.map +1 -1
- package/dist/components/Banner/Banner.d.ts +5 -1
- package/dist/components/Banner/Banner.js +4 -3
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/BaseGallery/BaseGallery.js +15 -9
- package/dist/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/components/BaseGallery/helpers.js.map +1 -1
- package/dist/components/Button/Button.d.ts +2 -1
- package/dist/components/Button/Button.js +5 -3
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.js +2 -1
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +4 -2
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +6 -5
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +16 -8
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarTime/CalendarTime.js +4 -2
- package/dist/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/components/Cell/useDraggable.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/components/ChipsInputBase/ChipsInputBase.js +10 -4
- package/dist/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +20 -9
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomScrollView/CustomScrollView.js +2 -1
- package/dist/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +15 -8
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +4 -2
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.js +4 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +8 -5
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +11 -7
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/components/Epic/Epic.d.ts +1 -0
- package/dist/components/Epic/Epic.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +2 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusTrap/FocusTrap.js +4 -3
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +2 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Gallery/Gallery.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/components/Group/Group.d.ts +8 -8
- package/dist/components/Group/Group.js +1 -1
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js +45 -0
- package/dist/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/Image/Image.js.map +1 -1
- package/dist/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBase.js +4 -2
- package/dist/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/components/ImageBase/context.js.map +1 -1
- package/dist/components/ImageBase/helpers.js.map +1 -1
- package/dist/components/ImageBase/validators.js +3 -4
- package/dist/components/ImageBase/validators.js.map +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/InputLike/InputLike.js +6 -4
- package/dist/components/InputLike/InputLike.js.map +1 -1
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/List/List.js.map +1 -1
- package/dist/components/List/ListContext.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCardBase/ModalCardBase.js +9 -8
- package/dist/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageContext.js.map +1 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +21 -15
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +12 -6
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +4 -2
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/components/Pagination/Pagination.js +2 -1
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +2 -1
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Removable/Removable.js +2 -2
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/Root/Root.d.ts +1 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +2 -2
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js +16 -0
- package/dist/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/components/SimpleCell/SimpleCell.js +16 -5
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Slider/helpers.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Spinner/Spinner.d.ts +2 -1
- package/dist/components/Spinner/Spinner.js +19 -4
- package/dist/components/Spinner/Spinner.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +2 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +4 -2
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/components/Touch/Touch.js +1 -1
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Touch/TouchContext.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.d.ts +1 -0
- package/dist/components/View/View.js +16 -8
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/View/utils.js +2 -2
- package/dist/components/View/utils.js.map +1 -1
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +10 -9
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +3108 -2238
- package/dist/cssm/components/Accordion/Accordion.js +1 -1
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +2 -2
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetContext.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +3 -3
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js +3 -3
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.js.map +1 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js +2 -2
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityContext.js.map +1 -1
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js +3 -3
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +6 -6
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +3 -3
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.js +2 -2
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.js +5 -5
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js +1 -1
- package/dist/cssm/components/AppearanceProvider/AppearanceProvider.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +1 -1
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadgeWithPreset.js.map +1 -1
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js +2 -2
- package/dist/cssm/components/Avatar/AvatarBadge/icons.js.map +1 -1
- package/dist/cssm/components/Avatar/helpers.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.d.ts +5 -1
- package/dist/cssm/components/Banner/Banner.js +2 -2
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +6 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.js +3 -3
- package/dist/cssm/components/BaseGallery/BaseGallery.js.map +1 -1
- package/dist/cssm/components/BaseGallery/helpers.js +4 -4
- package/dist/cssm/components/BaseGallery/helpers.js.map +1 -1
- package/dist/cssm/components/Button/Button.d.ts +2 -1
- package/dist/cssm/components/Button/Button.js +4 -3
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +2 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +2 -2
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -2
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js +7 -7
- package/dist/cssm/components/CalendarHeader/CalendarHeader.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +2 -2
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js +1 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.js.map +1 -1
- package/dist/cssm/components/Card/Card.js +1 -1
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js +2 -2
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.js +2 -2
- package/dist/cssm/components/CardScroll/CardScroll.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +3 -3
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js +1 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -1
- package/dist/cssm/components/Cell/useDraggable.js +1 -1
- package/dist/cssm/components/Cell/useDraggable.js.map +1 -1
- package/dist/cssm/components/CellButton/CellButton.js +1 -1
- package/dist/cssm/components/CellButton/CellButton.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +3 -3
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Chip/Chip.js +2 -2
- package/dist/cssm/components/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js +1 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.d.ts +4 -0
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js +9 -5
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +13 -5
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js +2 -2
- package/dist/cssm/components/ConfigProvider/ConfigProvider.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderContext.js.map +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js +1 -1
- package/dist/cssm/components/ConfigProvider/ConfigProviderOverride.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js +3 -3
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js +3 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.js.map +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js +1 -1
- package/dist/cssm/components/CustomScrollView/useTrackerVisibility.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +4 -4
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectClearButton.js.map +1 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +2 -2
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +2 -2
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -3
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js +8 -8
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +3 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/Div/Div.js +1 -1
- package/dist/cssm/components/Div/Div.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +2 -2
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -1
- package/dist/cssm/components/Epic/Epic.d.ts +1 -0
- package/dist/cssm/components/Epic/Epic.js +1 -1
- package/dist/cssm/components/Epic/Epic.js.map +1 -1
- package/dist/cssm/components/Epic/ScrollSaver.js +2 -2
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js +1 -1
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +3 -3
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FocusTrap/FocusTrap.js +4 -4
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cssm/components/Footer/Footer.js +1 -1
- package/dist/cssm/components/Footer/Footer.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +2 -2
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +2 -2
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -2
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js +1 -1
- package/dist/cssm/components/FormStatus/FormStatus.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.js +1 -1
- package/dist/cssm/components/Gallery/Gallery.js.map +1 -1
- package/dist/cssm/components/Gradient/Gradient.js +1 -1
- package/dist/cssm/components/Gradient/Gradient.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js +2 -2
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.js.map +1 -1
- package/dist/cssm/components/Group/Group.d.ts +8 -8
- package/dist/cssm/components/Group/Group.js +4 -4
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +2 -0
- package/dist/cssm/components/Header/Header.js +2 -2
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js +3 -3
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +0 -5
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.d.ts +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js +35 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.js.map +1 -0
- package/dist/cssm/components/HorizontalCellShowMore/HorizontalCellShowMore.module.css +47 -0
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +2 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.js +2 -2
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/Image/Image.js +1 -1
- package/dist/cssm/components/Image/Image.js.map +1 -1
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js +2 -2
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js +1 -1
- package/dist/cssm/components/ImageBase/ImageBase.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js +2 -2
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.js.map +1 -1
- package/dist/cssm/components/ImageBase/context.js.map +1 -1
- package/dist/cssm/components/ImageBase/helpers.js.map +1 -1
- package/dist/cssm/components/ImageBase/validators.js +3 -4
- package/dist/cssm/components/ImageBase/validators.js.map +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js +1 -1
- package/dist/cssm/components/InfoRow/InfoRow.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +2 -2
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLike.js +1 -1
- package/dist/cssm/components/InputLike/InputLike.js.map +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js +1 -1
- package/dist/cssm/components/InputLike/InputLikeDivider.js.map +1 -1
- package/dist/cssm/components/Link/Link.js +1 -1
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/List/List.js +1 -1
- package/dist/cssm/components/List/List.js.map +1 -1
- package/dist/cssm/components/List/ListContext.js.map +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js +1 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +3 -3
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js +11 -10
- package/dist/cssm/components/ModalCardBase/ModalCardBase.js.map +1 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +4 -5
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js +1 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +4 -4
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +5 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +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 +12 -12
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +7 -7
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.d.ts +4 -2
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js +1 -1
- package/dist/cssm/components/ModalRoot/withModalRootContext.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js +1 -1
- package/dist/cssm/components/NavTransitionContext/NavTransitionContext.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.js +2 -2
- package/dist/cssm/components/Pagination/Pagination.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js +1 -1
- package/dist/cssm/components/PanelHeader/LegacyPanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.js +9 -9
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js +2 -2
- package/dist/cssm/components/PanelHeaderBack/PanelHeaderBack.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +2 -2
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js +1 -1
- package/dist/cssm/components/PanelHeaderClose/PanelHeaderClose.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js +2 -2
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js +1 -1
- package/dist/cssm/components/PanelHeaderEdit/PanelHeaderEdit.js.map +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js +1 -1
- package/dist/cssm/components/PanelHeaderSubmit/PanelHeaderSubmit.js.map +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js +1 -1
- package/dist/cssm/components/PanelSpinner/PanelSpinner.js.map +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js +1 -1
- package/dist/cssm/components/Placeholder/Placeholder.js.map +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js +5 -5
- package/dist/cssm/components/PopoutRoot/PopoutRoot.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +2 -2
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js +3 -3
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +3 -3
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js +1 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.js.map +1 -1
- package/dist/cssm/components/Progress/Progress.js +1 -1
- package/dist/cssm/components/Progress/Progress.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +6 -6
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefreshSpinner.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.js +2 -2
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js +1 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/cssm/components/RangeSlider/RangeSlider.js +2 -2
- package/dist/cssm/components/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.js +4 -4
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.js +2 -2
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js +1 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.js.map +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js +1 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.js.map +1 -1
- package/dist/cssm/components/Root/Root.d.ts +1 -0
- package/dist/cssm/components/Root/Root.js +5 -5
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js +3 -3
- package/dist/cssm/components/ScrollArrow/ScrollArrow.js.map +1 -1
- package/dist/cssm/components/Search/Search.js +3 -3
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +3 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/Select/Select.js +3 -3
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.js +2 -2
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/Separator/Separator.js +1 -1
- package/dist/cssm/components/Separator/Separator.js.map +1 -1
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.d.ts +5 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js +12 -0
- package/dist/cssm/components/SimpleCell/Chevron/Chevron.js.map +1 -0
- package/dist/cssm/components/SimpleCell/SimpleCell.d.ts +6 -2
- package/dist/cssm/components/SimpleCell/SimpleCell.js +15 -5
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +5 -6
- package/dist/cssm/components/Slider/Slider.js +7 -7
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js +2 -2
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.js.map +1 -1
- package/dist/cssm/components/Slider/helpers.js.map +1 -1
- package/dist/cssm/components/Snackbar/Snackbar.js +4 -4
- package/dist/cssm/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.js +1 -1
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.d.ts +2 -1
- package/dist/cssm/components/Spinner/Spinner.js +19 -5
- package/dist/cssm/components/Spinner/Spinner.js.map +1 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +0 -19
- package/dist/cssm/components/SplitCol/SplitCol.js +3 -3
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitColContext.js.map +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js +1 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +3 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.js +3 -3
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +2 -2
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/Tabs/Tabs.js +2 -2
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +3 -3
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js +10 -10
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +2 -0
- package/dist/cssm/components/TextTooltip/TextTooltip.js +1 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +2 -2
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js +5 -5
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js +1 -1
- package/dist/cssm/components/Tooltip/TooltipContainer.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +4 -4
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Touch/TouchContext.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -2
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -2
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +2 -2
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +1 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +1 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/View/View.d.ts +1 -0
- package/dist/cssm/components/View/View.js +3 -3
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +2 -2
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/View/utils.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js +1 -1
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/helpers/appearance.js +1 -1
- package/dist/cssm/helpers/appearance.js.map +1 -1
- package/dist/cssm/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/cssm/helpers/math.js.map +1 -1
- package/dist/cssm/helpers/range.js.map +1 -1
- package/dist/cssm/hoc/withContext.js.map +1 -1
- package/dist/cssm/hoc/withPlatform.js +1 -1
- package/dist/cssm/hoc/withPlatform.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js +1 -1
- package/dist/cssm/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js +1 -1
- package/dist/cssm/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useAppearance.js +1 -1
- package/dist/cssm/hooks/useAppearance.js.map +1 -1
- package/dist/cssm/hooks/useAutoDetectAppearance.js +2 -2
- package/dist/cssm/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/cssm/hooks/useBooleanState.js.map +1 -1
- package/dist/cssm/hooks/useBridgeAdaptivity.js +2 -2
- package/dist/cssm/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/cssm/hooks/useCalendar.js +1 -1
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useChipsInput.js +1 -1
- package/dist/cssm/hooks/useChipsInput.js.map +1 -1
- package/dist/cssm/hooks/useChipsSelect.js +2 -2
- package/dist/cssm/hooks/useChipsSelect.js.map +1 -1
- package/dist/cssm/hooks/useDateInput.js +4 -4
- package/dist/cssm/hooks/useDateInput.js.map +1 -1
- package/dist/cssm/hooks/useEffectDev.js.map +1 -1
- package/dist/cssm/hooks/useEnsuredControl.js +2 -2
- package/dist/cssm/hooks/useEnsuredControl.js.map +1 -1
- package/dist/cssm/hooks/useEventListener.js.map +1 -1
- package/dist/cssm/hooks/useExternRef.js.map +1 -1
- package/dist/cssm/hooks/useFocusVisible.js +1 -1
- package/dist/cssm/hooks/useFocusVisible.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.js +1 -1
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -1
- package/dist/cssm/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/cssm/hooks/useId.js.map +1 -1
- package/dist/cssm/hooks/useInsets.js +2 -2
- package/dist/cssm/hooks/useInsets.js.map +1 -1
- package/dist/cssm/hooks/useIsClient.js.map +1 -1
- package/dist/cssm/hooks/useKeyboard.js +2 -2
- package/dist/cssm/hooks/useKeyboard.js.map +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js +1 -1
- package/dist/cssm/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/cssm/hooks/useMediaQueries.js +1 -1
- package/dist/cssm/hooks/useMediaQueries.js.map +1 -1
- package/dist/cssm/hooks/useObjectMemo.js.map +1 -1
- package/dist/cssm/hooks/useOrientationChange.js +1 -1
- package/dist/cssm/hooks/useOrientationChange.js.map +1 -1
- package/dist/cssm/hooks/usePagination.js +1 -1
- package/dist/cssm/hooks/usePagination.js.map +1 -1
- package/dist/cssm/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/cssm/hooks/usePlatform.js +1 -1
- package/dist/cssm/hooks/usePlatform.js.map +1 -1
- package/dist/cssm/hooks/usePrevious.js.map +1 -1
- package/dist/cssm/hooks/useTimeout.js +1 -1
- package/dist/cssm/hooks/useTimeout.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +1 -1
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.d.ts +3 -1
- package/dist/cssm/index.js +1 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/SSR.js +1 -1
- package/dist/cssm/lib/SSR.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +2 -2
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/adaptivity/constants.js.map +1 -1
- package/dist/cssm/lib/adaptivity/functions.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/browser.js +1 -1
- package/dist/cssm/lib/browser.js.map +1 -1
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/callMultiple.js.map +1 -1
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/dom.js.map +1 -1
- package/dist/cssm/lib/floating/adapters.js +1 -1
- package/dist/cssm/lib/floating/adapters.js.map +1 -1
- package/dist/cssm/lib/floating/functions.js.map +1 -1
- package/dist/cssm/lib/fx.js.map +1 -1
- package/dist/cssm/lib/getNavId.js.map +1 -1
- package/dist/cssm/lib/isRefObject.js.map +1 -1
- package/dist/cssm/lib/matchMedia.js.map +1 -1
- package/dist/cssm/lib/platform.js.map +1 -1
- package/dist/cssm/lib/removeObjectKeys.js.map +1 -1
- package/dist/cssm/lib/select.js.map +1 -1
- package/dist/cssm/lib/styles.js.map +1 -1
- package/dist/cssm/lib/supportEvents.js.map +1 -1
- package/dist/cssm/lib/taptic.js.map +1 -1
- package/dist/cssm/lib/testing.js.map +1 -1
- package/dist/cssm/lib/tokensClassProvider.js +1 -1
- package/dist/cssm/lib/tokensClassProvider.js.map +1 -1
- package/dist/cssm/lib/touch.js.map +1 -1
- package/dist/cssm/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/lib/warnOnce.js.map +1 -1
- package/dist/cssm/shared/breakpoints.js.map +1 -1
- package/dist/cssm/styles/constants.css +3 -0
- package/dist/cssm/styles/customMedias.generated.css +23 -0
- package/dist/cssm/styles/themes.css +3 -3
- package/dist/helpers/appearance.js.map +1 -1
- package/dist/helpers/generateVKUITokensClassName.js.map +1 -1
- package/dist/helpers/math.js.map +1 -1
- package/dist/helpers/range.js.map +1 -1
- package/dist/hoc/withContext.js.map +1 -1
- package/dist/hooks/useAdaptivity.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/helpers.js.map +1 -1
- package/dist/hooks/useAdaptivityConditionalRender/useAdaptivityConditionalRender.js.map +1 -1
- package/dist/hooks/useAdaptivityHasHover.js.map +1 -1
- package/dist/hooks/useAdaptivityHasPointer.js.map +1 -1
- package/dist/hooks/useAdaptivityWithJSMediaQueries.js.map +1 -1
- package/dist/hooks/useAutoDetectAppearance.js +2 -1
- package/dist/hooks/useAutoDetectAppearance.js.map +1 -1
- package/dist/hooks/useBooleanState.js.map +1 -1
- package/dist/hooks/useBridgeAdaptivity.js.map +1 -1
- package/dist/hooks/useCalendar.js +6 -3
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useChipsInput.js +2 -1
- package/dist/hooks/useChipsInput.js.map +1 -1
- package/dist/hooks/useChipsSelect.js.map +1 -1
- package/dist/hooks/useDateInput.js +5 -3
- package/dist/hooks/useDateInput.js.map +1 -1
- package/dist/hooks/useEffectDev.js.map +1 -1
- package/dist/hooks/useEnsuredControl.js.map +1 -1
- package/dist/hooks/useEventListener.js.map +1 -1
- package/dist/hooks/useExternRef.js.map +1 -1
- package/dist/hooks/useFocusVisible.js.map +1 -1
- package/dist/hooks/useFocusWithin.js.map +1 -1
- package/dist/hooks/useGlobalEventListener.js.map +1 -1
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useInsets.js.map +1 -1
- package/dist/hooks/useIsClient.js.map +1 -1
- package/dist/hooks/useKeyboard.js +4 -4
- package/dist/hooks/useKeyboard.js.map +1 -1
- package/dist/hooks/useKeyboardInputTracker.js.map +1 -1
- package/dist/hooks/useMediaQueries.js.map +1 -1
- package/dist/hooks/useObjectMemo.js.map +1 -1
- package/dist/hooks/useOrientationChange.js +1 -1
- package/dist/hooks/useOrientationChange.js.map +1 -1
- package/dist/hooks/usePagination.js.map +1 -1
- package/dist/hooks/usePatchChildrenRef.js +2 -1
- package/dist/hooks/usePatchChildrenRef.js.map +1 -1
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useTimeout.js +2 -1
- package/dist/hooks/useTimeout.js.map +1 -1
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js +4 -2
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/SSR.js.map +1 -1
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/adaptivity/constants.js.map +1 -1
- package/dist/lib/adaptivity/functions.js.map +1 -1
- package/dist/lib/animate.js.map +1 -1
- package/dist/lib/browser.js.map +1 -1
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/callMultiple.js.map +1 -1
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/dom.js.map +1 -1
- package/dist/lib/floating/adapters.js.map +1 -1
- package/dist/lib/floating/functions.js.map +1 -1
- package/dist/lib/fx.js.map +1 -1
- package/dist/lib/getNavId.js.map +1 -1
- package/dist/lib/isRefObject.js.map +1 -1
- package/dist/lib/matchMedia.js.map +1 -1
- package/dist/lib/offset.js +6 -5
- package/dist/lib/offset.js.map +1 -1
- package/dist/lib/platform.js.map +1 -1
- package/dist/lib/polyfills.js.map +1 -1
- package/dist/lib/removeObjectKeys.js.map +1 -1
- package/dist/lib/select.js +2 -2
- package/dist/lib/select.js.map +1 -1
- package/dist/lib/styles.js.map +1 -1
- package/dist/lib/supportEvents.js.map +1 -1
- package/dist/lib/taptic.js.map +1 -1
- package/dist/lib/testing.js.map +1 -1
- package/dist/lib/tokensClassProvider.js.map +1 -1
- package/dist/lib/touch.js.map +1 -1
- package/dist/lib/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/lib/warnOnce.js.map +1 -1
- package/dist/shared/breakpoints.js.map +1 -1
- package/dist/vkui.css +11 -10
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +3108 -2238
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useId } from '../../hooks/useId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './UsersStack.module.css';\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: 's' | 'm' | 'l';\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n * TODO [>=6]: удалить\n * @deprecated\n */\n layout?: 'vertical' | 'horizontal';\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n /**\n * Число, которое будет указано в счетчике.\n * По умолчанию высчитывается по формуле `photos.length - visibleCount`.\n * Если число больше 99, то счетчик скроется.\n */\n count?: number;\n /**\n * Определяет положение элементов\n * Режим `column` рекомендуется использовать с размером `m`\n * @since 5.3.0\n */\n direction?: 'row' | 'row-reverse' | 'column';\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: 'circle' | 'right' | 'left';\n}\n\ntype PhotoSizeType = 16 | 24 | 32;\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\nconst photoSizes: Record<NonNullable<UsersStackProps['size']>, PhotoSizeType> = {\n s: 16,\n m: 24,\n l: 32,\n};\n\nconst warn = warnOnce('UsersStack');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n count = Math.max(0, photos.length - visibleCount),\n size = 'm',\n layout,\n children,\n className,\n direction: directionProp = 'row',\n ...restProps\n}: UsersStackProps) => {\n const cmpId = useId();\n\n const canShowOthers = count > 0 && count < 100 && size !== 's';\n const CounterTypography = size === 'l' ? Footnote : Caption;\n\n const photoSize = photoSizes[size];\n const directionClip = canShowOthers ? 'right' : 'left';\n\n const photosElements = photos.slice(0, visibleCount).map((photo, i) => {\n const direction = i === 0 && !canShowOthers ? 'circle' : directionClip;\n\n const id = `UsersStackDefs${cmpId}${i}`;\n const hrefID = `#${id}`;\n const maskID = `UsersStackMask${cmpId}${i}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['UsersStack__photo']}\n key={i}\n aria-hidden\n >\n <defs>\n <PathElement id={id} direction={direction} photoSize={photoSize} />\n </defs>\n <clipPath id={maskID}>\n <use href={hrefID} />\n </clipPath>\n <g clipPath={`url(#${maskID})`}>\n <use href={hrefID} className={styles['UsersStack__fill']} />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={hrefID} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n });\n\n const othersElement = canShowOthers ? (\n <CounterTypography\n caps\n weight=\"1\"\n className={classNames(styles['UsersStack__photo'], styles['UsersStack__photo--others'])}\n >\n +{count}\n </CounterTypography>\n ) : null;\n\n if (process.env.NODE_ENV === 'development' && layout) {\n // TODO [>=6]: Удалить layout\n warn('Свойство \"layout\" будет удалено в v6. Используйте свойство \"direction\"');\n }\n\n const direction = (layout && (layout === 'vertical' ? 'column' : 'row')) || directionProp;\n\n return (\n <div\n {...restProps}\n className={classNames(\n 'vkuiInternalUsersStack',\n styles['UsersStack'],\n {\n s: styles['UsersStack--size-s'],\n m: styles['UsersStack--size-m'],\n l: styles['UsersStack--size-l'],\n }[size],\n {\n 'row': styles['UsersStack--direction-row'],\n 'row-reverse': styles['UsersStack--direction-row-reverse'],\n 'column': styles['UsersStack--direction-column'],\n }[direction],\n className,\n )}\n >\n {(photosElements.length > 0 || othersElement) && (\n <div className={styles['UsersStack__photos']} aria-hidden>\n {photosElements}\n {othersElement}\n </div>\n )}\n {hasReactNode(children) && (\n <Footnote className={styles['UsersStack__text']}>{children}</Footnote>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useId","warnOnce","Caption","Footnote","PathElement","photoSize","direction","props","radius","circle","cx","cy","r","path","d","photoSizes","s","m","l","warn","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","className","directionProp","restProps","cmpId","canShowOthers","CounterTypography","directionClip","photosElements","slice","map","photo","i","id","hrefID","maskID","svg","xmlns","key","aria-hidden","defs","clipPath","use","href","g","image","width","height","fill","stroke","othersElement","caps","weight","process","env","NODE_ENV","div"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,KAAK,QAAQ,oBAAoB;AAC1C,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,OAAO,QAAQ,gCAAgC;AACxD,SAASC,QAAQ,QAAQ,kCAAkC;AA4C3D,SAASC,YAAY;QAAEC,YAAF,OAAEA,WAAWC,YAAb,OAAaA,WAAcC,mCAA3B;QAAEF;QAAWC;;IAChC,OAAQA;QACN,KAAK;YACH,IAAME,SAASH,YAAY;YAE3B,qBAAO,oBAACI;gBAAOC,IAAIF;gBAAQG,IAAIH;gBAAQI,GAAGJ;eAAYD;QAExD,KAAK;YACH,OAAQF;gBACN,KAAK;oBACH,qBACE,oBAACQ;wBACCC,GAAE;uBACEP;gBAIV;oBACE,qBACE,oBAACM;wBACCC,GAAE;uBACEP;YAGZ;QAEF;YACE,OAAQF;gBACN,KAAK;oBACH,qBACE,oBAACQ;wBACCC,GAAE;uBACEP;gBAGV,KAAK;oBACH,qBACE,oBAACM;wBACCC,GAAE;uBACEP;gBAIV;oBACE,qBACE,oBAACM;wBACCC,GAAE;uBACEP;YAGZ;IACJ;AACF;AAEA,IAAMQ,aAA0E;IAC9EC,GAAG;IACHC,GAAG;IACHC,GAAG;AACL;AAEA,IAAMC,OAAOlB,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMmB,aAAa;+BACxBC,QAAAA,oCAAS,EAAE,+CACXC,cAAAA,gDAAe,+CACfC,OAAAA,kCAAQC,KAAKC,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/UsersStack/UsersStack.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useId } from '../../hooks/useId';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { Caption } from '../Typography/Caption/Caption';\nimport { Footnote } from '../Typography/Footnote/Footnote';\nimport styles from './UsersStack.module.css';\n\nexport interface UsersStackProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * Массив ссылок на фотографии\n */\n photos?: string[];\n /**\n * Размер аватарок\n */\n size?: 's' | 'm' | 'l';\n /**\n * Вертикальный режим рекомендуется использовать с размером `m`\n * TODO [>=6]: удалить\n * @deprecated\n */\n layout?: 'vertical' | 'horizontal';\n /**\n * Количество аватарок, которые будут показаны.\n * Если в массиве `photos` больше элементов и используется размер `m`, то будет показано количество остальных элементов\n */\n visibleCount?: number;\n /**\n * Число, которое будет указано в счетчике.\n * По умолчанию высчитывается по формуле `photos.length - visibleCount`.\n * Если число больше 99, то счетчик скроется.\n */\n count?: number;\n /**\n * Определяет положение элементов\n * Режим `column` рекомендуется использовать с размером `m`\n * @since 5.3.0\n */\n direction?: 'row' | 'row-reverse' | 'column';\n}\n\ninterface PathElementProps extends React.SVGAttributes<SVGElement> {\n photoSize: number;\n direction: 'circle' | 'right' | 'left';\n}\n\ntype PhotoSizeType = 16 | 24 | 32;\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\nconst photoSizes: Record<NonNullable<UsersStackProps['size']>, PhotoSizeType> = {\n s: 16,\n m: 24,\n l: 32,\n};\n\nconst warn = warnOnce('UsersStack');\n\n/**\n * @see https://vkcom.github.io/VKUI/#/UsersStack\n */\nexport const UsersStack = ({\n photos = [],\n visibleCount = 3,\n count = Math.max(0, photos.length - visibleCount),\n size = 'm',\n layout,\n children,\n className,\n direction: directionProp = 'row',\n ...restProps\n}: UsersStackProps) => {\n const cmpId = useId();\n\n const canShowOthers = count > 0 && count < 100 && size !== 's';\n const CounterTypography = size === 'l' ? Footnote : Caption;\n\n const photoSize = photoSizes[size];\n const directionClip = canShowOthers ? 'right' : 'left';\n\n const photosElements = photos.slice(0, visibleCount).map((photo, i) => {\n const direction = i === 0 && !canShowOthers ? 'circle' : directionClip;\n\n const id = `UsersStackDefs${cmpId}${i}`;\n const hrefID = `#${id}`;\n const maskID = `UsersStackMask${cmpId}${i}`;\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className={styles['UsersStack__photo']}\n key={i}\n aria-hidden\n >\n <defs>\n <PathElement id={id} direction={direction} photoSize={photoSize} />\n </defs>\n <clipPath id={maskID}>\n <use href={hrefID} />\n </clipPath>\n <g clipPath={`url(#${maskID})`}>\n <use href={hrefID} className={styles['UsersStack__fill']} />\n <image href={photo} width={photoSize} height={photoSize} />\n <use href={hrefID} fill=\"none\" stroke=\"rgba(0, 0, 0, 0.08)\" />\n </g>\n </svg>\n );\n });\n\n const othersElement = canShowOthers ? (\n <CounterTypography\n caps\n weight=\"1\"\n className={classNames(styles['UsersStack__photo'], styles['UsersStack__photo--others'])}\n >\n +{count}\n </CounterTypography>\n ) : null;\n\n if (process.env.NODE_ENV === 'development' && layout) {\n // TODO [>=6]: Удалить layout\n warn('Свойство \"layout\" будет удалено в v6. Используйте свойство \"direction\"');\n }\n\n const direction = (layout && (layout === 'vertical' ? 'column' : 'row')) || directionProp;\n\n return (\n <div\n {...restProps}\n className={classNames(\n 'vkuiInternalUsersStack',\n styles['UsersStack'],\n {\n s: styles['UsersStack--size-s'],\n m: styles['UsersStack--size-m'],\n l: styles['UsersStack--size-l'],\n }[size],\n {\n 'row': styles['UsersStack--direction-row'],\n 'row-reverse': styles['UsersStack--direction-row-reverse'],\n 'column': styles['UsersStack--direction-column'],\n }[direction],\n className,\n )}\n >\n {(photosElements.length > 0 || othersElement) && (\n <div className={styles['UsersStack__photos']} aria-hidden>\n {photosElements}\n {othersElement}\n </div>\n )}\n {hasReactNode(children) && (\n <Footnote className={styles['UsersStack__text']}>{children}</Footnote>\n )}\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useId","warnOnce","Caption","Footnote","PathElement","photoSize","direction","props","radius","circle","cx","cy","r","path","d","photoSizes","s","m","l","warn","UsersStack","photos","visibleCount","count","Math","max","length","size","layout","children","className","directionProp","restProps","cmpId","canShowOthers","CounterTypography","directionClip","photosElements","slice","map","photo","i","id","hrefID","maskID","svg","xmlns","key","aria-hidden","defs","clipPath","use","href","g","image","width","height","fill","stroke","othersElement","caps","weight","process","env","NODE_ENV","div"],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export interface ViewProps extends React.HTMLAttributes<HTMLElement>, NavIdProps
|
|
|
33
33
|
*/
|
|
34
34
|
onSwipeBackCancel?(): void;
|
|
35
35
|
history?: string[];
|
|
36
|
+
children: React.ReactElement | Iterable<React.ReactElement>;
|
|
36
37
|
}
|
|
37
38
|
export interface ViewState {
|
|
38
39
|
animated: boolean;
|
|
@@ -42,6 +42,7 @@ var warn = warnOnce("View");
|
|
|
42
42
|
"children",
|
|
43
43
|
"className"
|
|
44
44
|
]);
|
|
45
|
+
var _configProvider, _splitCol;
|
|
45
46
|
var scrolls = React.useRef(scrollsCache[getNavId({
|
|
46
47
|
nav: nav,
|
|
47
48
|
id: restProps.id
|
|
@@ -90,7 +91,7 @@ var warn = warnOnce("View");
|
|
|
90
91
|
var panelId = getNavId(panel.props, warn);
|
|
91
92
|
return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
|
|
92
93
|
});
|
|
93
|
-
var disableAnimation = (configProvider === null ||
|
|
94
|
+
var disableAnimation = ((_configProvider = configProvider) === null || _configProvider === void 0 ? void 0 : _configProvider.transitionMotionEnabled) === false || !((_splitCol = splitCol) === null || _splitCol === void 0 ? void 0 : _splitCol.animate) || platform === Platform.VKCOM;
|
|
94
95
|
var pickPanel = function(id) {
|
|
95
96
|
if (id === null) {
|
|
96
97
|
return null;
|
|
@@ -110,7 +111,8 @@ var warn = warnOnce("View");
|
|
|
110
111
|
setAnimated(false);
|
|
111
112
|
setIsBack(undefined);
|
|
112
113
|
afterTransition.current = function() {
|
|
113
|
-
|
|
114
|
+
var _scroll;
|
|
115
|
+
(_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.scrollTo(0, isBackTransition ? scrolls.current[activePanelProp] : 0);
|
|
114
116
|
onTransition && onTransition({
|
|
115
117
|
isBack: isBackTransition,
|
|
116
118
|
from: prevPanel,
|
|
@@ -161,8 +163,9 @@ var warn = warnOnce("View");
|
|
|
161
163
|
onSwipeBackCancelProp
|
|
162
164
|
]);
|
|
163
165
|
var swipingBackTransitionEndHandler = React.useCallback(function(e) {
|
|
166
|
+
var _e, _e1;
|
|
164
167
|
// indexOf because of vendor prefixes in old browsers
|
|
165
|
-
if (!e || (e === null ||
|
|
168
|
+
if (!e || ((_e = e) === null || _e === void 0 ? void 0 : _e.propertyName.includes("transform")) && ((_e1 = e) === null || _e1 === void 0 ? void 0 : _e1.target) === pickPanel(swipeBackNextPanel)) {
|
|
166
169
|
switch(swipeBackResult){
|
|
167
170
|
case SwipeBackResults.fail:
|
|
168
171
|
onSwipeBackCancel();
|
|
@@ -178,10 +181,11 @@ var warn = warnOnce("View");
|
|
|
178
181
|
swipeBackResult
|
|
179
182
|
]);
|
|
180
183
|
var onMoveX = function(event) {
|
|
184
|
+
var _configProvider;
|
|
181
185
|
if (platform !== Platform.IOS || swipeBackPrevented || swipeBackExcluded(event) || disableAnimation) {
|
|
182
186
|
return;
|
|
183
187
|
}
|
|
184
|
-
if (!(configProvider === null ||
|
|
188
|
+
if (!((_configProvider = configProvider) === null || _configProvider === void 0 ? void 0 : _configProvider.isWebView)) {
|
|
185
189
|
if ((event.startX <= SWIPE_BACK_AREA || event.startX >= window.innerWidth - SWIPE_BACK_AREA) && !browserSwipe) {
|
|
186
190
|
setBrowserSwipe(true);
|
|
187
191
|
}
|
|
@@ -200,9 +204,10 @@ var warn = warnOnce("View");
|
|
|
200
204
|
}
|
|
201
205
|
}
|
|
202
206
|
if (activePanel !== null) {
|
|
207
|
+
var _scroll;
|
|
203
208
|
// Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.
|
|
204
209
|
blurActiveElement(document);
|
|
205
|
-
scrolls.current[activePanel] = scroll === null ||
|
|
210
|
+
scrolls.current[activePanel] = (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.getScroll().y;
|
|
206
211
|
}
|
|
207
212
|
setSwipingBack(true);
|
|
208
213
|
setSwipeBackStartX(event.startX);
|
|
@@ -282,13 +287,14 @@ var warn = warnOnce("View");
|
|
|
282
287
|
React.useEffect(function() {
|
|
283
288
|
// Нужен переход
|
|
284
289
|
if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
|
|
290
|
+
var _scroll;
|
|
285
291
|
var firstLayerId = React.Children.toArray(children).map(function(panel) {
|
|
286
292
|
return getNavId(panel.props, warn);
|
|
287
293
|
}).find(function(id) {
|
|
288
294
|
return id === prevActivePanel || id === activePanelProp;
|
|
289
295
|
});
|
|
290
296
|
var isBackTransition = firstLayerId === activePanelProp;
|
|
291
|
-
scrolls.current[prevActivePanel] = scroll === null ||
|
|
297
|
+
scrolls.current[prevActivePanel] = (_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.getScroll().y;
|
|
292
298
|
if (disableAnimation) {
|
|
293
299
|
flushTransition(prevActivePanel, isBackTransition);
|
|
294
300
|
} else {
|
|
@@ -327,7 +333,8 @@ var warn = warnOnce("View");
|
|
|
327
333
|
]);
|
|
328
334
|
afterTransition.current = function() {
|
|
329
335
|
if (nextPanel !== null) {
|
|
330
|
-
|
|
336
|
+
var _scroll;
|
|
337
|
+
(_scroll = scroll) === null || _scroll === void 0 ? void 0 : _scroll.scrollTo(0, scrolls.current[nextPanel]);
|
|
331
338
|
}
|
|
332
339
|
prevOnTransition && prevOnTransition({
|
|
333
340
|
isBack: true,
|
|
@@ -342,7 +349,8 @@ var warn = warnOnce("View");
|
|
|
342
349
|
}
|
|
343
350
|
// Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)
|
|
344
351
|
if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {
|
|
345
|
-
|
|
352
|
+
var _scroll1;
|
|
353
|
+
(_scroll1 = scroll) === null || _scroll1 === void 0 ? void 0 : _scroll1.scrollTo(0, scrolls.current[activePanel]);
|
|
346
354
|
}
|
|
347
355
|
// Закончился Safari свайп
|
|
348
356
|
if (prevActivePanel !== activePanelProp && browserSwipe) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst SWIPE_BACK_AREA = 70;\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 extends React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\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 activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\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>(activePanelProp);\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 [swipeBackPrevented, setSwipeBackPrevented] = 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<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = 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 = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (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\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\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(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\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 styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['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 === 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') && 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 = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(true);\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): 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 = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\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 // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\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 (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\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 (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\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 className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","Platform","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavTransitionProvider","useSplitCol","Touch","swipeBackExcluded","SWIPE_BACK_AREA","SwipeBackResults","fail","success","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","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","swipeBackPrevented","setSwipeBackPrevented","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","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","isWebView","startX","innerWidth","length","payload","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","Component","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,UAAU,QAAQ,yBAAyB;AACpD,SAASC,uBAAuB,QAAQ,sCAAsC;AAC9E,SAASC,iBAAiB,EAAEC,SAAS,EAAEC,MAAM,QAAQ,gBAAgB;AACrE,SAASC,QAAQ,QAAoB,qBAAqB;AAC1D,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,yBAAyB,QAAQ,sCAAsC;AAChF,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,iBAAiB,QAAQ,0CAA0C;AAC5E,SAASC,qBAAqB,QAAQ,+CAA+C;AACrF,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,KAAK,QAAoB,iBAAiB;AACnD,SAASC,iBAAiB,QAAQ,UAAU;AAG5C,IAAMC,kBAAkB;IAExB;UAAKC,gBAAgB;IAAhBA,iBAAAA,iBACHC,UAAO,KAAPA;IADGD,iBAAAA,iBAEHE,aAAAA,KAAAA;GAFGF,qBAAAA;AAaL,OAAO,IAAIG,eAA6B,CAAC,EAAE;AAyC3C,IAAMC,OAAOZ,SAAS;AAEtB;;CAEC,GACD,OAAO,IAAMa,OAAO;QAClBC,AAAaC,yBAAbD,aACAE,iBAAAA,SACAC,aAAAA,KACAC,sBAAAA,cACAC,qBAAAA,aACAC,0BAAAA,kBACAC,AAAmBC,+BAAnBD,mBACAE,kBAAAA,UACAC,mBAAAA,WACGC;QATHX;QACAE;QACAC;QACAC;QACAC;QACAC;QACAC;QACAE;QACAC;;IAGA,IAAME,UAAUxC,MAAMyC,OAAOhB,YAAY,CAACf,SAAS;QAAEqB,KAAAA;QAAKW,IAAIH,UAAUG;IAAG,GAAa,IAAI,CAAC;IAC7F,IAAMC,kBAAkB3C,MAAMyC,OAAOvC;IAErCF,MAAM4C,UAAU;eAAM;YACpB,IAAMF,KAAKhC,SAAS;gBAAEqB,KAAAA;gBAAKW,IAAIH,UAAUG;YAAG;YAC5C,IAAIA,IAAI;gBACNjB,YAAY,CAACiB,GAAG,GAAGF,QAAQK;YAC7B;QACF;;IAEA,IAAMC,aAAa9C,MAAMyC,OAAgD,CAAC;IAE1E,IAA6BhC,UAAAA,UAArBsC,SAAqBtC,QAArBsC,QAAQC,WAAavC,QAAbuC;IAChB,IAAMC,SAASlC;IACf,IAAMmC,iBAAiBlC;IACvB,IAAMmC,WAAWjC;IACjB,IAAMkC,WAAWjD;IAEjB,IAAgCH,mCAAAA,MAAMqD,SAAS,YAAxCC,WAAyBtD,oBAAfuD,cAAevD;IAEhC,IAA0CA,oCAAAA,MAAMqD,SAAS;QAACxB;KAAgB,OAAnE2B,gBAAmCxD,qBAApByD,mBAAoBzD;IAC1C,IAAsCA,oCAAAA,MAAMqD,SAAwBxB,sBAA7DD,cAA+B5B,qBAAlB0D,iBAAkB1D;IACtC,IAA4BA,oCAAAA,MAAMqD,SAA8BM,gBAAzDC,SAAqB5D,qBAAb6D,YAAa7D;IAC5B,IAAkCA,oCAAAA,MAAMqD,SAAwB,WAAzDS,YAA2B9D,qBAAhB+D,eAAgB/D;IAClC,IAAkCA,oCAAAA,MAAMqD,SAAwB,WAAzDW,YAA2BhE,qBAAhBiE,eAAgBjE;IAElC,IAAsCA,oCAAAA,MAAMqD,SAAkB,YAAvDa,cAA+BlE,qBAAlBmE,iBAAkBnE;IACtC,IAAoDA,oCAAAA,MAAMqD,SAAkB,YAArEe,qBAA6CpE,qBAAzBqE,wBAAyBrE;IACpD,IAA8CA,oCAAAA,MAAMqD,SAAiB,QAA9DiB,kBAAuCtE,qBAAtBuE,qBAAsBvE;IAC9C,IAA4CA,oCAAAA,MAAMqD,SAAiB,QAA5DmB,iBAAqCxE,qBAArByE,oBAAqBzE;IAC5C,IAAoDA,qCAAAA,MAAMqD,SAAwB,WAA3EqB,qBAA6C1E,sBAAzB2E,wBAAyB3E;IACpD,IAAoDA,qCAAAA,MAAMqD,SAAwB,WAA3EuB,qBAA6C5E,sBAAzB6E,wBAAyB7E;IACpD,IAA8CA,qCAAAA,MAAMqD,SAAkC,WAA/EyB,kBAAuC9E,sBAAtB+E,qBAAsB/E;IAE9C,IAAwCA,qCAAAA,MAAMqD,SAAS,YAAhD2B,eAAiChF,sBAAnBiF,kBAAmBjF;IAExC,IAAMkF,kBAAkB9E,YAAYyB;IACpC,IAAMsD,kBAAkB/E,YAAY8D;IACpC,IAAMkB,mBAAmBhF,YAAY4E;IACrC,IAAMK,sBAAsBjF,YAAY0E;IACxC,IAAMQ,yBAAyBlF,YAAYwE;IAC3C,IAAMW,mBAAmBnF,YAAY4B;IAErC,IAAMwD,SAAS,AAACxF,MAAMyF,SAASC,QAAQrD,UAAmCsD,OACxE,SAACC;QACC,IAAMC,UAAUnF,SAASkF,MAAME,OAAOpE;QAEtC,OACE,AAACmE,YAAYlC,aAAaH,cAAcuC,SAASF,YACjDA,YAAYjB,sBACZiB,YAAYnB;IAEhB;IAGF,IAAMsB,mBACJ9C,CAAAA,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgB+C,uBAAsB,MAAM,SAC5C,CAAC9C,CAAAA,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAU+C,OAAM,KACjB9C,aAAazC,SAASwF;IAExB,IAAMC,YAAY,SAAC1D;QACjB,IAAIA,OAAO,MAAM;YACf,OAAO;QACT;QACA,OAAOI,WAAWD,OAAO,CAACH,GAAG;IAC/B;IAEA,IAAM2D,kBAAkBrG,MAAMsG,YAC5B,SAACxC,WAAmByC;QAClB,IAAIA,kBAAkB;YACpB/D,QAAQK,OAAO,CAACiB,UAAU,GAAG;QAC/B;QACAC,aAAa;QACbE,aAAa;QACbR,iBAAiB;YAAC5B;SAAgB;QAClC6B,eAAe7B;QACf0B,YAAY;QACZM,UAAUF;QAEVhB,gBAAgBE,UAAU;YACxBI,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQuD,SAAS,GAAGD,mBAAmB/D,QAAQK,OAAO,CAAChB,gBAAgB,GAAG;YAC1EG,gBACEA,aAAa;gBACX4B,QAAQ2C;gBACRE,MAAM3C;gBACN4C,IAAI7E;YACN;QACJ;IACF,GACA;QAACA;QAAiBG;QAAciB;KAAO;IAGzCpC,0BAA0B;QACxB8B,gBAAgBE;QAChBF,gBAAgBE,UAAU3C;IAC5B,GAAG;QAACyC,gBAAgBE;KAAQ;IAE5B,IAAM8D,uBAAuB3G,MAAMsG,YACjC,SAACM;QACC,IACE,AAAC,CAAA,CAACA,KACA;;;;;SAKC,CAACb,SAASa,EAAEC,cAAa,KAC5B/C,cAAc,MACd;YACAuC,gBAAgBvC,WAAWgD,QAAQlD;QACrC;IACF,GACA;QAACyC;QAAiBzC;QAAQE;KAAU;IAGtC,IAAM,AAAEiD,uBAAyBzG,0BAAzByG;IACR,IAAMC,yBAAyB3G,WAC7BsG,sBACAvD,aAAazC,SAASsG,MAAM,MAAM;IAGpC,IAAMC,qBAAqBlH,MAAMsG,YAAY;QAC3CrE,eAAeA;IACjB,GAAG;QAACA;KAAY;IAEhB,IAAME,oBAAoBnC,MAAMsG,YAAY;QAC1ClE,yBAAyBA;QACzByC,sBAAsB;QACtBF,sBAAsB;QACtBR,eAAe;QACfY,mBAAmB;QACnBR,mBAAmB;QACnBE,kBAAkB;IACpB,GAAG;QAACrC;KAAsB;IAE1B,IAAM+E,kCAAkCnH,MAAMsG,YAC5C,SAACM;QACC,qDAAqD;QACrD,IACE,CAACA,KACAA,CAAAA,cAAAA,eAAAA,KAAAA,IAAAA,EAAGQ,aAAarB,SAAS,YAAW,KAAKa,CAAAA,cAAAA,eAAAA,KAAAA,IAAAA,EAAGS,MAAK,MAAMjB,UAAU1B,qBAClE;YACA,OAAQI;gBACN,KAAKxD,iBAAiBC;oBACpBY;oBACA;gBACF,KAAKb,iBAAiBE;oBACpB0F;YACJ;QACF;IACF,GACA;QAAC/E;QAAmB+E;QAAoBxC;QAAoBI;KAAgB;IAG9E,IAAMwC,UAAU,SAACC;QACf,IACEnE,aAAazC,SAASsG,OACtB7C,sBACAhD,kBAAkBmG,UAClBvB,kBACA;YACA;QACF;QAEA,IAAI,CAAC9C,CAAAA,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBsE,SAAQ,GAAG;YAC9B,IACE,AAACD,CAAAA,MAAME,UAAUpG,mBAAmBkG,MAAME,UAAU1E,OAAQ2E,aAAarG,eAAc,KACvF,CAAC2D,cACD;gBACAC,gBAAgB;YAClB;YAEA;QACF;QAEA,IAAI,CAAChD,eAAgBqB,YAAYiE,MAAME,UAAUpG,iBAAkB;YACjE;QACF;QAEA,IAAI,CAAC6C,eAAeqD,MAAME,UAAUpG,mBAAmBS,WAAWA,QAAQ6F,SAAS,GAAG;YACpF,sBAAsB;YACtB,IAAIzF,kBAAkB;gBACpB,IAAM0F,UAAU1F,iBAAiBN;gBACjC,IAAIgG,YAAY,WAAW;oBACzBvD,sBAAsB;oBACtB;gBACF;YACF;YAEA,IAAIzC,gBAAgB,MAAM;gBACxB,+EAA+E;gBAC/ErB,kBAAkByC;gBAClBR,QAAQK,OAAO,CAACjB,YAAY,GAAGqB,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQ4E,YAAYC;YACrD;YAEA3D,eAAe;YACfI,mBAAmBgD,MAAME;YACzB5C,sBAAsBjD;YACtB+C,sBAAsB7C,QAAQiG,MAAM,CAAC,EAAE,CAAC,EAAE;QAC5C;QAEA,IAAI7D,aAAa;YACf,IAAIM,iBAAiB;YACrB,IAAI+C,MAAMS,SAAS,GAAG;gBACpBxD,iBAAiB;YACnB,OAAO,IAAI+C,MAAMS,SAASjF,OAAQ2E,aAAapD,iBAAiB;gBAC9DE,iBAAiBzB,OAAQ2E;YAC3B,OAAO;gBACLlD,iBAAiB+C,MAAMS;YACzB;YACAvD,kBAAkBD;QACpB;IACF;IAEA,IAAMyD,QAAQjI,MAAMsG,YAClB,SAACiB;QACC,IAAIrD,aAAa;YACf,IAAMgE,QAAQ,AAAC1D,iBAAiB+C,MAAMY,WAAY;gBAGpBpF;YAF9B,IAAIyB,mBAAmB,GAAG;gBACxBrC;YACF,OAAO,IAAIqC,kBAAmBzB,CAAAA,CAAAA,qBAAAA,OAAQ2E,wBAAR3E,gCAAAA,qBAAsB,CAAA,GAAI;gBACtDmE;YACF,OAAO,IAAIgB,QAAQ,OAAO5D,kBAAkBE,iBAAiBzB,OAAQ2E,aAAa,GAAG;gBACnF3C,mBAAmBzD,iBAAiBE;YACtC,OAAO;gBACLuD,mBAAmBzD,iBAAiBC;YACtC;QACF;QACA,IAAI6C,oBAAoB;YACtBC,sBAAsB;QACxB;IACF,GACA;QACElC;QACA+E;QACA1C;QACAF;QACAJ;QACAE;QACArB;KACD;IAGH,IAAMqF,uBAAuB,SAACvC;QAC5B,IAAI,CAACrF,aAAa,CAACuC,QAAQ;YACzB,OAAO,CAAC;QACV;QAEA,IAAMsF,SAASxC,YAAYjB;QAC3B,IAAM0D,SAASzC,YAAYnB;QAE3B,IAAI,AAAC,CAAC2D,UAAU,CAACC,UAAWxD,iBAAiB;YAC3C,OAAO,CAAC;QACV;QAEA,IAAIyD,qBAAqB,AAAC,GAAiB,OAAf/D,gBAAe;QAC3C,IAAIgE,qBAAqB,AAAC,GAAuD,OAArD,CAAC,KAAK,AAAChE,iBAAiB,MAAOzB,OAAO2E,aAAa,GAAE;QACjF,IAAIe,kBAAkB,AAAC,MAAO1F,CAAAA,OAAO2E,aAAalD,cAAa,IAAMzB,OAAO2E;QAE5E,IAAI5C,iBAAiB;YACnB,OAAOuD,SAAS;gBAAEK,WAAW,AAAC,6BAA4C,OAAhBD,iBAAgB;YAAG,IAAI,CAAC;QACpF;QAEA,IAAIH,QAAQ;YACV,OAAO;gBACLK,WAAW,AAAC,eAAiC,OAAnBH,oBAAmB;gBAC7CI,iBAAiB,AAAC,eAAiC,OAAnBJ,oBAAmB;YACrD;QACF;QACA,IAAIH,QAAQ;YACV,OAAO;gBACLM,WAAW,AAAC,eAAiC,OAAnBJ,oBAAmB;gBAC7CK,iBAAiB,AAAC,eAAiC,OAAnBL,oBAAmB;gBACnDG,WAAW,AAAC,6BAA4C,OAAhBD,iBAAgB;YAC1D;QACF;QAEA,OAAO,CAAC;IACV;IAEAzI,MAAM4C,UAAU;QACd,gBAAgB;QAChB,IACEsC,mBACAA,oBAAoBrD,mBACpB,CAACsD,mBACD,CAACC,kBACD;YACA,IAAMyD,eAAe,AAAC7I,MAAMyF,SAASC,QAAQrD,UAC1CyG,IAAI,SAAClD;uBAAUlF,SAASkF,MAAME,OAAOpE;eACrCqH,KAAK,SAACrG;uBAAOA,OAAOwC,mBAAmBxC,OAAOb;;YAEjD,IAAM0E,mBAAmBsC,iBAAiBhH;YAC1CW,QAAQK,OAAO,CAACqC,gBAAgB,GAAGjC,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQ4E,YAAYC;YAEvD,IAAI9B,kBAAkB;gBACpBK,gBAAgBnB,iBAAiBqB;YACnC,OAAO;gBACLhG,kBAAkByC;gBAElBS,iBAAiB;oBAACyB;oBAAiBrD;iBAAgB;gBACnDkC,aAAamB;gBACbjB,aAAapC;gBACb6B,eAAe;gBACfH,YAAY;gBACZM,UAAU0C;gBAEV,2BAA2B;gBAC3B,IAAI,CAAC3F,eAAeoI,WAAW;oBAC7BhC,uBAAuBiC;gBACzB;YACF;QACF;QAEA,oCAAoC;QACpC,IAAI/D,mBAAmBA,oBAAoBrD,mBAAmBsD,iBAAiB;YAC7E,IAAMnB,YAAYnC;YAClB,IAAMiC,YAAYoB;YAClB,IAAII,wBAAwB;gBAC1B9C,QAAQK,OAAO,CAACyC,uBAAuB,GAAG;YAC5C;YAEAT,sBAAsB;YACtBF,sBAAsB;YACtBR,eAAe;YACfY,mBAAmB;YACnBR,mBAAmB;YACnBE,kBAAkB;YAClBf,eAAeM;YACfP,iBAAiB;gBAACO;aAAU;YAE5BrB,gBAAgBE,UAAU;gBACxB,IAAImB,cAAc,MAAM;oBACtBf,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQuD,SAAS,GAAGhE,QAAQK,OAAO,CAACmB,UAAU;gBAChD;gBACAuB,oBACEA,iBAAiB;oBACf3B,QAAQ;oBACR6C,MAAM3C;oBACN4C,IAAI1C;gBACN;YACJ;QACF;QAEA,6CAA6C;QAC7C,IAAI,CAACqB,uBAAuBP,iBAAiB;YAC3CiC,qBACEX,UAAU1B,qBACVyC,iCACA/D,aAAazC,SAASsG,MAAM,MAAM;QAEtC;QAEA,+EAA+E;QAC/E,IAAI5B,wBAAwB/D,iBAAiBC,QAAQ,CAACuD,mBAAmBlD,gBAAgB,MAAM;YAC7FqB,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQuD,SAAS,GAAGhE,QAAQK,OAAO,CAACjB,YAAY;QAClD;QAEA,0BAA0B;QAC1B,IAAIsD,oBAAoBrD,mBAAmBmD,cAAc;YACvDC,gBAAgB;YAChBhB,aAAa;YACbF,aAAa;YACbR,YAAY;YACZE,iBAAiB;gBAAC5B;aAAgB;YAClC6B,eAAe7B;QACjB;IACF,GAAG;QACDA;QACAD;QACAoF;QACAhC;QACA3C;QACA2D;QACAhD;QACAqD;QACAnE;QACAsD;QACApC;QACA8B;QACAE;QACAG;QACAD;QACAD;QACAF;QACAlC;QACAyB;QACAI;QACAZ;QACAiD;QACAJ;KACD;IAED,qBACE,oBAAC5F;QACC+H,WAAU;OACN3G;QACJD,WAAWrC,uBAETmD,aAAazC,SAASsG,OAAOhH,4BAAgC,0BAC7D,CAAC+F,oBAAoB1C,kCACrB,CAAC0C,oBAAoB9B,yCACrB8B,2CACA1D;QAEFgF,SAASA;QACTW,OAAOA;sBAEP,oBAACkB;QAAI7G,SAAS;OACXkD,OAAOsD,IAAI,SAAClD;QACX,IAAMC,UAAUnF,SAASkF,MAAME,OAAOpE;QACtC,IAAM2G,SAASxC,YAAY/B,aAAa+B,YAAYjB;QACpD,IAAMwE,qBAAqB9F,YAAYuC,YAAajC,CAAAA,SAASE,YAAYE,SAAQ;QACjF,IAAMqF,mBACJhB,UAAUxC,YAAYnB,sBAAuBmB,YAAY7B,aAAaJ;YAwBhCpB;QAtBxC,qBACE,oBAAC2G;YACC7G,WAAWrC,8BAET4F,YAAYjE,0CACZiE,YAAY/B,sCACZ+B,YAAY7B,sCACZ6B,YAAYjB,0DACZiB,YAAYnB,0DACZI,oBAAoBxD,iBAAiBE,kDAErCsD,oBAAoBxD,iBAAiBC;YAGvC+H,gBAAgBF,qBAAqBzC,uBAAuBhD;YAC5D4F,KAAK,SAACC;uBAAO3D,YAAYlC,aAAcb,CAAAA,WAAWD,OAAO,CAACgD,QAAQ,GAAG2D,EAAC;;YACtEC,OAAOrB,qBAAqBvC;YAC5B6D,KAAK7D;yBAEL,oBAACsD;YACC7G,SAAS;YACTmH,OAAO;gBACLE,WAAWN,mBAAmB,CAAE7G,CAAAA,CAAAA,2BAAAA,QAAQK,OAAO,CAACgD,QAAQ,cAAxBrD,sCAAAA,2BAA4B,CAAA,IAAKmB;YACnE;yBAEA,oBAAC1C;YACC2I,UAAU/D,YAAY7B,aAAa6B,YAAYnB;WAE9CkB;IAKX;AAIR,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/View/View.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { blurActiveElement, canUseDOM, useDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent } from '../../lib/supportEvents';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useScroll } from '../AppRoot/ScrollContext';\nimport { useConfigProvider } from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { useSplitCol } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst SWIPE_BACK_AREA = 70;\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 extends React.HTMLAttributes<HTMLElement>, NavIdProps {\n activePanel: string;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n *\n * Чтобы остановить свайп назад, возвращайте `\"prevent\"`.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n\n children: React.ReactElement | Iterable<React.ReactElement>;\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 activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n className,\n ...restProps\n}: ViewProps) => {\n const scrolls = React.useRef(scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {});\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>(activePanelProp);\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 [swipeBackPrevented, setSwipeBackPrevented] = 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<string | null>(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<string | null>(null);\n const [swipeBackResult, setSwipeBackResult] = 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 = (React.Children.toArray(children) as React.ReactElement[]).filter(\n (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\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false ||\n !splitCol?.animate ||\n platform === Platform.VKCOM;\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(0, isBackTransition ? scrolls.current[activePanelProp] : 0);\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 styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['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 === 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') && 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 = (event: TouchEvent): void => {\n if (\n platform !== Platform.IOS ||\n swipeBackPrevented ||\n swipeBackExcluded(event) ||\n disableAnimation\n ) {\n return;\n }\n\n if (!configProvider?.isWebView) {\n if (\n (event.startX <= SWIPE_BACK_AREA || event.startX >= window!.innerWidth - SWIPE_BACK_AREA) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n return;\n }\n\n if (!onSwipeBack || (animated && event.startX <= SWIPE_BACK_AREA)) {\n return;\n }\n\n if (!swipingBack && event.startX <= SWIPE_BACK_AREA && history && history.length > 1) {\n // Начался свайп назад\n if (onSwipeBackStart) {\n const payload = onSwipeBackStart(activePanel);\n if (payload === 'prevent') {\n setSwipeBackPrevented(true);\n return;\n }\n }\n\n if (activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n blurActiveElement(document);\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(event.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n\n if (swipingBack) {\n let swipeBackShift = 0;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > window!.innerWidth - swipeBackStartX) {\n swipeBackShift = window!.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n };\n\n const onEnd = React.useCallback(\n (event: TouchEvent): void => {\n if (swipingBack) {\n const speed = (swipeBackShift / event.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window!.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (speed > 250 || swipeBackStartX + swipeBackShift > window!.innerWidth / 2) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n if (swipeBackPrevented) {\n setSwipeBackPrevented(false);\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n swipeBackPrevented,\n window,\n ],\n );\n\n const calcPanelSwipeStyles = (panelId: string | undefined): 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 = `${-50 + (swipeBackShift * 100) / window.innerWidth / 2}%`;\n let prevPanelShadow = (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\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 // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (React.Children.toArray(children) as React.ReactElement[])\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 (prevActivePanel && prevActivePanel !== activePanelProp && prevSwipingBack) {\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 (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === Platform.IOS ? 600 : 300,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (prevSwipeBackResult === SwipeBackResults.fail && !swipeBackResult && activePanel !== null) {\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 className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && animated && styles['View--animated'],\n !disableAnimation && swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (panelNodes.current[panelId] = el)}\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{\n marginTop: compensateScroll ? -(scrolls.current[panelId] ?? 0) : undefined,\n }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n};\n"],"names":["React","classNames","noop","usePlatform","usePrevious","useTimeout","useWaitTransitionFinish","blurActiveElement","canUseDOM","useDOM","getNavId","Platform","animationEvent","useIsomorphicLayoutEffect","warnOnce","useScroll","useConfigProvider","NavTransitionProvider","useSplitCol","Touch","swipeBackExcluded","SWIPE_BACK_AREA","SwipeBackResults","fail","success","scrollsCache","warn","View","activePanel","activePanelProp","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancel","onSwipeBackCancelProp","children","className","restProps","configProvider","splitCol","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackPrevented","setSwipeBackPrevented","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","VKCOM","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","onMoveX","event","isWebView","startX","innerWidth","length","payload","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","Component","div","isTransitionTarget","compensateScroll","onAnimationEnd","ref","el","style","key","marginTop","entering"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent, transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: 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\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\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 render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","withContext","withPlatform","canUseDOM","withDOM","getNavId","Platform","animationEvent","transitionEvent","warnOnce","ScrollContext","ConfigProviderContext","NavTransitionProvider","SplitColContext","Touch","swipeBackExcluded","warn","SwipeBackResults","fail","success","scrollsCache","ViewInfiniteComponent","props","scrolls","transitionFinishTimeout","undefined","animationFinishTimeout","panelNodes","transitionEndHandler","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","swipingBackTransitionEndHandler","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","onSwipeBackCancel","onSwipeBackSuccess","onMoveX","event","window","platform","IOS","swipeBackPrevented","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","onEnd","speed","duration","visiblePanels","nextPanel","document","panels","Children","toArray","children","componentWillUnmount","id","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","supported","setTimeout","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","activeElement","blur","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","Component","div","compensateScroll","isTransitionTarget","scrollList","onAnimationEnd","ref","el","style","key","marginTop","entering","defaultProps","ViewInfinite"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/View/ViewInfinite.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { canUseDOM, DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId, NavIdProps } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { animationEvent, transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport { ScrollContext, ScrollContextInterface } from '../AppRoot/ScrollContext';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { NavTransitionProvider } from '../NavTransitionContext/NavTransitionContext';\nimport { SplitColContext, SplitColContextProps } from '../SplitCol/SplitColContext';\nimport { Touch, TouchEvent } from '../Touch/Touch';\nimport { swipeBackExcluded } from './utils';\nimport styles from './View.module.css';\n\nconst warn = warnOnce('ViewInfinite');\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: Array<number | undefined>;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\ntype TransitionEventHandler = (e?: TransitionEvent) => void;\n\nlet scrollsCache: ViewsScrolls = {};\n\nexport type TransitionParams = { from: string | null; to: string | null };\n\nexport interface ViewInfiniteProps\n extends React.HTMLAttributes<HTMLElement>,\n HasPlatform,\n NavIdProps {\n activePanel: string;\n onTransition?(params: TransitionParams & { isBack: boolean }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(activePanel: string | null): void | 'prevent';\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n isBackCheck?(params: TransitionParams): boolean;\n /**\n * @ignore\n */\n splitCol?: SplitColContextProps;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n /**\n * @ignore\n */\n scroll?: ScrollContextInterface;\n}\n\nexport interface ViewInfiniteState {\n animated: boolean;\n\n visiblePanels: Array<string | null>;\n activePanel: string | null;\n isBack?: boolean;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackPrevented: 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\nclass ViewInfiniteComponent extends React.Component<\n ViewInfiniteProps & DOMProps,\n ViewInfiniteState\n> {\n private static readonly SWIPE_BACK_AREA = 70;\n\n constructor(props: ViewInfiniteProps) {\n super(props);\n\n this.state = {\n animated: false,\n\n visiblePanels: [props.activePanel],\n activePanel: props.activePanel,\n isBack: undefined,\n prevPanel: null,\n nextPanel: null,\n\n swipingBack: false,\n swipeBackPrevented: false,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n swipeBackNextPanel: null,\n swipeBackPrevPanel: null,\n swipeBackResult: null,\n\n browserSwipe: false,\n };\n }\n\n static defaultProps: Partial<ViewInfiniteProps> = {\n history: [],\n };\n\n private scrolls = scrollsCache[getNavId(this.props, warn) as string] || {};\n private transitionFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n private animationFinishTimeout: ReturnType<typeof setTimeout> | undefined = undefined;\n\n get document() {\n return this.props.document;\n }\n\n get window() {\n return this.props.window;\n }\n\n get panels() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n panelNodes: { [id: string]: HTMLDivElement | null } = {};\n\n componentWillUnmount() {\n const id = getNavId(this.props);\n if (id) {\n scrollsCache[id] = this.scrolls;\n }\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n }\n\n componentDidUpdate(prevProps: ViewInfiniteProps, prevState: ViewInfiniteState) {\n // Нужен переход\n if (\n prevProps.activePanel !== this.props.activePanel &&\n !prevState.swipingBack &&\n !prevState.browserSwipe\n ) {\n let isBack = false;\n\n if (this.props.isBackCheck) {\n isBack = this.props.isBackCheck({\n from: prevProps.activePanel,\n to: this.props.activePanel,\n });\n } else {\n const firstLayerId = this.panels\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevProps.activePanel || id === this.props.activePanel);\n isBack = firstLayerId === this.props.activePanel;\n }\n\n this.blurActiveElement();\n\n const prevScrolls = this.scrolls[prevProps.activePanel] || [];\n const scrolls = {\n ...this.scrolls,\n [prevProps.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n this.scrolls = scrolls;\n\n if (this.shouldDisableTransitionMotion()) {\n this.flushTransition(prevProps.activePanel, isBack);\n } else {\n this.setState({\n visiblePanels: [prevProps.activePanel, this.props.activePanel],\n prevPanel: prevProps.activePanel,\n nextPanel: this.props.activePanel,\n activePanel: null,\n animated: true,\n isBack,\n });\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n if (this.animationFinishTimeout) {\n clearTimeout(this.animationFinishTimeout);\n }\n this.animationFinishTimeout = setTimeout(\n this.transitionEndHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (prevProps.activePanel !== this.props.activePanel && prevState.swipingBack) {\n const nextPanel = this.state.swipeBackNextPanel;\n const prevPanel = this.state.swipeBackPrevPanel;\n let scrollPosition: undefined | number = undefined;\n\n this.scrolls = {\n ...this.scrolls,\n };\n\n if (prevPanel !== null) {\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n this.scrolls[prevPanel] = prevPanelScrolls;\n }\n if (nextPanel !== null) {\n const newPanelScrolls = [...(this.scrolls[nextPanel] || [])];\n scrollPosition = newPanelScrolls.pop();\n this.scrolls[nextPanel] = newPanelScrolls;\n }\n\n this.setState(\n {\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n activePanel: nextPanel,\n visiblePanels: [nextPanel],\n },\n () => {\n this.props.scroll?.scrollTo(0, scrollPosition);\n prevProps.onTransition &&\n prevProps.onTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n },\n );\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevState.swipeBackResult && this.state.swipeBackResult) {\n this.waitTransitionFinish(\n this.pickPanel(this.state.swipeBackNextPanel),\n this.swipingBackTransitionEndHandler,\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevState.swipeBackResult === SwipeBackResults.fail &&\n !this.state.swipeBackResult &&\n this.state.activePanel !== null\n ) {\n const newPanelScrolls = [...(this.scrolls[this.state.activePanel] || [])];\n const scrollPosition = newPanelScrolls.pop();\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: newPanelScrolls,\n };\n\n this.props.scroll?.scrollTo(0, scrollPosition);\n }\n\n // Закончился Safari свайп\n if (prevProps.activePanel !== this.props.activePanel && this.state.browserSwipe) {\n this.setState({\n browserSwipe: false,\n nextPanel: null,\n prevPanel: null,\n animated: false,\n visiblePanels: [this.props.activePanel],\n activePanel: this.props.activePanel,\n });\n }\n }\n\n shouldDisableTransitionMotion(): boolean {\n return (\n this.props.configProvider?.transitionMotionEnabled === false ||\n !this.props.splitCol?.animate ||\n this.props.platform === Platform.VKCOM\n );\n }\n\n waitTransitionFinish(\n elem: HTMLElement | null | undefined,\n eventHandler: TransitionEventHandler,\n ): void {\n if (transitionEvent.supported && transitionEvent.name && elem) {\n elem.removeEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n elem.addEventListener(\n transitionEvent.name as keyof HTMLElementEventMap,\n eventHandler as EventListener,\n );\n } else {\n if (this.transitionFinishTimeout) {\n clearTimeout(this.transitionFinishTimeout);\n }\n\n this.transitionFinishTimeout = setTimeout(\n eventHandler,\n this.props.platform === Platform.ANDROID || this.props.platform === Platform.VKCOM\n ? 300\n : 600,\n );\n }\n }\n\n blurActiveElement(): void {\n if (typeof this.window !== 'undefined' && this.document?.activeElement) {\n (this.document.activeElement as HTMLElement).blur();\n }\n }\n\n pickPanel(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.panelNodes[id];\n }\n\n flushTransition(prevPanel: string, isBack: boolean) {\n const activePanel = this.props.activePanel;\n\n const prevPanelScrolls = [...(this.scrolls[prevPanel] || [])].slice(0, -1);\n const newPanelScrolls = [...(this.scrolls[activePanel] || [])];\n const scrollPosition = isBack ? newPanelScrolls.pop() : 0;\n if (isBack) {\n this.scrolls = {\n ...this.scrolls,\n [prevPanel]: prevPanelScrolls,\n [activePanel]: newPanelScrolls,\n };\n }\n\n this.setState(\n {\n prevPanel: null,\n nextPanel: null,\n visiblePanels: [activePanel],\n activePanel: activePanel,\n animated: false,\n isBack: undefined,\n },\n () => {\n this.props.scroll?.scrollTo(0, isBack ? scrollPosition : 0);\n this.props.onTransition &&\n this.props.onTransition({ isBack, from: prevPanel, to: activePanel });\n },\n );\n }\n\n transitionEndHandler = (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n styles['vkui-animation-ios-next-forward'],\n styles['vkui-animation-ios-prev-back'],\n styles['vkui-animation-view-next-forward'],\n styles['vkui-animation-view-prev-back'],\n ].includes(e.animationName)) &&\n this.state.prevPanel !== null\n ) {\n this.flushTransition(this.state.prevPanel, Boolean(this.state.isBack));\n }\n };\n\n swipingBackTransitionEndHandler = (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e.propertyName.includes('transform') &&\n e.target === this.pickPanel(this.state.swipeBackNextPanel))\n ) {\n switch (this.state.swipeBackResult) {\n case SwipeBackResults.fail:\n this.onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n this.onSwipeBackSuccess();\n }\n }\n };\n\n onSwipeBackSuccess(): void {\n this.props.onSwipeBack && this.props.onSwipeBack();\n }\n\n onSwipeBackCancel(): void {\n this.props.onSwipeBackCancel && this.props.onSwipeBackCancel();\n this.setState({\n swipeBackPrevPanel: null,\n swipeBackNextPanel: null,\n swipingBack: false,\n swipeBackResult: null,\n swipeBackStartX: 0,\n swipeBackShift: 0,\n });\n }\n\n onMoveX = (event: TouchEvent): void => {\n if (\n !this.window ||\n this.props.platform !== Platform.IOS ||\n this.state.swipeBackPrevented ||\n swipeBackExcluded(event) ||\n this.shouldDisableTransitionMotion()\n ) {\n return;\n }\n\n if (!this.props.configProvider?.isWebView) {\n if (\n (event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA ||\n event.startX >= this.window.innerWidth - ViewInfiniteComponent.SWIPE_BACK_AREA) &&\n !this.state.browserSwipe\n ) {\n this.setState({ browserSwipe: true });\n }\n\n return;\n }\n\n if (\n !this.props.onSwipeBack ||\n (this.state.animated && event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA)\n ) {\n return;\n }\n\n if (\n !this.state.swipingBack &&\n event.startX <= ViewInfiniteComponent.SWIPE_BACK_AREA &&\n this.props.history &&\n this.props.history.length > 1\n ) {\n if (this.props.onSwipeBackStart) {\n const payload = this.props.onSwipeBackStart(this.state.activePanel);\n if (payload === 'prevent') {\n this.setState({ swipeBackPrevented: true });\n return;\n }\n }\n\n if (this.state.activePanel !== null) {\n // Note: вызываем закрытие клавиатуры. В iOS это нативное поведение при свайпе.\n this.blurActiveElement();\n const prevScrolls = this.scrolls[this.state.activePanel] || [];\n this.scrolls = {\n ...this.scrolls,\n [this.state.activePanel]: [...prevScrolls, this.props.scroll?.getScroll().y],\n };\n }\n\n this.setState({\n swipingBack: true,\n swipeBackStartX: event.startX,\n swipeBackPrevPanel: this.state.activePanel,\n swipeBackNextPanel: this.props.history.slice(-2)[0],\n });\n }\n\n if (this.state.swipingBack) {\n let swipeBackShift;\n if (event.shiftX < 0) {\n swipeBackShift = 0;\n } else if (event.shiftX > this.window.innerWidth - this.state.swipeBackStartX) {\n swipeBackShift = this.window.innerWidth;\n } else {\n swipeBackShift = event.shiftX;\n }\n this.setState({ swipeBackShift });\n }\n };\n\n onEnd = (event: TouchEvent): void => {\n if (this.state.swipingBack && this.window) {\n const speed = (this.state.swipeBackShift / event.duration) * 1000;\n if (this.state.swipeBackShift === 0) {\n this.onSwipeBackCancel();\n } else if (this.state.swipeBackShift >= this.window.innerWidth) {\n this.onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n this.state.swipeBackStartX + this.state.swipeBackShift > this.window.innerWidth / 2\n ) {\n this.setState({ swipeBackResult: SwipeBackResults.success });\n } else {\n this.setState({ swipeBackResult: SwipeBackResults.fail });\n }\n }\n if (this.state.swipeBackPrevented) {\n this.setState({ swipeBackPrevented: false });\n }\n };\n\n calcPanelSwipeStyles(panelId: string | undefined): React.CSSProperties {\n if (!canUseDOM || !this.window) {\n return {};\n }\n\n const isPrev = panelId === this.state.swipeBackPrevPanel;\n const isNext = panelId === this.state.swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || this.state.swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${this.state.swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (this.state.swipeBackShift * 100) / this.window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (this.window.innerWidth - this.state.swipeBackShift)) / this.window.innerWidth;\n\n if (this.state.swipeBackResult) {\n return isPrev ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` } : {};\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 render() {\n const {\n platform,\n activePanel: _1,\n splitCol,\n configProvider,\n history,\n id,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel,\n window,\n document,\n scroll,\n isBackCheck,\n className,\n ...restProps\n } = this.props;\n const {\n prevPanel,\n nextPanel,\n activePanel,\n isBack,\n animated,\n swipeBackPrevPanel,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n } = this.state;\n\n const panels = this.panels\n .filter((panel) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && this.state.visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n })\n .sort((panel) => {\n const panelId = getNavId(panel.props, warn);\n const isPrevPanel = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isNextPanel = panelId === nextPanel || panelId === swipeBackNextPanel;\n\n if (isNextPanel) {\n return swipingBack || this.state.isBack ? -1 : 1;\n }\n\n if (isPrevPanel) {\n return swipingBack || this.state.isBack ? 1 : -1;\n }\n\n return 0;\n });\n\n const disableAnimation = this.shouldDisableTransitionMotion();\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n className={classNames(\n styles['View'],\n platform === Platform.IOS && classNames(styles['View--ios'], 'vkuiInternalView--ios'),\n !disableAnimation && this.state.animated && styles['View--animated'],\n !disableAnimation && this.state.swipingBack && styles['View--swiping-back'],\n disableAnimation && styles['View--no-motion'],\n className,\n )}\n onMoveX={this.onMoveX}\n onEnd={this.onEnd}\n >\n <div className={styles['View__panels']}>\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev = panelId === prevPanel || panelId === swipeBackPrevPanel;\n const compensateScroll =\n isPrev || panelId === swipeBackNextPanel || (panelId === nextPanel && isBack);\n const isTransitionTarget = animated && panelId === (isBack ? prevPanel : nextPanel);\n const scrollList = (panelId && this.scrolls[panelId]) || [];\n const scroll = scrollList[scrollList.length - 1] || 0;\n\n return (\n <div\n className={classNames(\n styles['View__panel'],\n panelId === activePanel && styles['View__panel--active'],\n panelId === prevPanel && styles['View__panel--prev'],\n panelId === nextPanel && styles['View__panel--next'],\n panelId === swipeBackPrevPanel && styles['View__panel--swipe-back-prev'],\n panelId === swipeBackNextPanel && styles['View__panel--swipe-back-next'],\n swipeBackResult === SwipeBackResults.success &&\n styles['View__panel--swipe-back-success'],\n swipeBackResult === SwipeBackResults.fail &&\n styles['View__panel--swipe-back-failed'],\n )}\n onAnimationEnd={isTransitionTarget ? this.transitionEndHandler : undefined}\n ref={(el) => panelId !== undefined && (this.panelNodes[panelId] = el)}\n style={this.calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n className={styles['View__panel-in']}\n style={{ marginTop: compensateScroll ? -scroll : undefined }}\n >\n <NavTransitionProvider\n entering={panelId === nextPanel || panelId === swipeBackNextPanel}\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n </Touch>\n );\n }\n}\n\nexport const ViewInfinite = withContext(\n withContext(\n withContext(\n withPlatform(withDOM<ViewInfiniteProps>(ViewInfiniteComponent)),\n SplitColContext,\n 'splitCol',\n ),\n ConfigProviderContext,\n 'configProvider',\n ),\n ScrollContext,\n 'scroll',\n);\n"],"names":["React","classNames","withContext","withPlatform","canUseDOM","withDOM","getNavId","Platform","animationEvent","transitionEvent","warnOnce","ScrollContext","ConfigProviderContext","NavTransitionProvider","SplitColContext","Touch","swipeBackExcluded","warn","SwipeBackResults","fail","success","scrollsCache","ViewInfiniteComponent","props","scrolls","transitionFinishTimeout","undefined","animationFinishTimeout","panelNodes","transitionEndHandler","e","includes","animationName","state","prevPanel","flushTransition","Boolean","isBack","swipingBackTransitionEndHandler","propertyName","target","pickPanel","swipeBackNextPanel","swipeBackResult","onSwipeBackCancel","onSwipeBackSuccess","onMoveX","event","window","platform","IOS","swipeBackPrevented","shouldDisableTransitionMotion","configProvider","isWebView","startX","SWIPE_BACK_AREA","innerWidth","browserSwipe","setState","onSwipeBack","animated","swipingBack","history","length","onSwipeBackStart","payload","activePanel","blurActiveElement","prevScrolls","scroll","getScroll","y","swipeBackStartX","swipeBackPrevPanel","slice","swipeBackShift","shiftX","onEnd","speed","duration","visiblePanels","nextPanel","document","panels","Children","toArray","children","componentWillUnmount","id","clearTimeout","componentDidUpdate","prevProps","prevState","isBackCheck","from","to","firstLayerId","map","panel","find","supported","setTimeout","ANDROID","VKCOM","scrollPosition","prevPanelScrolls","newPanelScrolls","pop","scrollTo","onTransition","waitTransitionFinish","transitionMotionEnabled","splitCol","animate","elem","eventHandler","name","removeEventListener","addEventListener","activeElement","blur","calcPanelSwipeStyles","panelId","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","render","_1","nav","className","restProps","filter","sort","isPrevPanel","isNextPanel","disableAnimation","Component","div","compensateScroll","isTransitionTarget","scrollList","onAnimationEnd","ref","el","style","key","marginTop","entering","defaultProps","ViewInfinite"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var swipeBackExcludedSelector = "input, textarea, [data-vkui-swipe-back=false]";
|
|
2
2
|
export function swipeBackExcluded(e) {
|
|
3
|
-
var _target_closest;
|
|
3
|
+
var _target_closest, _target;
|
|
4
4
|
var target = e.originalEvent.target;
|
|
5
5
|
// eslint-disable-next-line no-restricted-properties
|
|
6
|
-
return Boolean(target === null ||
|
|
6
|
+
return Boolean((_target = target) === null || _target === void 0 ? void 0 : (_target_closest = _target.closest) === null || _target_closest === void 0 ? void 0 : _target_closest.call(_target, swipeBackExcludedSelector));
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/View/utils.ts"],"sourcesContent":["import { TouchEvent } from '../Touch/Touch';\n\nconst swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';\n\nexport function swipeBackExcluded(e: TouchEvent) {\n const target = e.originalEvent.target as HTMLElement;\n // eslint-disable-next-line no-restricted-properties\n return Boolean(target?.closest?.(swipeBackExcludedSelector));\n}\n"],"names":["swipeBackExcludedSelector","swipeBackExcluded","e","target","originalEvent","Boolean","closest"],"mappings":"AAEA,IAAMA,4BAA4B;AAElC,OAAO,SAASC,kBAAkBC,CAAa;QAG9BC;IAFf,IAAMA,SAASD,EAAEE,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/View/utils.ts"],"sourcesContent":["import { TouchEvent } from '../Touch/Touch';\n\nconst swipeBackExcludedSelector = 'input, textarea, [data-vkui-swipe-back=false]';\n\nexport function swipeBackExcluded(e: TouchEvent) {\n const target = e.originalEvent.target as HTMLElement;\n // eslint-disable-next-line no-restricted-properties\n return Boolean(target?.closest?.(swipeBackExcludedSelector));\n}\n"],"names":["swipeBackExcludedSelector","swipeBackExcluded","e","target","originalEvent","Boolean","closest"],"mappings":"AAEA,IAAMA,4BAA4B;AAElC,OAAO,SAASC,kBAAkBC,CAAa;QAG9BC,iBAAAA;IAFf,IAAMA,SAASD,EAAEE,aAAa,CAACD,MAAM;IACrC,oDAAoD;IACpD,OAAOE,SAAQF,UAAAA,oBAAAA,+BAAAA,kBAAAA,QAAQG,OAAO,cAAfH,sCAAAA,qBAAAA,SAAkBH;AACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={getRef}\n />\n );\n};\n"],"names":["React","classNames","warnOnce","warn","VisuallyHiddenInput","getRef","className","restProps","process","env","NODE_ENV","input","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,IAAMC,OAAOD,SAAS;AAItB;;;;;CAKC,GACD,OAAO,IAAME,sBAAsB;QACjCC,gBAAAA,QACAC,mBAAAA,WACGC;QAFHF;QACAC;;IAGA,IAAIE,QAAQC,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/VisuallyHiddenInput/VisuallyHiddenInput.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasRef } from '../../types';\nimport styles from './VisuallyHiddenInput.module.css';\n\nconst warn = warnOnce('VisuallyHiddenInput');\nexport interface VisuallyHiddenInputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n HasRef<HTMLInputElement> {}\n/**\n * @deprecated v5.4.0\n *\n * Компонент устарел и будет удален в v6. Используйте\n * `<VisuallyHidden Component=\"input\" />`\n */\nexport const VisuallyHiddenInput = ({\n getRef,\n className,\n ...restProps\n}: VisuallyHiddenInputProps) => {\n if (process.env.NODE_ENV === 'development') {\n warn(\n 'Компонент устарел и будет удален в v6. Используйте https://vkcom.github.io/VKUI/#/VisuallyHidden',\n );\n }\n\n return (\n <input\n {...restProps}\n className={classNames(styles['VisuallyHiddenInput'], className)}\n ref={getRef}\n />\n );\n};\n"],"names":["React","classNames","warnOnce","warn","VisuallyHiddenInput","getRef","className","restProps","process","env","NODE_ENV","input","ref"],"mappings":";;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,QAAQ,QAAQ,qBAAqB;AAI9C,IAAMC,OAAOD,SAAS;AAItB;;;;;CAKC,GACD,OAAO,IAAME,sBAAsB;QACjCC,gBAAAA,QACAC,mBAAAA,WACGC;QAFHF;QACAC;;IAGA,IAAIE,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;QAC1CP,KACE;IAEJ;IAEA,qBACE,oBAACQ,iDACKJ;QACJD,WAAWL,sCAA0CK;QACrDM,KAAKP;;AAGX,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline {...props} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value, platform]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <WriteBarTypography\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useEnsuredControl","useExternRef","usePlatform","Platform","Headline","Title","WriteBarTypography","props","platform","IOS","level","weight","WriteBar","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","value","onChange","textareaRef","currentScrollHeight","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","div","ref","Component"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,KAAK,QAAQ,4BAA4B;AAgClD,IAAMC,qBAAqB,SAACC;IAC1B,IAAMC,WAAWN;IAEjB,IAAIM,aAAaL,SAASM,
|
|
1
|
+
{"version":3,"sources":["../../../src/components/WriteBar/WriteBar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, hasReactNode } from '@vkontakte/vkjs';\nimport { useEnsuredControl } from '../../hooks/useEnsuredControl';\nimport { useExternRef } from '../../hooks/useExternRef';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { Platform } from '../../lib/platform';\nimport { HasRef, HasRootRef } from '../../types';\nimport { Headline } from '../Typography/Headline/Headline';\nimport { Title } from '../Typography/Title/Title';\nimport { TypographyProps } from '../Typography/Typography';\nimport styles from './WriteBar.module.css';\n\nexport interface WriteBarProps\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n HasRootRef<HTMLDivElement>,\n HasRef<HTMLTextAreaElement> {\n /**\n * Содержимое, отображаемое слева от поля ввода.\n */\n before?: React.ReactNode;\n /**\n * Содержимое, отображаемое поверх поля ввода (актуально для iOS)\n */\n inlineAfter?: React.ReactNode;\n /**\n * Содержимое, отображаемое справа от поля ввода\n */\n after?: React.ReactNode;\n /**\n * Вызывается при смене высоты поля ввода\n */\n onHeightChange?: VoidFunction;\n /**\n * Добавляет тень вокруг поля ввода\n */\n shadow?: boolean;\n\n children?: never;\n}\n\nconst WriteBarTypography = (props: TypographyProps) => {\n const platform = usePlatform();\n\n if (platform === Platform.IOS) {\n return <Title {...props} level=\"3\" weight=\"3\" />;\n }\n\n return <Headline {...props} />;\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/WriteBar\n */\nexport const WriteBar = ({\n className,\n style,\n before,\n inlineAfter,\n after,\n getRootRef,\n getRef,\n onHeightChange,\n shadow = false,\n defaultValue,\n ...restProps\n}: WriteBarProps) => {\n const platform = usePlatform();\n\n const [value, onChange] = useEnsuredControl({\n defaultValue,\n ...restProps,\n });\n\n const textareaRef = useExternRef(getRef);\n const currentScrollHeight = React.useRef<number>();\n\n const resize = React.useCallback(() => {\n const textareaEl = textareaRef.current;\n if (!textareaEl) {\n return;\n }\n\n if (textareaEl.offsetParent) {\n textareaEl.style.height = '';\n textareaEl.style.height = `${textareaEl.scrollHeight}px`;\n\n if (textareaEl.scrollHeight !== currentScrollHeight.current && onHeightChange) {\n onHeightChange();\n currentScrollHeight.current = textareaEl.scrollHeight;\n }\n }\n }, [onHeightChange, textareaRef]);\n\n React.useEffect(resize, [resize, value, platform]);\n\n return (\n <div\n ref={getRootRef}\n className={classNames(\n styles['WriteBar'],\n platform === Platform.IOS && styles['WriteBar--ios'],\n shadow && styles['WriteBar--shadow'],\n className,\n )}\n style={style}\n >\n <div className={styles['WriteBar__form']}>\n {hasReactNode(before) && <div className={styles['WriteBar__before']}>{before}</div>}\n\n <div className={styles['WriteBar__formIn']}>\n <WriteBarTypography\n {...restProps}\n Component=\"textarea\"\n className={styles['WriteBar__textarea']}\n onChange={onChange}\n getRootRef={textareaRef}\n value={value}\n />\n {hasReactNode(inlineAfter) && (\n <div className={styles['WriteBar__inlineAfter']}>{inlineAfter}</div>\n )}\n </div>\n\n {hasReactNode(after) && <div className={styles['WriteBar__after']}>{after}</div>}\n </div>\n </div>\n );\n};\n"],"names":["React","classNames","hasReactNode","useEnsuredControl","useExternRef","usePlatform","Platform","Headline","Title","WriteBarTypography","props","platform","IOS","level","weight","WriteBar","className","style","before","inlineAfter","after","getRootRef","getRef","onHeightChange","shadow","defaultValue","restProps","value","onChange","textareaRef","currentScrollHeight","useRef","resize","useCallback","textareaEl","current","offsetParent","height","scrollHeight","useEffect","div","ref","Component"],"mappings":";;;;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,YAAY,QAAQ,kBAAkB;AAC3D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,YAAY,QAAQ,2BAA2B;AACxD,SAASC,WAAW,QAAQ,0BAA0B;AACtD,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,QAAQ,QAAQ,kCAAkC;AAC3D,SAASC,KAAK,QAAQ,4BAA4B;AAgClD,IAAMC,qBAAqB,SAACC;IAC1B,IAAMC,WAAWN;IAEjB,IAAIM,aAAaL,SAASM,GAAG,EAAE;QAC7B,qBAAO,oBAACJ,+CAAUE;YAAOG,OAAM;YAAIC,QAAO;;IAC5C;IAEA,qBAAO,oBAACP,UAAaG;AACvB;AAEA;;CAEC,GACD,OAAO,IAAMK,WAAW;QACtBC,mBAAAA,WACAC,eAAAA,OACAC,gBAAAA,QACAC,qBAAAA,aACAC,eAAAA,OACAC,oBAAAA,YACAC,gBAAAA,QACAC,wBAAAA,uCACAC,QAAAA,oCAAS,uBACTC,sBAAAA,cACGC;QAVHV;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,IAAMd,WAAWN;IAEjB,IAA0BF,sCAAAA,kBAAkB;QAC1CsB,cAAAA;OACGC,iBAFEC,QAAmBxB,uBAAZyB,WAAYzB;IAK1B,IAAM0B,cAAczB,aAAakB;IACjC,IAAMQ,sBAAsB9B,MAAM+B,MAAM;IAExC,IAAMC,SAAShC,MAAMiC,WAAW,CAAC;QAC/B,IAAMC,aAAaL,YAAYM,OAAO;QACtC,IAAI,CAACD,YAAY;YACf;QACF;QAEA,IAAIA,WAAWE,YAAY,EAAE;YAC3BF,WAAWjB,KAAK,CAACoB,MAAM,GAAG;YAC1BH,WAAWjB,KAAK,CAACoB,MAAM,GAAG,AAAC,GAA0B,OAAxBH,WAAWI,YAAY,EAAC;YAErD,IAAIJ,WAAWI,YAAY,KAAKR,oBAAoBK,OAAO,IAAIZ,gBAAgB;gBAC7EA;gBACAO,oBAAoBK,OAAO,GAAGD,WAAWI,YAAY;YACvD;QACF;IACF,GAAG;QAACf;QAAgBM;KAAY;IAEhC7B,MAAMuC,SAAS,CAACP,QAAQ;QAACA;QAAQL;QAAOhB;KAAS;IAEjD,qBACE,oBAAC6B;QACCC,KAAKpB;QACLL,WAAWf,2BAETU,aAAaL,SAASM,GAAG,yBACzBY,kCACAR;QAEFC,OAAOA;qBAEP,oBAACuB;QAAIxB,SAAS;OACXd,aAAagB,yBAAW,oBAACsB;QAAIxB,SAAS;OAA+BE,uBAEtE,oBAACsB;QAAIxB,SAAS;qBACZ,oBAACP,4DACKiB;QACJgB,WAAU;QACV1B,SAAS;QACTY,UAAUA;QACVP,YAAYQ;QACZF,OAAOA;SAERzB,aAAaiB,8BACZ,oBAACqB;QAAIxB,SAAS;OAAoCG,eAIrDjB,aAAakB,wBAAU,oBAACoB;QAAIxB,SAAS;OAA8BI;AAI5E,EAAE"}
|