@vkontakte/vkui 6.6.0 → 6.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Alert/Alert.js +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.d.ts +2 -2
- package/dist/cjs/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +4 -2
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/cjs/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +26 -14
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/cjs/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +5 -3
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +5 -2
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.d.ts +1 -0
- package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.js +21 -6
- package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
- package/dist/cjs/components/Clickable/useState.d.ts +39 -3
- package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/useState.js +110 -37
- package/dist/cjs/components/Clickable/useState.js.map +1 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.js +20 -4
- package/dist/cjs/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +7 -7
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.d.ts +2 -2
- package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +5 -3
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +6 -4
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +1 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Input/Input.js +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -14
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +2 -2
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/RichCell/RichCell.js +1 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +4 -2
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js +23 -6
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/cjs/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/context.js +2 -1
- package/dist/cjs/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/cjs/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.js +16 -11
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts.map +1 -1
- package/dist/cjs/components/Select/Select.js +5 -1
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.js +85 -4
- package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +1 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.js +20 -4
- package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js +7 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js +7 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js +2 -4
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js +7 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.d.ts +7 -1
- package/dist/cjs/components/Typography/Typography.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Typography.js +4 -2
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +5 -16
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js +3 -1
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +2 -2
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +4 -2
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +26 -14
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +5 -3
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +5 -2
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts +1 -0
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js +21 -7
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/Clickable/useState.d.ts +39 -3
- package/dist/components/Clickable/useState.d.ts.map +1 -1
- package/dist/components/Clickable/useState.js +110 -37
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/components/Clickable/useStateWithDelay.js +38 -4
- package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +7 -7
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts +2 -2
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +5 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/FormField/FormField.js +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +1 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -14
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +2 -2
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/RichCell/RichCell.js +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +4 -2
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js +25 -8
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/context.js +2 -1
- package/dist/components/ScreenSpinner/context.js.map +1 -1
- package/dist/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/types.js.map +1 -1
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +17 -12
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +5 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +85 -4
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js +9 -1
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.js +7 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.js +7 -1
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/components/Typography/Headline/Headline.js +2 -4
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.js +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/components/Typography/Title/Title.js +7 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +7 -1
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/Typography/Typography.js +4 -2
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +5 -16
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.js +3 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components.css +313 -3
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +647 -301
- package/dist/cssm/components/Alert/Alert.js +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +1 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +2 -2
- package/dist/cssm/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +3 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/cssm/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +24 -13
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/cssm/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +3 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.d.ts +1 -0
- package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js +16 -6
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/Clickable/useState.d.ts +39 -3
- package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/useState.js +104 -36
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.js +38 -4
- package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +0 -14
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +2 -2
- package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +1 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +48 -3
- package/dist/cssm/components/RichCell/RichCell.js +1 -1
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +40 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js +20 -7
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/cssm/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.js +2 -1
- package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/cssm/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
- package/dist/cssm/components/Search/Search.d.ts.map +1 -1
- package/dist/cssm/components/Search/Search.js +17 -12
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +25 -13
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/Select/Select.d.ts.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +83 -3
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.module.css +30 -32
- package/dist/cssm/components/Slider/Slider.js +1 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +1 -1
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +9 -1
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.module.css +13 -6
- package/dist/cssm/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +7 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +240 -0
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
- package/dist/cssm/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +10 -2
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +80 -0
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -3
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -8
- package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +40 -0
- package/dist/cssm/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +32 -4
- package/dist/cssm/components/Typography/Text/Text.js +1 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +29 -4
- package/dist/cssm/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +7 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +120 -0
- package/dist/cssm/components/Typography/Typography.d.ts +7 -1
- package/dist/cssm/components/Typography/Typography.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +3 -2
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.module.css +21 -3
- package/dist/cssm/components/WriteBar/WriteBar.js +1 -0
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/styles/missedThemeTokens.css +22 -0
- package/dist/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/vkui.css +313 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +647 -301
- package/package.json +3 -2
- package/src/components/Alert/Alert.tsx +1 -1
- package/src/components/AspectRatio/AspectRatio.tsx +1 -1
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Button/Button.tsx +1 -1
- package/src/components/Calendar/Calendar.tsx +3 -1
- package/src/components/CalendarDay/CalendarDay.tsx +16 -4
- package/src/components/CalendarDays/CalendarDays.tsx +9 -2
- package/src/components/CalendarRange/CalendarRange.tsx +4 -1
- package/src/components/CardGrid/CardGrid.tsx +1 -1
- package/src/components/Clickable/Clickable.tsx +21 -3
- package/src/components/Clickable/useState.tsx +195 -42
- package/src/components/Clickable/useStateWithDelay.tsx +40 -3
- package/src/components/Counter/Counter.module.css +0 -12
- package/src/components/CustomSelect/CustomSelect.tsx +11 -10
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
- package/src/components/DateInput/DateInput.tsx +4 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +4 -1
- package/src/components/FormField/FormField.tsx +1 -1
- package/src/components/FormItem/FormItem.tsx +1 -1
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
- package/src/components/Input/Input.tsx +1 -1
- package/src/components/ModalRoot/ModalRootDesktop.tsx +13 -1
- package/src/components/NativeSelect/NativeSelect.tsx +1 -1
- package/src/components/Panel/Panel.tsx +2 -2
- package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +44 -3
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
- package/src/components/RichCell/RichCell.tsx +1 -1
- package/src/components/ScreenSpinner/ScreenSpinner.module.css +35 -0
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +2 -1
- package/src/components/ScreenSpinner/ScreenSpinnerContainer.tsx +15 -4
- package/src/components/ScreenSpinner/ScreenSpinnerLoader.tsx +16 -3
- package/src/components/ScreenSpinner/context.ts +2 -0
- package/src/components/ScreenSpinner/types.tsx +5 -0
- package/src/components/Search/Search.module.css +24 -13
- package/src/components/Search/Search.tsx +19 -14
- package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/components/Select/Select.tsx +4 -0
- package/src/components/SelectMimicry/SelectMimicry.tsx +1 -1
- package/src/components/SimpleCell/SimpleCell.tsx +1 -1
- package/src/components/Skeleton/Skeleton.module.css +30 -32
- package/src/components/Skeleton/Skeleton.tsx +90 -2
- package/src/components/Slider/Slider.tsx +1 -1
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
- package/src/components/TabsItem/TabsItem.tsx +1 -1
- package/src/components/Textarea/Textarea.tsx +1 -1
- package/src/components/ToolButton/ToolButton.module.css +12 -6
- package/src/components/ToolButton/ToolButton.tsx +15 -2
- package/src/components/Typography/Caption/Caption.module.css +240 -0
- package/src/components/Typography/Caption/Caption.tsx +14 -1
- package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
- package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +13 -1
- package/src/components/Typography/Footnote/Footnote.module.css +80 -0
- package/src/components/Typography/Footnote/Footnote.tsx +24 -9
- package/src/components/Typography/Headline/Headline.module.css +48 -8
- package/src/components/Typography/Headline/Headline.tsx +1 -3
- package/src/components/Typography/Paragraph/Paragraph.module.css +40 -0
- package/src/components/Typography/Paragraph/Paragraph.tsx +13 -1
- package/src/components/Typography/Subhead/Subhead.module.css +32 -4
- package/src/components/Typography/Subhead/Subhead.tsx +1 -1
- package/src/components/Typography/Text/Text.module.css +29 -4
- package/src/components/Typography/Text/Text.tsx +1 -1
- package/src/components/Typography/Title/Title.module.css +120 -0
- package/src/components/Typography/Title/Title.tsx +13 -1
- package/src/components/Typography/Typography.module.css +20 -3
- package/src/components/Typography/Typography.tsx +10 -0
- package/src/components/WriteBar/WriteBar.tsx +1 -1
- package/src/hooks/useAdaptivityConditionalRender/constants.ts +4 -4
- package/src/hooks/useWaitTransitionFinish.ts +2 -2
|
@@ -1,40 +1,77 @@
|
|
|
1
1
|
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
2
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
2
3
|
import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
|
|
3
4
|
import * as React from 'react';
|
|
4
5
|
import { classNames, noop } from '@vkontakte/vkjs';
|
|
5
|
-
import { callMultiple } from '../../lib/callMultiple';
|
|
6
6
|
import { mergeCalls } from '../../lib/mergeCalls';
|
|
7
7
|
import { useStateWithDelay } from './useStateWithDelay';
|
|
8
8
|
export const DEFAULT_ACTIVE_EFFECT_DELAY = 600;
|
|
9
9
|
const ACTIVE_DELAY = 70;
|
|
10
10
|
/**
|
|
11
11
|
* Управляет наведением на компонент, игнорирует тач события
|
|
12
|
-
*/ function useHover({ hovered,
|
|
13
|
-
const [
|
|
14
|
-
const
|
|
12
|
+
*/ function useHover({ hovered, hasHover = true, lockState, setParentStateLock }) {
|
|
13
|
+
const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);
|
|
14
|
+
const prevIsHoveredRef = React.useRef(undefined);
|
|
15
|
+
const handleHover = React.useCallback((isHover)=>{
|
|
16
|
+
setHoveredStateLocal(isHover);
|
|
17
|
+
const isHovered = calculateStateValue({
|
|
18
|
+
hasState: hasHover,
|
|
19
|
+
isLocked: lockState,
|
|
20
|
+
stateValueControlled: Boolean(hovered),
|
|
21
|
+
stateValueLocal: isHover
|
|
22
|
+
});
|
|
23
|
+
// проверка сделана чтобы реже вызывать обновление состояния
|
|
24
|
+
// контекста родителя
|
|
25
|
+
if (isHovered !== prevIsHoveredRef.current) {
|
|
26
|
+
prevIsHoveredRef.current = isHovered;
|
|
27
|
+
setParentStateLock(isHovered);
|
|
28
|
+
}
|
|
29
|
+
}, [
|
|
30
|
+
setParentStateLock,
|
|
31
|
+
hasHover,
|
|
32
|
+
hovered,
|
|
33
|
+
lockState
|
|
34
|
+
]);
|
|
15
35
|
const onPointerEnter = (e)=>{
|
|
16
36
|
if (e.pointerType === 'touch') {
|
|
17
37
|
return;
|
|
18
38
|
}
|
|
19
|
-
|
|
39
|
+
handleHover(true);
|
|
20
40
|
};
|
|
21
41
|
const onPointerLeave = ()=>{
|
|
22
|
-
|
|
42
|
+
handleHover(false);
|
|
23
43
|
};
|
|
44
|
+
const isHovered = calculateStateValue({
|
|
45
|
+
hasState: hasHover,
|
|
46
|
+
isLocked: lockState,
|
|
47
|
+
stateValueControlled: Boolean(hovered),
|
|
48
|
+
stateValueLocal: hoveredStateLocal
|
|
49
|
+
});
|
|
24
50
|
return {
|
|
25
|
-
|
|
51
|
+
isHovered,
|
|
26
52
|
onPointerEnter: hasHover ? onPointerEnter : noop,
|
|
27
53
|
onPointerLeave: hasHover ? onPointerLeave : noop
|
|
28
54
|
};
|
|
29
55
|
}
|
|
30
56
|
/**
|
|
31
57
|
* Управляет активацией компонента
|
|
32
|
-
*/ function useActive({ activated,
|
|
33
|
-
|
|
58
|
+
*/ function useActive({ activated, activeEffectDelay, hasActive = true, lockStateRef, setParentStateLock }) {
|
|
59
|
+
// передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,
|
|
60
|
+
// если установка отложена c помощью delay, то и вызов будет отложен
|
|
61
|
+
const [activatedState, setActivated] = useStateWithDelay(false, 0, setParentStateLock);
|
|
34
62
|
// Список нажатий которые не требуется отменять
|
|
35
63
|
const pointersUp = React.useMemo(()=>new Set(), []);
|
|
36
|
-
const
|
|
37
|
-
|
|
64
|
+
const onPointerDown = ()=>{
|
|
65
|
+
if (lockStateRef.current) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
setActivated(true, ACTIVE_DELAY);
|
|
69
|
+
// намеренно выставляем lock, так как setActivated вызов отложен
|
|
70
|
+
// а у отложенного setActivated setParentStateLock тоже вызовится отложенно
|
|
71
|
+
// родитель сейчас тоже обработает это же событие PointerDown
|
|
72
|
+
// если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние
|
|
73
|
+
setParentStateLock(true);
|
|
74
|
+
};
|
|
38
75
|
const onPointerCancel = (e)=>{
|
|
39
76
|
if (pointersUp.has(e.pointerId)) {
|
|
40
77
|
pointersUp.delete(e.pointerId);
|
|
@@ -44,61 +81,97 @@ const ACTIVE_DELAY = 70;
|
|
|
44
81
|
};
|
|
45
82
|
const onPointerUp = (e)=>{
|
|
46
83
|
pointersUp.add(e.pointerId);
|
|
84
|
+
if (lockStateRef.current) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
47
87
|
setActivated(true);
|
|
48
88
|
setActivated(false, activeEffectDelay);
|
|
49
89
|
};
|
|
90
|
+
const isActivated = calculateStateValue({
|
|
91
|
+
hasState: hasActive,
|
|
92
|
+
isLocked: lockStateRef.current,
|
|
93
|
+
stateValueControlled: Boolean(activated),
|
|
94
|
+
stateValueLocal: activatedState
|
|
95
|
+
});
|
|
50
96
|
return {
|
|
51
|
-
|
|
97
|
+
isActivated,
|
|
52
98
|
onPointerLeave: hasActive ? onPointerCancel : noop,
|
|
53
99
|
onPointerDown: hasActive ? onPointerDown : noop,
|
|
54
100
|
onPointerCancel: hasActive ? onPointerCancel : noop,
|
|
55
101
|
onPointerUp: hasActive ? onPointerUp : noop
|
|
56
102
|
};
|
|
57
103
|
}
|
|
58
|
-
export const ClickableLockStateContext = /*#__PURE__*/ React.createContext(
|
|
104
|
+
export const ClickableLockStateContext = /*#__PURE__*/ React.createContext({
|
|
105
|
+
lockHoverStateBubbling: undefined,
|
|
106
|
+
lockActiveStateBubbling: undefined
|
|
107
|
+
});
|
|
59
108
|
/**
|
|
60
109
|
* Блокирует стейт на всплытие
|
|
61
|
-
*/ function useLockState() {
|
|
62
|
-
const setLockBubbling = React.useContext(ClickableLockStateContext) || noop;
|
|
110
|
+
*/ function useLockState(setParentStateLockBubbling) {
|
|
63
111
|
const [lockState, setLockState] = React.useState(false);
|
|
64
|
-
const
|
|
112
|
+
const setStateLockBubblingImmediate = React.useCallback((isLock)=>{
|
|
113
|
+
setLockState(isLock);
|
|
114
|
+
setParentStateLockBubbling(isLock);
|
|
115
|
+
}, [
|
|
116
|
+
setParentStateLockBubbling
|
|
117
|
+
]);
|
|
65
118
|
return [
|
|
66
119
|
lockState,
|
|
67
|
-
|
|
68
|
-
|
|
120
|
+
setParentStateLockBubbling,
|
|
121
|
+
setStateLockBubblingImmediate
|
|
122
|
+
];
|
|
123
|
+
}
|
|
124
|
+
function useLockRef(setParentStateLockBubbling) {
|
|
125
|
+
const lockStateRef = React.useRef(false);
|
|
126
|
+
const setStateLockBubblingImmediate = React.useCallback((isLock)=>{
|
|
127
|
+
lockStateRef.current = isLock;
|
|
128
|
+
setParentStateLockBubbling(isLock);
|
|
129
|
+
}, [
|
|
130
|
+
setParentStateLockBubbling
|
|
131
|
+
]);
|
|
132
|
+
return [
|
|
133
|
+
lockStateRef,
|
|
134
|
+
setParentStateLockBubbling,
|
|
135
|
+
setStateLockBubblingImmediate
|
|
69
136
|
];
|
|
70
137
|
}
|
|
71
138
|
/**
|
|
72
139
|
* Управляет состоянием компонента
|
|
73
140
|
*/ export function useState(_param) {
|
|
74
|
-
var { hasHover, hasActive } = _param, restProps = _object_without_properties(_param, [
|
|
141
|
+
var { hovered, hasHover, hasActive, unlockParentHover } = _param, restProps = _object_without_properties(_param, [
|
|
142
|
+
"hovered",
|
|
75
143
|
"hasHover",
|
|
76
|
-
"hasActive"
|
|
144
|
+
"hasActive",
|
|
145
|
+
"unlockParentHover"
|
|
77
146
|
]);
|
|
78
|
-
const
|
|
79
|
-
const
|
|
147
|
+
const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } = React.useContext(ClickableLockStateContext);
|
|
148
|
+
const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] = useLockState(unlockParentHover ? noop : lockHoverStateBubbling);
|
|
149
|
+
const [lockActiveStateRef, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] = useLockRef(lockActiveStateBubbling);
|
|
150
|
+
const _useHover = useHover({
|
|
80
151
|
hasHover,
|
|
81
|
-
|
|
82
|
-
lockState
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
"
|
|
152
|
+
hovered,
|
|
153
|
+
lockState: lockHoverState,
|
|
154
|
+
setParentStateLock: setParentStateLockHoverBubbling
|
|
155
|
+
}), { isHovered } = _useHover, hoverEvent = _object_without_properties(_useHover, [
|
|
156
|
+
"isHovered"
|
|
86
157
|
]);
|
|
87
|
-
const _useActive = useActive(
|
|
88
|
-
|
|
158
|
+
const _useActive = useActive(_object_spread_props(_object_spread({}, restProps), {
|
|
159
|
+
lockStateRef: lockActiveStateRef,
|
|
160
|
+
setParentStateLock: setParentStateLockActiveBubbling
|
|
161
|
+
})), { isActivated } = _useActive, activeEvent = _object_without_properties(_useActive, [
|
|
162
|
+
"isActivated"
|
|
89
163
|
]);
|
|
90
|
-
const stateClassName = classNames(
|
|
164
|
+
const stateClassName = classNames(isHovered && restProps.hoverClassName, isActivated && restProps.activeClassName);
|
|
91
165
|
const handlers = mergeCalls(hoverEvent, activeEvent);
|
|
92
|
-
React.useEffect(()=>{
|
|
93
|
-
setLockBubbling(!!stateClassName);
|
|
94
|
-
}, [
|
|
95
|
-
setLockBubbling,
|
|
96
|
-
stateClassName
|
|
97
|
-
]);
|
|
98
166
|
return _object_spread({
|
|
99
167
|
stateClassName,
|
|
100
|
-
|
|
168
|
+
setLockHoverBubblingImmediate,
|
|
169
|
+
setLockActiveBubblingImmediate
|
|
101
170
|
}, handlers);
|
|
102
171
|
}
|
|
172
|
+
// Общая функция для определения конечного состояния active/hovered
|
|
173
|
+
function calculateStateValue({ hasState, isLocked, stateValueControlled, stateValueLocal }) {
|
|
174
|
+
return hasState && !isLocked && (stateValueControlled || stateValueLocal);
|
|
175
|
+
}
|
|
103
176
|
|
|
104
177
|
//# sourceMappingURL=useState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Clickable/useState.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { callMultiple } from '../../lib/callMultiple';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Позволяет управлять hovered-состоянием извне\n */\n hovered?: boolean;\n /**\n * Позволяет управлять activated-состоянием извне\n */\n activated?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n\n /**\n * Длительность показа `activated`-состояния\n */\n activeEffectDelay?: number;\n\n /**\n * Стиль подсветки active-состояния\n */\n activeClassName?: string;\n\n /**\n * Стиль подсветки hover-состояния\n */\n hoverClassName?: string;\n}\n\ninterface StateHookProps extends StateProps {\n /**\n * Блокирование активации состояний\n */\n lockState: boolean;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\n/**\n * Управляет наведением на компонент, игнорирует тач события\n */\nfunction useHover({ hovered, hoverClassName, hasHover = true, lockState }: StateHookProps) {\n const [hoveredState, setHover] = React.useState(false);\n\n const hover = hasHover && !lockState && (hovered || hoveredState) ? hoverClassName : undefined;\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n setHover(true);\n };\n\n const onPointerLeave = () => {\n setHover(false);\n };\n\n return {\n hover,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\n/**\n * Управляет активацией компонента\n */\nfunction useActive({\n activated,\n activeClassName,\n activeEffectDelay,\n hasActive = true,\n lockState,\n}: StateHookProps) {\n const [activatedState, setActivated] = useStateWithDelay(false);\n\n // Список нажатий которые не требуется отменять\n const pointersUp = React.useMemo(() => new Set<number>(), []);\n\n const active =\n hasActive && !lockState && (activated || activatedState) ? activeClassName : undefined;\n\n const onPointerDown = () => setActivated(true, ACTIVE_DELAY);\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUp.has(e.pointerId)) {\n pointersUp.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUp.add(e.pointerId);\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n return {\n active,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\nexport const ClickableLockStateContext: React.Context<((v: boolean) => void) | undefined> =\n React.createContext<undefined | ((v: boolean) => void)>(undefined);\n\n/**\n * Блокирует стейт на всплытие\n */\nfunction useLockState(): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const setLockBubbling = React.useContext(ClickableLockStateContext) || noop;\n const [lockState, setLockState] = React.useState(false);\n\n const setLockBubblingImmediate = callMultiple(setLockState, setLockBubbling);\n\n return [lockState, setLockBubbling, setLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента\n */\nexport function useState({ hasHover, hasActive, ...restProps }: StateProps): {\n stateClassName: string;\n setLockBubblingImmediate: (...args: any[]) => void;\n} {\n const [lockState, setLockBubbling, setLockBubblingImmediate] = useLockState();\n\n const props = {\n hasHover,\n hasActive,\n lockState,\n ...restProps,\n };\n\n const { hover, ...hoverEvent } = useHover({ ...props });\n const { active, ...activeEvent } = useActive(props);\n\n const stateClassName = classNames(hover, active);\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n React.useEffect(() => {\n setLockBubbling(!!stateClassName);\n }, [setLockBubbling, stateClassName]);\n\n return {\n stateClassName,\n setLockBubblingImmediate,\n ...handlers,\n };\n}\n"],"names":["React","classNames","noop","callMultiple","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hoverClassName","hasHover","lockState","hoveredState","setHover","useState","hover","undefined","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeClassName","activeEffectDelay","hasActive","activatedState","setActivated","pointersUp","useMemo","Set","active","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","ClickableLockStateContext","createContext","useLockState","setLockBubbling","useContext","setLockState","setLockBubblingImmediate","restProps","props","hoverEvent","activeEvent","stateClassName","handlers","useEffect"],"mappings":";;AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AACnD,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,iBAAiB,QAAQ,sBAAsB;AA2CxD,OAAO,MAAMC,8BAA8B,IAAI;AAE/C,MAAMC,eAAe;AAErB;;CAEC,GACD,SAASC,SAAS,EAAEC,OAAO,EAAEC,cAAc,EAAEC,WAAW,IAAI,EAAEC,SAAS,EAAkB;IACvF,MAAM,CAACC,cAAcC,SAAS,GAAGd,MAAMe,QAAQ,CAAC;IAEhD,MAAMC,QAAQL,YAAY,CAACC,aAAcH,CAAAA,WAAWI,YAAW,IAAKH,iBAAiBO;IAErF,MAAMC,iBAAiD,CAACC;QACtD,IAAIA,EAAEC,WAAW,KAAK,SAAS;YAC7B;QACF;QAEAN,SAAS;IACX;IAEA,MAAMO,iBAAiB;QACrBP,SAAS;IACX;IAEA,OAAO;QACLE;QACAE,gBAAgBP,WAAWO,iBAAiBhB;QAC5CmB,gBAAgBV,WAAWU,iBAAiBnB;IAC9C;AACF;AAEA;;CAEC,GACD,SAASoB,UAAU,EACjBC,SAAS,EACTC,eAAe,EACfC,iBAAiB,EACjBC,YAAY,IAAI,EAChBd,SAAS,EACM;IACf,MAAM,CAACe,gBAAgBC,aAAa,GAAGvB,kBAAkB;IAEzD,+CAA+C;IAC/C,MAAMwB,aAAa7B,MAAM8B,OAAO,CAAC,IAAM,IAAIC,OAAe,EAAE;IAE5D,MAAMC,SACJN,aAAa,CAACd,aAAcW,CAAAA,aAAaI,cAAa,IAAKH,kBAAkBP;IAE/E,MAAMgB,gBAAgB,IAAML,aAAa,MAAMrB;IAC/C,MAAM2B,kBAA6C,CAACf;QAClD,IAAIU,WAAWM,GAAG,CAAChB,EAAEiB,SAAS,GAAG;YAC/BP,WAAWQ,MAAM,CAAClB,EAAEiB,SAAS;YAC7B;QACF;QAEAR,aAAa;IACf;IAEA,MAAMU,cAAyC,CAACnB;QAC9CU,WAAWU,GAAG,CAACpB,EAAEiB,SAAS;QAC1BR,aAAa;QACbA,aAAa,OAAOH;IACtB;IAEA,OAAO;QACLO;QACAX,gBAAgBK,YAAYQ,kBAAkBhC;QAC9C+B,eAAeP,YAAYO,gBAAgB/B;QAC3CgC,iBAAiBR,YAAYQ,kBAAkBhC;QAC/CoC,aAAaZ,YAAYY,cAAcpC;IACzC;AACF;AAEA,OAAO,MAAMsC,0CACXxC,MAAMyC,aAAa,CAAqCxB,WAAW;AAErE;;CAEC,GACD,SAASyB;IACP,MAAMC,kBAAkB3C,MAAM4C,UAAU,CAACJ,8BAA8BtC;IACvE,MAAM,CAACU,WAAWiC,aAAa,GAAG7C,MAAMe,QAAQ,CAAC;IAEjD,MAAM+B,2BAA2B3C,aAAa0C,cAAcF;IAE5D,OAAO;QAAC/B;QAAW+B;QAAiBG;KAAyB;AAC/D;AAEA;;CAEC,GACD,OAAO,SAAS/B,SAAS;QAAA,EAAEJ,QAAQ,EAAEe,SAAS,EAA4B,GAAjD,QAA0BqB,uCAA1B;QAAEpC;QAAUe;;IAInC,MAAM,CAACd,WAAW+B,iBAAiBG,yBAAyB,GAAGJ;IAE/D,MAAMM,QAAQ;QACZrC;QACAe;QACAd;OACGmC;IAGL,MAAiCvC,YAAAA,SAAS,mBAAKwC,SAAzC,EAAEhC,KAAK,EAAiB,GAAGR,WAAfyC,wCAAezC;QAAzBQ;;IACR,MAAmCM,aAAAA,UAAU0B,QAAvC,EAAEhB,MAAM,EAAkB,GAAGV,YAAhB4B,yCAAgB5B;QAA3BU;;IAER,MAAMmB,iBAAiBlD,WAAWe,OAAOgB;IACzC,MAAMoB,WAAWhD,WAAW6C,YAAYC;IAExClD,MAAMqD,SAAS,CAAC;QACdV,gBAAgB,CAAC,CAACQ;IACpB,GAAG;QAACR;QAAiBQ;KAAe;IAEpC,OAAO;QACLA;QACAL;OACGM;AAEP"}
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Clickable/useState.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { useStateWithDelay } from './useStateWithDelay';\n\nexport interface StateProps {\n /**\n * Указывает, должен ли компонент реагировать на hover-состояние\n */\n hasHover?: boolean;\n /**\n * Позволяет управлять hovered-состоянием извне\n */\n hovered?: boolean;\n /**\n * Позволяет управлять activated-состоянием извне\n */\n activated?: boolean;\n /**\n * Указывает, должен ли компонент реагировать на active-состояние\n */\n hasActive?: boolean;\n\n /**\n * Позволяет родительскому компоненту\n * иметь hovered-cостояние при наведении\n * на любой дочерний элемент.\n * По умолчанию состояние hovered у родителя сбрасывается.\n *\n * Присваивается родителькому компоненту.\n *\n * @example\n * <Tappable hasHoverWithChildren>\n * <IconButton />\n * <IconButton />\n * <IconButton />\n * </Tappable>\n */\n hasHoverWithChildren?: boolean;\n\n /**\n * Позволяет родительскому компоненту показывать hovered-состояние при наведении\n * на текущий дочерний компонент.\n *\n * Присваивается дочернему компоненту.\n *\n * @example\n * <Tappable>\n * <IconButton unlockParentHover />\n * <IconButton unlockParentHover />\n * <IconButton />\n * </Tappable>\n */\n unlockParentHover?: boolean;\n\n /**\n * Длительность показа `activated`-состояния\n */\n activeEffectDelay?: number;\n\n /**\n * Стиль подсветки active-состояния\n */\n activeClassName?: string;\n\n /**\n * Стиль подсветки hover-состояния\n */\n hoverClassName?: string;\n}\n\nexport const DEFAULT_ACTIVE_EFFECT_DELAY = 600;\n\nconst ACTIVE_DELAY = 70;\n\ninterface UseHoverProps extends Pick<StateProps, 'hovered' | 'hasHover'> {\n /**\n * Блокирование активации состояний\n */\n lockState: boolean;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет наведением на компонент, игнорирует тач события\n */\nfunction useHover({ hovered, hasHover = true, lockState, setParentStateLock }: UseHoverProps) {\n const [hoveredStateLocal, setHoveredStateLocal] = React.useState(false);\n\n const prevIsHoveredRef = React.useRef<boolean | undefined>(undefined);\n\n const handleHover = React.useCallback(\n (isHover: boolean) => {\n setHoveredStateLocal(isHover);\n\n const isHovered = calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueControlled: Boolean(hovered),\n stateValueLocal: isHover,\n });\n\n // проверка сделана чтобы реже вызывать обновление состояния\n // контекста родителя\n if (isHovered !== prevIsHoveredRef.current) {\n prevIsHoveredRef.current = isHovered;\n setParentStateLock(isHovered);\n }\n },\n [setParentStateLock, hasHover, hovered, lockState],\n );\n\n const onPointerEnter: React.PointerEventHandler<any> = (e) => {\n if (e.pointerType === 'touch') {\n return;\n }\n\n handleHover(true);\n };\n\n const onPointerLeave = () => {\n handleHover(false);\n };\n\n const isHovered = calculateStateValue({\n hasState: hasHover,\n isLocked: lockState,\n stateValueControlled: Boolean(hovered),\n stateValueLocal: hoveredStateLocal,\n });\n\n return {\n isHovered,\n onPointerEnter: hasHover ? onPointerEnter : noop,\n onPointerLeave: hasHover ? onPointerLeave : noop,\n };\n}\n\ninterface UseActiveProps extends Pick<StateProps, 'activated' | 'activeEffectDelay' | 'hasActive'> {\n /**\n * Блокирование активации состояний\n */\n lockStateRef: React.MutableRefObject<boolean>;\n setParentStateLock: (v: boolean) => void;\n}\n\n/**\n * Управляет активацией компонента\n */\nfunction useActive({\n activated,\n activeEffectDelay,\n hasActive = true,\n lockStateRef,\n setParentStateLock,\n}: UseActiveProps) {\n // передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,\n // если установка отложена c помощью delay, то и вызов будет отложен\n const [activatedState, setActivated] = useStateWithDelay<boolean>(false, 0, setParentStateLock);\n\n // Список нажатий которые не требуется отменять\n const pointersUp = React.useMemo(() => new Set<number>(), []);\n\n const onPointerDown = () => {\n if (lockStateRef.current) {\n return;\n }\n\n setActivated(true, ACTIVE_DELAY);\n // намеренно выставляем lock, так как setActivated вызов отложен\n // а у отложенного setActivated setParentStateLock тоже вызовится отложенно\n // родитель сейчас тоже обработает это же событие PointerDown\n // если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние\n setParentStateLock(true);\n };\n\n const onPointerCancel: React.PointerEventHandler = (e) => {\n if (pointersUp.has(e.pointerId)) {\n pointersUp.delete(e.pointerId);\n return;\n }\n\n setActivated(false);\n };\n\n const onPointerUp: React.PointerEventHandler = (e) => {\n pointersUp.add(e.pointerId);\n\n if (lockStateRef.current) {\n return;\n }\n\n setActivated(true);\n setActivated(false, activeEffectDelay);\n };\n\n const isActivated = calculateStateValue({\n hasState: hasActive,\n isLocked: lockStateRef.current,\n stateValueControlled: Boolean(activated),\n stateValueLocal: activatedState,\n });\n\n return {\n isActivated,\n onPointerLeave: hasActive ? onPointerCancel : noop,\n onPointerDown: hasActive ? onPointerDown : noop,\n onPointerCancel: hasActive ? onPointerCancel : noop,\n onPointerUp: hasActive ? onPointerUp : noop,\n };\n}\n\ninterface ClickableLockStateContextInterface {\n lockHoverStateBubbling?: (v: boolean) => void;\n lockActiveStateBubbling?: (v: boolean) => void;\n}\n\nexport const ClickableLockStateContext: React.Context<ClickableLockStateContextInterface> =\n React.createContext<ClickableLockStateContextInterface>({\n lockHoverStateBubbling: undefined,\n lockActiveStateBubbling: undefined,\n });\n\n/**\n * Блокирует стейт на всплытие\n */\nfunction useLockState(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [boolean, (v: boolean) => void, (...args: any[]) => void] {\n const [lockState, setLockState] = React.useState(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n setLockState(isLock);\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockState, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\nfunction useLockRef(\n setParentStateLockBubbling: (v: boolean) => void,\n): readonly [React.MutableRefObject<boolean>, (v: boolean) => void, (...args: any[]) => void] {\n const lockStateRef = React.useRef(false);\n\n const setStateLockBubblingImmediate = React.useCallback(\n (isLock: boolean) => {\n lockStateRef.current = isLock;\n setParentStateLockBubbling(isLock);\n },\n [setParentStateLockBubbling],\n );\n\n return [lockStateRef, setParentStateLockBubbling, setStateLockBubblingImmediate] as const;\n}\n\n/**\n * Управляет состоянием компонента\n */\nexport function useState({\n hovered,\n hasHover,\n hasActive,\n unlockParentHover,\n ...restProps\n}: StateProps): {\n stateClassName: string;\n setLockHoverBubblingImmediate: (...args: any[]) => void;\n setLockActiveBubblingImmediate: (...args: any[]) => void;\n} {\n const { lockHoverStateBubbling = noop, lockActiveStateBubbling = noop } =\n React.useContext(ClickableLockStateContext);\n\n const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] =\n useLockState(unlockParentHover ? noop : lockHoverStateBubbling);\n const [lockActiveStateRef, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] =\n useLockRef(lockActiveStateBubbling);\n\n const { isHovered, ...hoverEvent } = useHover({\n hasHover,\n hovered,\n lockState: lockHoverState,\n setParentStateLock: setParentStateLockHoverBubbling,\n });\n\n const { isActivated, ...activeEvent } = useActive({\n ...restProps,\n lockStateRef: lockActiveStateRef,\n setParentStateLock: setParentStateLockActiveBubbling,\n });\n\n const stateClassName = classNames(\n isHovered && restProps.hoverClassName,\n isActivated && restProps.activeClassName,\n );\n const handlers = mergeCalls(hoverEvent, activeEvent);\n\n return {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...handlers,\n };\n}\n\n// Общая функция для определения конечного состояния active/hovered\nfunction calculateStateValue({\n hasState,\n isLocked,\n stateValueControlled,\n stateValueLocal,\n}: {\n hasState: boolean;\n isLocked: boolean;\n stateValueControlled: boolean;\n stateValueLocal: boolean;\n}): boolean {\n return hasState && !isLocked && (stateValueControlled || stateValueLocal);\n}\n"],"names":["React","classNames","noop","mergeCalls","useStateWithDelay","DEFAULT_ACTIVE_EFFECT_DELAY","ACTIVE_DELAY","useHover","hovered","hasHover","lockState","setParentStateLock","hoveredStateLocal","setHoveredStateLocal","useState","prevIsHoveredRef","useRef","undefined","handleHover","useCallback","isHover","isHovered","calculateStateValue","hasState","isLocked","stateValueControlled","Boolean","stateValueLocal","current","onPointerEnter","e","pointerType","onPointerLeave","useActive","activated","activeEffectDelay","hasActive","lockStateRef","activatedState","setActivated","pointersUp","useMemo","Set","onPointerDown","onPointerCancel","has","pointerId","delete","onPointerUp","add","isActivated","ClickableLockStateContext","createContext","lockHoverStateBubbling","lockActiveStateBubbling","useLockState","setParentStateLockBubbling","setLockState","setStateLockBubblingImmediate","isLock","useLockRef","unlockParentHover","restProps","useContext","lockHoverState","setParentStateLockHoverBubbling","setLockHoverBubblingImmediate","lockActiveStateRef","setParentStateLockActiveBubbling","setLockActiveBubblingImmediate","hoverEvent","activeEvent","stateClassName","hoverClassName","activeClassName","handlers"],"mappings":"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"}
|
|
@@ -13,7 +13,25 @@ type DispatchWithDelay<S> = (value: S, delay?: number) => void;
|
|
|
13
13
|
* setCount(count + 1, 500)
|
|
14
14
|
* }
|
|
15
15
|
* ```
|
|
16
|
+
*
|
|
17
|
+
* Есть возможность передать функцию-коллбэк, которая будет
|
|
18
|
+
* вызвана сразу после вызова setState с новым значением стейта
|
|
19
|
+
* в качестве аргумента.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const onCountChange = React.useCallback((count) => {
|
|
23
|
+
* // обработчик нового значения count
|
|
24
|
+
* // будет вызван через 500мс
|
|
25
|
+
* }, []);
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);
|
|
29
|
+
*
|
|
30
|
+
* const click = () => {
|
|
31
|
+
* setCount(count + 1, 500)
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
16
34
|
*/
|
|
17
|
-
export declare function useStateWithDelay<S>(initialState: S | (() => S), defaultDelay?: number): [S, DispatchWithDelay<React.SetStateAction<S>>];
|
|
35
|
+
export declare function useStateWithDelay<S>(initialState: S | (() => S), defaultDelay?: number, onStateChange?: (v: S) => void): [S, DispatchWithDelay<React.SetStateAction<S>>];
|
|
18
36
|
export {};
|
|
19
37
|
//# sourceMappingURL=useStateWithDelay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStateWithDelay.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useStateWithDelay.d.ts","sourceRoot":"","sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,KAAK,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,YAAY,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAC3B,YAAY,SAAI,EAChB,aAAa,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,IAAW,GACnC,CAAC,CAAC,EAAE,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAmCjD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { isFunction, noop } from '@vkontakte/vkjs';
|
|
2
3
|
/**
|
|
3
4
|
* Возвращает значение с состоянием и функции на обновление состояния
|
|
4
5
|
* без и с задержкой.
|
|
@@ -12,18 +13,51 @@ import * as React from 'react';
|
|
|
12
13
|
* setCount(count + 1, 500)
|
|
13
14
|
* }
|
|
14
15
|
* ```
|
|
15
|
-
|
|
16
|
+
*
|
|
17
|
+
* Есть возможность передать функцию-коллбэк, которая будет
|
|
18
|
+
* вызвана сразу после вызова setState с новым значением стейта
|
|
19
|
+
* в качестве аргумента.
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* const onCountChange = React.useCallback((count) => {
|
|
23
|
+
* // обработчик нового значения count
|
|
24
|
+
* // будет вызван через 500мс
|
|
25
|
+
* }, []);
|
|
26
|
+
*
|
|
27
|
+
*
|
|
28
|
+
* const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);
|
|
29
|
+
*
|
|
30
|
+
* const click = () => {
|
|
31
|
+
* setCount(count + 1, 500)
|
|
32
|
+
* }
|
|
33
|
+
* ```
|
|
34
|
+
*/ export function useStateWithDelay(initialState, defaultDelay = 0, onStateChange = noop) {
|
|
16
35
|
const [value, setValue] = React.useState(initialState);
|
|
17
36
|
const timeout = React.useRef();
|
|
37
|
+
const handleSetValue = React.useCallback((nextValue)=>{
|
|
38
|
+
if (isFunction(nextValue)) {
|
|
39
|
+
setValue((prevValue)=>{
|
|
40
|
+
const value = nextValue(prevValue);
|
|
41
|
+
onStateChange(value);
|
|
42
|
+
return value;
|
|
43
|
+
});
|
|
44
|
+
} else {
|
|
45
|
+
setValue(nextValue);
|
|
46
|
+
onStateChange(nextValue);
|
|
47
|
+
}
|
|
48
|
+
}, [
|
|
49
|
+
onStateChange
|
|
50
|
+
]);
|
|
18
51
|
const setValueWithDelay = React.useCallback((newValue, delay = defaultDelay)=>{
|
|
19
52
|
clearTimeout(timeout.current);
|
|
20
53
|
if (delay === 0) {
|
|
21
|
-
|
|
54
|
+
handleSetValue(newValue);
|
|
22
55
|
return;
|
|
23
56
|
}
|
|
24
|
-
timeout.current = setTimeout(()=>
|
|
57
|
+
timeout.current = setTimeout(()=>handleSetValue(newValue), delay);
|
|
25
58
|
}, [
|
|
26
|
-
defaultDelay
|
|
59
|
+
defaultDelay,
|
|
60
|
+
handleSetValue
|
|
27
61
|
]);
|
|
28
62
|
return [
|
|
29
63
|
value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"sourcesContent":["import * as React from 'react';\n\ntype DispatchWithDelay<S> = (value: S, delay?: number) => void;\n\n/**\n * Возвращает значение с состоянием и функции на обновление состояния\n * без и с задержкой.\n *\n * # Пример\n *\n * ```ts\n * const [count, setCount] = useStateWithDelay(initialState);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n */\nexport function useStateWithDelay<S>(\n initialState: S | (() => S),\n defaultDelay = 0,\n): [S, DispatchWithDelay<React.SetStateAction<S>>] {\n const [value, setValue] = React.useState(initialState);\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n\n const setValueWithDelay = React.useCallback(\n (newValue: React.SetStateAction<S>, delay: number = defaultDelay) => {\n clearTimeout(timeout.current);\n if (delay === 0) {\n
|
|
1
|
+
{"version":3,"sources":["../../../src/components/Clickable/useStateWithDelay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { isFunction, noop } from '@vkontakte/vkjs';\n\ntype DispatchWithDelay<S> = (value: S, delay?: number) => void;\n\n/**\n * Возвращает значение с состоянием и функции на обновление состояния\n * без и с задержкой.\n *\n * # Пример\n *\n * ```ts\n * const [count, setCount] = useStateWithDelay(initialState);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n *\n * Есть возможность передать функцию-коллбэк, которая будет\n * вызвана сразу после вызова setState с новым значением стейта\n * в качестве аргумента.\n *\n * ```ts\n * const onCountChange = React.useCallback((count) => {\n * // обработчик нового значения count\n * // будет вызван через 500мс\n * }, []);\n *\n *\n * const [count, setCount] = useStateWithDelay(initialState, 0, onCountChange);\n *\n * const click = () => {\n * setCount(count + 1, 500)\n * }\n * ```\n */\nexport function useStateWithDelay<S>(\n initialState: S | (() => S),\n defaultDelay = 0,\n onStateChange: (v: S) => void = noop,\n): [S, DispatchWithDelay<React.SetStateAction<S>>] {\n const [value, setValue] = React.useState(initialState);\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n\n const handleSetValue = React.useCallback(\n (nextValue: React.SetStateAction<S>) => {\n if (isFunction(nextValue)) {\n setValue((prevValue) => {\n const value = nextValue(prevValue);\n onStateChange(value);\n\n return value;\n });\n } else {\n setValue(nextValue);\n onStateChange(nextValue);\n }\n },\n [onStateChange],\n );\n\n const setValueWithDelay = React.useCallback(\n (newValue: React.SetStateAction<S>, delay: number = defaultDelay) => {\n clearTimeout(timeout.current);\n if (delay === 0) {\n handleSetValue(newValue);\n return;\n }\n\n timeout.current = setTimeout(() => handleSetValue(newValue), delay);\n },\n [defaultDelay, handleSetValue],\n );\n\n return [value, setValueWithDelay];\n}\n"],"names":["React","isFunction","noop","useStateWithDelay","initialState","defaultDelay","onStateChange","value","setValue","useState","timeout","useRef","handleSetValue","useCallback","nextValue","prevValue","setValueWithDelay","newValue","delay","clearTimeout","current","setTimeout"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,UAAU,EAAEC,IAAI,QAAQ,kBAAkB;AAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BC,GACD,OAAO,SAASC,kBACdC,YAA2B,EAC3BC,eAAe,CAAC,EAChBC,gBAAgCJ,IAAI;IAEpC,MAAM,CAACK,OAAOC,SAAS,GAAGR,MAAMS,QAAQ,CAACL;IACzC,MAAMM,UAAUV,MAAMW,MAAM;IAE5B,MAAMC,iBAAiBZ,MAAMa,WAAW,CACtC,CAACC;QACC,IAAIb,WAAWa,YAAY;YACzBN,SAAS,CAACO;gBACR,MAAMR,QAAQO,UAAUC;gBACxBT,cAAcC;gBAEd,OAAOA;YACT;QACF,OAAO;YACLC,SAASM;YACTR,cAAcQ;QAChB;IACF,GACA;QAACR;KAAc;IAGjB,MAAMU,oBAAoBhB,MAAMa,WAAW,CACzC,CAACI,UAAmCC,QAAgBb,YAAY;QAC9Dc,aAAaT,QAAQU,OAAO;QAC5B,IAAIF,UAAU,GAAG;YACfN,eAAeK;YACf;QACF;QAEAP,QAAQU,OAAO,GAAGC,WAAW,IAAMT,eAAeK,WAAWC;IAC/D,GACA;QAACb;QAAcO;KAAe;IAGhC,OAAO;QAACL;QAAOS;KAAkB;AACnC"}
|
|
@@ -6,9 +6,10 @@ import type { FormFieldProps } from '../FormField/FormField';
|
|
|
6
6
|
import type { NativeSelectProps } from '../NativeSelect/NativeSelect';
|
|
7
7
|
import type { SelectType } from '../Select/Select';
|
|
8
8
|
import { type CustomSelectClearButtonProps } from './CustomSelectClearButton';
|
|
9
|
+
import { type CustomSelectInputProps } from './CustomSelectInput';
|
|
9
10
|
import type { CustomSelectOptionInterface, CustomSelectRenderOption } from './types';
|
|
10
11
|
export type { CustomSelectClearButtonProps, CustomSelectOptionInterface, CustomSelectRenderOption };
|
|
11
|
-
export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface> extends NativeSelectProps, Omit<FormFieldProps, 'maxHeight'>, TrackerOptionsProps, Pick<CustomSelectDropdownProps, 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'> {
|
|
12
|
+
export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterface = CustomSelectOptionInterface> extends NativeSelectProps, Omit<FormFieldProps, 'maxHeight'>, TrackerOptionsProps, Pick<CustomSelectDropdownProps, 'overscrollBehavior' | 'autoHideScrollbar' | 'autoHideScrollbarDelay'>, Pick<CustomSelectInputProps, 'minLength' | 'maxLength' | 'pattern' | 'readOnly'> {
|
|
12
13
|
/**
|
|
13
14
|
* ref на внутрений компонент input
|
|
14
15
|
*/
|
|
@@ -25,7 +26,7 @@ export interface SelectProps<OptionInterfaceT extends CustomSelectOptionInterfac
|
|
|
25
26
|
/**
|
|
26
27
|
* Событие изменения текстового поля
|
|
27
28
|
*/
|
|
28
|
-
onInputChange?: (e: React.ChangeEvent) => void;
|
|
29
|
+
onInputChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
|
|
29
30
|
options: OptionInterfaceT[];
|
|
30
31
|
/**
|
|
31
32
|
* Функция для кастомной фильтрации. По умолчанию поиск производится по `option.label`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAEL,KAAK,4BAA4B,EAClC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"CustomSelect.d.ts","sourceRoot":"","sources":["../../../src/components/CustomSelect/CustomSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ import { CustomSelectInput } from './CustomSelectInput';
|
|
|
18
18
|
import { calculateInputValueFromOptions, defaultRenderOptionFn, findIndexAfter, findIndexBefore, findSelectedIndex } from './helpers';
|
|
19
19
|
const sizeYClassNames = {
|
|
20
20
|
none: "vkuiCustomSelect--sizeY-none",
|
|
21
|
-
|
|
21
|
+
compact: "vkuiCustomSelect--sizeY-compact"
|
|
22
22
|
};
|
|
23
23
|
const warn = warnOnce('CustomSelect');
|
|
24
24
|
const checkOptionsValueType = (options)=>{
|
|
@@ -36,7 +36,7 @@ const filter = (options, inputValue, filterFn)=>{
|
|
|
36
36
|
* @see https://vkcom.github.io/VKUI/#/CustomSelect
|
|
37
37
|
*/ export function CustomSelect(props) {
|
|
38
38
|
const [opened, setOpened] = React.useState(false);
|
|
39
|
-
const { before, name, className, getRef, getRootRef, popupDirection = 'bottom', style, onChange, children, onInputChange: onInputChangeProp, renderDropdown, onOpen, onClose, fetching, forceDropdownPortal, selectType = 'default', autoHideScrollbar, autoHideScrollbarDelay, searchable = false, renderOption: renderOptionProp = defaultRenderOptionFn, options: optionsProp, emptyText = 'Ничего не найдено', filterFn = defaultFilterFn, icon: iconProp, ClearButton = CustomSelectClearButton, allowClearButton = false, dropdownOffsetDistance = 0, dropdownAutoWidth = false, noMaxHeight = false,
|
|
39
|
+
const { before, name, className, getRef, getRootRef, popupDirection = 'bottom', style, onChange, children, 'onInputChange': onInputChangeProp, renderDropdown, onOpen, onClose, fetching, forceDropdownPortal, selectType = 'default', autoHideScrollbar, autoHideScrollbarDelay, searchable = false, 'renderOption': renderOptionProp = defaultRenderOptionFn, 'options': optionsProp, emptyText = 'Ничего не найдено', filterFn = defaultFilterFn, 'icon': iconProp, ClearButton = CustomSelectClearButton, allowClearButton = false, dropdownOffsetDistance = 0, dropdownAutoWidth = false, noMaxHeight = false, 'aria-labelledby': ariaLabelledBy, clearButtonTestId, nativeSelectTestId, defaultValue, required, getSelectInputRef, overscrollBehavior } = props, restProps = _object_without_properties(props, [
|
|
40
40
|
"before",
|
|
41
41
|
"name",
|
|
42
42
|
"className",
|
|
@@ -46,7 +46,7 @@ const filter = (options, inputValue, filterFn)=>{
|
|
|
46
46
|
"style",
|
|
47
47
|
"onChange",
|
|
48
48
|
"children",
|
|
49
|
-
|
|
49
|
+
'onInputChange',
|
|
50
50
|
"renderDropdown",
|
|
51
51
|
"onOpen",
|
|
52
52
|
"onClose",
|
|
@@ -56,11 +56,11 @@ const filter = (options, inputValue, filterFn)=>{
|
|
|
56
56
|
"autoHideScrollbar",
|
|
57
57
|
"autoHideScrollbarDelay",
|
|
58
58
|
"searchable",
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
'renderOption',
|
|
60
|
+
'options',
|
|
61
61
|
"emptyText",
|
|
62
62
|
"filterFn",
|
|
63
|
-
|
|
63
|
+
'icon',
|
|
64
64
|
"ClearButton",
|
|
65
65
|
"allowClearButton",
|
|
66
66
|
"dropdownOffsetDistance",
|
|
@@ -608,7 +608,7 @@ const filter = (options, inputValue, filterFn)=>{
|
|
|
608
608
|
'role': 'combobox',
|
|
609
609
|
'aria-controls': popupAriaId,
|
|
610
610
|
'aria-expanded': opened,
|
|
611
|
-
|
|
611
|
+
'aria-activedescendant': ariaActiveDescendantId && opened ? `${popupAriaId}-${ariaActiveDescendantId}` : undefined,
|
|
612
612
|
'aria-labelledby': ariaLabelledBy,
|
|
613
613
|
'aria-haspopup': 'listbox',
|
|
614
614
|
'aria-autocomplete': 'none'
|