@vkontakte/vkui 4.36.0 → 4.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +2 -2
- package/dist/cjs/components/View/View.js +2 -7
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/components/View/View.js +2 -7
- package/dist/components/View/View.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Link/Link.css +1 -1
- package/dist/cssm/components/View/View.js +2 -7
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/styles/components.css +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +1 -1
- package/src/components/FormStatus/Readme.md +4 -0
- package/src/components/Link/Link.css +2 -1
- package/src/components/View/Readme.md +5 -5
- package/src/components/View/View.tsx +2 -9
package/.cache/.stylelintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/home/runner/work/VKUI/VKUI/src/fonts/fonts.css":"1","/home/runner/work/VKUI/VKUI/src/styles/animations.css":"2","/home/runner/work/VKUI/VKUI/src/styles/bright_light.css":"3","/home/runner/work/VKUI/VKUI/src/styles/common.css":"4","/home/runner/work/VKUI/VKUI/src/styles/components.css":"5","/home/runner/work/VKUI/VKUI/src/styles/constants.css":"6","/home/runner/work/VKUI/VKUI/src/styles/space_gray.css":"7","/home/runner/work/VKUI/VKUI/src/styles/themes.css":"8","/home/runner/work/VKUI/VKUI/src/styles/unstable.css":"9","/home/runner/work/VKUI/VKUI/src/styles/vkcom_dark.css":"10","/home/runner/work/VKUI/VKUI/src/styles/vkcom_light.css":"11","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"12","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"13","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"14","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"15","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"16","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"17","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"18","/home/runner/work/VKUI/VKUI/src/components/BaseGallery/BaseGallery.css":"19","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"20","/home/runner/work/VKUI/VKUI/src/components/ButtonGroup/ButtonGroup.css":"21","/home/runner/work/VKUI/VKUI/src/components/Calendar/Calendar.css":"22","/home/runner/work/VKUI/VKUI/src/components/CalendarDay/CalendarDay.css":"23","/home/runner/work/VKUI/VKUI/src/components/CalendarDays/CalendarDays.css":"24","/home/runner/work/VKUI/VKUI/src/components/CalendarHeader/CalendarHeader.css":"25","/home/runner/work/VKUI/VKUI/src/components/CalendarRange/CalendarRange.css":"26","/home/runner/work/VKUI/VKUI/src/components/CalendarTime/CalendarTime.css":"27","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"28","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"29","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"30","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"31","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"32","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"33","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"34","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"35","/home/runner/work/VKUI/VKUI/src/components/ChipsInputBase/ChipsInputBase.css":"36","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"37","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"38","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"39","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"40","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"41","/home/runner/work/VKUI/VKUI/src/components/CustomSelectDropdown/CustomSelectDropdown.css":"42","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"43","/home/runner/work/VKUI/VKUI/src/components/DateInput/DateInput.css":"44","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"45","/home/runner/work/VKUI/VKUI/src/components/DateRangeInput/DateRangeInput.css":"46","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"47","/home/runner/work/VKUI/VKUI/src/components/Dropdown/Dropdown.css":"48","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"49","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"50","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"51","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"52","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"53","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"54","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"55","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"56","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"57","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"58","/home/runner/work/VKUI/VKUI/src/components/GridAvatar/GridAvatar.css":"59","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"60","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"61","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"62","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"63","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"64","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"65","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"66","/home/runner/work/VKUI/VKUI/src/components/InitialsAvatar/InitialsAvatar.css":"67","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"68","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLike.css":"69","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLikeDivider.css":"70","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"71","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"72","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"73","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"74","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"75","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"76","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"77","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"78","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"79","/home/runner/work/VKUI/VKUI/src/components/Pagination/Pagination.css":"80","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"81","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"82","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"83","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"84","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"85","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"86","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"87","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"88","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"89","/home/runner/work/VKUI/VKUI/src/components/Popper/Popper.css":"90","/home/runner/work/VKUI/VKUI/src/components/PopperArrow/PopperArrow.css":"91","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"92","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"93","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"94","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"95","/home/runner/work/VKUI/VKUI/src/components/RadioGroup/RadioGroup.css":"96","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"97","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"98","/home/runner/work/VKUI/VKUI/src/components/RichTooltip/RichTooltip.css":"99","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"100","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"101","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"102","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControl.css":"103","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"104","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"105","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"106","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"107","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"108","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"109","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"110","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"111","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"112","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"113","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"114","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"115","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"116","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"117","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"118","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"119","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"120","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"121","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"122","/home/runner/work/VKUI/VKUI/src/components/TextTooltip/TextTooltip.css":"123","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"124","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"125","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"126","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"127","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"128","/home/runner/work/VKUI/VKUI/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css":"129","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"130","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"131","/home/runner/work/VKUI/VKUI/src/components/Cell/CellCheckbox/CellCheckbox.css":"132","/home/runner/work/VKUI/VKUI/src/components/Cell/CellDragger/CellDragger.css":"133","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css":"134","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"135","/home/runner/work/VKUI/VKUI/src/components/Typography/Footnote/Footnote.css":"136","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"137","/home/runner/work/VKUI/VKUI/src/components/Typography/Paragraph/Paragraph.css":"138","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"139","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"140","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"141"},{"size":214,"mtime":1661498350286,"hashOfConfig":"142"},{"size":205,"mtime":1661498350290,"hashOfConfig":"142"},{"size":9949,"mtime":1661498350290,"hashOfConfig":"142"},{"size":706,"mtime":1661498350290,"hashOfConfig":"142"},{"size":6989,"mtime":1661498350290,"hashOfConfig":"142"},{"size":2498,"mtime":1661498350290,"hashOfConfig":"142"},{"size":10057,"mtime":1661498350290,"hashOfConfig":"142"},{"size":895,"mtime":1661498350290,"hashOfConfig":"142"},{"size":277,"mtime":1661498350290,"hashOfConfig":"142"},{"size":10147,"mtime":1661498350290,"hashOfConfig":"142"},{"size":9990,"mtime":1661498350290,"hashOfConfig":"142"},{"size":2125,"mtime":1661498349926,"hashOfConfig":"142"},{"size":5240,"mtime":1661498350098,"hashOfConfig":"142"},{"size":5141,"mtime":1661498350098,"hashOfConfig":"142"},{"size":343,"mtime":1661498350098,"hashOfConfig":"142"},{"size":3547,"mtime":1661498350102,"hashOfConfig":"142"},{"size":326,"mtime":1661498350102,"hashOfConfig":"142"},{"size":2814,"mtime":1661498350102,"hashOfConfig":"142"},{"size":1165,"mtime":1661498350102,"hashOfConfig":"142"},{"size":20198,"mtime":1661498350102,"hashOfConfig":"142"},{"size":2225,"mtime":1661498350110,"hashOfConfig":"142"},{"size":594,"mtime":1661498350202,"hashOfConfig":"142"},{"size":1769,"mtime":1661498350202,"hashOfConfig":"142"},{"size":555,"mtime":1661498350202,"hashOfConfig":"142"},{"size":642,"mtime":1661498350202,"hashOfConfig":"142"},{"size":535,"mtime":1661498350202,"hashOfConfig":"142"},{"size":259,"mtime":1661498350202,"hashOfConfig":"142"},{"size":1631,"mtime":1661498350202,"hashOfConfig":"142"},{"size":1331,"mtime":1661498350202,"hashOfConfig":"142"},{"size":846,"mtime":1661498350202,"hashOfConfig":"142"},{"size":964,"mtime":1661498350206,"hashOfConfig":"142"},{"size":963,"mtime":1661498350206,"hashOfConfig":"142"},{"size":2288,"mtime":1661498350210,"hashOfConfig":"142"},{"size":1225,"mtime":1661498350214,"hashOfConfig":"142"},{"size":35,"mtime":1661498350214,"hashOfConfig":"142"},{"size":1348,"mtime":1661498350214,"hashOfConfig":"142"},{"size":267,"mtime":1661498350214,"hashOfConfig":"142"},{"size":781,"mtime":1661498350218,"hashOfConfig":"142"},{"size":5247,"mtime":1661498350218,"hashOfConfig":"142"},{"size":1610,"mtime":1661498350218,"hashOfConfig":"142"},{"size":367,"mtime":1661498350218,"hashOfConfig":"142"},{"size":897,"mtime":1661498350218,"hashOfConfig":"142"},{"size":1473,"mtime":1661498350218,"hashOfConfig":"142"},{"size":372,"mtime":1661498350222,"hashOfConfig":"142"},{"size":357,"mtime":1661498350222,"hashOfConfig":"142"},{"size":317,"mtime":1661498350222,"hashOfConfig":"142"},{"size":125,"mtime":1661498350222,"hashOfConfig":"142"},{"size":580,"mtime":1661498350222,"hashOfConfig":"142"},{"size":41,"mtime":1661498350222,"hashOfConfig":"142"},{"size":1834,"mtime":1661498350222,"hashOfConfig":"142"},{"size":1462,"mtime":1661498350222,"hashOfConfig":"142"},{"size":176,"mtime":1661498350226,"hashOfConfig":"142"},{"size":4385,"mtime":1661498350226,"hashOfConfig":"142"},{"size":1893,"mtime":1661498350226,"hashOfConfig":"142"},{"size":227,"mtime":1661498350226,"hashOfConfig":"142"},{"size":1264,"mtime":1661498350226,"hashOfConfig":"142"},{"size":936,"mtime":1661498350226,"hashOfConfig":"142"},{"size":673,"mtime":1661498350226,"hashOfConfig":"142"},{"size":909,"mtime":1661498350226,"hashOfConfig":"142"},{"size":1985,"mtime":1661498350226,"hashOfConfig":"142"},{"size":2559,"mtime":1661498350226,"hashOfConfig":"142"},{"size":1264,"mtime":1661498350230,"hashOfConfig":"142"},{"size":1380,"mtime":1661498350230,"hashOfConfig":"142"},{"size":1681,"mtime":1661498350230,"hashOfConfig":"142"},{"size":2491,"mtime":1661498350230,"hashOfConfig":"142"},{"size":276,"mtime":1661498350230,"hashOfConfig":"142"},{"size":1308,"mtime":1661498350234,"hashOfConfig":"142"},{"size":1371,"mtime":1661498350234,"hashOfConfig":"142"},{"size":443,"mtime":1661498350234,"hashOfConfig":"142"},{"size":100,"mtime":1661498350234,"hashOfConfig":"142"},{"size":965,"mtime":1661498350234,"hashOfConfig":"142"},{"size":10,"mtime":1661498350234,"hashOfConfig":"142"},{"size":1476,"mtime":1661498350234,"hashOfConfig":"142"},{"size":975,"mtime":1661498350234,"hashOfConfig":"142"},{"size":2067,"mtime":1661498350238,"hashOfConfig":"142"},{"size":833,"mtime":1661498350238,"hashOfConfig":"142"},{"size":3211,"mtime":1661498350238,"hashOfConfig":"142"},{"size":513,"mtime":1661498350238,"hashOfConfig":"142"},{"size":1403,"mtime":1661498350238,"hashOfConfig":"142"},{"size":1379,"mtime":1661498350242,"hashOfConfig":"142"},{"size":2731,"mtime":1661498350242,"hashOfConfig":"142"},{"size":5276,"mtime":1661498350242,"hashOfConfig":"142"},{"size":154,"mtime":1661498350242,"hashOfConfig":"142"},{"size":1524,"mtime":1661498350242,"hashOfConfig":"142"},{"size":1834,"mtime":1661498350242,"hashOfConfig":"142"},{"size":2323,"mtime":1661498350242,"hashOfConfig":"142"},{"size":866,"mtime":1661498350246,"hashOfConfig":"142"},{"size":455,"mtime":1661498350246,"hashOfConfig":"142"},{"size":1714,"mtime":1661498350246,"hashOfConfig":"142"},{"size":963,"mtime":1661498350246,"hashOfConfig":"142"},{"size":616,"mtime":1661498350246,"hashOfConfig":"142"},{"size":283,"mtime":1661498350246,"hashOfConfig":"142"},{"size":937,"mtime":1661498350246,"hashOfConfig":"142"},{"size":2083,"mtime":1661498350246,"hashOfConfig":"142"},{"size":1844,"mtime":1661498350246,"hashOfConfig":"142"},{"size":202,"mtime":1661498350250,"hashOfConfig":"142"},{"size":2530,"mtime":1661498350250,"hashOfConfig":"142"},{"size":3121,"mtime":1661498350250,"hashOfConfig":"142"},{"size":1341,"mtime":1661498350250,"hashOfConfig":"142"},{"size":2592,"mtime":1661498350250,"hashOfConfig":"142"},{"size":1254,"mtime":1661498350250,"hashOfConfig":"142"},{"size":9040,"mtime":1661498350250,"hashOfConfig":"142"},{"size":1116,"mtime":1661498350254,"hashOfConfig":"142"},{"size":1424,"mtime":1661498350254,"hashOfConfig":"142"},{"size":857,"mtime":1661498350254,"hashOfConfig":"142"},{"size":3240,"mtime":1661498350254,"hashOfConfig":"142"},{"size":2533,"mtime":1661498350258,"hashOfConfig":"142"},{"size":1683,"mtime":1661498350258,"hashOfConfig":"142"},{"size":1686,"mtime":1661498350258,"hashOfConfig":"142"},{"size":3053,"mtime":1661498350258,"hashOfConfig":"142"},{"size":869,"mtime":1661498350258,"hashOfConfig":"142"},{"size":475,"mtime":1661498350258,"hashOfConfig":"142"},{"size":453,"mtime":1661498350258,"hashOfConfig":"142"},{"size":847,"mtime":1661498350258,"hashOfConfig":"142"},{"size":609,"mtime":1661498350258,"hashOfConfig":"142"},{"size":1976,"mtime":1661498350258,"hashOfConfig":"142"},{"size":4496,"mtime":1661498350262,"hashOfConfig":"142"},{"size":956,"mtime":1661498350262,"hashOfConfig":"142"},{"size":2307,"mtime":1661498350262,"hashOfConfig":"142"},{"size":1117,"mtime":1661498350262,"hashOfConfig":"142"},{"size":5742,"mtime":1661498350266,"hashOfConfig":"142"},{"size":2197,"mtime":1661498350266,"hashOfConfig":"142"},{"size":1300,"mtime":1661498350266,"hashOfConfig":"142"},{"size":1138,"mtime":1661498350266,"hashOfConfig":"142"},{"size":1475,"mtime":1661498350266,"hashOfConfig":"142"},{"size":2111,"mtime":1661498350274,"hashOfConfig":"142"},{"size":1674,"mtime":1661498350278,"hashOfConfig":"142"},{"size":3097,"mtime":1661498350278,"hashOfConfig":"142"},{"size":167,"mtime":1661498350278,"hashOfConfig":"142"},{"size":1722,"mtime":1661498350282,"hashOfConfig":"142"},{"size":1229,"mtime":1661498350282,"hashOfConfig":"142"},{"size":379,"mtime":1661498350206,"hashOfConfig":"142"},{"size":105,"mtime":1661498350206,"hashOfConfig":"142"},{"size":627,"mtime":1661498350254,"hashOfConfig":"142"},{"size":3303,"mtime":1661498350270,"hashOfConfig":"142"},{"size":699,"mtime":1661498350270,"hashOfConfig":"142"},{"size":1676,"mtime":1661498350270,"hashOfConfig":"142"},{"size":419,"mtime":1661498350270,"hashOfConfig":"142"},{"size":980,"mtime":1661498350274,"hashOfConfig":"142"},{"size":1086,"mtime":1661498350274,"hashOfConfig":"142"},{"size":1346,"mtime":1661498350274,"hashOfConfig":"142"},"184us0l"]
|
|
1
|
+
[{"/home/runner/work/VKUI/VKUI/src/fonts/fonts.css":"1","/home/runner/work/VKUI/VKUI/src/styles/animations.css":"2","/home/runner/work/VKUI/VKUI/src/styles/bright_light.css":"3","/home/runner/work/VKUI/VKUI/src/styles/common.css":"4","/home/runner/work/VKUI/VKUI/src/styles/components.css":"5","/home/runner/work/VKUI/VKUI/src/styles/constants.css":"6","/home/runner/work/VKUI/VKUI/src/styles/space_gray.css":"7","/home/runner/work/VKUI/VKUI/src/styles/themes.css":"8","/home/runner/work/VKUI/VKUI/src/styles/unstable.css":"9","/home/runner/work/VKUI/VKUI/src/styles/vkcom_dark.css":"10","/home/runner/work/VKUI/VKUI/src/styles/vkcom_light.css":"11","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"12","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"13","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"14","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"15","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"16","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"17","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"18","/home/runner/work/VKUI/VKUI/src/components/BaseGallery/BaseGallery.css":"19","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"20","/home/runner/work/VKUI/VKUI/src/components/ButtonGroup/ButtonGroup.css":"21","/home/runner/work/VKUI/VKUI/src/components/Calendar/Calendar.css":"22","/home/runner/work/VKUI/VKUI/src/components/CalendarDay/CalendarDay.css":"23","/home/runner/work/VKUI/VKUI/src/components/CalendarDays/CalendarDays.css":"24","/home/runner/work/VKUI/VKUI/src/components/CalendarHeader/CalendarHeader.css":"25","/home/runner/work/VKUI/VKUI/src/components/CalendarRange/CalendarRange.css":"26","/home/runner/work/VKUI/VKUI/src/components/CalendarTime/CalendarTime.css":"27","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"28","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"29","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"30","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"31","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"32","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"33","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"34","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"35","/home/runner/work/VKUI/VKUI/src/components/ChipsInputBase/ChipsInputBase.css":"36","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"37","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"38","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"39","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"40","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"41","/home/runner/work/VKUI/VKUI/src/components/CustomSelectDropdown/CustomSelectDropdown.css":"42","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"43","/home/runner/work/VKUI/VKUI/src/components/DateInput/DateInput.css":"44","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"45","/home/runner/work/VKUI/VKUI/src/components/DateRangeInput/DateRangeInput.css":"46","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"47","/home/runner/work/VKUI/VKUI/src/components/Dropdown/Dropdown.css":"48","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"49","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"50","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"51","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"52","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"53","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"54","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"55","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"56","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"57","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"58","/home/runner/work/VKUI/VKUI/src/components/GridAvatar/GridAvatar.css":"59","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"60","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"61","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"62","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"63","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"64","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"65","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"66","/home/runner/work/VKUI/VKUI/src/components/InitialsAvatar/InitialsAvatar.css":"67","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"68","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLike.css":"69","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLikeDivider.css":"70","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"71","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"72","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"73","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"74","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"75","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"76","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"77","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"78","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"79","/home/runner/work/VKUI/VKUI/src/components/Pagination/Pagination.css":"80","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"81","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"82","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"83","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"84","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"85","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"86","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"87","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"88","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"89","/home/runner/work/VKUI/VKUI/src/components/Popper/Popper.css":"90","/home/runner/work/VKUI/VKUI/src/components/PopperArrow/PopperArrow.css":"91","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"92","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"93","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"94","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"95","/home/runner/work/VKUI/VKUI/src/components/RadioGroup/RadioGroup.css":"96","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"97","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"98","/home/runner/work/VKUI/VKUI/src/components/RichTooltip/RichTooltip.css":"99","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"100","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"101","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"102","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControl.css":"103","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"104","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"105","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"106","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"107","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"108","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"109","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"110","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"111","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"112","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"113","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"114","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"115","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"116","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"117","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"118","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"119","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"120","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"121","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"122","/home/runner/work/VKUI/VKUI/src/components/TextTooltip/TextTooltip.css":"123","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"124","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"125","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"126","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"127","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"128","/home/runner/work/VKUI/VKUI/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css":"129","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"130","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"131","/home/runner/work/VKUI/VKUI/src/components/Cell/CellCheckbox/CellCheckbox.css":"132","/home/runner/work/VKUI/VKUI/src/components/Cell/CellDragger/CellDragger.css":"133","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css":"134","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"135","/home/runner/work/VKUI/VKUI/src/components/Typography/Footnote/Footnote.css":"136","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"137","/home/runner/work/VKUI/VKUI/src/components/Typography/Paragraph/Paragraph.css":"138","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"139","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"140","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"141"},{"size":214,"mtime":1661956890363,"hashOfConfig":"142"},{"size":205,"mtime":1661956890367,"hashOfConfig":"142"},{"size":9949,"mtime":1661956890367,"hashOfConfig":"142"},{"size":706,"mtime":1661956890367,"hashOfConfig":"142"},{"size":6989,"mtime":1661956890367,"hashOfConfig":"142"},{"size":2498,"mtime":1661956890367,"hashOfConfig":"142"},{"size":10057,"mtime":1661956890367,"hashOfConfig":"142"},{"size":895,"mtime":1661956890367,"hashOfConfig":"142"},{"size":277,"mtime":1661956890367,"hashOfConfig":"142"},{"size":10147,"mtime":1661956890367,"hashOfConfig":"142"},{"size":9990,"mtime":1661956890367,"hashOfConfig":"142"},{"size":2125,"mtime":1661956889471,"hashOfConfig":"142"},{"size":5240,"mtime":1661956890299,"hashOfConfig":"142"},{"size":5141,"mtime":1661956890299,"hashOfConfig":"142"},{"size":343,"mtime":1661956890299,"hashOfConfig":"142"},{"size":3547,"mtime":1661956890299,"hashOfConfig":"142"},{"size":326,"mtime":1661956890303,"hashOfConfig":"142"},{"size":2814,"mtime":1661956890303,"hashOfConfig":"142"},{"size":1165,"mtime":1661956890303,"hashOfConfig":"142"},{"size":20198,"mtime":1661956890303,"hashOfConfig":"142"},{"size":2225,"mtime":1661956890303,"hashOfConfig":"142"},{"size":594,"mtime":1661956890311,"hashOfConfig":"142"},{"size":1769,"mtime":1661956890315,"hashOfConfig":"142"},{"size":555,"mtime":1661956890315,"hashOfConfig":"142"},{"size":642,"mtime":1661956890315,"hashOfConfig":"142"},{"size":535,"mtime":1661956890315,"hashOfConfig":"142"},{"size":259,"mtime":1661956890315,"hashOfConfig":"142"},{"size":1631,"mtime":1661956890315,"hashOfConfig":"142"},{"size":1331,"mtime":1661956890315,"hashOfConfig":"142"},{"size":846,"mtime":1661956890315,"hashOfConfig":"142"},{"size":964,"mtime":1661956890315,"hashOfConfig":"142"},{"size":963,"mtime":1661956890315,"hashOfConfig":"142"},{"size":2288,"mtime":1661956890319,"hashOfConfig":"142"},{"size":1225,"mtime":1661956890319,"hashOfConfig":"142"},{"size":35,"mtime":1661956890319,"hashOfConfig":"142"},{"size":1348,"mtime":1661956890319,"hashOfConfig":"142"},{"size":267,"mtime":1661956890319,"hashOfConfig":"142"},{"size":781,"mtime":1661956890319,"hashOfConfig":"142"},{"size":5247,"mtime":1661956890323,"hashOfConfig":"142"},{"size":1610,"mtime":1661956890323,"hashOfConfig":"142"},{"size":367,"mtime":1661956890323,"hashOfConfig":"142"},{"size":897,"mtime":1661956890323,"hashOfConfig":"142"},{"size":1473,"mtime":1661956890323,"hashOfConfig":"142"},{"size":372,"mtime":1661956890323,"hashOfConfig":"142"},{"size":357,"mtime":1661956890323,"hashOfConfig":"142"},{"size":317,"mtime":1661956890327,"hashOfConfig":"142"},{"size":125,"mtime":1661956890327,"hashOfConfig":"142"},{"size":580,"mtime":1661956890327,"hashOfConfig":"142"},{"size":41,"mtime":1661956890327,"hashOfConfig":"142"},{"size":1834,"mtime":1661956890327,"hashOfConfig":"142"},{"size":1462,"mtime":1661956890327,"hashOfConfig":"142"},{"size":176,"mtime":1661956890327,"hashOfConfig":"142"},{"size":4385,"mtime":1661956890327,"hashOfConfig":"142"},{"size":1893,"mtime":1661956890327,"hashOfConfig":"142"},{"size":227,"mtime":1661956890327,"hashOfConfig":"142"},{"size":1264,"mtime":1661956890327,"hashOfConfig":"142"},{"size":936,"mtime":1661956890327,"hashOfConfig":"142"},{"size":673,"mtime":1661956890327,"hashOfConfig":"142"},{"size":909,"mtime":1661956890327,"hashOfConfig":"142"},{"size":1985,"mtime":1661956890331,"hashOfConfig":"142"},{"size":2559,"mtime":1661956890331,"hashOfConfig":"142"},{"size":1264,"mtime":1661956890331,"hashOfConfig":"142"},{"size":1380,"mtime":1661956890331,"hashOfConfig":"142"},{"size":1681,"mtime":1661956890331,"hashOfConfig":"142"},{"size":2491,"mtime":1661956890331,"hashOfConfig":"142"},{"size":276,"mtime":1661956890331,"hashOfConfig":"142"},{"size":1308,"mtime":1661956890331,"hashOfConfig":"142"},{"size":1371,"mtime":1661956890335,"hashOfConfig":"142"},{"size":443,"mtime":1661956890335,"hashOfConfig":"142"},{"size":100,"mtime":1661956890335,"hashOfConfig":"142"},{"size":1014,"mtime":1661956890335,"hashOfConfig":"142"},{"size":10,"mtime":1661956890335,"hashOfConfig":"142"},{"size":1476,"mtime":1661956890335,"hashOfConfig":"142"},{"size":975,"mtime":1661956890335,"hashOfConfig":"142"},{"size":2067,"mtime":1661956890335,"hashOfConfig":"142"},{"size":833,"mtime":1661956890335,"hashOfConfig":"142"},{"size":3211,"mtime":1661956890335,"hashOfConfig":"142"},{"size":513,"mtime":1661956890339,"hashOfConfig":"142"},{"size":1403,"mtime":1661956890339,"hashOfConfig":"142"},{"size":1379,"mtime":1661956890339,"hashOfConfig":"142"},{"size":2731,"mtime":1661956890339,"hashOfConfig":"142"},{"size":5276,"mtime":1661956890339,"hashOfConfig":"142"},{"size":154,"mtime":1661956890339,"hashOfConfig":"142"},{"size":1524,"mtime":1661956890339,"hashOfConfig":"142"},{"size":1834,"mtime":1661956890343,"hashOfConfig":"142"},{"size":2323,"mtime":1661956890343,"hashOfConfig":"142"},{"size":866,"mtime":1661956890343,"hashOfConfig":"142"},{"size":455,"mtime":1661956890343,"hashOfConfig":"142"},{"size":1714,"mtime":1661956890343,"hashOfConfig":"142"},{"size":963,"mtime":1661956890343,"hashOfConfig":"142"},{"size":616,"mtime":1661956890343,"hashOfConfig":"142"},{"size":283,"mtime":1661956890343,"hashOfConfig":"142"},{"size":937,"mtime":1661956890343,"hashOfConfig":"142"},{"size":2083,"mtime":1661956890343,"hashOfConfig":"142"},{"size":1844,"mtime":1661956890343,"hashOfConfig":"142"},{"size":202,"mtime":1661956890343,"hashOfConfig":"142"},{"size":2530,"mtime":1661956890347,"hashOfConfig":"142"},{"size":3121,"mtime":1661956890347,"hashOfConfig":"142"},{"size":1341,"mtime":1661956890347,"hashOfConfig":"142"},{"size":2592,"mtime":1661956890347,"hashOfConfig":"142"},{"size":1254,"mtime":1661956890347,"hashOfConfig":"142"},{"size":9040,"mtime":1661956890347,"hashOfConfig":"142"},{"size":1116,"mtime":1661956890347,"hashOfConfig":"142"},{"size":1424,"mtime":1661956890347,"hashOfConfig":"142"},{"size":857,"mtime":1661956890351,"hashOfConfig":"142"},{"size":3240,"mtime":1661956890351,"hashOfConfig":"142"},{"size":2533,"mtime":1661956890351,"hashOfConfig":"142"},{"size":1683,"mtime":1661956890351,"hashOfConfig":"142"},{"size":1686,"mtime":1661956890351,"hashOfConfig":"142"},{"size":3053,"mtime":1661956890351,"hashOfConfig":"142"},{"size":869,"mtime":1661956890351,"hashOfConfig":"142"},{"size":475,"mtime":1661956890351,"hashOfConfig":"142"},{"size":453,"mtime":1661956890351,"hashOfConfig":"142"},{"size":847,"mtime":1661956890351,"hashOfConfig":"142"},{"size":609,"mtime":1661956890351,"hashOfConfig":"142"},{"size":1976,"mtime":1661956890351,"hashOfConfig":"142"},{"size":4496,"mtime":1661956890355,"hashOfConfig":"142"},{"size":956,"mtime":1661956890355,"hashOfConfig":"142"},{"size":2307,"mtime":1661956890355,"hashOfConfig":"142"},{"size":1117,"mtime":1661956890355,"hashOfConfig":"142"},{"size":5742,"mtime":1661956890355,"hashOfConfig":"142"},{"size":2197,"mtime":1661956890355,"hashOfConfig":"142"},{"size":1300,"mtime":1661956890355,"hashOfConfig":"142"},{"size":1138,"mtime":1661956890355,"hashOfConfig":"142"},{"size":1475,"mtime":1661956890355,"hashOfConfig":"142"},{"size":2111,"mtime":1661956890363,"hashOfConfig":"142"},{"size":1674,"mtime":1661956890363,"hashOfConfig":"142"},{"size":3097,"mtime":1661956890363,"hashOfConfig":"142"},{"size":167,"mtime":1661956890363,"hashOfConfig":"142"},{"size":1722,"mtime":1661956890363,"hashOfConfig":"142"},{"size":1229,"mtime":1661956890363,"hashOfConfig":"142"},{"size":379,"mtime":1661956890315,"hashOfConfig":"142"},{"size":105,"mtime":1661956890315,"hashOfConfig":"142"},{"size":627,"mtime":1661956890347,"hashOfConfig":"142"},{"size":3303,"mtime":1661956890359,"hashOfConfig":"142"},{"size":699,"mtime":1661956890359,"hashOfConfig":"142"},{"size":1676,"mtime":1661956890359,"hashOfConfig":"142"},{"size":419,"mtime":1661956890359,"hashOfConfig":"142"},{"size":980,"mtime":1661956890359,"hashOfConfig":"142"},{"size":1086,"mtime":1661956890359,"hashOfConfig":"142"},{"size":1346,"mtime":1661956890359,"hashOfConfig":"142"},"184us0l"]
|
package/.cache/.tsbuildinfo
CHANGED
|
@@ -914,7 +914,7 @@
|
|
|
914
914
|
"signature": "140f114921466842827a6e6b9bb2e685660265f32704824842e781cc6db89d6a"
|
|
915
915
|
},
|
|
916
916
|
"../src/components/View/View.tsx": {
|
|
917
|
-
"version": "
|
|
917
|
+
"version": "1e1df8c7fc6cf67b761dc30eb8ed0626bb912a95e4dc1088706e7be10469ea14",
|
|
918
918
|
"signature": "a868ff1f7f6fa91df96a926fd2f1fb27d5c18b85191343757e5e8ebf4d683e56"
|
|
919
919
|
},
|
|
920
920
|
"../src/components/Tooltip/TooltipContainer.tsx": {
|
|
@@ -11226,7 +11226,7 @@
|
|
|
11226
11226
|
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
|
|
11227
11227
|
},
|
|
11228
11228
|
"../src/components/View/View.test.tsx": {
|
|
11229
|
-
"version": "
|
|
11229
|
+
"version": "95d5862361f49c635db5880d692b82540b3517bcd13e42287e1c76a429c98e90",
|
|
11230
11230
|
"signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
|
|
11231
11231
|
},
|
|
11232
11232
|
"../src/components/VisuallyHiddenInput/VisuallyHiddenInput.test.tsx": {
|
|
@@ -189,8 +189,6 @@ var View = function View(_ref) {
|
|
|
189
189
|
var prevSwipeBackResult = (0, _usePrevious.usePrevious)(swipeBackResult);
|
|
190
190
|
var prevSwipeBackPrevPanel = (0, _usePrevious.usePrevious)(swipeBackPrevPanel);
|
|
191
191
|
var prevOnTransition = (0, _usePrevious.usePrevious)(onTransition);
|
|
192
|
-
var hasPopout = !!popout;
|
|
193
|
-
var hasModal = !!modal;
|
|
194
192
|
var panels = React.Children.toArray(children).filter(function (panel) {
|
|
195
193
|
var panelId = (0, _getNavId.getNavId)(panel.props, warn);
|
|
196
194
|
return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
|
|
@@ -368,9 +366,6 @@ var View = function View(_ref) {
|
|
|
368
366
|
React.useEffect(function () {
|
|
369
367
|
popout && (0, _dom.blurActiveElement)(document);
|
|
370
368
|
}, [document, popout]);
|
|
371
|
-
React.useEffect(function () {
|
|
372
|
-
modal && (0, _dom.blurActiveElement)(document);
|
|
373
|
-
}, [document, modal]);
|
|
374
369
|
React.useEffect(function () {
|
|
375
370
|
// Нужен переход
|
|
376
371
|
if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
|
|
@@ -486,9 +481,9 @@ var View = function View(_ref) {
|
|
|
486
481
|
}, (0, _jsxRuntime.createScopedElement)(_NavTransitionContext.NavTransitionProvider, {
|
|
487
482
|
entering: panelId === nextPanel || panelId === swipeBackNextPanel
|
|
488
483
|
}, panel)));
|
|
489
|
-
})), (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, null,
|
|
484
|
+
})), (0, _jsxRuntime.createScopedElement)(_AppRootPortal.AppRootPortal, null, !!popout && (0, _jsxRuntime.createScopedElement)("div", {
|
|
490
485
|
vkuiClass: "View__popout"
|
|
491
|
-
}, popout),
|
|
486
|
+
}, popout), !!modal && (0, _jsxRuntime.createScopedElement)("div", {
|
|
492
487
|
vkuiClass: "View__modal"
|
|
493
488
|
}, modal)));
|
|
494
489
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/View/View.tsx"],"names":["SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","React","useRef","id","afterTransition","noop","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","hasPopout","hasModal","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","animationEvent","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n modal && blurActiveElement(document);\n }, [document, modal]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/View/View.tsx"],"names":["SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","React","useRef","id","afterTransition","noop","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","IOS","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","canUseDOM","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","animationEvent","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|
|
@@ -153,8 +153,6 @@ export var View = function View(_ref) {
|
|
|
153
153
|
var prevSwipeBackResult = usePrevious(swipeBackResult);
|
|
154
154
|
var prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);
|
|
155
155
|
var prevOnTransition = usePrevious(onTransition);
|
|
156
|
-
var hasPopout = !!popout;
|
|
157
|
-
var hasModal = !!modal;
|
|
158
156
|
var panels = React.Children.toArray(children).filter(function (panel) {
|
|
159
157
|
var panelId = getNavId(panel.props, warn);
|
|
160
158
|
return panelId !== undefined && visiblePanels.includes(panelId) || panelId === swipeBackPrevPanel || panelId === swipeBackNextPanel;
|
|
@@ -332,9 +330,6 @@ export var View = function View(_ref) {
|
|
|
332
330
|
React.useEffect(function () {
|
|
333
331
|
popout && blurActiveElement(document);
|
|
334
332
|
}, [document, popout]);
|
|
335
|
-
React.useEffect(function () {
|
|
336
|
-
modal && blurActiveElement(document);
|
|
337
|
-
}, [document, modal]);
|
|
338
333
|
React.useEffect(function () {
|
|
339
334
|
// Нужен переход
|
|
340
335
|
if (prevActivePanel && prevActivePanel !== activePanelProp && !prevSwipingBack && !prevBrowserSwipe) {
|
|
@@ -450,9 +445,9 @@ export var View = function View(_ref) {
|
|
|
450
445
|
}, createScopedElement(NavTransitionProvider, {
|
|
451
446
|
entering: panelId === nextPanel || panelId === swipeBackNextPanel
|
|
452
447
|
}, panel)));
|
|
453
|
-
})), createScopedElement(AppRootPortal, null,
|
|
448
|
+
})), createScopedElement(AppRootPortal, null, !!popout && createScopedElement("div", {
|
|
454
449
|
vkuiClass: "View__popout"
|
|
455
|
-
}, popout),
|
|
450
|
+
}, popout), !!modal && createScopedElement("div", {
|
|
456
451
|
vkuiClass: "View__modal"
|
|
457
452
|
}, modal)));
|
|
458
453
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","hasPopout","hasModal","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const hasPopout = !!popout;\n const hasModal = !!modal;\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n modal && blurActiveElement(document);\n }, [document, modal]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {hasPopout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {hasModal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/View/View.tsx"],"names":["React","classNames","animationEvent","IOS","Touch","useConfigProvider","useSplitCol","AppRootPortal","canUseDOM","useDOM","blurActiveElement","useScroll","NavTransitionProvider","getNavId","warnOnce","usePlatform","swipeBackExcluded","useWaitTransitionFinish","useTimeout","usePrevious","useIsomorphicLayoutEffect","noop","SwipeBackResults","scrollsCache","warn","View","popout","modal","activePanelProp","activePanel","history","nav","onTransition","onSwipeBack","onSwipeBackStart","onSwipeBackCancelProp","onSwipeBackCancel","children","restProps","process","env","NODE_ENV","scrolls","useRef","id","afterTransition","useEffect","current","panelNodes","window","document","scroll","configProvider","splitCol","platform","useState","animated","setAnimated","visiblePanels","setVisiblePanels","setActivePanel","undefined","isBack","setIsBack","prevPanel","setPrevPanel","nextPanel","setNextPanel","swipingBack","setSwipingBack","swipeBackStartX","setSwipeBackStartX","swipeBackShift","setSwipeBackShift","swipeBackNextPanel","setSwipeBackNextPanel","swipeBackPrevPanel","setSwipeBackPrevPanel","swipeBackResult","setSwipeBackResult","browserSwipe","setBrowserSwipe","prevActivePanel","prevSwipingBack","prevBrowserSwipe","prevSwipeBackResult","prevSwipeBackPrevPanel","prevOnTransition","panels","Children","toArray","filter","panel","panelId","props","includes","disableAnimation","transitionMotionEnabled","animate","pickPanel","flushTransition","useCallback","isBackTransition","scrollTo","from","to","transitionEndHandler","e","animationName","Boolean","waitTransitionFinish","animationFinishTimeout","onSwipeBackSuccess","swipingBackTransitionEndHandler","propertyName","target","fail","success","onMoveX","isWebView","startX","innerWidth","length","getScroll","y","slice","shiftX","onEnd","speed","duration","calcPanelSwipeStyles","isPrev","isNext","prevPanelTranslate","nextPanelTranslate","prevPanelShadow","boxShadow","transform","WebkitTransform","firstLayerId","map","find","supported","set","isTransitionTarget","compensateScroll","el","marginTop"],"mappings":"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","sourcesContent":["import * as React from \"react\";\nimport { classNames } from \"../../lib/classNames\";\nimport { animationEvent } from \"../../lib/supportEvents\";\nimport { IOS } from \"../../lib/platform\";\nimport { Touch, TouchEvent } from \"../Touch/Touch\";\nimport { useConfigProvider } from \"../ConfigProvider/ConfigProviderContext\";\nimport { useSplitCol } from \"../SplitCol/SplitCol\";\nimport { AppRootPortal } from \"../AppRoot/AppRootPortal\";\nimport { canUseDOM, useDOM, blurActiveElement } from \"../../lib/dom\";\nimport { useScroll } from \"../AppRoot/ScrollContext\";\nimport { NavTransitionProvider } from \"../NavTransitionContext/NavTransitionContext\";\nimport { getNavId, NavIdProps } from \"../../lib/getNavId\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport { usePlatform } from \"../../hooks/usePlatform\";\nimport { swipeBackExcluded } from \"./utils\";\nimport { useWaitTransitionFinish } from \"../../hooks/useWaitTransitionFinish\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { usePrevious } from \"../../hooks/usePrevious\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport { noop } from \"../../lib/utils\";\nimport \"./View.css\";\n\nenum SwipeBackResults {\n fail = 1,\n success,\n}\n\ninterface Scrolls {\n [index: string]: number | undefined;\n}\n\ninterface ViewsScrolls {\n [index: string]: Scrolls;\n}\n\nexport let scrollsCache: ViewsScrolls = {};\n\nexport interface ViewProps\n extends React.HTMLAttributes<HTMLElement>,\n NavIdProps {\n activePanel: string;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `Alert`, `ActionSheet` и `ScreenSpinner`.\n */\n popout?: React.ReactNode;\n /**\n * @deprecated будет удалено в 5.0.0. Используйте одноименное свойство у `SplitLayout`.\n *\n * Свойство для отрисовки `ModalRoot`.\n */\n modal?: React.ReactNode;\n onTransition?(params: { isBack: boolean; from: string; to: string }): void;\n /**\n * callback свайпа назад\n */\n onSwipeBack?(): void;\n /**\n * callback начала анимации свайпа назад.\n */\n onSwipeBackStart?(): void;\n /**\n * callback завершения анимации отмененного пользователем свайпа\n */\n onSwipeBackCancel?(): void;\n history?: string[];\n}\n\nexport interface ViewState {\n animated: boolean;\n\n visiblePanels: string[];\n activePanel: string | null;\n isBack: boolean | undefined;\n prevPanel: string | null;\n nextPanel: string | null;\n\n swipingBack: boolean;\n swipeBackStartX: number;\n swipeBackShift: number;\n swipeBackNextPanel: string | null;\n swipeBackPrevPanel: string | null;\n swipeBackResult: SwipeBackResults | null;\n\n browserSwipe: boolean;\n}\n\nconst warn = warnOnce(\"View\");\n\n/**\n * @see https://vkcom.github.io/VKUI/#/View\n */\nexport const View = ({\n popout,\n modal,\n activePanel: activePanelProp,\n history,\n nav,\n onTransition,\n onSwipeBack,\n onSwipeBackStart,\n onSwipeBackCancel: onSwipeBackCancelProp,\n children,\n\n ...restProps\n}: ViewProps) => {\n if (process.env.NODE_ENV === \"development\") {\n popout &&\n warn(\n \"Свойство popout устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n modal &&\n warn(\n \"Свойство modal устарело и будет удалено в 5.0.0. Используйте одноименное свойство у SplitLayout.\"\n );\n }\n\n const scrolls = React.useRef(\n scrollsCache[getNavId({ nav, id: restProps.id }) as string] || {}\n );\n const afterTransition = React.useRef(noop);\n\n React.useEffect(() => () => {\n const id = getNavId({ nav, id: restProps.id });\n if (id) {\n scrollsCache[id] = scrolls.current;\n }\n });\n\n const panelNodes = React.useRef<{ [id: string]: HTMLDivElement | null }>({});\n\n const { window, document } = useDOM();\n const scroll = useScroll();\n const configProvider = useConfigProvider();\n const splitCol = useSplitCol();\n const platform = usePlatform();\n\n const [animated, setAnimated] = React.useState(false);\n\n const [visiblePanels, setVisiblePanels] = React.useState([activePanelProp]);\n const [activePanel, setActivePanel] = React.useState<string | null>(\n activePanelProp\n );\n const [isBack, setIsBack] = React.useState<boolean | undefined>(undefined);\n const [prevPanel, setPrevPanel] = React.useState<string | null>(null);\n const [nextPanel, setNextPanel] = React.useState<string | null>(null);\n\n const [swipingBack, setSwipingBack] = React.useState<boolean>(false);\n const [swipeBackStartX, setSwipeBackStartX] = React.useState<number>(0);\n const [swipeBackShift, setSwipeBackShift] = React.useState<number>(0);\n const [swipeBackNextPanel, setSwipeBackNextPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackPrevPanel, setSwipeBackPrevPanel] = React.useState<\n string | null\n >(null);\n const [swipeBackResult, setSwipeBackResult] =\n React.useState<SwipeBackResults | null>(null);\n\n const [browserSwipe, setBrowserSwipe] = React.useState(false);\n\n const prevActivePanel = usePrevious(activePanelProp);\n const prevSwipingBack = usePrevious(swipingBack);\n const prevBrowserSwipe = usePrevious(browserSwipe);\n const prevSwipeBackResult = usePrevious(swipeBackResult);\n const prevSwipeBackPrevPanel = usePrevious(swipeBackPrevPanel);\n const prevOnTransition = usePrevious(onTransition);\n\n const panels = (\n React.Children.toArray(children) as React.ReactElement[]\n ).filter((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n\n return (\n (panelId !== undefined && visiblePanels.includes(panelId)) ||\n panelId === swipeBackPrevPanel ||\n panelId === swipeBackNextPanel\n );\n });\n\n const disableAnimation =\n configProvider?.transitionMotionEnabled === false || !splitCol?.animate;\n\n const pickPanel = (id: string | null) => {\n if (id === null) {\n return null;\n }\n return panelNodes.current[id];\n };\n\n const flushTransition = React.useCallback(\n (prevPanel: string, isBackTransition: boolean) => {\n if (isBackTransition) {\n scrolls.current[prevPanel] = 0;\n }\n setPrevPanel(null);\n setNextPanel(null);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n setAnimated(false);\n setIsBack(undefined);\n\n afterTransition.current = () => {\n scroll?.scrollTo(\n 0,\n isBackTransition ? scrolls.current[activePanelProp] : 0\n );\n onTransition &&\n onTransition({\n isBack: isBackTransition,\n from: prevPanel,\n to: activePanelProp,\n });\n };\n },\n [activePanelProp, onTransition, scroll]\n );\n\n useIsomorphicLayoutEffect(() => {\n afterTransition.current();\n afterTransition.current = noop;\n }, [afterTransition.current]);\n\n const transitionEndHandler = React.useCallback(\n (e?: React.AnimationEvent): void => {\n if (\n (!e ||\n [\n \"vkui-animation-ios-next-forward\",\n \"vkui-animation-ios-prev-back\",\n \"vkui-animation-view-next-forward\",\n \"vkui-animation-view-prev-back\",\n ].includes(e.animationName)) &&\n prevPanel !== null\n ) {\n flushTransition(prevPanel, Boolean(isBack));\n }\n },\n [flushTransition, isBack, prevPanel]\n );\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const animationFinishTimeout = useTimeout(\n transitionEndHandler,\n platform === IOS ? 600 : 300\n );\n\n const onSwipeBackSuccess = React.useCallback(() => {\n onSwipeBack && onSwipeBack();\n }, [onSwipeBack]);\n\n const onSwipeBackCancel = React.useCallback(() => {\n onSwipeBackCancelProp && onSwipeBackCancelProp();\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n }, [onSwipeBackCancelProp]);\n\n const swipingBackTransitionEndHandler = React.useCallback(\n (e?: TransitionEvent): void => {\n // indexOf because of vendor prefixes in old browsers\n if (\n !e ||\n (e?.propertyName.includes(\"transform\") &&\n e?.target === pickPanel(swipeBackNextPanel))\n ) {\n switch (swipeBackResult) {\n case SwipeBackResults.fail:\n onSwipeBackCancel();\n break;\n case SwipeBackResults.success:\n onSwipeBackSuccess();\n }\n }\n },\n [onSwipeBackCancel, onSwipeBackSuccess, swipeBackNextPanel, swipeBackResult]\n );\n\n const onMoveX = (e: TouchEvent): void => {\n if (swipeBackExcluded(e)) {\n return;\n }\n\n if (\n platform === IOS &&\n !configProvider?.isWebView &&\n (e.startX <= 70 || e.startX >= window!.innerWidth - 70) &&\n !browserSwipe\n ) {\n setBrowserSwipe(true);\n }\n\n if (platform === IOS && configProvider?.isWebView && onSwipeBack) {\n if ((animated && e.startX <= 70) || !window) {\n return;\n }\n\n if (e.startX <= 70 && !swipingBack && history && history.length > 1) {\n if (activePanel !== null) {\n scrolls.current[activePanel] = scroll?.getScroll().y;\n }\n\n setSwipingBack(true);\n setSwipeBackStartX(e.startX);\n setSwipeBackPrevPanel(activePanel);\n setSwipeBackNextPanel(history.slice(-2)[0]);\n }\n if (swipingBack) {\n let swipeBackShift = 0;\n if (e.shiftX < 0) {\n swipeBackShift = 0;\n } else if (e.shiftX > window.innerWidth - swipeBackStartX) {\n swipeBackShift = window?.innerWidth;\n } else {\n swipeBackShift = e.shiftX;\n }\n setSwipeBackShift(swipeBackShift);\n }\n }\n };\n\n const onEnd = React.useCallback(\n (e: TouchEvent): void => {\n if (swipingBack && window) {\n const speed = (swipeBackShift / e.duration) * 1000;\n if (swipeBackShift === 0) {\n onSwipeBackCancel();\n } else if (swipeBackShift >= (window?.innerWidth ?? 0)) {\n onSwipeBackSuccess();\n } else if (\n speed > 250 ||\n swipeBackStartX + swipeBackShift > window.innerWidth / 2\n ) {\n setSwipeBackResult(SwipeBackResults.success);\n } else {\n setSwipeBackResult(SwipeBackResults.fail);\n }\n }\n },\n [\n onSwipeBackCancel,\n onSwipeBackSuccess,\n swipeBackShift,\n swipeBackStartX,\n swipingBack,\n window,\n ]\n );\n\n const calcPanelSwipeStyles = (\n panelId: string | undefined\n ): React.CSSProperties => {\n if (!canUseDOM || !window) {\n return {};\n }\n\n const isPrev = panelId === swipeBackPrevPanel;\n const isNext = panelId === swipeBackNextPanel;\n\n if ((!isPrev && !isNext) || swipeBackResult) {\n return {};\n }\n\n let prevPanelTranslate = `${swipeBackShift}px`;\n let nextPanelTranslate = `${\n -50 + (swipeBackShift * 100) / window.innerWidth / 2\n }%`;\n let prevPanelShadow =\n (0.3 * (window.innerWidth - swipeBackShift)) / window.innerWidth;\n\n if (swipeBackResult) {\n return isPrev\n ? { boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})` }\n : {};\n }\n\n if (isNext) {\n return {\n transform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${nextPanelTranslate}, 0, 0)`,\n };\n }\n if (isPrev) {\n return {\n transform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n WebkitTransform: `translate3d(${prevPanelTranslate}, 0, 0)`,\n boxShadow: `-2px 0 12px rgba(0, 0, 0, ${prevPanelShadow})`,\n };\n }\n\n return {};\n };\n\n React.useEffect(() => {\n popout && blurActiveElement(document);\n }, [document, popout]);\n\n React.useEffect(() => {\n // Нужен переход\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n !prevSwipingBack &&\n !prevBrowserSwipe\n ) {\n const firstLayerId = (\n React.Children.toArray(children) as React.ReactElement[]\n )\n .map((panel) => getNavId(panel.props, warn))\n .find((id) => id === prevActivePanel || id === activePanelProp);\n\n const isBackTransition = firstLayerId === activePanelProp;\n scrolls.current[prevActivePanel] = scroll?.getScroll().y;\n\n if (disableAnimation) {\n flushTransition(prevActivePanel, isBackTransition);\n } else {\n blurActiveElement(document);\n\n setVisiblePanels([prevActivePanel, activePanelProp]);\n setPrevPanel(prevActivePanel);\n setNextPanel(activePanelProp);\n setActivePanel(null);\n setAnimated(true);\n setIsBack(isBackTransition);\n\n // Фолбек анимации перехода\n if (!animationEvent.supported) {\n animationFinishTimeout.set();\n }\n }\n }\n\n // Закончилась анимация свайпа назад\n if (\n prevActivePanel &&\n prevActivePanel !== activePanelProp &&\n prevSwipingBack\n ) {\n const nextPanel = activePanelProp;\n const prevPanel = prevActivePanel;\n if (prevSwipeBackPrevPanel) {\n scrolls.current[prevSwipeBackPrevPanel] = 0;\n }\n\n setSwipeBackPrevPanel(null);\n setSwipeBackNextPanel(null);\n setSwipingBack(false);\n setSwipeBackResult(null);\n setSwipeBackStartX(0);\n setSwipeBackShift(0);\n setActivePanel(nextPanel);\n setVisiblePanels([nextPanel]);\n\n afterTransition.current = () => {\n if (nextPanel !== null) {\n scroll?.scrollTo(0, scrolls.current[nextPanel]);\n }\n prevOnTransition &&\n prevOnTransition({\n isBack: true,\n from: prevPanel,\n to: nextPanel,\n });\n };\n }\n\n // Начался свайп назад\n if (!prevSwipingBack && swipingBack) {\n onSwipeBackStart && onSwipeBackStart();\n }\n\n // Началась анимация завершения свайпа назад.\n if (!prevSwipeBackResult && swipeBackResult) {\n waitTransitionFinish(\n pickPanel(swipeBackNextPanel),\n swipingBackTransitionEndHandler,\n platform === IOS ? 600 : 300\n );\n }\n\n // Если свайп назад отменился (когда пользователь недостаточно сильно свайпнул)\n if (\n prevSwipeBackResult === SwipeBackResults.fail &&\n !swipeBackResult &&\n activePanel !== null\n ) {\n scroll?.scrollTo(0, scrolls.current[activePanel]);\n }\n\n // Закончился Safari свайп\n if (prevActivePanel !== activePanelProp && browserSwipe) {\n setBrowserSwipe(false);\n setNextPanel(null);\n setPrevPanel(null);\n setAnimated(false);\n setVisiblePanels([activePanelProp]);\n setActivePanel(activePanelProp);\n }\n }, [\n activePanelProp,\n activePanel,\n animationFinishTimeout,\n browserSwipe,\n children,\n disableAnimation,\n document,\n flushTransition,\n onSwipeBackStart,\n panels,\n platform,\n prevActivePanel,\n prevBrowserSwipe,\n prevOnTransition,\n prevSwipeBackPrevPanel,\n prevSwipeBackResult,\n prevSwipingBack,\n scroll,\n swipeBackNextPanel,\n swipeBackResult,\n swipingBack,\n swipingBackTransitionEndHandler,\n waitTransitionFinish,\n ]);\n\n return (\n <Touch\n Component=\"section\"\n {...restProps}\n vkuiClass={classNames(\n \"View\",\n platform === IOS && \"View--ios\",\n !disableAnimation && animated && \"View--animated\",\n !disableAnimation && swipingBack && \"View--swiping-back\",\n disableAnimation && \"View--no-motion\"\n )}\n onMoveX={onMoveX}\n onEnd={onEnd}\n >\n <div vkuiClass=\"View__panels\">\n {panels.map((panel: React.ReactElement) => {\n const panelId = getNavId(panel.props, warn);\n const isPrev =\n panelId === prevPanel || panelId === swipeBackPrevPanel;\n const isTransitionTarget =\n animated && panelId === (isBack ? prevPanel : nextPanel);\n const compensateScroll =\n isPrev ||\n panelId === swipeBackNextPanel ||\n (panelId === nextPanel && isBack);\n\n return (\n <div\n vkuiClass={classNames(\n \"View__panel\",\n panelId === activePanel && \"View__panel--active\",\n panelId === prevPanel && \"View__panel--prev\",\n panelId === nextPanel && \"View__panel--next\",\n panelId === swipeBackPrevPanel &&\n \"View__panel--swipe-back-prev\",\n panelId === swipeBackNextPanel &&\n \"View__panel--swipe-back-next\",\n swipeBackResult === SwipeBackResults.success &&\n \"View__panel--swipe-back-success\",\n swipeBackResult === SwipeBackResults.fail &&\n \"View__panel--swipe-back-failed\"\n )}\n onAnimationEnd={\n isTransitionTarget ? transitionEndHandler : undefined\n }\n ref={(el) =>\n panelId !== undefined && (panelNodes.current[panelId] = el)\n }\n style={calcPanelSwipeStyles(panelId)}\n key={panelId}\n >\n <div\n vkuiClass=\"View__panel-in\"\n style={{\n marginTop: compensateScroll\n ? -(scrolls.current[panelId as string] ?? 0)\n : undefined,\n }}\n >\n <NavTransitionProvider\n entering={\n panelId === nextPanel || panelId === swipeBackNextPanel\n }\n >\n {panel}\n </NavTransitionProvider>\n </div>\n </div>\n );\n })}\n </div>\n <AppRootPortal>\n {!!popout && <div vkuiClass=\"View__popout\">{popout}</div>}\n {!!modal && <div vkuiClass=\"View__modal\">{modal}</div>}\n </AppRootPortal>\n </Touch>\n );\n};\n"],"file":"View.js"}
|