@vkontakte/vkui 4.42.0 → 4.42.2

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.
Files changed (40) hide show
  1. package/.cache/.eslintcache +1 -1
  2. package/.cache/.stylelintcache +1 -1
  3. package/.cache/.tsbuildinfo +4 -4
  4. package/dist/cjs/components/CustomSelect/CustomSelect.js +6 -3
  5. package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
  6. package/dist/cjs/components/Dropdown/Dropdown.js +4 -1
  7. package/dist/cjs/components/Dropdown/Dropdown.js.map +1 -1
  8. package/dist/cjs/components/Tooltip/Tooltip.js +1 -0
  9. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  10. package/dist/components/CustomSelect/CustomSelect.js +6 -3
  11. package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
  12. package/dist/components/Dropdown/Dropdown.js +4 -1
  13. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  14. package/dist/components/Tooltip/Tooltip.js +1 -0
  15. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  16. package/dist/components.css +5 -5
  17. package/dist/components.css.map +1 -1
  18. package/dist/cssm/components/Button/Button.css +1 -1
  19. package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -3
  20. package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
  21. package/dist/cssm/components/Dropdown/Dropdown.js +4 -1
  22. package/dist/cssm/components/Dropdown/Dropdown.js.map +1 -1
  23. package/dist/cssm/components/Header/Header.css +1 -1
  24. package/dist/cssm/components/HorizontalScroll/HorizontalScroll.css +1 -1
  25. package/dist/cssm/components/Search/Search.css +2 -2
  26. package/dist/cssm/components/TabsItem/TabsItem.css +1 -1
  27. package/dist/cssm/components/Tooltip/Tooltip.js +1 -0
  28. package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
  29. package/dist/cssm/styles/components.css +5 -5
  30. package/dist/vkui.css +5 -5
  31. package/dist/vkui.css.map +1 -1
  32. package/package.json +1 -1
  33. package/src/components/Button/Button.css +2 -1
  34. package/src/components/CustomSelect/CustomSelect.tsx +1 -1
  35. package/src/components/Dropdown/Dropdown.tsx +4 -1
  36. package/src/components/Header/Header.css +10 -2
  37. package/src/components/HorizontalScroll/HorizontalScroll.css +3 -3
  38. package/src/components/Search/Search.css +1 -8
  39. package/src/components/TabsItem/TabsItem.css +4 -1
  40. package/src/components/Tooltip/Tooltip.tsx +1 -0
@@ -1 +1 @@
1
- [{"/home/runner/work/VKUI/VKUI/src/fonts/fonts.css":"1","/home/runner/work/VKUI/VKUI/src/styles/animations.css":"2","/home/runner/work/VKUI/VKUI/src/styles/bright_light.css":"3","/home/runner/work/VKUI/VKUI/src/styles/common.css":"4","/home/runner/work/VKUI/VKUI/src/styles/components.css":"5","/home/runner/work/VKUI/VKUI/src/styles/constants.css":"6","/home/runner/work/VKUI/VKUI/src/styles/space_gray.css":"7","/home/runner/work/VKUI/VKUI/src/styles/themes.css":"8","/home/runner/work/VKUI/VKUI/src/styles/unstable.css":"9","/home/runner/work/VKUI/VKUI/src/styles/vkcom_dark.css":"10","/home/runner/work/VKUI/VKUI/src/styles/vkcom_light.css":"11","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"12","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"13","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"14","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"15","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"16","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"17","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"18","/home/runner/work/VKUI/VKUI/src/components/BaseGallery/BaseGallery.css":"19","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"20","/home/runner/work/VKUI/VKUI/src/components/ButtonGroup/ButtonGroup.css":"21","/home/runner/work/VKUI/VKUI/src/components/Calendar/Calendar.css":"22","/home/runner/work/VKUI/VKUI/src/components/CalendarDay/CalendarDay.css":"23","/home/runner/work/VKUI/VKUI/src/components/CalendarDays/CalendarDays.css":"24","/home/runner/work/VKUI/VKUI/src/components/CalendarHeader/CalendarHeader.css":"25","/home/runner/work/VKUI/VKUI/src/components/CalendarRange/CalendarRange.css":"26","/home/runner/work/VKUI/VKUI/src/components/CalendarTime/CalendarTime.css":"27","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"28","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"29","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"30","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"31","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"32","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"33","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"34","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"35","/home/runner/work/VKUI/VKUI/src/components/ChipsInputBase/ChipsInputBase.css":"36","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"37","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"38","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"39","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"40","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"41","/home/runner/work/VKUI/VKUI/src/components/CustomSelectDropdown/CustomSelectDropdown.css":"42","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"43","/home/runner/work/VKUI/VKUI/src/components/DateInput/DateInput.css":"44","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"45","/home/runner/work/VKUI/VKUI/src/components/DateRangeInput/DateRangeInput.css":"46","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"47","/home/runner/work/VKUI/VKUI/src/components/Dropdown/Dropdown.css":"48","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"49","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"50","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"51","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"52","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"53","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"54","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"55","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"56","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"57","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"58","/home/runner/work/VKUI/VKUI/src/components/GridAvatar/GridAvatar.css":"59","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"60","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"61","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"62","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"63","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"64","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"65","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"66","/home/runner/work/VKUI/VKUI/src/components/InitialsAvatar/InitialsAvatar.css":"67","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"68","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLike.css":"69","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLikeDivider.css":"70","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"71","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"72","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"73","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"74","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"75","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"76","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"77","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"78","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"79","/home/runner/work/VKUI/VKUI/src/components/Pagination/Pagination.css":"80","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"81","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"82","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"83","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"84","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"85","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"86","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"87","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"88","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"89","/home/runner/work/VKUI/VKUI/src/components/Popper/Popper.css":"90","/home/runner/work/VKUI/VKUI/src/components/PopperArrow/PopperArrow.css":"91","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"92","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"93","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"94","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"95","/home/runner/work/VKUI/VKUI/src/components/RadioGroup/RadioGroup.css":"96","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"97","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"98","/home/runner/work/VKUI/VKUI/src/components/RichTooltip/RichTooltip.css":"99","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"100","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"101","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"102","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControl.css":"103","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"104","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"105","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"106","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"107","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"108","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"109","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"110","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"111","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"112","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"113","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"114","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"115","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"116","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"117","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"118","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"119","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"120","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"121","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"122","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"123","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"124","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"125","/home/runner/work/VKUI/VKUI/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css":"126","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"127","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"128","/home/runner/work/VKUI/VKUI/src/components/TextTooltip/TextTooltip.css":"129","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"130","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"131","/home/runner/work/VKUI/VKUI/src/components/Cell/CellCheckbox/CellCheckbox.css":"132","/home/runner/work/VKUI/VKUI/src/components/Cell/CellDragger/CellDragger.css":"133","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css":"134","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"135","/home/runner/work/VKUI/VKUI/src/components/Typography/Footnote/Footnote.css":"136","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"137","/home/runner/work/VKUI/VKUI/src/components/Typography/Paragraph/Paragraph.css":"138","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"139","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"140","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"141"},{"size":214,"mtime":1675182900294,"hashOfConfig":"142"},{"size":205,"mtime":1675182900298,"hashOfConfig":"142"},{"size":9949,"mtime":1675182900298,"hashOfConfig":"142"},{"size":706,"mtime":1675182900298,"hashOfConfig":"142"},{"size":6989,"mtime":1675182900298,"hashOfConfig":"142"},{"size":2498,"mtime":1675182900298,"hashOfConfig":"142"},{"size":10057,"mtime":1675182900298,"hashOfConfig":"142"},{"size":895,"mtime":1675182900298,"hashOfConfig":"142"},{"size":277,"mtime":1675182900298,"hashOfConfig":"142"},{"size":10147,"mtime":1675182900298,"hashOfConfig":"142"},{"size":9990,"mtime":1675182900298,"hashOfConfig":"142"},{"size":2125,"mtime":1675182900094,"hashOfConfig":"142"},{"size":5187,"mtime":1675182900150,"hashOfConfig":"142"},{"size":5141,"mtime":1675182900150,"hashOfConfig":"142"},{"size":343,"mtime":1675182900158,"hashOfConfig":"142"},{"size":3547,"mtime":1675182900158,"hashOfConfig":"142"},{"size":326,"mtime":1675182900158,"hashOfConfig":"142"},{"size":2814,"mtime":1675182900158,"hashOfConfig":"142"},{"size":1206,"mtime":1675182900162,"hashOfConfig":"142"},{"size":20198,"mtime":1675182900162,"hashOfConfig":"142"},{"size":2225,"mtime":1675182900162,"hashOfConfig":"142"},{"size":594,"mtime":1675182900166,"hashOfConfig":"142"},{"size":1769,"mtime":1675182900170,"hashOfConfig":"142"},{"size":555,"mtime":1675182900170,"hashOfConfig":"142"},{"size":642,"mtime":1675182900170,"hashOfConfig":"142"},{"size":535,"mtime":1675182900170,"hashOfConfig":"142"},{"size":259,"mtime":1675182900170,"hashOfConfig":"142"},{"size":1631,"mtime":1675182900170,"hashOfConfig":"142"},{"size":1660,"mtime":1675182900178,"hashOfConfig":"142"},{"size":846,"mtime":1675182900178,"hashOfConfig":"142"},{"size":964,"mtime":1675182900178,"hashOfConfig":"142"},{"size":963,"mtime":1675182900178,"hashOfConfig":"142"},{"size":2288,"mtime":1675182900178,"hashOfConfig":"142"},{"size":1225,"mtime":1675182900182,"hashOfConfig":"142"},{"size":35,"mtime":1675182900186,"hashOfConfig":"142"},{"size":1352,"mtime":1675182900186,"hashOfConfig":"142"},{"size":267,"mtime":1675182900186,"hashOfConfig":"142"},{"size":781,"mtime":1675182900194,"hashOfConfig":"142"},{"size":5729,"mtime":1675182900194,"hashOfConfig":"142"},{"size":1610,"mtime":1675182900194,"hashOfConfig":"142"},{"size":367,"mtime":1675182900194,"hashOfConfig":"142"},{"size":892,"mtime":1675182900194,"hashOfConfig":"142"},{"size":1473,"mtime":1675182900194,"hashOfConfig":"142"},{"size":372,"mtime":1675182900194,"hashOfConfig":"142"},{"size":357,"mtime":1675182900198,"hashOfConfig":"142"},{"size":317,"mtime":1675182900198,"hashOfConfig":"142"},{"size":125,"mtime":1675182900198,"hashOfConfig":"142"},{"size":580,"mtime":1675182900198,"hashOfConfig":"142"},{"size":41,"mtime":1675182900198,"hashOfConfig":"142"},{"size":2241,"mtime":1675182900198,"hashOfConfig":"142"},{"size":1462,"mtime":1675182900202,"hashOfConfig":"142"},{"size":276,"mtime":1675182900202,"hashOfConfig":"142"},{"size":4440,"mtime":1675182900202,"hashOfConfig":"142"},{"size":1893,"mtime":1675182900202,"hashOfConfig":"142"},{"size":227,"mtime":1675182900202,"hashOfConfig":"142"},{"size":1296,"mtime":1675182900202,"hashOfConfig":"142"},{"size":936,"mtime":1675182900202,"hashOfConfig":"142"},{"size":673,"mtime":1675182900206,"hashOfConfig":"142"},{"size":909,"mtime":1675182900206,"hashOfConfig":"142"},{"size":2188,"mtime":1675182900206,"hashOfConfig":"142"},{"size":2655,"mtime":1675182900206,"hashOfConfig":"142"},{"size":1264,"mtime":1675182900206,"hashOfConfig":"142"},{"size":1380,"mtime":1675182900210,"hashOfConfig":"142"},{"size":1681,"mtime":1675182900210,"hashOfConfig":"142"},{"size":2491,"mtime":1675182900210,"hashOfConfig":"142"},{"size":276,"mtime":1675182900214,"hashOfConfig":"142"},{"size":1308,"mtime":1675182900214,"hashOfConfig":"142"},{"size":1371,"mtime":1675182900218,"hashOfConfig":"142"},{"size":443,"mtime":1675182900218,"hashOfConfig":"142"},{"size":100,"mtime":1675182900218,"hashOfConfig":"142"},{"size":1101,"mtime":1675182900218,"hashOfConfig":"142"},{"size":10,"mtime":1675182900218,"hashOfConfig":"142"},{"size":1476,"mtime":1675182900218,"hashOfConfig":"142"},{"size":975,"mtime":1675182900222,"hashOfConfig":"142"},{"size":2067,"mtime":1675182900222,"hashOfConfig":"142"},{"size":833,"mtime":1675182900222,"hashOfConfig":"142"},{"size":3250,"mtime":1675182900222,"hashOfConfig":"142"},{"size":513,"mtime":1675182900222,"hashOfConfig":"142"},{"size":1647,"mtime":1675182900226,"hashOfConfig":"142"},{"size":1379,"mtime":1675182900230,"hashOfConfig":"142"},{"size":2877,"mtime":1675182900230,"hashOfConfig":"142"},{"size":5373,"mtime":1675182900234,"hashOfConfig":"142"},{"size":154,"mtime":1675182900234,"hashOfConfig":"142"},{"size":1524,"mtime":1675182900234,"hashOfConfig":"142"},{"size":1834,"mtime":1675182900234,"hashOfConfig":"142"},{"size":2326,"mtime":1675182900234,"hashOfConfig":"142"},{"size":866,"mtime":1675182900234,"hashOfConfig":"142"},{"size":527,"mtime":1675182900234,"hashOfConfig":"142"},{"size":1714,"mtime":1675182900234,"hashOfConfig":"142"},{"size":987,"mtime":1675182900234,"hashOfConfig":"142"},{"size":616,"mtime":1675182900238,"hashOfConfig":"142"},{"size":283,"mtime":1675182900238,"hashOfConfig":"142"},{"size":937,"mtime":1675182900238,"hashOfConfig":"142"},{"size":2083,"mtime":1675182900238,"hashOfConfig":"142"},{"size":1844,"mtime":1675182900238,"hashOfConfig":"142"},{"size":202,"mtime":1675182900238,"hashOfConfig":"142"},{"size":2571,"mtime":1675182900242,"hashOfConfig":"142"},{"size":3121,"mtime":1675182900242,"hashOfConfig":"142"},{"size":1341,"mtime":1675182900242,"hashOfConfig":"142"},{"size":2640,"mtime":1675182900242,"hashOfConfig":"142"},{"size":1254,"mtime":1675182900242,"hashOfConfig":"142"},{"size":9040,"mtime":1675182900246,"hashOfConfig":"142"},{"size":1116,"mtime":1675182900246,"hashOfConfig":"142"},{"size":1424,"mtime":1675182900250,"hashOfConfig":"142"},{"size":857,"mtime":1675182900250,"hashOfConfig":"142"},{"size":3357,"mtime":1675182900250,"hashOfConfig":"142"},{"size":2533,"mtime":1675182900250,"hashOfConfig":"142"},{"size":1683,"mtime":1675182900254,"hashOfConfig":"142"},{"size":1686,"mtime":1675182900254,"hashOfConfig":"142"},{"size":3087,"mtime":1675182900254,"hashOfConfig":"142"},{"size":869,"mtime":1675182900254,"hashOfConfig":"142"},{"size":475,"mtime":1675182900254,"hashOfConfig":"142"},{"size":453,"mtime":1675182900254,"hashOfConfig":"142"},{"size":1063,"mtime":1675182900254,"hashOfConfig":"142"},{"size":609,"mtime":1675182900254,"hashOfConfig":"142"},{"size":3332,"mtime":1675182900258,"hashOfConfig":"142"},{"size":4496,"mtime":1675182900258,"hashOfConfig":"142"},{"size":956,"mtime":1675182900258,"hashOfConfig":"142"},{"size":2307,"mtime":1675182900262,"hashOfConfig":"142"},{"size":1117,"mtime":1675182900262,"hashOfConfig":"142"},{"size":1138,"mtime":1675182900262,"hashOfConfig":"142"},{"size":1475,"mtime":1675182900266,"hashOfConfig":"142"},{"size":1277,"mtime":1675182900290,"hashOfConfig":"142"},{"size":1722,"mtime":1675182900294,"hashOfConfig":"142"},{"size":3097,"mtime":1675182900294,"hashOfConfig":"142"},{"size":167,"mtime":1675182900294,"hashOfConfig":"142"},{"size":1742,"mtime":1675182900294,"hashOfConfig":"142"},{"size":1268,"mtime":1675182900294,"hashOfConfig":"142"},{"size":1300,"mtime":1675182900262,"hashOfConfig":"142"},{"size":2197,"mtime":1675182900262,"hashOfConfig":"142"},{"size":5978,"mtime":1675182900262,"hashOfConfig":"142"},{"size":379,"mtime":1675182900178,"hashOfConfig":"142"},{"size":105,"mtime":1675182900178,"hashOfConfig":"142"},{"size":627,"mtime":1675182900246,"hashOfConfig":"142"},{"size":3303,"mtime":1675182900270,"hashOfConfig":"142"},{"size":699,"mtime":1675182900270,"hashOfConfig":"142"},{"size":1676,"mtime":1675182900274,"hashOfConfig":"142"},{"size":419,"mtime":1675182900274,"hashOfConfig":"142"},{"size":980,"mtime":1675182900286,"hashOfConfig":"142"},{"size":1086,"mtime":1675182900286,"hashOfConfig":"142"},{"size":1346,"mtime":1675182900290,"hashOfConfig":"142"},"txhyqm"]
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_dark.css":"9","/home/runner/work/VKUI/VKUI/src/styles/vkcom_light.css":"10","/home/runner/work/VKUI/VKUI/src/fonts/fonts.css":"11","/home/runner/work/VKUI/VKUI/src/components/ActionSheet/ActionSheet.css":"12","/home/runner/work/VKUI/VKUI/src/components/ActionSheetItem/ActionSheetItem.css":"13","/home/runner/work/VKUI/VKUI/src/components/Alert/Alert.css":"14","/home/runner/work/VKUI/VKUI/src/components/AppRoot/AppRoot.css":"15","/home/runner/work/VKUI/VKUI/src/components/Avatar/Avatar.css":"16","/home/runner/work/VKUI/VKUI/src/components/Banner/Banner.css":"17","/home/runner/work/VKUI/VKUI/src/components/BaseGallery/BaseGallery.css":"18","/home/runner/work/VKUI/VKUI/src/components/Button/Button.css":"19","/home/runner/work/VKUI/VKUI/src/components/ButtonGroup/ButtonGroup.css":"20","/home/runner/work/VKUI/VKUI/src/components/Calendar/Calendar.css":"21","/home/runner/work/VKUI/VKUI/src/components/CalendarDay/CalendarDay.css":"22","/home/runner/work/VKUI/VKUI/src/components/CalendarDays/CalendarDays.css":"23","/home/runner/work/VKUI/VKUI/src/components/CalendarHeader/CalendarHeader.css":"24","/home/runner/work/VKUI/VKUI/src/components/CalendarRange/CalendarRange.css":"25","/home/runner/work/VKUI/VKUI/src/components/CalendarTime/CalendarTime.css":"26","/home/runner/work/VKUI/VKUI/src/components/Card/Card.css":"27","/home/runner/work/VKUI/VKUI/src/components/CardGrid/CardGrid.css":"28","/home/runner/work/VKUI/VKUI/src/components/CardScroll/CardScroll.css":"29","/home/runner/work/VKUI/VKUI/src/components/Cell/Cell.css":"30","/home/runner/work/VKUI/VKUI/src/components/CellButton/CellButton.css":"31","/home/runner/work/VKUI/VKUI/src/components/Checkbox/Checkbox.css":"32","/home/runner/work/VKUI/VKUI/src/components/Chip/Chip.css":"33","/home/runner/work/VKUI/VKUI/src/components/Badge/Badge.css":"34","/home/runner/work/VKUI/VKUI/src/components/ChipsInput/ChipsInput.css":"35","/home/runner/work/VKUI/VKUI/src/components/ChipsInputBase/ChipsInputBase.css":"36","/home/runner/work/VKUI/VKUI/src/components/ChipsSelect/ChipsSelect.css":"37","/home/runner/work/VKUI/VKUI/src/components/ContentCard/ContentCard.css":"38","/home/runner/work/VKUI/VKUI/src/components/Counter/Counter.css":"39","/home/runner/work/VKUI/VKUI/src/components/CustomScrollView/CustomScrollView.css":"40","/home/runner/work/VKUI/VKUI/src/components/CustomSelect/CustomSelect.css":"41","/home/runner/work/VKUI/VKUI/src/components/CustomSelectDropdown/CustomSelectDropdown.css":"42","/home/runner/work/VKUI/VKUI/src/components/CustomSelectOption/CustomSelectOption.css":"43","/home/runner/work/VKUI/VKUI/src/components/DateInput/DateInput.css":"44","/home/runner/work/VKUI/VKUI/src/components/DatePicker/DatePicker.css":"45","/home/runner/work/VKUI/VKUI/src/components/DateRangeInput/DateRangeInput.css":"46","/home/runner/work/VKUI/VKUI/src/components/Div/Div.css":"47","/home/runner/work/VKUI/VKUI/src/components/Epic/Epic.css":"48","/home/runner/work/VKUI/VKUI/src/components/FixedLayout/FixedLayout.css":"49","/home/runner/work/VKUI/VKUI/src/components/FocusVisible/FocusVisible.css":"50","/home/runner/work/VKUI/VKUI/src/components/Footer/Footer.css":"51","/home/runner/work/VKUI/VKUI/src/components/FormField/FormField.css":"52","/home/runner/work/VKUI/VKUI/src/components/FormItem/FormItem.css":"53","/home/runner/work/VKUI/VKUI/src/components/FormLayout/FormLayout.css":"54","/home/runner/work/VKUI/VKUI/src/components/FormLayoutGroup/FormLayoutGroup.css":"55","/home/runner/work/VKUI/VKUI/src/components/FormStatus/FormStatus.css":"56","/home/runner/work/VKUI/VKUI/src/components/Gradient/Gradient.css":"57","/home/runner/work/VKUI/VKUI/src/components/GridAvatar/GridAvatar.css":"58","/home/runner/work/VKUI/VKUI/src/components/Group/Group.css":"59","/home/runner/work/VKUI/VKUI/src/components/Header/Header.css":"60","/home/runner/work/VKUI/VKUI/src/components/HorizontalCell/HorizontalCell.css":"61","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScroll.css":"62","/home/runner/work/VKUI/VKUI/src/components/HorizontalScroll/HorizontalScrollArrow.css":"63","/home/runner/work/VKUI/VKUI/src/components/IconButton/IconButton.css":"64","/home/runner/work/VKUI/VKUI/src/components/InfoRow/InfoRow.css":"65","/home/runner/work/VKUI/VKUI/src/components/InitialsAvatar/InitialsAvatar.css":"66","/home/runner/work/VKUI/VKUI/src/components/Input/Input.css":"67","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLike.css":"68","/home/runner/work/VKUI/VKUI/src/components/InputLike/InputLikeDivider.css":"69","/home/runner/work/VKUI/VKUI/src/components/Link/Link.css":"70","/home/runner/work/VKUI/VKUI/src/components/List/List.css":"71","/home/runner/work/VKUI/VKUI/src/components/MiniInfoCell/MiniInfoCell.css":"72","/home/runner/work/VKUI/VKUI/src/components/ModalCard/ModalCard.css":"73","/home/runner/work/VKUI/VKUI/src/components/ModalCardBase/ModalCardBase.css":"74","/home/runner/work/VKUI/VKUI/src/components/ModalDismissButton/ModalDismissButton.css":"75","/home/runner/work/VKUI/VKUI/src/components/ModalPage/ModalPage.css":"76","/home/runner/work/VKUI/VKUI/src/components/ModalPageHeader/ModalPageHeader.css":"77","/home/runner/work/VKUI/VKUI/src/components/ModalRoot/ModalRoot.css":"78","/home/runner/work/VKUI/VKUI/src/components/Pagination/Pagination.css":"79","/home/runner/work/VKUI/VKUI/src/components/Panel/Panel.css":"80","/home/runner/work/VKUI/VKUI/src/components/PanelHeader/PanelHeader.css":"81","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderBack/PanelHeaderBack.css":"82","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderButton/PanelHeaderButton.css":"83","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContent/PanelHeaderContent.css":"84","/home/runner/work/VKUI/VKUI/src/components/PanelHeaderContext/PanelHeaderContext.css":"85","/home/runner/work/VKUI/VKUI/src/components/Placeholder/Placeholder.css":"86","/home/runner/work/VKUI/VKUI/src/components/PopoutRoot/PopoutRoot.css":"87","/home/runner/work/VKUI/VKUI/src/components/PopoutWrapper/PopoutWrapper.css":"88","/home/runner/work/VKUI/VKUI/src/components/Popper/Popper.css":"89","/home/runner/work/VKUI/VKUI/src/components/PopperArrow/PopperArrow.css":"90","/home/runner/work/VKUI/VKUI/src/components/Progress/Progress.css":"91","/home/runner/work/VKUI/VKUI/src/components/PromoBanner/PromoBanner.css":"92","/home/runner/work/VKUI/VKUI/src/components/PullToRefresh/PullToRefresh.css":"93","/home/runner/work/VKUI/VKUI/src/components/Radio/Radio.css":"94","/home/runner/work/VKUI/VKUI/src/components/RadioGroup/RadioGroup.css":"95","/home/runner/work/VKUI/VKUI/src/components/Removable/Removable.css":"96","/home/runner/work/VKUI/VKUI/src/components/RichCell/RichCell.css":"97","/home/runner/work/VKUI/VKUI/src/components/RichTooltip/RichTooltip.css":"98","/home/runner/work/VKUI/VKUI/src/components/Root/Root.css":"99","/home/runner/work/VKUI/VKUI/src/components/ScreenSpinner/ScreenSpinner.css":"100","/home/runner/work/VKUI/VKUI/src/components/Search/Search.css":"101","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControl.css":"102","/home/runner/work/VKUI/VKUI/src/components/Select/Select.css":"103","/home/runner/work/VKUI/VKUI/src/components/Separator/Separator.css":"104","/home/runner/work/VKUI/VKUI/src/components/SimpleCell/SimpleCell.css":"105","/home/runner/work/VKUI/VKUI/src/components/SimpleCheckbox/SimpleCheckbox.css":"106","/home/runner/work/VKUI/VKUI/src/components/Slider/Slider.css":"107","/home/runner/work/VKUI/VKUI/src/components/SliderSwitch/SliderSwitch.css":"108","/home/runner/work/VKUI/VKUI/src/components/Snackbar/Snackbar.css":"109","/home/runner/work/VKUI/VKUI/src/components/Spacing/Spacing.css":"110","/home/runner/work/VKUI/VKUI/src/components/Spinner/Spinner.css":"111","/home/runner/work/VKUI/VKUI/src/components/SplitCol/SplitCol.css":"112","/home/runner/work/VKUI/VKUI/src/components/SplitLayout/SplitLayout.css":"113","/home/runner/work/VKUI/VKUI/src/components/SubnavigationBar/SubnavigationBar.css":"114","/home/runner/work/VKUI/VKUI/src/components/SubnavigationButton/SubnavigationButton.css":"115","/home/runner/work/VKUI/VKUI/src/components/Switch/Switch.css":"116","/home/runner/work/VKUI/VKUI/src/components/Tabbar/Tabbar.css":"117","/home/runner/work/VKUI/VKUI/src/components/TabbarItem/TabbarItem.css":"118","/home/runner/work/VKUI/VKUI/src/components/Tabs/Tabs.css":"119","/home/runner/work/VKUI/VKUI/src/components/Textarea/Textarea.css":"120","/home/runner/work/VKUI/VKUI/src/components/Tooltip/Tooltip.css":"121","/home/runner/work/VKUI/VKUI/src/components/UsersStack/UsersStack.css":"122","/home/runner/work/VKUI/VKUI/src/components/View/View.css":"123","/home/runner/work/VKUI/VKUI/src/components/View/ViewIOS.css":"124","/home/runner/work/VKUI/VKUI/src/components/VisuallyHiddenInput/VisuallyHiddenInput.css":"125","/home/runner/work/VKUI/VKUI/src/components/WriteBar/WriteBar.css":"126","/home/runner/work/VKUI/VKUI/src/components/WriteBarIcon/WriteBarIcon.css":"127","/home/runner/work/VKUI/VKUI/src/components/Dropdown/Dropdown.css":"128","/home/runner/work/VKUI/VKUI/src/components/TextTooltip/TextTooltip.css":"129","/home/runner/work/VKUI/VKUI/src/components/Tappable/Tappable.css":"130","/home/runner/work/VKUI/VKUI/src/components/TabsItem/TabsItem.css":"131","/home/runner/work/VKUI/VKUI/src/components/Cell/CellCheckbox/CellCheckbox.css":"132","/home/runner/work/VKUI/VKUI/src/components/Cell/CellDragger/CellDragger.css":"133","/home/runner/work/VKUI/VKUI/src/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.css":"134","/home/runner/work/VKUI/VKUI/src/components/Typography/Footnote/Footnote.css":"135","/home/runner/work/VKUI/VKUI/src/components/Typography/Headline/Headline.css":"136","/home/runner/work/VKUI/VKUI/src/components/Typography/Paragraph/Paragraph.css":"137","/home/runner/work/VKUI/VKUI/src/components/Typography/Subhead/Subhead.css":"138","/home/runner/work/VKUI/VKUI/src/components/Typography/Text/Text.css":"139","/home/runner/work/VKUI/VKUI/src/components/Typography/Title/Title.css":"140","/home/runner/work/VKUI/VKUI/src/components/Typography/Caption/Caption.css":"141"},{"size":205,"mtime":1677846462859,"hashOfConfig":"142"},{"size":9949,"mtime":1677846462859,"hashOfConfig":"142"},{"size":706,"mtime":1677846462859,"hashOfConfig":"142"},{"size":6989,"mtime":1677846462859,"hashOfConfig":"142"},{"size":2498,"mtime":1677846462859,"hashOfConfig":"142"},{"size":10057,"mtime":1677846462859,"hashOfConfig":"142"},{"size":895,"mtime":1677846462859,"hashOfConfig":"142"},{"size":277,"mtime":1677846462859,"hashOfConfig":"142"},{"size":10147,"mtime":1677846462859,"hashOfConfig":"142"},{"size":9990,"mtime":1677846462859,"hashOfConfig":"142"},{"size":214,"mtime":1677846462855,"hashOfConfig":"142"},{"size":2125,"mtime":1677846462607,"hashOfConfig":"142"},{"size":5187,"mtime":1677846462691,"hashOfConfig":"142"},{"size":5141,"mtime":1677846462691,"hashOfConfig":"142"},{"size":343,"mtime":1677846462699,"hashOfConfig":"142"},{"size":3547,"mtime":1677846462699,"hashOfConfig":"142"},{"size":2814,"mtime":1677846462703,"hashOfConfig":"142"},{"size":1206,"mtime":1677846462707,"hashOfConfig":"142"},{"size":20216,"mtime":1677846462707,"hashOfConfig":"142"},{"size":2225,"mtime":1677846462711,"hashOfConfig":"142"},{"size":594,"mtime":1677846462715,"hashOfConfig":"142"},{"size":1769,"mtime":1677846462719,"hashOfConfig":"142"},{"size":555,"mtime":1677846462719,"hashOfConfig":"142"},{"size":642,"mtime":1677846462719,"hashOfConfig":"142"},{"size":535,"mtime":1677846462719,"hashOfConfig":"142"},{"size":259,"mtime":1677846462719,"hashOfConfig":"142"},{"size":1631,"mtime":1677846462719,"hashOfConfig":"142"},{"size":1660,"mtime":1677846462723,"hashOfConfig":"142"},{"size":846,"mtime":1677846462723,"hashOfConfig":"142"},{"size":964,"mtime":1677846462723,"hashOfConfig":"142"},{"size":963,"mtime":1677846462727,"hashOfConfig":"142"},{"size":2288,"mtime":1677846462731,"hashOfConfig":"142"},{"size":1225,"mtime":1677846462735,"hashOfConfig":"142"},{"size":326,"mtime":1677846462703,"hashOfConfig":"142"},{"size":35,"mtime":1677846462739,"hashOfConfig":"142"},{"size":1352,"mtime":1677846462739,"hashOfConfig":"142"},{"size":267,"mtime":1677846462739,"hashOfConfig":"142"},{"size":781,"mtime":1677846462739,"hashOfConfig":"142"},{"size":5729,"mtime":1677846462743,"hashOfConfig":"142"},{"size":1610,"mtime":1677846462743,"hashOfConfig":"142"},{"size":367,"mtime":1677846462743,"hashOfConfig":"142"},{"size":892,"mtime":1677846462747,"hashOfConfig":"142"},{"size":1473,"mtime":1677846462747,"hashOfConfig":"142"},{"size":372,"mtime":1677846462747,"hashOfConfig":"142"},{"size":357,"mtime":1677846462751,"hashOfConfig":"142"},{"size":317,"mtime":1677846462751,"hashOfConfig":"142"},{"size":125,"mtime":1677846462751,"hashOfConfig":"142"},{"size":41,"mtime":1677846462751,"hashOfConfig":"142"},{"size":2241,"mtime":1677846462751,"hashOfConfig":"142"},{"size":1462,"mtime":1677846462755,"hashOfConfig":"142"},{"size":276,"mtime":1677846462755,"hashOfConfig":"142"},{"size":4440,"mtime":1677846462755,"hashOfConfig":"142"},{"size":1893,"mtime":1677846462755,"hashOfConfig":"142"},{"size":227,"mtime":1677846462755,"hashOfConfig":"142"},{"size":1296,"mtime":1677846462755,"hashOfConfig":"142"},{"size":936,"mtime":1677846462759,"hashOfConfig":"142"},{"size":673,"mtime":1677846462759,"hashOfConfig":"142"},{"size":909,"mtime":1677846462759,"hashOfConfig":"142"},{"size":2188,"mtime":1677846462759,"hashOfConfig":"142"},{"size":2852,"mtime":1677846462759,"hashOfConfig":"142"},{"size":1264,"mtime":1677846462763,"hashOfConfig":"142"},{"size":1387,"mtime":1677846462763,"hashOfConfig":"142"},{"size":1681,"mtime":1677846462763,"hashOfConfig":"142"},{"size":2491,"mtime":1677846462771,"hashOfConfig":"142"},{"size":276,"mtime":1677846462771,"hashOfConfig":"142"},{"size":1308,"mtime":1677846462775,"hashOfConfig":"142"},{"size":1371,"mtime":1677846462775,"hashOfConfig":"142"},{"size":443,"mtime":1677846462779,"hashOfConfig":"142"},{"size":100,"mtime":1677846462779,"hashOfConfig":"142"},{"size":1101,"mtime":1677846462779,"hashOfConfig":"142"},{"size":10,"mtime":1677846462779,"hashOfConfig":"142"},{"size":1476,"mtime":1677846462779,"hashOfConfig":"142"},{"size":975,"mtime":1677846462779,"hashOfConfig":"142"},{"size":2067,"mtime":1677846462783,"hashOfConfig":"142"},{"size":833,"mtime":1677846462783,"hashOfConfig":"142"},{"size":3250,"mtime":1677846462783,"hashOfConfig":"142"},{"size":513,"mtime":1677846462783,"hashOfConfig":"142"},{"size":1647,"mtime":1677846462787,"hashOfConfig":"142"},{"size":1379,"mtime":1677846462791,"hashOfConfig":"142"},{"size":2877,"mtime":1677846462791,"hashOfConfig":"142"},{"size":5373,"mtime":1677846462795,"hashOfConfig":"142"},{"size":154,"mtime":1677846462795,"hashOfConfig":"142"},{"size":1524,"mtime":1677846462795,"hashOfConfig":"142"},{"size":1834,"mtime":1677846462795,"hashOfConfig":"142"},{"size":2326,"mtime":1677846462795,"hashOfConfig":"142"},{"size":866,"mtime":1677846462795,"hashOfConfig":"142"},{"size":527,"mtime":1677846462799,"hashOfConfig":"142"},{"size":1714,"mtime":1677846462799,"hashOfConfig":"142"},{"size":987,"mtime":1677846462799,"hashOfConfig":"142"},{"size":616,"mtime":1677846462799,"hashOfConfig":"142"},{"size":283,"mtime":1677846462799,"hashOfConfig":"142"},{"size":937,"mtime":1677846462799,"hashOfConfig":"142"},{"size":2083,"mtime":1677846462799,"hashOfConfig":"142"},{"size":1844,"mtime":1677846462799,"hashOfConfig":"142"},{"size":202,"mtime":1677846462803,"hashOfConfig":"142"},{"size":2571,"mtime":1677846462803,"hashOfConfig":"142"},{"size":3121,"mtime":1677846462803,"hashOfConfig":"142"},{"size":1341,"mtime":1677846462807,"hashOfConfig":"142"},{"size":2640,"mtime":1677846462807,"hashOfConfig":"142"},{"size":1254,"mtime":1677846462807,"hashOfConfig":"142"},{"size":9034,"mtime":1677846462807,"hashOfConfig":"142"},{"size":1116,"mtime":1677846462811,"hashOfConfig":"142"},{"size":1424,"mtime":1677846462811,"hashOfConfig":"142"},{"size":857,"mtime":1677846462815,"hashOfConfig":"142"},{"size":3357,"mtime":1677846462815,"hashOfConfig":"142"},{"size":2533,"mtime":1677846462815,"hashOfConfig":"142"},{"size":1683,"mtime":1677846462819,"hashOfConfig":"142"},{"size":1686,"mtime":1677846462819,"hashOfConfig":"142"},{"size":3087,"mtime":1677846462823,"hashOfConfig":"142"},{"size":869,"mtime":1677846462823,"hashOfConfig":"142"},{"size":475,"mtime":1677846462823,"hashOfConfig":"142"},{"size":453,"mtime":1677846462823,"hashOfConfig":"142"},{"size":1063,"mtime":1677846462823,"hashOfConfig":"142"},{"size":609,"mtime":1677846462823,"hashOfConfig":"142"},{"size":3332,"mtime":1677846462823,"hashOfConfig":"142"},{"size":4496,"mtime":1677846462823,"hashOfConfig":"142"},{"size":956,"mtime":1677846462827,"hashOfConfig":"142"},{"size":2307,"mtime":1677846462827,"hashOfConfig":"142"},{"size":1117,"mtime":1677846462827,"hashOfConfig":"142"},{"size":1138,"mtime":1677846462831,"hashOfConfig":"142"},{"size":1475,"mtime":1677846462835,"hashOfConfig":"142"},{"size":1277,"mtime":1677846462851,"hashOfConfig":"142"},{"size":1722,"mtime":1677846462851,"hashOfConfig":"142"},{"size":3097,"mtime":1677846462855,"hashOfConfig":"142"},{"size":167,"mtime":1677846462855,"hashOfConfig":"142"},{"size":1742,"mtime":1677846462855,"hashOfConfig":"142"},{"size":1268,"mtime":1677846462855,"hashOfConfig":"142"},{"size":580,"mtime":1677846462751,"hashOfConfig":"142"},{"size":1300,"mtime":1677846462831,"hashOfConfig":"142"},{"size":2197,"mtime":1677846462831,"hashOfConfig":"142"},{"size":6023,"mtime":1677846462831,"hashOfConfig":"142"},{"size":379,"mtime":1677846462723,"hashOfConfig":"142"},{"size":105,"mtime":1677846462723,"hashOfConfig":"142"},{"size":627,"mtime":1677846462811,"hashOfConfig":"142"},{"size":699,"mtime":1677846462839,"hashOfConfig":"142"},{"size":1676,"mtime":1677846462843,"hashOfConfig":"142"},{"size":419,"mtime":1677846462843,"hashOfConfig":"142"},{"size":980,"mtime":1677846462847,"hashOfConfig":"142"},{"size":1086,"mtime":1677846462847,"hashOfConfig":"142"},{"size":1346,"mtime":1677846462847,"hashOfConfig":"142"},{"size":3303,"mtime":1677846462839,"hashOfConfig":"142"},"txhyqm"]
@@ -10666,7 +10666,7 @@
10666
10666
  "signature": "fa58a3aaba2ffee3dddd18c69ce40d8a67537e0d448d9bc11c673dc5196e8e4f"
10667
10667
  },
10668
10668
  "../src/components/Tooltip/Tooltip.tsx": {
10669
- "version": "31f9adddcc19c748fe9eb306836d36f9cc7c2a74f4e20fdf7af127e11620a00d",
10669
+ "version": "df1197d8a6e4c11aa3478c06158dbab1ae3f738bec9ef9bb5548da947d439838",
10670
10670
  "signature": "56c6aeedda888395291c26c5d63a4545bc92756814e7d6fb04640baf658ccd54"
10671
10671
  },
10672
10672
  "../src/hooks/useId.ts": {
@@ -10826,7 +10826,7 @@
10826
10826
  "signature": "fe8703571cc0ceb32e9914fde981c733d5462123cdfa88c2e4bb28b5018098ea"
10827
10827
  },
10828
10828
  "../src/components/CustomSelect/CustomSelect.tsx": {
10829
- "version": "8bbb5d82d16d41322d182485bfbaca2140f91cc25a993135a30154e5d61fd072",
10829
+ "version": "301ab7e6dffb6a9924a90ee6eb540e13f030d760d76c9549d4c536c16521f36e",
10830
10830
  "signature": "ae9a5ca6a5471f083d67c737fa0bff1734dbd28ec4b1561c2659814478db1628"
10831
10831
  },
10832
10832
  "../src/components/Select/Select.tsx": {
@@ -11154,7 +11154,7 @@
11154
11154
  "signature": "80c5cc666e0960dcb1a1c62e291faa9b5ca31165630162413bfcc18166570942"
11155
11155
  },
11156
11156
  "../src/components/Dropdown/Dropdown.tsx": {
11157
- "version": "61cebaa535366fd64fead67a86434987c9815bb7ee672fcca9fe62fbdb288f0d",
11157
+ "version": "908819053ba064bc4f9ab36235bf7da896e6dc129b6c737aa977653e223fcb53",
11158
11158
  "signature": "2baa02417769dbe7d219314a8bea7a293f73e5156ae25778c55fd25c3a5f515c"
11159
11159
  },
11160
11160
  "../src/tokenized/index.ts": {
@@ -11598,7 +11598,7 @@
11598
11598
  "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
11599
11599
  },
11600
11600
  "../src/components/CustomSelect/CustomSelect.test.tsx": {
11601
- "version": "87e92fe31b8401a98d971faa1b25472bfedc7771413e9986c1836f5bdbbb35a3",
11601
+ "version": "fcfb00e7d4bd45780bca6735e3e6c7cba55e60ffb7e19c1bd948cbece42fc0bc",
11602
11602
  "signature": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"
11603
11603
  },
11604
11604
  "../src/components/CustomSelectDropdown/CustomSelectDropdown.test.tsx": {
@@ -174,7 +174,10 @@ function CustomSelectComponent(props) {
174
174
  });
175
175
  }, [props.value]);
176
176
  (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(function () {
177
- if (nativeSelectValue !== undefined) {
177
+ if (options.some(function (_ref2) {
178
+ var value = _ref2.value;
179
+ return nativeSelectValue === value;
180
+ })) {
178
181
  var _selectElRef$current;
179
182
  var _event = new Event("change", {
180
183
  bubbles: true
@@ -313,8 +316,8 @@ function CustomSelectComponent(props) {
313
316
  focusOptionByIndex(index);
314
317
  }, [focusOptionByIndex, focusedOptionIndex, options]);
315
318
  React.useEffect(function () {
316
- var _ref2, _props$value4;
317
- var value = (_ref2 = (_props$value4 = props.value) !== null && _props$value4 !== void 0 ? _props$value4 : nativeSelectValue) !== null && _ref2 !== void 0 ? _ref2 : props.defaultValue;
319
+ var _ref3, _props$value4;
320
+ var value = (_ref3 = (_props$value4 = props.value) !== null && _props$value4 !== void 0 ? _props$value4 : nativeSelectValue) !== null && _ref3 !== void 0 ? _ref3 : props.defaultValue;
318
321
  var options = searchable && inputValue !== undefined ? filter(optionsProp, inputValue, filterFn) : optionsProp;
319
322
  setOptions(options);
320
323
  setSelectedOptionIndex(findSelectedIndex(options, value));
@@ -1 +1 @@
1
- {"version":3,"file":"CustomSelect.js","names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","warnOnce","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","Number","filter","inputValue","filterFn","defaultOptions","CustomSelectComponent","React","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","sizeY","platform","style","onChange","children","onInputChangeProp","onInputChange","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","SelectType","default","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOption","renderOptionProp","optionsProp","emptyText","defaultFilterFn","icon","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","containerRef","useRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","useIsomorphicLayoutEffect","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","classNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","onKeyboardInput","key","fullInput","optionIndex","getTitleFromChildren","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","debounce","focusOption","type","nextIndex","beforeIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","multiRef","placeholder","getFormFieldModeFromSelectType","CustomSelect","withAdaptivity"],"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, multiRef, getTitleFromChildren } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { SelectType } from \"../Select/Select\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\nfunction defaultRenderOptionFn({\n option,\n ...props\n}: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (\n e: React.MouseEvent<HTMLElement>\n) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue\n) {\n return (\n options.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps,\n TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nfunction CustomSelectComponent(props: CustomSelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n sizeY,\n platform,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = SelectType.default,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = \"Ничего не найдено\",\n filterFn = defaultFilterFn,\n icon = <DropdownIcon opened={opened} />,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(optionsProp);\n }\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const selectElRef = React.useRef<HTMLSelectElement>(null);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<\n number | undefined\n >(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(\n props.value !== undefined\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n props.value ?? props.defaultValue\n );\n const [keyboardInput, setKeyboardInput] = React.useState(\"\");\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<\n number | undefined\n >(findSelectedIndex(optionsProp, props.value ?? props.defaultValue));\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue(\n (nativeSelectValue) => props.value ?? nativeSelectValue\n );\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (nativeSelectValue !== undefined) {\n const event = new Event(\"change\", { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened && \"Select--open\",\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n ),\n [dropdownOffsetDistance, opened, popperPlacement]\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput(\"\");\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length]\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (options.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex\n );\n },\n [options, scrollToElement]\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options]\n );\n\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue(\"\");\n setOpened(false);\n setFocusedOptionIndex(-1);\n setOptions(optionsProp);\n onClose?.();\n }, [onClose, optionsProp, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === \"function\") {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n React.useEffect(() => {\n if (\n opened &&\n selectedOptionIndex !== undefined &&\n isValidIndex(selectedOptionIndex)\n ) {\n scrollToElement(selectedOptionIndex, true);\n }\n }, [isValidIndex, opened, scrollToElement, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event(\"blur\");\n selectElRef.current?.dispatchEvent(event);\n }, [close]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event(\"focus\");\n selectElRef.current?.dispatchEvent(event);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(\n () => debounce(resetKeyboardInput, 1000),\n [resetKeyboardInput]\n );\n\n const focusOption = React.useCallback(\n (type: \"next\" | \"prev\") => {\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options]\n );\n\n React.useEffect(() => {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value));\n }, [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n ]);\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback(\n (e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n },\n []\n );\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> =\n React.useCallback(\n (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n },\n [isControlledOutside, onChange, options, selectedOptionIndex]\n );\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> =\n React.useCallback(\n (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n areOptionsShown() && focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n areOptionsShown() && focusOption(\"next\");\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused]\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> =\n React.useCallback(\n (e) => {\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n setOptions(options);\n setSelectedOptionIndex(\n findSelectedIndex(options, nativeSelectValue)\n );\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp]\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== \" \") {\n onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n areOptionsShown() && focusOption(\"prev\");\n } else {\n open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n areOptionsShown() && focusOption(\"next\");\n } else {\n open();\n }\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [\n areOptionsShown,\n close,\n focusOption,\n onKeyboardInput,\n open,\n opened,\n selectFocused,\n ]\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused]\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n },\n [focusOptionByIndex]\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ]\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">{emptyText}</Caption>\n );\n\n if (typeof renderDropdown === \"function\") {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n return (\n <label\n vkuiClass=\"CustomSelect\"\n className={className}\n style={style}\n ref={multiRef(containerRef, getRootRef)}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={props.onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n before={before}\n after={icon}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n observableRefs={scrollBoxRef}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"CustomSelect.js","names":["findIndexAfter","options","startIndex","length","findIndex","option","i","disabled","findIndexBefore","endIndex","result","warn","warnOnce","checkOptionsValueType","Set","map","item","value","size","defaultRenderOptionFn","props","handleOptionDown","e","preventDefault","findSelectedIndex","Number","filter","inputValue","filterFn","defaultOptions","CustomSelectComponent","React","useState","opened","setOpened","before","name","className","getRef","getRootRef","popupDirection","sizeY","platform","style","onChange","children","onInputChangeProp","onInputChange","renderDropdown","onOpen","onClose","fetching","forceDropdownPortal","selectType","SelectType","default","autoHideScrollbar","autoHideScrollbarDelay","searchable","renderOption","renderOptionProp","optionsProp","emptyText","defaultFilterFn","icon","dropdownOffsetDistance","fixDropdownWidth","restProps","process","env","NODE_ENV","containerRef","useRef","scrollBoxRef","selectElRef","focusedOptionIndex","setFocusedOptionIndex","undefined","isControlledOutside","setIsControlledOutside","setInputValue","defaultValue","nativeSelectValue","setNativeSelectValue","keyboardInput","setKeyboardInput","popperPlacement","setPopperPlacement","setOptions","selectedOptionIndex","setSelectedOptionIndex","useEffect","useIsomorphicLayoutEffect","some","event","Event","bubbles","current","dispatchEvent","selected","useMemo","openedClassNames","classNames","includes","resetKeyboardInput","useCallback","scrollToElement","index","center","dropdown","dropdownHeight","offsetHeight","scrollTop","itemTop","offsetTop","itemHeight","isValidIndex","focusOptionByIndex","scrollTo","areOptionsShown","onKeyboardInput","key","fullInput","optionIndex","getTitleFromChildren","label","toLowerCase","close","selectFocused","open","onBlur","resetFocusedOption","onFocus","onClick","handleKeyUp","debounce","focusOption","type","nextIndex","beforeIndex","onLabelClick","contains","target","onNativeSelectChange","newSelectedOptionIndex","currentTarget","onInputKeyDown","handleKeyDownSelect","handleOptionClick","Array","prototype","indexOf","call","parentNode","handleOptionHover","hovered","onMouseDown","onMouseOver","resolvedContent","defaultDropdownContent","multiRef","placeholder","getFormFieldModeFromSelectType","CustomSelect","withAdaptivity"],"sources":["../../../../src/components/CustomSelect/CustomSelect.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { SelectMimicry } from \"../SelectMimicry/SelectMimicry\";\nimport { debounce, multiRef, getTitleFromChildren } from \"../../lib/utils\";\nimport { classNames } from \"../../lib/classNames\";\nimport { NativeSelectProps } from \"../NativeSelect/NativeSelect\";\nimport { withAdaptivity } from \"../../hoc/withAdaptivity\";\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from \"../CustomSelectOption/CustomSelectOption\";\nimport { FormFieldProps } from \"../FormField/FormField\";\nimport { HasPlatform } from \"../../types\";\nimport { Input } from \"../Input/Input\";\nimport { DropdownIcon } from \"../DropdownIcon/DropdownIcon\";\nimport { Caption } from \"../Typography/Caption/Caption\";\nimport { warnOnce } from \"../../lib/warnOnce\";\nimport {\n defaultFilterFn,\n getFormFieldModeFromSelectType,\n} from \"../../lib/select\";\nimport { Placement } from \"../Popper/Popper\";\nimport { CustomSelectDropdown } from \"../CustomSelectDropdown/CustomSelectDropdown\";\nimport { TrackerOptionsProps } from \"../CustomScrollView/useTrackerVisibility\";\nimport { SelectType } from \"../Select/Select\";\nimport { useIsomorphicLayoutEffect } from \"../../lib/useIsomorphicLayoutEffect\";\nimport \"./CustomSelect.css\";\n\nconst findIndexAfter = (\n options: CustomSelectOptionInterface[] = [],\n startIndex = -1\n) => {\n if (startIndex >= options.length - 1) {\n return -1;\n }\n return options.findIndex((option, i) => i > startIndex && !option.disabled);\n};\n\nconst findIndexBefore = (\n options: CustomSelectOptionInterface[] = [],\n endIndex: number = options.length\n) => {\n let result = -1;\n if (endIndex <= 0) {\n return result;\n }\n for (let i = endIndex - 1; i >= 0; i--) {\n let option = options[i];\n\n if (!option.disabled) {\n result = i;\n break;\n }\n }\n return result;\n};\n\nconst warn = warnOnce(\"CustomSelect\");\n\nconst checkOptionsValueType = (options: CustomSelectOptionInterface[]) => {\n if (new Set(options.map((item) => typeof item.value)).size > 1) {\n warn(\n \"Некоторые значения ваших опций имеют разные типы. onChange всегда возвращает строковый тип.\",\n \"error\"\n );\n }\n};\n\nfunction defaultRenderOptionFn({\n option,\n ...props\n}: CustomSelectOptionProps): React.ReactNode {\n return <CustomSelectOption {...props} />;\n}\n\nconst handleOptionDown: MouseEventHandler = (\n e: React.MouseEvent<HTMLElement>\n) => {\n e.preventDefault();\n};\n\nfunction findSelectedIndex(\n options: CustomSelectOptionInterface[],\n value: SelectValue\n) {\n return (\n options.findIndex((item) => {\n value = typeof item.value === \"number\" ? Number(value) : value;\n return item.value === value;\n }) ?? -1\n );\n}\n\nconst filter = (\n options: CustomSelectProps[\"options\"],\n inputValue: string,\n filterFn: CustomSelectProps[\"filterFn\"]\n) => {\n return typeof filterFn === \"function\"\n ? options.filter((option) => filterFn(inputValue, option))\n : options;\n};\n\nconst defaultOptions: CustomSelectOptionInterface[] = [];\n\ntype SelectValue = React.SelectHTMLAttributes<HTMLSelectElement>[\"value\"];\n\nexport interface CustomSelectOptionInterface {\n value: SelectValue;\n label: React.ReactElement | string;\n disabled?: boolean;\n [index: string]: any;\n}\n\nexport interface CustomSelectProps\n extends NativeSelectProps,\n HasPlatform,\n FormFieldProps,\n TrackerOptionsProps {\n /**\n * Если `true`, то при клике на селект в нём появится текстовое поле для поиска по `options`. По умолчанию поиск\n * производится по `option.label`.\n */\n searchable?: boolean;\n /**\n * Текст, который будет отображен, если приходит пустой `options`.\n */\n emptyText?: string;\n onInputChange?: (\n e: React.ChangeEvent,\n options: CustomSelectOptionInterface[]\n ) => void | CustomSelectOptionInterface[];\n options: CustomSelectOptionInterface[];\n /**\n * Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.\n */\n filterFn?:\n | false\n | ((\n value: string,\n option: CustomSelectOptionInterface,\n getOptionLabel?: (\n option: Partial<CustomSelectOptionInterface>\n ) => string\n ) => boolean);\n popupDirection?: \"top\" | \"bottom\";\n /**\n * Рендер-проп для кастомного рендера опции.\n * В объекте аргумента приходят [свойства опции](https://vkcom.github.io/VKUI/#/CustomSelectOption?id=props)\n */\n renderOption?: (props: CustomSelectOptionProps) => React.ReactNode;\n /**\n * Рендер-проп для кастомного рендера содержимого дропдауна.\n * В `defaultDropdownContent` содержится список опций в виде скроллящегося блока.\n */\n renderDropdown?: ({\n defaultDropdownContent,\n }: {\n defaultDropdownContent: React.ReactNode;\n }) => React.ReactNode;\n /**\n * Если `true`, то в дропдауне вместо списка опций рисуется спиннер. При переданных `renderDropdown` и `fetching: true`\n * \"победит\" `renderDropdown`.\n */\n fetching?: boolean;\n onClose?: VoidFunction;\n onOpen?: VoidFunction;\n icon?: React.ReactNode;\n dropdownOffsetDistance?: number;\n fixDropdownWidth?: boolean;\n forceDropdownPortal?: boolean;\n selectType?: keyof typeof SelectType;\n}\n\ntype MouseEventHandler = (event: React.MouseEvent<HTMLElement>) => void;\n\nfunction CustomSelectComponent(props: CustomSelectProps) {\n const [opened, setOpened] = React.useState(false);\n const {\n before,\n name,\n className,\n getRef,\n getRootRef,\n popupDirection,\n sizeY,\n platform,\n style,\n onChange,\n children,\n onInputChange: onInputChangeProp,\n renderDropdown,\n onOpen,\n onClose,\n fetching,\n forceDropdownPortal,\n selectType = SelectType.default,\n autoHideScrollbar,\n autoHideScrollbarDelay,\n searchable = false,\n renderOption: renderOptionProp = defaultRenderOptionFn,\n options: optionsProp = defaultOptions,\n emptyText = \"Ничего не найдено\",\n filterFn = defaultFilterFn,\n icon = <DropdownIcon opened={opened} />,\n dropdownOffsetDistance = 0,\n fixDropdownWidth = true,\n ...restProps\n } = props;\n\n if (process.env.NODE_ENV === \"development\") {\n checkOptionsValueType(optionsProp);\n }\n\n const containerRef = React.useRef<HTMLLabelElement>(null);\n const scrollBoxRef = React.useRef<HTMLDivElement>(null);\n const selectElRef = React.useRef<HTMLSelectElement>(null);\n\n const [focusedOptionIndex, setFocusedOptionIndex] = React.useState<\n number | undefined\n >(-1);\n const [isControlledOutside, setIsControlledOutside] = React.useState(\n props.value !== undefined\n );\n const [inputValue, setInputValue] = React.useState(\"\");\n const [nativeSelectValue, setNativeSelectValue] = React.useState(\n props.value ?? props.defaultValue\n );\n const [keyboardInput, setKeyboardInput] = React.useState(\"\");\n const [popperPlacement, setPopperPlacement] = React.useState<\n Placement | undefined\n >(undefined);\n const [options, setOptions] = React.useState(optionsProp);\n const [selectedOptionIndex, setSelectedOptionIndex] = React.useState<\n number | undefined\n >(findSelectedIndex(optionsProp, props.value ?? props.defaultValue));\n\n React.useEffect(() => {\n setIsControlledOutside(props.value !== undefined);\n setNativeSelectValue(\n (nativeSelectValue) => props.value ?? nativeSelectValue\n );\n }, [props.value]);\n\n useIsomorphicLayoutEffect(() => {\n if (options.some(({ value }) => nativeSelectValue === value)) {\n const event = new Event(\"change\", { bubbles: true });\n\n selectElRef.current?.dispatchEvent(event);\n }\n }, [nativeSelectValue]);\n\n const selected = React.useMemo(() => {\n if (!options.length) {\n return null;\n }\n\n return selectedOptionIndex !== undefined\n ? options[selectedOptionIndex]\n : undefined;\n }, [options, selectedOptionIndex]);\n\n const openedClassNames = React.useMemo(\n () =>\n classNames(\n opened && \"Select--open\",\n opened &&\n dropdownOffsetDistance === 0 &&\n (popperPlacement?.includes(\"top\")\n ? \"Select--pop-up\"\n : \"Select--pop-down\")\n ),\n [dropdownOffsetDistance, opened, popperPlacement]\n );\n\n const resetKeyboardInput = React.useCallback(() => {\n setKeyboardInput(\"\");\n }, []);\n\n const scrollToElement = React.useCallback((index: number, center = false) => {\n const dropdown = scrollBoxRef.current;\n const item = dropdown ? (dropdown.children[index] as HTMLElement) : null;\n\n if (!item || !dropdown) {\n return;\n }\n\n const dropdownHeight = dropdown.offsetHeight;\n const scrollTop = dropdown.scrollTop;\n const itemTop = item.offsetTop;\n const itemHeight = item.offsetHeight;\n\n if (center) {\n dropdown.scrollTop = itemTop - dropdownHeight / 2 + itemHeight / 2;\n } else if (itemTop + itemHeight > dropdownHeight + scrollTop) {\n dropdown.scrollTop = itemTop - dropdownHeight + itemHeight;\n } else if (itemTop < scrollTop) {\n dropdown.scrollTop = itemTop;\n }\n }, []);\n\n const isValidIndex = React.useCallback(\n (index: number) => {\n return index >= 0 && index < (options.length ?? 0);\n },\n [options.length]\n );\n\n const focusOptionByIndex = React.useCallback(\n (index: number | undefined, scrollTo = true) => {\n if (\n index === undefined ||\n index < 0 ||\n index > (options.length ?? 0) - 1\n ) {\n return;\n }\n\n const option = options[index];\n\n if (option?.disabled) {\n return;\n }\n\n if (scrollTo) {\n scrollToElement(index);\n }\n\n // Это оптимизация, прежде всего, под `onMouseOver`\n setFocusedOptionIndex((focusedOptionIndex) =>\n focusedOptionIndex !== index ? index : focusedOptionIndex\n );\n },\n [options, scrollToElement]\n );\n\n const areOptionsShown = React.useCallback(() => {\n return scrollBoxRef.current !== null;\n }, []);\n\n const onKeyboardInput = React.useCallback(\n (key: string) => {\n const fullInput = keyboardInput + key;\n\n const optionIndex = options.findIndex((option) => {\n return getTitleFromChildren(option.label)\n .toLowerCase()\n .includes(fullInput);\n });\n\n if (optionIndex !== undefined && optionIndex > -1) {\n focusOptionByIndex(optionIndex);\n }\n\n setKeyboardInput(fullInput);\n },\n [focusOptionByIndex, keyboardInput, options]\n );\n\n const close = React.useCallback(() => {\n resetKeyboardInput();\n\n setInputValue(\"\");\n setOpened(false);\n setFocusedOptionIndex(-1);\n setOptions(optionsProp);\n onClose?.();\n }, [onClose, optionsProp, resetKeyboardInput]);\n\n const selectFocused = React.useCallback(() => {\n if (focusedOptionIndex !== undefined && isValidIndex(focusedOptionIndex)) {\n const item = options[focusedOptionIndex];\n\n setNativeSelectValue(item?.value);\n close();\n }\n }, [close, focusedOptionIndex, isValidIndex, options]);\n\n const open = React.useCallback(() => {\n setOpened(true);\n setFocusedOptionIndex(selectedOptionIndex);\n\n if (typeof onOpen === \"function\") {\n onOpen();\n }\n }, [onOpen, selectedOptionIndex]);\n\n React.useEffect(() => {\n if (\n opened &&\n selectedOptionIndex !== undefined &&\n isValidIndex(selectedOptionIndex)\n ) {\n scrollToElement(selectedOptionIndex, true);\n }\n }, [isValidIndex, opened, scrollToElement, selectedOptionIndex]);\n\n const onBlur = React.useCallback(() => {\n close();\n const event = new Event(\"blur\");\n selectElRef.current?.dispatchEvent(event);\n }, [close]);\n\n const resetFocusedOption = React.useCallback(() => {\n setFocusedOptionIndex(-1);\n }, []);\n\n const onFocus = React.useCallback(() => {\n const event = new Event(\"focus\");\n selectElRef.current?.dispatchEvent(event);\n }, []);\n\n const onClick = React.useCallback(() => {\n if (opened) {\n close();\n } else {\n open();\n }\n }, [close, open, opened]);\n\n const handleKeyUp = React.useMemo(\n () => debounce(resetKeyboardInput, 1000),\n [resetKeyboardInput]\n );\n\n const focusOption = React.useCallback(\n (type: \"next\" | \"prev\") => {\n let index = focusedOptionIndex;\n\n if (type === \"next\") {\n const nextIndex = findIndexAfter(options, index);\n index = nextIndex === -1 ? findIndexAfter(options) : nextIndex; // Следующий за index или первый валидный до index\n } else if (type === \"prev\") {\n const beforeIndex = findIndexBefore(options, index);\n index = beforeIndex === -1 ? findIndexBefore(options) : beforeIndex; // Предшествующий index или последний валидный после index\n }\n\n focusOptionByIndex(index);\n },\n [focusOptionByIndex, focusedOptionIndex, options]\n );\n\n React.useEffect(() => {\n const value = props.value ?? nativeSelectValue ?? props.defaultValue;\n\n const options =\n searchable && inputValue !== undefined\n ? filter(optionsProp, inputValue, filterFn)\n : optionsProp;\n\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, value));\n }, [\n filterFn,\n inputValue,\n nativeSelectValue,\n optionsProp,\n props.defaultValue,\n props.value,\n searchable,\n ]);\n\n /**\n * Нужен для правильного поведения обработчика onClick на select. Фильтрует клики, которые были сделаны по\n * выпадающему списку.\n */\n const onLabelClick = React.useCallback(\n (e: React.MouseEvent<HTMLLabelElement>) => {\n if (scrollBoxRef.current?.contains(e.target as Node)) {\n e.preventDefault();\n }\n },\n []\n );\n\n const onNativeSelectChange: React.ChangeEventHandler<HTMLSelectElement> =\n React.useCallback(\n (e) => {\n const newSelectedOptionIndex = findSelectedIndex(\n options,\n e.currentTarget.value\n );\n\n if (selectedOptionIndex !== newSelectedOptionIndex) {\n if (!isControlledOutside) {\n setSelectedOptionIndex(newSelectedOptionIndex);\n }\n onChange?.(e);\n }\n },\n [isControlledOutside, onChange, options, selectedOptionIndex]\n );\n\n const onInputKeyDown: React.KeyboardEventHandler<HTMLInputElement> =\n React.useCallback(\n (event) => {\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n areOptionsShown() && focusOption(\"prev\");\n break;\n case \"ArrowDown\":\n areOptionsShown() && focusOption(\"next\");\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n areOptionsShown() && selectFocused();\n break;\n }\n },\n [areOptionsShown, close, focusOption, selectFocused]\n );\n\n const onInputChange: React.ChangeEventHandler<HTMLInputElement> =\n React.useCallback(\n (e) => {\n if (onInputChangeProp) {\n const options = onInputChangeProp(e, optionsProp);\n if (options) {\n if (process.env.NODE_ENV === \"development\") {\n warn(\n \"Этот метод фильтрации устарел. Возвращаемое значение onInputChange будет \" +\n \"проигнорировано в v5.0.0. Для фильтрации обновляйте props.options самостоятельно или используйте свойство filterFn.\"\n );\n }\n setOptions(options);\n setSelectedOptionIndex(\n findSelectedIndex(options, nativeSelectValue)\n );\n }\n } else {\n const options = filter(optionsProp, e.target.value, filterFn);\n setOptions(options);\n setSelectedOptionIndex(findSelectedIndex(options, nativeSelectValue));\n }\n setInputValue(e.target.value);\n },\n [filterFn, nativeSelectValue, onInputChangeProp, optionsProp]\n );\n\n const handleKeyDownSelect = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key.length === 1 && event.key !== \" \") {\n onKeyboardInput(event.key);\n return;\n }\n\n [\"ArrowUp\", \"ArrowDown\", \"Escape\", \"Enter\"].includes(event.key) &&\n areOptionsShown() &&\n event.preventDefault();\n\n switch (event.key) {\n case \"ArrowUp\":\n if (opened) {\n areOptionsShown() && focusOption(\"prev\");\n } else {\n open();\n }\n break;\n case \"ArrowDown\":\n if (opened) {\n areOptionsShown() && focusOption(\"next\");\n } else {\n open();\n }\n break;\n case \"Escape\":\n close();\n break;\n case \"Enter\":\n case \"Spacebar\":\n case \" \":\n if (opened) {\n areOptionsShown() && selectFocused();\n } else {\n open();\n }\n break;\n }\n },\n [\n areOptionsShown,\n close,\n focusOption,\n onKeyboardInput,\n open,\n opened,\n selectFocused,\n ]\n );\n\n const handleOptionClick = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n const index = Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n );\n const option = options[index];\n\n if (option && !option.disabled) {\n selectFocused();\n }\n },\n [options, selectFocused]\n );\n\n const handleOptionHover = React.useCallback(\n (e: React.MouseEvent<HTMLElement>) => {\n focusOptionByIndex(\n Array.prototype.indexOf.call(\n e.currentTarget.parentNode?.children,\n e.currentTarget\n ),\n false\n );\n },\n [focusOptionByIndex]\n );\n\n const renderOption = React.useCallback(\n (option: CustomSelectOptionInterface, index: number) => {\n const hovered = index === focusedOptionIndex;\n const selected = index === selectedOptionIndex;\n\n return (\n <React.Fragment key={`${option.value}`}>\n {renderOptionProp({\n option,\n hovered,\n children: option.label,\n selected,\n disabled: option.disabled,\n onClick: handleOptionClick,\n onMouseDown: handleOptionDown,\n // Используем `onMouseOver` вместо `onMouseEnter`.\n // При параметре `searchable`, обновляется \"ребёнок\", из-за чего `onMouseEnter` не срабатывает в следующих кейсах:\n // 1. До загрузки выпадающего списка, курсор мышки находится над произвольным элементом этого списка.\n // > Лечение: только увод курсора мыши и возвращении его обратно вызывает событие `onMouseEnter` на этот элемент.\n // 2. Если это тач-устройство.\n // > Лечение: нужно нажать на какой-нибудь произвольный элемент списка, после чего `onMouseEnter` будет работать на соседние элементы,\n // но не на тот, на который нажали в первый раз.\n // Более подробно по ссылке https://github.com/facebook/react/issues/13956#issuecomment-1082055744\n onMouseOver: handleOptionHover,\n })}\n </React.Fragment>\n );\n },\n [\n focusedOptionIndex,\n handleOptionClick,\n handleOptionHover,\n renderOptionProp,\n selectedOptionIndex,\n ]\n );\n\n const resolvedContent = React.useMemo(() => {\n const defaultDropdownContent =\n options?.length > 0 ? (\n options.map(renderOption)\n ) : (\n <Caption vkuiClass=\"CustomSelect__empty\">{emptyText}</Caption>\n );\n\n if (typeof renderDropdown === \"function\") {\n return renderDropdown({ defaultDropdownContent });\n } else {\n return defaultDropdownContent;\n }\n }, [emptyText, options, renderDropdown, renderOption]);\n\n return (\n <label\n vkuiClass=\"CustomSelect\"\n className={className}\n style={style}\n ref={multiRef(containerRef, getRootRef)}\n onClick={onLabelClick}\n >\n {opened && searchable ? (\n <Input\n {...restProps}\n autoFocus\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n value={inputValue}\n onKeyDown={onInputKeyDown}\n onChange={onInputChange}\n // TODO Ожидается, что клик поймает нативный select, но его перехватывает Input. К сожалению, это приводит к конфликтам типизации.\n // TODO Нужно перестать пытаться превратить CustomSelect в select. Тогда эта проблема уйдёт.\n // @ts-ignore\n onClick={props.onClick}\n before={before}\n after={icon}\n placeholder={restProps.placeholder}\n mode={getFormFieldModeFromSelectType(selectType)}\n />\n ) : (\n <SelectMimicry\n {...restProps}\n aria-hidden={true}\n onClick={onClick}\n onKeyDown={handleKeyDownSelect}\n onKeyUp={handleKeyUp}\n onFocus={onFocus}\n onBlur={onBlur}\n vkuiClass={openedClassNames}\n before={before}\n after={icon}\n selectType={selectType}\n >\n {selected?.label}\n </SelectMimicry>\n )}\n <select\n ref={selectElRef}\n name={name}\n onChange={onNativeSelectChange}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onClick={props.onClick}\n value={nativeSelectValue}\n aria-hidden={true}\n vkuiClass=\"CustomSelect__control\"\n >\n {optionsProp.map((item) => (\n <option key={`${item.value}`} value={item.value} />\n ))}\n </select>\n {opened && (\n <CustomSelectDropdown\n targetRef={containerRef}\n placement={popupDirection}\n scrollBoxRef={scrollBoxRef}\n onPlacementChange={setPopperPlacement}\n onMouseLeave={resetFocusedOption}\n fetching={fetching}\n offsetDistance={dropdownOffsetDistance}\n sameWidth={fixDropdownWidth}\n forcePortal={forceDropdownPortal}\n autoHideScrollbar={autoHideScrollbar}\n autoHideScrollbarDelay={autoHideScrollbarDelay}\n observableRefs={scrollBoxRef}\n >\n {resolvedContent}\n </CustomSelectDropdown>\n )}\n </label>\n );\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CustomSelect\n */\nexport const CustomSelect = withAdaptivity(CustomSelectComponent, {\n sizeY: true,\n});\n"],"mappings":"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"}
@@ -103,7 +103,10 @@ var Dropdown = function Dropdown(_ref) {
103
103
  setShown(false);
104
104
  }
105
105
  };
106
- (0, _useGlobalEventListener.useGlobalEventListener)(document, "click", handleOutsideClick);
106
+ (0, _useGlobalEventListener.useGlobalEventListener)(document, "click", handleOutsideClick, {
107
+ capture: true,
108
+ passive: true
109
+ });
107
110
  var targetEnterListener = (0, _useEventListener.useEventListener)("mouseenter", handleTargetEnter);
108
111
  var targetClickEvent = (0, _useEventListener.useEventListener)("click", handleTargetClick);
109
112
  var targetLeaveListener = (0, _useEventListener.useEventListener)("mouseleave", handleTargetLeave);
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.js","names":["Dropdown","action","shownProp","shown","showDelay","hideDelay","offsetDistance","content","children","style","getRef","onShownChange","restProps","useDOM","document","hoverable","hovered","React","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","styles","patchedPopperRef","useExternRef","usePatchChildrenRef","childRef","child","setShown","value","showTimeout","useTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","useGlobalEventListener","targetEnterListener","useEventListener","targetClickEvent","targetLeaveListener","useEffect","add","className","undefined"],"sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { PopperCommonProps, Popper } from \"../Popper/Popper\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { usePatchChildrenRef } from \"../../hooks/usePatchChildrenRef\";\nimport \"./Dropdown.css\";\n\nexport interface DropdownProps\n extends Omit<PopperCommonProps, \"arrow\" | \"arrowClassName\"> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: \"click\" | \"hover\";\n /**\n * Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Dropdown\n *\n * TODO v5.0.0 Переименовать в `Popover` (см. https://github.com/VKCOM/VKUI/issues/2523)\n */\nexport const Dropdown = ({\n action = \"click\",\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style,\n getRef,\n onShownChange,\n ...restProps\n}: DropdownProps) => {\n const { document } = useDOM();\n\n const hoverable = action === \"hover\";\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(\n null\n );\n\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const styles = {\n ...style,\n \"--popover-safe-zone-padding\": `${offsetDistance}px`,\n } as React.CSSProperties;\n\n const shown = typeof shownProp === \"boolean\" ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== \"boolean\") {\n setComputedShown(value);\n }\n typeof onShownChange === \"function\" && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, \"click\", handleOutsideClick);\n const targetEnterListener = useEventListener(\"mouseenter\", handleTargetEnter);\n const targetClickEvent = useEventListener(\"click\", handleTargetClick);\n const targetLeaveListener = useEventListener(\"mouseleave\", handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n }, [\n childRef,\n hoverable,\n targetClickEvent,\n targetEnterListener,\n targetLeaveListener,\n ]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n vkuiClass=\"Dropdown\"\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={styles}\n renderContent={({ className }) => (\n <FocusTrap\n vkuiClass={className}\n onClose={handleContentKeyDownEscape}\n >\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Dropdown.js","names":["Dropdown","action","shownProp","shown","showDelay","hideDelay","offsetDistance","content","children","style","getRef","onShownChange","restProps","useDOM","document","hoverable","hovered","React","useRef","useState","computedShown","setComputedShown","dropdownNode","setPopperNode","styles","patchedPopperRef","useExternRef","usePatchChildrenRef","childRef","child","setShown","value","showTimeout","useTimeout","hideTimeout","handleTargetEnter","current","clear","set","handleTargetClick","handleTargetLeave","handleContentKeyDownEscape","handleOutsideClick","e","contains","target","useGlobalEventListener","capture","passive","targetEnterListener","useEventListener","targetClickEvent","targetLeaveListener","useEffect","add","className","undefined"],"sources":["../../../../src/components/Dropdown/Dropdown.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useDOM } from \"../../lib/dom\";\nimport { PopperCommonProps, Popper } from \"../Popper/Popper\";\nimport { FocusTrap } from \"../FocusTrap/FocusTrap\";\nimport { useTimeout } from \"../../hooks/useTimeout\";\nimport { useExternRef } from \"../../hooks/useExternRef\";\nimport { useEventListener } from \"../../hooks/useEventListener\";\nimport { useGlobalEventListener } from \"../../hooks/useGlobalEventListener\";\nimport { usePatchChildrenRef } from \"../../hooks/usePatchChildrenRef\";\nimport \"./Dropdown.css\";\n\nexport interface DropdownProps\n extends Omit<PopperCommonProps, \"arrow\" | \"arrowClassName\"> {\n /**\n * Механика вызова всплывающего окна.\n *\n * - `\"click\"` – показывается/скрывается только при нажатии.\n * - `\"hover\"` – помимо нажатия, будет показываться/скрывается при наведении/отведении мыши.\n *\n * > ⚠️`\"hover\"` на тач-устройствах будет работать как `\"click\"`, с одним лишь нюансом, что не будет закрываться\n * > при повторном нажатии на целевой элемент. Для закрытия необходимо нажать на область вне целевого элемента\n * > и выпадающего окна.\n */\n action?: \"click\" | \"hover\";\n /**\n * Если передан, то всплывающее окно будет показан/скрыт в зависимости от значения свойства.\n */\n shown?: boolean;\n /**\n * Количество миллисекунд, после которых произойдёт показ всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n showDelay?: number;\n /**\n * Количество миллисекунд, после которых произойдёт скрытие всплывающего окна.\n *\n * > Используется только для `action=\"hover\"` при наведении/отведении мыши.\n */\n hideDelay?: number;\n /**\n * Содержимое всплывающего окна.\n */\n content?: React.ReactNode;\n /**\n * Целевой элемент. Всплывающее окно появится возле него.\n *\n * > ⚠️ Если это пользовательский компонент, то он должен предоставлять параметры либо `getRootRef`, либо `ref` для получения ссылки на DOM-узел.\n */\n children?: React.ReactElement;\n /**\n * Вызывается при каждом изменении видимости всплывающего окна.\n */\n onShownChange?(shown: boolean): void;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/Dropdown\n *\n * TODO v5.0.0 Переименовать в `Popover` (см. https://github.com/VKCOM/VKUI/issues/2523)\n */\nexport const Dropdown = ({\n action = \"click\",\n shown: shownProp,\n showDelay = 150,\n hideDelay = 150,\n offsetDistance = 8,\n content,\n children,\n style,\n getRef,\n onShownChange,\n ...restProps\n}: DropdownProps) => {\n const { document } = useDOM();\n\n const hoverable = action === \"hover\";\n const hovered = React.useRef(false);\n const [computedShown, setComputedShown] = React.useState(shownProp || false);\n const [dropdownNode, setPopperNode] = React.useState<HTMLElement | null>(\n null\n );\n\n // Reason: Typescript ругается на CSS Custom Properties в объекте\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n const styles = {\n ...style,\n \"--popover-safe-zone-padding\": `${offsetDistance}px`,\n } as React.CSSProperties;\n\n const shown = typeof shownProp === \"boolean\" ? shownProp : computedShown;\n\n const patchedPopperRef = useExternRef<HTMLDivElement>(setPopperNode, getRef);\n\n const [childRef, child] = usePatchChildrenRef(children);\n\n const setShown = (value: boolean) => {\n if (typeof shownProp !== \"boolean\") {\n setComputedShown(value);\n }\n typeof onShownChange === \"function\" && onShownChange(value);\n };\n\n const showTimeout = useTimeout(() => setShown(true), showDelay);\n\n const hideTimeout = useTimeout(() => setShown(false), hideDelay);\n\n const handleTargetEnter = () => {\n hovered.current = true;\n hideTimeout.clear();\n showTimeout.set();\n };\n\n const handleTargetClick = () => {\n if (hovered.current && shown) {\n return;\n }\n setShown(!shown);\n };\n\n const handleTargetLeave = () => {\n hovered.current = false;\n showTimeout.clear();\n hideTimeout.set();\n };\n\n const handleContentKeyDownEscape = () => {\n setShown(false);\n };\n\n const handleOutsideClick = (e: MouseEvent) => {\n if (\n dropdownNode &&\n !childRef.current?.contains(e.target as Node) &&\n !dropdownNode.contains(e.target as Node)\n ) {\n setShown(false);\n }\n };\n\n useGlobalEventListener(document, \"click\", handleOutsideClick, {\n capture: true,\n passive: true,\n });\n const targetEnterListener = useEventListener(\"mouseenter\", handleTargetEnter);\n const targetClickEvent = useEventListener(\"click\", handleTargetClick);\n const targetLeaveListener = useEventListener(\"mouseleave\", handleTargetLeave);\n\n React.useEffect(() => {\n if (!childRef.current) {\n return;\n }\n\n targetClickEvent.add(childRef.current);\n\n if (hoverable) {\n targetEnterListener.add(childRef.current);\n targetLeaveListener.add(childRef.current);\n }\n }, [\n childRef,\n hoverable,\n targetClickEvent,\n targetEnterListener,\n targetLeaveListener,\n ]);\n\n return (\n <React.Fragment>\n {child}\n {shown && (\n <Popper\n {...restProps}\n vkuiClass=\"Dropdown\"\n targetRef={childRef}\n getRef={patchedPopperRef}\n offsetDistance={offsetDistance}\n style={styles}\n renderContent={({ className }) => (\n <FocusTrap\n vkuiClass={className}\n onClose={handleContentKeyDownEscape}\n >\n {content}\n </FocusTrap>\n )}\n onMouseOver={hoverable ? hideTimeout.clear : undefined}\n onMouseOut={hoverable ? handleTargetLeave : undefined}\n />\n )}\n </React.Fragment>\n );\n};\n"],"mappings":"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"}
@@ -211,6 +211,7 @@ var Tooltip = function Tooltip(_ref2) {
211
211
  var _useDOM = (0, _dom.useDOM)(),
212
212
  document = _useDOM.document;
213
213
  (0, _useGlobalEventListener.useGlobalEventListener)(document, "click", isShown && onClose, {
214
+ capture: true,
214
215
  passive: true
215
216
  });
216
217
  // NOTE: setting isShown to true used to trigger usePopper().forceUpdate()