@vkontakte/vkui 4.17.0-beta.0 → 4.17.0-beta.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.
@@ -1 +1 @@
1
- [{"/home/runner/work/VKUI/VKUI/src/styles/animations.css":"1","/home/runner/work/VKUI/VKUI/src/styles/bright_light.css":"2","/home/runner/work/VKUI/VKUI/src/styles/common.css":"3","/home/runner/work/VKUI/VKUI/src/styles/components.css":"4","/home/runner/work/VKUI/VKUI/src/styles/constants.css":"5","/home/runner/work/VKUI/VKUI/src/styles/space_gray.css":"6","/home/runner/work/VKUI/VKUI/src/styles/themes.css":"7","/home/runner/work/VKUI/VKUI/src/styles/unstable.css":"8","/home/runner/work/VKUI/VKUI/src/styles/vkcom.css":"9","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"10","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"11","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"12","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"13","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"14","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"15","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"16","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"17","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"18","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"19","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"20","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"21","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"22","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"23","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"24","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"25","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"26","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"27","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"28","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"29","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"30","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"31","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"32","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"33","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"34","/home/runner/work/VKUI/VKUI/src/components/File/File.css":"35","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"36","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"37","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"38","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"39","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"40","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"41","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"42","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"43","/home/runner/work/VKUI/VKUI/src/components/Gallery/Gallery.css":"44","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"45","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"46","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"47","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"48","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"49","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"50","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"51","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"52","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"53","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"54","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"55","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"56","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"57","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"58","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"59","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"60","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"61","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"62","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"63","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"64","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"65","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"66","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"67","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"68","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"69","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"70","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"71","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"72","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"73","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"74","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"75","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"76","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"77","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"78","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"79","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"80","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"81","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"82","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"83","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"84","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"85","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"86","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"87","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"88","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"89","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"90","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"91","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"92","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"93","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"94","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"95","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"96","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"97","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"98","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"99","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"100","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"101","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"102","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"103","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"104","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"105","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"106","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"107","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"108","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"109","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"110","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"111"},{"size":113,"mtime":1633016525969,"hashOfConfig":"112"},{"size":9563,"mtime":1633016525969,"hashOfConfig":"112"},{"size":569,"mtime":1633016525969,"hashOfConfig":"112"},{"size":5529,"mtime":1633016525969,"hashOfConfig":"112"},{"size":1630,"mtime":1633016525969,"hashOfConfig":"112"},{"size":9643,"mtime":1633016525969,"hashOfConfig":"112"},{"size":81,"mtime":1633016525969,"hashOfConfig":"112"},{"size":124,"mtime":1633016525969,"hashOfConfig":"112"},{"size":9526,"mtime":1633016525969,"hashOfConfig":"112"},{"size":2973,"mtime":1633016525809,"hashOfConfig":"112"},{"size":5728,"mtime":1633016525901,"hashOfConfig":"112"},{"size":5191,"mtime":1633016525901,"hashOfConfig":"112"},{"size":276,"mtime":1633016525901,"hashOfConfig":"112"},{"size":2040,"mtime":1633016525901,"hashOfConfig":"112"},{"size":328,"mtime":1633016525901,"hashOfConfig":"112"},{"size":2395,"mtime":1633016525905,"hashOfConfig":"112"},{"size":4843,"mtime":1633016525905,"hashOfConfig":"112"},{"size":764,"mtime":1633016525905,"hashOfConfig":"112"},{"size":1091,"mtime":1633016525905,"hashOfConfig":"112"},{"size":1278,"mtime":1633016525905,"hashOfConfig":"112"},{"size":1536,"mtime":1633016525905,"hashOfConfig":"112"},{"size":742,"mtime":1633016525909,"hashOfConfig":"112"},{"size":1745,"mtime":1633016525909,"hashOfConfig":"112"},{"size":951,"mtime":1633016525909,"hashOfConfig":"112"},{"size":1155,"mtime":1633016525913,"hashOfConfig":"112"},{"size":1108,"mtime":1633016525913,"hashOfConfig":"112"},{"size":465,"mtime":1633016525913,"hashOfConfig":"112"},{"size":1771,"mtime":1633016525913,"hashOfConfig":"112"},{"size":1186,"mtime":1633016525913,"hashOfConfig":"112"},{"size":1303,"mtime":1633016525913,"hashOfConfig":"112"},{"size":1043,"mtime":1633016525917,"hashOfConfig":"112"},{"size":357,"mtime":1633016525917,"hashOfConfig":"112"},{"size":122,"mtime":1633016525917,"hashOfConfig":"112"},{"size":41,"mtime":1633016525917,"hashOfConfig":"112"},{"size":44,"mtime":1633016525917,"hashOfConfig":"112"},{"size":510,"mtime":1633016525917,"hashOfConfig":"112"},{"size":1658,"mtime":1633016525921,"hashOfConfig":"112"},{"size":141,"mtime":1633016525921,"hashOfConfig":"112"},{"size":2081,"mtime":1633016525921,"hashOfConfig":"112"},{"size":1378,"mtime":1633016525921,"hashOfConfig":"112"},{"size":227,"mtime":1633016525921,"hashOfConfig":"112"},{"size":286,"mtime":1633016525921,"hashOfConfig":"112"},{"size":740,"mtime":1633016525921,"hashOfConfig":"112"},{"size":1003,"mtime":1633016525921,"hashOfConfig":"112"},{"size":1771,"mtime":1633016525921,"hashOfConfig":"112"},{"size":1623,"mtime":1633016525921,"hashOfConfig":"112"},{"size":2364,"mtime":1633016525921,"hashOfConfig":"112"},{"size":1991,"mtime":1633016525925,"hashOfConfig":"112"},{"size":573,"mtime":1633016525925,"hashOfConfig":"112"},{"size":1235,"mtime":1633016525925,"hashOfConfig":"112"},{"size":1369,"mtime":1633016525925,"hashOfConfig":"112"},{"size":243,"mtime":1633016525925,"hashOfConfig":"112"},{"size":830,"mtime":1633016525929,"hashOfConfig":"112"},{"size":287,"mtime":1633016525929,"hashOfConfig":"112"},{"size":9,"mtime":1633016525929,"hashOfConfig":"112"},{"size":1120,"mtime":1633016525929,"hashOfConfig":"112"},{"size":1146,"mtime":1633016525929,"hashOfConfig":"112"},{"size":1748,"mtime":1633016525933,"hashOfConfig":"112"},{"size":648,"mtime":1633016525933,"hashOfConfig":"112"},{"size":2614,"mtime":1633016525933,"hashOfConfig":"112"},{"size":4794,"mtime":1633016525933,"hashOfConfig":"112"},{"size":1303,"mtime":1633016525933,"hashOfConfig":"112"},{"size":2238,"mtime":1633016525937,"hashOfConfig":"112"},{"size":5509,"mtime":1633016525937,"hashOfConfig":"112"},{"size":154,"mtime":1633016525937,"hashOfConfig":"112"},{"size":1616,"mtime":1633016525937,"hashOfConfig":"112"},{"size":1396,"mtime":1633016525937,"hashOfConfig":"112"},{"size":2896,"mtime":1633016525937,"hashOfConfig":"112"},{"size":812,"mtime":1633016525937,"hashOfConfig":"112"},{"size":455,"mtime":1633016525937,"hashOfConfig":"112"},{"size":1834,"mtime":1633016525941,"hashOfConfig":"112"},{"size":211,"mtime":1633016525941,"hashOfConfig":"112"},{"size":935,"mtime":1633016525941,"hashOfConfig":"112"},{"size":2002,"mtime":1633016525941,"hashOfConfig":"112"},{"size":4031,"mtime":1633016525941,"hashOfConfig":"112"},{"size":3331,"mtime":1633016525941,"hashOfConfig":"112"},{"size":1828,"mtime":1633016525941,"hashOfConfig":"112"},{"size":2898,"mtime":1633016525941,"hashOfConfig":"112"},{"size":648,"mtime":1633016525941,"hashOfConfig":"112"},{"size":6334,"mtime":1633016525941,"hashOfConfig":"112"},{"size":1012,"mtime":1633016525945,"hashOfConfig":"112"},{"size":837,"mtime":1633016525945,"hashOfConfig":"112"},{"size":5235,"mtime":1633016525945,"hashOfConfig":"112"},{"size":2503,"mtime":1633016525945,"hashOfConfig":"112"},{"size":2184,"mtime":1633016525945,"hashOfConfig":"112"},{"size":1685,"mtime":1633016525953,"hashOfConfig":"112"},{"size":2878,"mtime":1633016525953,"hashOfConfig":"112"},{"size":744,"mtime":1633016525953,"hashOfConfig":"112"},{"size":443,"mtime":1633016525953,"hashOfConfig":"112"},{"size":402,"mtime":1633016525953,"hashOfConfig":"112"},{"size":916,"mtime":1633016525953,"hashOfConfig":"112"},{"size":705,"mtime":1633016525953,"hashOfConfig":"112"},{"size":1728,"mtime":1633016525953,"hashOfConfig":"112"},{"size":3487,"mtime":1633016525953,"hashOfConfig":"112"},{"size":849,"mtime":1633016525953,"hashOfConfig":"112"},{"size":1263,"mtime":1633016525953,"hashOfConfig":"112"},{"size":2021,"mtime":1633016525953,"hashOfConfig":"112"},{"size":3410,"mtime":1633016525953,"hashOfConfig":"112"},{"size":2257,"mtime":1633016525953,"hashOfConfig":"112"},{"size":705,"mtime":1633016525957,"hashOfConfig":"112"},{"size":2787,"mtime":1633016525957,"hashOfConfig":"112"},{"size":1760,"mtime":1633016525961,"hashOfConfig":"112"},{"size":1830,"mtime":1633016525965,"hashOfConfig":"112"},{"size":3062,"mtime":1633016525965,"hashOfConfig":"112"},{"size":1759,"mtime":1633016525965,"hashOfConfig":"112"},{"size":1284,"mtime":1633016525965,"hashOfConfig":"112"},{"size":630,"mtime":1633016525957,"hashOfConfig":"112"},{"size":307,"mtime":1633016525961,"hashOfConfig":"112"},{"size":325,"mtime":1633016525961,"hashOfConfig":"112"},{"size":283,"mtime":1633016525961,"hashOfConfig":"112"},{"size":557,"mtime":1633016525961,"hashOfConfig":"112"},"16giffr"]
1
+ [{"/home/runner/work/VKUI/VKUI/src/styles/animations.css":"1","/home/runner/work/VKUI/VKUI/src/styles/bright_light.css":"2","/home/runner/work/VKUI/VKUI/src/styles/common.css":"3","/home/runner/work/VKUI/VKUI/src/styles/components.css":"4","/home/runner/work/VKUI/VKUI/src/styles/constants.css":"5","/home/runner/work/VKUI/VKUI/src/styles/space_gray.css":"6","/home/runner/work/VKUI/VKUI/src/styles/themes.css":"7","/home/runner/work/VKUI/VKUI/src/styles/unstable.css":"8","/home/runner/work/VKUI/VKUI/src/styles/vkcom.css":"9","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"10","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"11","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"12","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"13","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"14","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"15","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"16","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"17","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"18","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"19","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"20","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"21","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"22","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"23","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"24","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"25","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"26","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"27","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"28","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"29","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"30","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"31","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"32","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"33","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"34","/home/runner/work/VKUI/VKUI/src/components/File/File.css":"35","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"36","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"37","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"38","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"39","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"40","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"41","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"42","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"43","/home/runner/work/VKUI/VKUI/src/components/Gallery/Gallery.css":"44","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"45","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"46","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"47","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"48","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"49","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"50","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"51","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"52","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"53","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"54","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"55","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"56","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"57","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"58","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"59","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"60","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"61","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"62","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"63","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"64","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"65","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"66","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"67","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"68","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"69","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"70","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"71","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"72","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"73","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"74","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"75","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"76","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"77","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"78","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"79","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"80","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"81","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"82","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"83","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"84","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"85","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"86","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"87","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"88","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"89","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"90","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"91","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"92","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"93","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"94","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"95","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"96","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"97","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"98","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"99","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"100","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"101","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"102","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"103","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"104","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"105","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"106","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"107","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"108","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"109","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"110","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"111"},{"size":113,"mtime":1633021137295,"hashOfConfig":"112"},{"size":9563,"mtime":1633021137295,"hashOfConfig":"112"},{"size":569,"mtime":1633021137295,"hashOfConfig":"112"},{"size":5529,"mtime":1633021137295,"hashOfConfig":"112"},{"size":1630,"mtime":1633021137295,"hashOfConfig":"112"},{"size":9643,"mtime":1633021137295,"hashOfConfig":"112"},{"size":81,"mtime":1633021137295,"hashOfConfig":"112"},{"size":124,"mtime":1633021137295,"hashOfConfig":"112"},{"size":9526,"mtime":1633021137295,"hashOfConfig":"112"},{"size":2973,"mtime":1633021137067,"hashOfConfig":"112"},{"size":5728,"mtime":1633021137215,"hashOfConfig":"112"},{"size":5191,"mtime":1633021137215,"hashOfConfig":"112"},{"size":276,"mtime":1633021137215,"hashOfConfig":"112"},{"size":2040,"mtime":1633021137215,"hashOfConfig":"112"},{"size":328,"mtime":1633021137219,"hashOfConfig":"112"},{"size":2395,"mtime":1633021137219,"hashOfConfig":"112"},{"size":4843,"mtime":1633021137219,"hashOfConfig":"112"},{"size":764,"mtime":1633021137219,"hashOfConfig":"112"},{"size":1091,"mtime":1633021137219,"hashOfConfig":"112"},{"size":1278,"mtime":1633021137219,"hashOfConfig":"112"},{"size":1536,"mtime":1633021137219,"hashOfConfig":"112"},{"size":742,"mtime":1633021137223,"hashOfConfig":"112"},{"size":1745,"mtime":1633021137223,"hashOfConfig":"112"},{"size":951,"mtime":1633021137223,"hashOfConfig":"112"},{"size":1155,"mtime":1633021137227,"hashOfConfig":"112"},{"size":1108,"mtime":1633021137227,"hashOfConfig":"112"},{"size":465,"mtime":1633021137227,"hashOfConfig":"112"},{"size":1771,"mtime":1633021137227,"hashOfConfig":"112"},{"size":1186,"mtime":1633021137231,"hashOfConfig":"112"},{"size":1303,"mtime":1633021137231,"hashOfConfig":"112"},{"size":1043,"mtime":1633021137231,"hashOfConfig":"112"},{"size":357,"mtime":1633021137231,"hashOfConfig":"112"},{"size":122,"mtime":1633021137231,"hashOfConfig":"112"},{"size":41,"mtime":1633021137231,"hashOfConfig":"112"},{"size":44,"mtime":1633021137231,"hashOfConfig":"112"},{"size":510,"mtime":1633021137231,"hashOfConfig":"112"},{"size":1658,"mtime":1633021137231,"hashOfConfig":"112"},{"size":141,"mtime":1633021137231,"hashOfConfig":"112"},{"size":2081,"mtime":1633021137235,"hashOfConfig":"112"},{"size":1378,"mtime":1633021137235,"hashOfConfig":"112"},{"size":227,"mtime":1633021137235,"hashOfConfig":"112"},{"size":286,"mtime":1633021137235,"hashOfConfig":"112"},{"size":740,"mtime":1633021137235,"hashOfConfig":"112"},{"size":1003,"mtime":1633021137235,"hashOfConfig":"112"},{"size":1771,"mtime":1633021137235,"hashOfConfig":"112"},{"size":1623,"mtime":1633021137235,"hashOfConfig":"112"},{"size":2364,"mtime":1633021137235,"hashOfConfig":"112"},{"size":1991,"mtime":1633021137239,"hashOfConfig":"112"},{"size":573,"mtime":1633021137239,"hashOfConfig":"112"},{"size":1235,"mtime":1633021137239,"hashOfConfig":"112"},{"size":1369,"mtime":1633021137239,"hashOfConfig":"112"},{"size":243,"mtime":1633021137243,"hashOfConfig":"112"},{"size":830,"mtime":1633021137243,"hashOfConfig":"112"},{"size":287,"mtime":1633021137243,"hashOfConfig":"112"},{"size":9,"mtime":1633021137243,"hashOfConfig":"112"},{"size":1120,"mtime":1633021137243,"hashOfConfig":"112"},{"size":1146,"mtime":1633021137243,"hashOfConfig":"112"},{"size":1748,"mtime":1633021137247,"hashOfConfig":"112"},{"size":648,"mtime":1633021137247,"hashOfConfig":"112"},{"size":2614,"mtime":1633021137247,"hashOfConfig":"112"},{"size":4794,"mtime":1633021137247,"hashOfConfig":"112"},{"size":1303,"mtime":1633021137251,"hashOfConfig":"112"},{"size":2238,"mtime":1633021137255,"hashOfConfig":"112"},{"size":5509,"mtime":1633021137259,"hashOfConfig":"112"},{"size":154,"mtime":1633021137259,"hashOfConfig":"112"},{"size":1616,"mtime":1633021137259,"hashOfConfig":"112"},{"size":1396,"mtime":1633021137259,"hashOfConfig":"112"},{"size":2896,"mtime":1633021137259,"hashOfConfig":"112"},{"size":812,"mtime":1633021137259,"hashOfConfig":"112"},{"size":455,"mtime":1633021137259,"hashOfConfig":"112"},{"size":1834,"mtime":1633021137259,"hashOfConfig":"112"},{"size":211,"mtime":1633021137259,"hashOfConfig":"112"},{"size":935,"mtime":1633021137259,"hashOfConfig":"112"},{"size":2002,"mtime":1633021137259,"hashOfConfig":"112"},{"size":4031,"mtime":1633021137259,"hashOfConfig":"112"},{"size":3331,"mtime":1633021137259,"hashOfConfig":"112"},{"size":1828,"mtime":1633021137259,"hashOfConfig":"112"},{"size":2898,"mtime":1633021137263,"hashOfConfig":"112"},{"size":648,"mtime":1633021137263,"hashOfConfig":"112"},{"size":6334,"mtime":1633021137263,"hashOfConfig":"112"},{"size":1012,"mtime":1633021137263,"hashOfConfig":"112"},{"size":837,"mtime":1633021137267,"hashOfConfig":"112"},{"size":5235,"mtime":1633021137267,"hashOfConfig":"112"},{"size":2503,"mtime":1633021137267,"hashOfConfig":"112"},{"size":2184,"mtime":1633021137267,"hashOfConfig":"112"},{"size":1685,"mtime":1633021137267,"hashOfConfig":"112"},{"size":2878,"mtime":1633021137271,"hashOfConfig":"112"},{"size":744,"mtime":1633021137271,"hashOfConfig":"112"},{"size":443,"mtime":1633021137271,"hashOfConfig":"112"},{"size":402,"mtime":1633021137271,"hashOfConfig":"112"},{"size":916,"mtime":1633021137271,"hashOfConfig":"112"},{"size":705,"mtime":1633021137271,"hashOfConfig":"112"},{"size":1728,"mtime":1633021137271,"hashOfConfig":"112"},{"size":3487,"mtime":1633021137271,"hashOfConfig":"112"},{"size":849,"mtime":1633021137279,"hashOfConfig":"112"},{"size":1263,"mtime":1633021137279,"hashOfConfig":"112"},{"size":2021,"mtime":1633021137279,"hashOfConfig":"112"},{"size":3410,"mtime":1633021137283,"hashOfConfig":"112"},{"size":2257,"mtime":1633021137283,"hashOfConfig":"112"},{"size":705,"mtime":1633021137283,"hashOfConfig":"112"},{"size":2787,"mtime":1633021137287,"hashOfConfig":"112"},{"size":1760,"mtime":1633021137291,"hashOfConfig":"112"},{"size":1830,"mtime":1633021137291,"hashOfConfig":"112"},{"size":3062,"mtime":1633021137291,"hashOfConfig":"112"},{"size":1759,"mtime":1633021137291,"hashOfConfig":"112"},{"size":1284,"mtime":1633021137291,"hashOfConfig":"112"},{"size":630,"mtime":1633021137287,"hashOfConfig":"112"},{"size":307,"mtime":1633021137287,"hashOfConfig":"112"},{"size":325,"mtime":1633021137287,"hashOfConfig":"112"},{"size":283,"mtime":1633021137291,"hashOfConfig":"112"},{"size":557,"mtime":1633021137291,"hashOfConfig":"112"},"16giffr"]
@@ -7210,7 +7210,7 @@
7210
7210
  "signature": "f7b0696ebc46ff5ab46508c8a67174dd4688583a342b72d3182ce998f05653a5"
7211
7211
  },
7212
7212
  "../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx": {
7213
- "version": "c78e7489fe719901ef4ec809681b8b4a15fbad9ac6912437be76e04c63894736",
7213
+ "version": "a760c9c6a3e72c61fc5ab6ed076b3310a0bcb8f2792878b81fb693584561a483",
7214
7214
  "signature": "0cc211d1f22eedd4cce905641b5d94d244698ba97cf223a12c1f9dfd4c24ec03"
7215
7215
  },
7216
7216
  "../src/components/ActionSheet/ActionSheetDropdown.tsx": {
@@ -7226,8 +7226,8 @@
7226
7226
  "signature": "a7f48b1cce36b5a1d6ff8f89b74bbc667cdb48394f151e39afa4df05fff9fb94"
7227
7227
  },
7228
7228
  "../src/components/ActionSheet/ActionSheet.tsx": {
7229
- "version": "f80b2321e45d2dcde115402b4017535ffc7f06a76c0a9ad8c4cbc609dcda3c2d",
7230
- "signature": "ef473b993fc98a868577334a237cc0c7ef7139e1afb000e526b6213cbd9f3ef4"
7229
+ "version": "010f0eb08f11f8bdaa2f5af28c9c4789f790ba6c93b64db5991dc068e4a64ee0",
7230
+ "signature": "cd49d942e613a7a12c60d2851f89516ce52cad5a4ed0e2f36192d31cca9d41b6"
7231
7231
  },
7232
7232
  "../src/components/ActionSheetItem/ActionSheetItem.tsx": {
7233
7233
  "version": "f0344ef15a2fa63f40a316de2a6e29c2e45707973c5d0bcb063bd4c783d69872",
@@ -23314,7 +23314,6 @@
23314
23314
  "../src/lib/dom.tsx",
23315
23315
  "../src/hooks/usePlatform.ts",
23316
23316
  "../src/hooks/useAdaptivity.ts",
23317
- "../src/hooks/useGlobalEventListener.ts",
23318
23317
  "../src/lib/warnOnce.ts",
23319
23318
  "../src/lib/useIsomorphicLayoutEffect.ts",
23320
23319
  "../src/components/ActionSheet/types.ts",
@@ -7,7 +7,7 @@ export interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  /**
8
8
  * Закрыть попап по клику снаружи. В v5 будет обязательным.
9
9
  */
10
- onClose?: () => {};
10
+ onClose?: VoidFunction;
11
11
  /**
12
12
  * Элемент, рядом с которым вылезает попап на десктопе.
13
13
  * Лучше передавать RefObject c current.
@@ -7,7 +7,7 @@ export interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  /**
8
8
  * Закрыть попап по клику снаружи. В v5 будет обязательным.
9
9
  */
10
- onClose?: () => {};
10
+ onClose?: VoidFunction;
11
11
  /**
12
12
  * Элемент, рядом с которым вылезает попап на десктопе.
13
13
  * Лучше передавать RefObject c current.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","React","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","ViewWidth","SMALL_TABLET","ViewHeight","MEDIUM","fallbackTransitionFinish","IOS","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: () => {};\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","React","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","ViewWidth","SMALL_TABLET","ViewHeight","MEDIUM","fallbackTransitionFinish","IOS","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","ActionSheetDropdownDesktop","ActionSheetDropdown","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
@@ -29,8 +29,6 @@ var _usePlatform = require("../../hooks/usePlatform");
29
29
 
30
30
  var _useAdaptivity2 = require("../../hooks/useAdaptivity");
31
31
 
32
- var _useGlobalEventListener = require("../../hooks/useGlobalEventListener");
33
-
34
32
  var _warnOnce = require("../../lib/warnOnce");
35
33
 
36
34
  var _useIsomorphicLayoutEffect = require("../../lib/useIsomorphicLayoutEffect");
@@ -90,13 +88,21 @@ var ActionSheetDropdownDesktop = function ActionSheetDropdownDesktop(_ref) {
90
88
  top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height)
91
89
  });
92
90
  }, [toggleRef]);
93
- (0, _useGlobalEventListener.useGlobalEventListener)(document.body, 'click', function (e) {
91
+ var onBodyClick = React.useCallback(function (e) {
94
92
  var dropdownElement = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
95
93
 
96
94
  if (dropdownElement && !dropdownElement.contains(e.target)) {
97
95
  onClose();
98
96
  }
99
- });
97
+ }, []);
98
+ React.useEffect(function () {
99
+ setTimeout(function () {
100
+ document.body.addEventListener('click', onBodyClick);
101
+ });
102
+ return function () {
103
+ document.body.removeEventListener('click', onBodyClick);
104
+ };
105
+ }, []);
100
106
  return (0, _jsxRuntime.createScopedElement)("div", (0, _extends2.default)({}, restProps, {
101
107
  ref: elementRef,
102
108
  onClick: function onClick(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","React","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","body","e","dropdownElement","contains","target","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n useGlobalEventListener(document.body, 'click', (e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","React","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","onBodyClick","useCallback","e","dropdownElement","contains","target","useEffect","setTimeout","body","addEventListener","removeEventListener","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const onBodyClick = React.useCallback((e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n }, []);\n\n React.useEffect(() => {\n setTimeout(() => {\n document.body.addEventListener('click', onBodyClick);\n });\n return () => {\n document.body.removeEventListener('click', onBodyClick);\n };\n }, []);\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
@@ -7,7 +7,7 @@ export interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {
7
7
  /**
8
8
  * Закрыть попап по клику снаружи. В v5 будет обязательным.
9
9
  */
10
- onClose?: () => {};
10
+ onClose?: VoidFunction;
11
11
  /**
12
12
  * Элемент, рядом с которым вылезает попап на десктопе.
13
13
  * Лучше передавать RefObject c current.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","ViewWidth","ViewHeight","IOS","ActionSheetDropdownDesktop","ActionSheetDropdown","hasReactNode","ActionSheetContext","Caption","usePlatform","useTimeout","useAdaptivity","useObjectMemo","warnOnce","warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","SMALL_TABLET","MEDIUM","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","defaultProps","popupDirection"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,aAAT;AACA,SAASC,SAAT,EAAoBC,UAApB;AACA,SAASC,GAAT;AACA,SAASC,0BAAT;AACA,SAASC,mBAAT;AACA,SAASC,YAAT;AACA,SAASC,kBAAT;AACA,OAAOC,OAAP;AACA,SAASC,WAAT;AACA,SAASC,UAAT;AACA,SAASC,aAAT;AACA,SAASC,aAAT;AACA,SAASC,QAAT;AA2BA,IAAMC,IAAI,GAAGD,QAAQ,CAAC,aAAD,CAArB;AAEA,OAAO,IAAME,WAAuC,GAAG,SAA1CA,WAA0C,OAQ/B;AAAA,MAPtBC,QAOsB,QAPtBA,QAOsB;AAAA,MANtBC,SAMsB,QANtBA,SAMsB;AAAA,MALtBC,MAKsB,QALtBA,MAKsB;AAAA,MAJtBC,IAIsB,QAJtBA,IAIsB;AAAA,MAHtBC,KAGsB,QAHtBA,KAGsB;AAAA,MAFtBC,YAEsB,QAFtBA,YAEsB;AAAA,MADnBC,SACmB;;AACtB,MAAMC,QAAQ,GAAGd,WAAW,EAA5B;;AACA,wBAA8BV,KAAK,CAACyB,QAAN,CAAe,KAAf,CAA9B;AAAA;AAAA,MAAOC,OAAP;AAAA,MAAgBC,UAAhB;;AACA,MAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,WAAMD,UAAU,CAAC,IAAD,CAAhB;AAAA,GAAhB;;AAEA,yBAAuC3B,KAAK,CAACyB,QAAN,EAAvC;AAAA;AAAA,MAAOI,YAAP;AAAA,MAAqBC,cAArB;;AACA,MAAMC,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvBR,IAAAA,SAAS,CAACK,OAAV;AACAC,IAAAA,YAAY,IAAIA,YAAY,EAA5B;AACAC,IAAAA,cAAc,CAACE,SAAD,CAAd;AACD,GAJD;;AAMA,MAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,CAACZ,SAAS,CAACK,OAAzD,EAAkE;AAChEb,IAAAA,IAAI,CAAC,6CAAD,CAAJ;AACD;;AAED,uBAA4CH,aAAa,EAAzD;AAAA,MAAQwB,SAAR,kBAAQA,SAAR;AAAA,MAAmBC,UAAnB,kBAAmBA,UAAnB;AAAA,MAA+BC,QAA/B,kBAA+BA,QAA/B;;AACA,MAAMC,SAAS,GAAGH,SAAS,IAAIlC,SAAS,CAACsC,YAAvB,KAAwCF,QAAQ,IAAID,UAAU,IAAIlC,UAAU,CAACsC,MAA7E,CAAlB;AAEA,MAAMC,wBAAwB,GAAG/B,UAAU,CAACoB,UAAD,EAAaP,QAAQ,KAAKpB,GAAb,GAAmB,GAAnB,GAAyB,GAAtC,CAA3C;AACAJ,EAAAA,KAAK,CAAC2C,SAAN,CAAgB,YAAM;AACpB,QAAIjB,OAAJ,EAAa;AACX,UAAIa,SAAJ,EAAe;AACbR,QAAAA,UAAU;AACX,OAFD,MAEO;AACLW,QAAAA,wBAAwB,CAACE,GAAzB;AACD;AACF,KAND,MAMO;AACLF,MAAAA,wBAAwB,CAACG,KAAzB;AACD;AACF,GAVD,EAUG,CAACnB,OAAD,CAVH;AAYA,MAAMoB,WAAW,GAAG9C,KAAK,CAAC+C,WAAN,CAAoC,UAACC,MAAD,EAASC,SAAT;AAAA,WAAuB,UAACC,KAAD,EAAW;AACxFA,MAAAA,KAAK,CAACC,OAAN;;AAEA,UAAIF,SAAJ,EAAe;AACbnB,QAAAA,cAAc,CAAC;AAAA,iBAAMkB,MAAM,IAAIA,MAAM,CAACE,KAAD,CAAtB;AAAA,SAAD,CAAd;AACAvB,QAAAA,UAAU,CAAC,IAAD,CAAV;AACD,OAHD,MAGO;AACLqB,QAAAA,MAAM,IAAIA,MAAM,CAACE,KAAD,CAAhB;AACD;AACF,KATuD;AAAA,GAApC,EASjB,EATiB,CAApB;AAUA,MAAME,YAAY,GAAGvC,aAAa,CAAC;AAAEiC,IAAAA,WAAW,EAAXA,WAAF;AAAeP,IAAAA,SAAS,EAATA;AAAf,GAAD,CAAlC;AAEA,MAAMc,iBAAiB,GAAGd,SAAS,GAC/BlC,0BAD+B,GAE/BC,mBAFJ;AAIA,SACE,oBAAC,aAAD;AACE,IAAA,OAAO,EAAEoB,OADX;AAEE,IAAA,MAAM,EAAC,QAFT;AAGE,IAAA,SAAS,EAAER,SAHb;AAIE,IAAA,KAAK,EAAEG,KAJT;AAKE,IAAA,OAAO,EAAE,CAACkB,SAAD,GAAaX,OAAb,GAAuB,IALlC;AAME,IAAA,OAAO,EAAE,CAACW,SANZ;AAOE,IAAA,KAAK,EAAE,CAACA;AAPV,KASE,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEa;AAApC,KACE,oBAAC,iBAAD;AACE,IAAA,OAAO,EAAE1B,OADX;AAEE,IAAA,OAAO,EAAEE,OAFX;AAGE,IAAA,eAAe,EAAEF,OAAO,IAAI,CAACa,SAAZ,GAAwBR,UAAxB,GAAqC;AAHxD,KAIMR,SAJN,GAMG,CAAChB,YAAY,CAACY,MAAD,CAAZ,IAAwBZ,YAAY,CAACa,IAAD,CAArC,KACC;AAAQ,IAAA,SAAS,EAAC;AAAlB,KACGb,YAAY,CAACY,MAAD,CAAZ,IACC,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAC,GAAf;AAAmB,IAAA,MAAM,EAAEK,QAAQ,KAAKpB,GAAb,GAAmB,UAAnB,GAAgC,QAA3D;AAAqE,IAAA,SAAS,EAAC;AAA/E,KACGe,MADH,CAFJ,EAMGZ,YAAY,CAACa,IAAD,CAAZ,IAAsB,oBAAC,OAAD;AAAS,IAAA,KAAK,EAAC,GAAf;AAAmB,IAAA,MAAM,EAAC,SAA1B;AAAoC,IAAA,SAAS,EAAC;AAA9C,KAAmEA,IAAnE,CANzB,CAPJ,EAgBGH,QAhBH,EAiBGO,QAAQ,KAAKpB,GAAb,IAAoB,CAACmC,SAArB,IAAkCjB,YAjBrC,CADF,CATF,CADF;AAiCD,CAzFM;AA2FPN,WAAW,CAACsC,YAAZ,GAA2B;AACzBC,EAAAA,cAAc,EAAE;AADS,CAA3B","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: () => {};\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","ViewWidth","ViewHeight","IOS","ActionSheetDropdownDesktop","ActionSheetDropdown","hasReactNode","ActionSheetContext","Caption","usePlatform","useTimeout","useAdaptivity","useObjectMemo","warnOnce","warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","SMALL_TABLET","MEDIUM","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
@@ -9,7 +9,6 @@ import { classNames } from "../../lib/classNames";
9
9
  import { useDOM } from "../../lib/dom";
10
10
  import { usePlatform } from "../../hooks/usePlatform";
11
11
  import { useAdaptivity } from "../../hooks/useAdaptivity";
12
- import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
13
12
  import { warnOnce } from "../../lib/warnOnce";
14
13
  import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
15
14
  var warn = warnOnce('ActionSheet');
@@ -66,13 +65,21 @@ export var ActionSheetDropdownDesktop = function ActionSheetDropdownDesktop(_ref
66
65
  top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height)
67
66
  });
68
67
  }, [toggleRef]);
69
- useGlobalEventListener(document.body, 'click', function (e) {
68
+ var onBodyClick = React.useCallback(function (e) {
70
69
  var dropdownElement = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
71
70
 
72
71
  if (dropdownElement && !dropdownElement.contains(e.target)) {
73
72
  onClose();
74
73
  }
75
- });
74
+ }, []);
75
+ React.useEffect(function () {
76
+ setTimeout(function () {
77
+ document.body.addEventListener('click', onBodyClick);
78
+ });
79
+ return function () {
80
+ document.body.removeEventListener('click', onBodyClick);
81
+ };
82
+ }, []);
76
83
  return createScopedElement("div", _extends({}, restProps, {
77
84
  ref: elementRef,
78
85
  onClick: function onClick(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","useGlobalEventListener","warnOnce","useIsomorphicLayoutEffect","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","body","e","dropdownElement","contains","target","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n useGlobalEventListener(document.body, 'click', (e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
1
+ {"version":3,"sources":["../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","warnOnce","useIsomorphicLayoutEffect","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","onBodyClick","useCallback","e","dropdownElement","contains","target","useEffect","setTimeout","body","addEventListener","removeEventListener","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const onBodyClick = React.useCallback((e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n }, []);\n\n React.useEffect(() => {\n setTimeout(() => {\n document.body.addEventListener('click', onBodyClick);\n });\n return () => {\n document.body.removeEventListener('click', onBodyClick);\n };\n }, []);\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","ViewWidth","ViewHeight","IOS","ActionSheetDropdownDesktop","ActionSheetDropdown","hasReactNode","ActionSheetContext","Caption","usePlatform","useTimeout","useAdaptivity","useObjectMemo","warnOnce","warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","SMALL_TABLET","MEDIUM","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: () => {};\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheet.tsx"],"names":["React","PopoutWrapper","ViewWidth","ViewHeight","IOS","ActionSheetDropdownDesktop","ActionSheetDropdown","hasReactNode","ActionSheetContext","Caption","usePlatform","useTimeout","useAdaptivity","useObjectMemo","warnOnce","warn","ActionSheet","children","className","header","text","style","iosCloseItem","restProps","platform","useState","closing","setClosing","onClose","_closeAction","setCloseAction","afterClose","undefined","process","env","NODE_ENV","viewWidth","viewHeight","hasMouse","isDesktop","SMALL_TABLET","MEDIUM","fallbackTransitionFinish","useEffect","set","clear","onItemClick","useCallback","action","autoclose","event","persist","contextValue","DropdownComponent","defaultProps","popupDirection"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { PopoutWrapper } from '../PopoutWrapper/PopoutWrapper';\nimport { ViewWidth, ViewHeight } from '../../hoc/withAdaptivity';\nimport { IOS } from '../../lib/platform';\nimport { ActionSheetDropdownDesktop } from './ActionSheetDropdownDesktop';\nimport { ActionSheetDropdown } from './ActionSheetDropdown';\nimport { hasReactNode } from '../../lib/utils';\nimport { ActionSheetContext, ItemClickHandler } from './ActionSheetContext';\nimport Caption from '../Typography/Caption/Caption';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useTimeout } from '../../hooks/useTimeout';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { SharedDropdownProps, PopupDirection, ToggleRef } from './types';\nimport './ActionSheet.css';\n\nexport interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n header?: React.ReactNode;\n text?: React.ReactNode;\n /**\n * Закрыть попап по клику снаружи. В v5 будет обязательным.\n */\n onClose?: VoidFunction;\n /**\n * Элемент, рядом с которым вылезает попап на десктопе.\n * Лучше передавать RefObject c current.\n * В v5 будет обязательным.\n */\n toggleRef?: ToggleRef;\n /**\n * Направление на десктопе\n */\n popupDirection?: PopupDirection;\n /**\n * Только iOS. В v5 будет обязательным.\n */\n iosCloseItem?: React.ReactNode;\n}\n\nconst warn = warnOnce('ActionSheet');\n\nexport const ActionSheet: React.FC<ActionSheetProps> = ({\n children,\n className,\n header,\n text,\n style,\n iosCloseItem,\n ...restProps\n}: ActionSheetProps) => {\n const platform = usePlatform();\n const [closing, setClosing] = React.useState(false);\n const onClose = () => setClosing(true);\n\n const [_closeAction, setCloseAction] = React.useState<VoidFunction>();\n const afterClose = () => {\n restProps.onClose();\n _closeAction && _closeAction();\n setCloseAction(undefined);\n };\n\n if (process.env.NODE_ENV === 'development' && !restProps.onClose) {\n warn('can\\'t close on outer click without onClose');\n }\n\n const { viewWidth, viewHeight, hasMouse } = useAdaptivity();\n const isDesktop = viewWidth >= ViewWidth.SMALL_TABLET && (hasMouse || viewHeight >= ViewHeight.MEDIUM);\n\n const fallbackTransitionFinish = useTimeout(afterClose, platform === IOS ? 300 : 200);\n React.useEffect(() => {\n if (closing) {\n if (isDesktop) {\n afterClose();\n } else {\n fallbackTransitionFinish.set();\n }\n } else {\n fallbackTransitionFinish.clear();\n }\n }, [closing]);\n\n const onItemClick = React.useCallback<ItemClickHandler>((action, autoclose) => (event) => {\n event.persist();\n\n if (autoclose) {\n setCloseAction(() => action && action(event));\n setClosing(true);\n } else {\n action && action(event);\n }\n }, []);\n const contextValue = useObjectMemo({ onItemClick, isDesktop });\n\n const DropdownComponent = isDesktop\n ? ActionSheetDropdownDesktop\n : ActionSheetDropdown;\n\n return (\n <PopoutWrapper\n closing={closing}\n alignY=\"bottom\"\n className={className}\n style={style}\n onClick={!isDesktop ? onClose : null}\n hasMask={!isDesktop}\n fixed={!isDesktop}\n >\n <ActionSheetContext.Provider value={contextValue}>\n <DropdownComponent\n closing={closing}\n onClose={onClose}\n onTransitionEnd={closing && !isDesktop ? afterClose : null}\n {...restProps as Omit<SharedDropdownProps, 'closing'>}\n >\n {(hasReactNode(header) || hasReactNode(text)) &&\n <header vkuiClass=\"ActionSheet__header\">\n {hasReactNode(header) &&\n <Caption level=\"1\" weight={platform === IOS ? 'semibold' : 'medium'} vkuiClass=\"ActionSheet__title\">\n {header}\n </Caption>\n }\n {hasReactNode(text) && <Caption level=\"1\" weight=\"regular\" vkuiClass=\"ActionSheet__text\">{text}</Caption>}\n </header>\n }\n {children}\n {platform === IOS && !isDesktop && iosCloseItem}\n </DropdownComponent>\n </ActionSheetContext.Provider>\n </PopoutWrapper>\n );\n};\n\nActionSheet.defaultProps = {\n popupDirection: 'bottom',\n};\n"],"file":"ActionSheet.js"}
@@ -9,7 +9,6 @@ import { classNames } from "../../lib/classNames";
9
9
  import { useDOM } from "../../lib/dom";
10
10
  import { usePlatform } from "../../hooks/usePlatform";
11
11
  import { useAdaptivity } from "../../hooks/useAdaptivity";
12
- import { useGlobalEventListener } from "../../hooks/useGlobalEventListener";
13
12
  import { warnOnce } from "../../lib/warnOnce";
14
13
  import { useIsomorphicLayoutEffect } from "../../lib/useIsomorphicLayoutEffect";
15
14
  import "./ActionSheet.css";
@@ -67,13 +66,21 @@ export var ActionSheetDropdownDesktop = function ActionSheetDropdownDesktop(_ref
67
66
  top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height)
68
67
  });
69
68
  }, [toggleRef]);
70
- useGlobalEventListener(document.body, 'click', function (e) {
69
+ var onBodyClick = React.useCallback(function (e) {
71
70
  var dropdownElement = elementRef === null || elementRef === void 0 ? void 0 : elementRef.current;
72
71
 
73
72
  if (dropdownElement && !dropdownElement.contains(e.target)) {
74
73
  onClose();
75
74
  }
76
- });
75
+ }, []);
76
+ React.useEffect(function () {
77
+ setTimeout(function () {
78
+ document.body.addEventListener('click', onBodyClick);
79
+ });
80
+ return function () {
81
+ document.body.removeEventListener('click', onBodyClick);
82
+ };
83
+ }, []);
77
84
  return createScopedElement("div", _extends({}, restProps, {
78
85
  ref: elementRef,
79
86
  onClick: function onClick(e) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","useGlobalEventListener","warnOnce","useIsomorphicLayoutEffect","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","body","e","dropdownElement","contains","target","stopPropagation"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { useGlobalEventListener } from '../../hooks/useGlobalEventListener';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n useGlobalEventListener(document.body, 'click', (e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n });\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
1
+ {"version":3,"sources":["../../../../src/components/ActionSheet/ActionSheetDropdownDesktop.tsx"],"names":["React","getClassName","classNames","useDOM","usePlatform","useAdaptivity","warnOnce","useIsomorphicLayoutEffect","warn","getEl","ref","current","ActionSheetDropdownDesktop","children","toggleRef","closing","popupDirection","onClose","restProps","window","document","platform","sizeY","elementRef","useRef","useState","left","top","opacity","pointerEvents","dropdownStyles","setDropdownStyles","toggleEl","process","env","NODE_ENV","toggleRect","getBoundingClientRect","elementRect","isTop","width","pageXOffset","pageYOffset","height","onBodyClick","useCallback","e","dropdownElement","contains","target","useEffect","setTimeout","body","addEventListener","removeEventListener","stopPropagation"],"mappings":";;;;;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,YAAT;AACA,SAASC,UAAT;AACA,SAASC,MAAT;AACA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,SAASC,QAAT;AACA,SAASC,yBAAT;AAEA;AAEA,IAAMC,IAAI,GAAGF,QAAQ,CAAC,aAAD,CAArB;;AACA,SAASG,KAAT,CAAeC,GAAf,EAAkF;AAChF,SAAOA,GAAG,IAAI,aAAaA,GAApB,GAA0BA,GAAG,CAACC,OAA9B,GAAwCD,GAA/C;AACD;;AAED,OAAO,IAAME,0BAAyD,GAAG,SAA5DA,0BAA4D,OAOnE;AAAA,MANJC,QAMI,QANJA,QAMI;AAAA,MALJC,SAKI,QALJA,SAKI;AAAA,MAJJC,OAII,QAJJA,OAII;AAAA,MAHJC,cAGI,QAHJA,cAGI;AAAA,MAFJC,OAEI,QAFJA,OAEI;AAAA,MADDC,SACC;;AACJ,gBAA6Bf,MAAM,EAAnC;AAAA,MAAQgB,MAAR,WAAQA,MAAR;AAAA,MAAgBC,QAAhB,WAAgBA,QAAhB;;AACA,MAAMC,QAAQ,GAAGjB,WAAW,EAA5B;;AACA,uBAAkBC,aAAa,EAA/B;AAAA,MAAQiB,KAAR,kBAAQA,KAAR;;AACA,MAAMC,UAAU,GAAGvB,KAAK,CAACwB,MAAN,EAAnB;;AAEA,wBAA4CxB,KAAK,CAACyB,QAAN,CAAoC;AAC9EC,IAAAA,IAAI,EAAE,CADwE;AAE9EC,IAAAA,GAAG,EAAE,CAFyE;AAG9EC,IAAAA,OAAO,EAAE,CAHqE;AAI9EC,IAAAA,aAAa,EAAE;AAJ+D,GAApC,CAA5C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,iBAAvB;;AAMAxB,EAAAA,yBAAyB,CAAC,YAAM;AAC9B,QAAMyB,QAAQ,GAAGvB,KAAK,CAACK,SAAD,CAAtB;;AACA,QAAI,CAACkB,QAAL,EAAe;AACb,UAAIC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAA7B,EAA4C;AAC1C3B,QAAAA,IAAI,CAAC,sBAAD,CAAJ;AACD;;AACD;AACD;;AAED,QAAM4B,UAAU,GAAGJ,QAAQ,CAACK,qBAAT,EAAnB;AACA,QAAMC,WAAW,GAAGf,UAAU,CAACZ,OAAX,CAAmB0B,qBAAnB,EAApB;AACA,QAAME,KAAK,GAAGvB,cAAc,KAAK,KAAnB,IAA4B,OAAOA,cAAP,KAA0B,UAA1B,IAAwCA,cAAc,CAACO,UAAD,CAAd,KAA+B,KAAjH;AAEAQ,IAAAA,iBAAiB,CAAC;AAChBL,MAAAA,IAAI,EAAEU,UAAU,CAACV,IAAX,GAAkBU,UAAU,CAACI,KAA7B,GAAqCF,WAAW,CAACE,KAAjD,GAAyDrB,MAAM,CAACsB,WADtD;AAEhBd,MAAAA,GAAG,EAAES,UAAU,CAACT,GAAX,GAAiBR,MAAM,CAACuB,WAAxB,IAAuCH,KAAK,GAAG,CAACD,WAAW,CAACK,MAAhB,GAAyBP,UAAU,CAACO,MAAhF;AAFW,KAAD,CAAjB;AAID,GAjBwB,EAiBtB,CAAC7B,SAAD,CAjBsB,CAAzB;AAmBA,MAAM8B,WAAW,GAAG5C,KAAK,CAAC6C,WAAN,CAAkB,UAACC,CAAD,EAAO;AAC3C,QAAMC,eAAe,GAAGxB,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEZ,OAApC;;AACA,QAAIoC,eAAe,IAAI,CAACA,eAAe,CAACC,QAAhB,CAAyBF,CAAC,CAACG,MAA3B,CAAxB,EAAoE;AAClEhC,MAAAA,OAAO;AACR;AACF,GALmB,EAKjB,EALiB,CAApB;AAOAjB,EAAAA,KAAK,CAACkD,SAAN,CAAgB,YAAM;AACpBC,IAAAA,UAAU,CAAC,YAAM;AACf/B,MAAAA,QAAQ,CAACgC,IAAT,CAAcC,gBAAd,CAA+B,OAA/B,EAAwCT,WAAxC;AACD,KAFS,CAAV;AAGA,WAAO,YAAM;AACXxB,MAAAA,QAAQ,CAACgC,IAAT,CAAcE,mBAAd,CAAkC,OAAlC,EAA2CV,WAA3C;AACD,KAFD;AAGD,GAPD,EAOG,EAPH;AASA,SACE,wCACM1B,SADN;AAEE,IAAA,GAAG,EAAEK,UAFP;AAGE,IAAA,OAAO,EAAE,iBAACuB,CAAD;AAAA,aAAOA,CAAC,CAACS,eAAF,EAAP;AAAA,KAHX;AAIE,IAAA,KAAK,EAAEzB,cAJT;AAKE,IAAA,SAAS,EAAE5B,UAAU,CAACD,YAAY,CAAC,aAAD,EAAgBoB,QAAhB,CAAb,EAAwC,sBAAxC,EAAgE;AACnF,8BAAwBN;AAD2D,KAAhE,+BAEIO,KAFJ;AALvB,MASGT,QATH,CADF;AAaD,CAnEM","sourcesContent":["import * as React from 'react';\nimport { getClassName } from '../../helpers/getClassName';\nimport { classNames } from '../../lib/classNames';\nimport { useDOM } from '../../lib/dom';\nimport { usePlatform } from '../../hooks/usePlatform';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';\nimport { SharedDropdownProps } from './types';\nimport './ActionSheet.css';\n\nconst warn = warnOnce('ActionSheet');\nfunction getEl(ref: SharedDropdownProps['toggleRef']): Element | null | undefined {\n return ref && 'current' in ref ? ref.current : ref as Element | null | undefined;\n}\n\nexport const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({\n children,\n toggleRef,\n closing,\n popupDirection,\n onClose,\n ...restProps\n}) => {\n const { window, document } = useDOM();\n const platform = usePlatform();\n const { sizeY } = useAdaptivity();\n const elementRef = React.useRef<HTMLDivElement>();\n\n const [dropdownStyles, setDropdownStyles] = React.useState<React.CSSProperties>({\n left: 0,\n top: 0,\n opacity: 0,\n pointerEvents: 'none',\n });\n useIsomorphicLayoutEffect(() => {\n const toggleEl = getEl(toggleRef);\n if (!toggleEl) {\n if (process.env.NODE_ENV === 'development') {\n warn('toggleRef not passed');\n }\n return;\n }\n\n const toggleRect = toggleEl.getBoundingClientRect();\n const elementRect = elementRef.current.getBoundingClientRect();\n const isTop = popupDirection === 'top' || typeof popupDirection === 'function' && popupDirection(elementRef) === 'top';\n\n setDropdownStyles({\n left: toggleRect.left + toggleRect.width - elementRect.width + window.pageXOffset,\n top: toggleRect.top + window.pageYOffset + (isTop ? -elementRect.height : toggleRect.height),\n });\n }, [toggleRef]);\n\n const onBodyClick = React.useCallback((e) => {\n const dropdownElement = elementRef?.current;\n if (dropdownElement && !dropdownElement.contains(e.target as Node)) {\n onClose();\n }\n }, []);\n\n React.useEffect(() => {\n setTimeout(() => {\n document.body.addEventListener('click', onBodyClick);\n });\n return () => {\n document.body.removeEventListener('click', onBodyClick);\n };\n }, []);\n\n return (\n <div\n {...restProps}\n ref={elementRef}\n onClick={(e) => e.stopPropagation()}\n style={dropdownStyles}\n vkuiClass={classNames(getClassName('ActionSheet', platform), 'ActionSheet--desktop', {\n 'ActionSheet--closing': closing,\n }, `ActionSheet--sizeY-${sizeY}`)}\n >\n {children}\n </div>\n );\n};\n"],"file":"ActionSheetDropdownDesktop.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vkontakte/vkui",
3
- "version": "4.17.0-beta.0",
3
+ "version": "4.17.0-beta.1",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -21,7 +21,7 @@ export interface ActionSheetProps extends React.HTMLAttributes<HTMLDivElement> {
21
21
  /**
22
22
  * Закрыть попап по клику снаружи. В v5 будет обязательным.
23
23
  */
24
- onClose?: () => {};
24
+ onClose?: VoidFunction;
25
25
  /**
26
26
  * Элемент, рядом с которым вылезает попап на десктопе.
27
27
  * Лучше передавать RefObject c current.
@@ -4,7 +4,6 @@ import { classNames } from '../../lib/classNames';
4
4
  import { useDOM } from '../../lib/dom';
5
5
  import { usePlatform } from '../../hooks/usePlatform';
6
6
  import { useAdaptivity } from '../../hooks/useAdaptivity';
7
- import { useGlobalEventListener } from '../../hooks/useGlobalEventListener';
8
7
  import { warnOnce } from '../../lib/warnOnce';
9
8
  import { useIsomorphicLayoutEffect } from '../../lib/useIsomorphicLayoutEffect';
10
9
  import { SharedDropdownProps } from './types';
@@ -53,12 +52,21 @@ export const ActionSheetDropdownDesktop: React.FC<SharedDropdownProps> = ({
53
52
  });
54
53
  }, [toggleRef]);
55
54
 
56
- useGlobalEventListener(document.body, 'click', (e) => {
55
+ const onBodyClick = React.useCallback((e) => {
57
56
  const dropdownElement = elementRef?.current;
58
57
  if (dropdownElement && !dropdownElement.contains(e.target as Node)) {
59
58
  onClose();
60
59
  }
61
- });
60
+ }, []);
61
+
62
+ React.useEffect(() => {
63
+ setTimeout(() => {
64
+ document.body.addEventListener('click', onBodyClick);
65
+ });
66
+ return () => {
67
+ document.body.removeEventListener('click', onBodyClick);
68
+ };
69
+ }, []);
62
70
 
63
71
  return (
64
72
  <div