@skbkontur/react-ui 5.2.1 → 5.3.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/CHANGELOG.md +31 -0
- package/README.md +7 -7
- package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/cjs/components/Autocomplete/Autocomplete.js +49 -46
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -0
- package/cjs/components/Button/Button.js +29 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +6 -0
- package/cjs/components/Button/Button.styles.js +107 -75
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +2 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +2 -0
- package/cjs/components/Center/Center.js +1 -0
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
- package/cjs/components/Checkbox/Checkbox.js +2 -14
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +1 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/constants.js +1 -2
- package/cjs/components/CurrencyInput/constants.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -0
- package/cjs/components/DateInput/DateInput.js +1 -0
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
- package/cjs/components/DatePicker/DatePicker.js +6 -60
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
- package/cjs/components/Dropdown/Dropdown.js +2 -82
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +2 -5
- package/cjs/components/FxInput/FxInput.js +2 -7
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -15
- package/cjs/components/Gapped/Gapped.js +1 -24
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +5 -4
- package/cjs/components/Group/Group.js +91 -40
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.styles.d.ts +1 -0
- package/cjs/components/Group/Group.styles.js +12 -6
- package/cjs/components/Group/Group.styles.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -0
- package/cjs/components/Hint/Hint.js +1 -0
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -0
- package/cjs/components/Input/Input.js +1 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -1
- package/cjs/components/Kebab/Kebab.js +2 -26
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +1 -0
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +6 -36
- package/cjs/components/Loader/Loader.js +3 -57
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/components/MaskedInput/MaskedInput.js +17 -1
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
- package/cjs/components/MenuItem/MenuItem.js +2 -22
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
- package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
- package/cjs/components/MiniModal/MiniModalBody.js +17 -2
- package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +1 -0
- package/cjs/components/Modal/Modal.styles.js +36 -28
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -0
- package/cjs/components/Modal/ModalBody.js +1 -0
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +5 -0
- package/cjs/components/Modal/ModalHeader.js +8 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/DotsIcon.d.ts +3 -0
- package/cjs/components/Paging/DotsIcon.js +13 -0
- package/cjs/components/Paging/DotsIcon.js.map +1 -0
- package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
- package/cjs/components/Paging/ForwardIcon.js +13 -1
- package/cjs/components/Paging/ForwardIcon.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
- package/cjs/components/Paging/NavigationHelper.js +8 -6
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +13 -2
- package/cjs/components/Paging/Paging.js +120 -50
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +24 -1
- package/cjs/components/Paging/Paging.styles.js +151 -22
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Paging/PagingHelper.d.ts +1 -1
- package/cjs/components/Paging/PagingHelper.js +18 -11
- package/cjs/components/Paging/PagingHelper.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/cjs/components/PasswordInput/PasswordInput.js +2 -11
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -0
- package/cjs/components/Radio/Radio.js +1 -0
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/cjs/components/RadioGroup/RadioGroup.js +1 -0
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +2 -0
- package/cjs/components/Select/Select.js +1 -0
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +3 -1
- package/cjs/components/SidePage/SidePage.styles.js +52 -38
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +2 -0
- package/cjs/components/SidePage/SidePageBody.js +1 -0
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +2 -0
- package/cjs/components/SidePage/SidePageContainer.js +1 -0
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +2 -0
- package/cjs/components/SidePage/SidePageFooter.js +1 -0
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +12 -2
- package/cjs/components/SidePage/SidePageHeader.js +60 -19
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -18
- package/cjs/components/Spinner/Spinner.js +2 -32
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +2 -13
- package/cjs/components/Sticky/Sticky.js +2 -22
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +6 -21
- package/cjs/components/Switcher/Switcher.js +11 -20
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.styles.js +17 -9
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +2 -0
- package/cjs/components/Tabs/Indicator.js +1 -0
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -0
- package/cjs/components/Tabs/Tab.js +1 -0
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +2 -0
- package/cjs/components/Tabs/Tabs.js +1 -0
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +2 -44
- package/cjs/components/Textarea/Textarea.js +2 -56
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +2 -13
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +2 -0
- package/cjs/components/Toast/Toast.js +1 -0
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +2 -14
- package/cjs/components/Toast/ToastView.js +3 -22
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -10
- package/cjs/components/Toggle/Toggle.js +1 -11
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -0
- package/cjs/components/Token/Token.js +1 -0
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +2 -0
- package/cjs/components/TokenInput/TokenInput.js +1 -0
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
- package/cjs/components/Tooltip/Tooltip.js +95 -13
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/cjs/components/Tooltip/Tooltip.styles.js +50 -12
- package/cjs/components/Tooltip/Tooltip.styles.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +1 -0
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.js +2 -3
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +1 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
- package/cjs/internal/DateSelect/DateSelect.js +1 -18
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -0
- package/cjs/internal/Menu/Menu.js +1 -0
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +41 -59
- package/cjs/internal/Popup/Popup.js +36 -79
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +23 -33
- package/cjs/internal/Popup/PopupPin.js +2 -35
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
- package/cjs/internal/Popup/PopupPinNew.js +180 -0
- package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
- package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js +5 -8
- package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js +12 -1
- package/cjs/internal/ThemePlayground/ShowcaseGroup.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
- package/cjs/internal/ZIndex/ZIndex.js +5 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/cjs/internal/themes/BasicTheme.d.ts +112 -20
- package/cjs/internal/themes/BasicTheme.js +149 -18
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_3.js +13 -0
- package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_3.js +13 -0
- package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +11 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +1 -1
- package/cjs/lib/forwardRefAndName.js +0 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
- package/cjs/lib/theming/ThemeVersions.js.map +1 -1
- package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/DarkTheme.js +4 -2
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/LightTheme.js +4 -2
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -0
- package/cjs/lib/utils.js +5 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/components/Button/Button/Button.js +26 -5
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -0
- package/components/Button/Button.styles/Button.styles.js +78 -60
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +6 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -0
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +2 -0
- package/components/Checkbox/Checkbox/Checkbox.js +0 -11
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -12
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -0
- package/components/DatePicker/DatePicker/DatePicker.js +1 -32
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +6 -33
- package/components/Dropdown/Dropdown/Dropdown.js +1 -47
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -47
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/FxInput/FxInput/FxInput.js +1 -5
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +2 -5
- package/components/Gapped/Gapped/Gapped.js +1 -15
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -15
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js +64 -28
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +5 -4
- package/components/Group/Group.styles/Group.styles.js +9 -6
- package/components/Group/Group.styles/Group.styles.js.map +1 -1
- package/components/Group/Group.styles.d.ts +1 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -0
- package/components/Kebab/Kebab/Kebab.js +2 -20
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +0 -33
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +6 -36
- package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -12
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +2 -12
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
- package/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
- package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +31 -28
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +1 -0
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -0
- package/components/Modal/ModalHeader/ModalHeader.js +3 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +5 -0
- package/components/Paging/DotsIcon/DotsIcon.js +14 -0
- package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
- package/components/Paging/DotsIcon/package.json +6 -0
- package/components/Paging/DotsIcon.d.ts +3 -0
- package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
- package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
- package/components/Paging/ForwardIcon.d.ts +3 -0
- package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/NavigationHelper.d.ts +3 -2
- package/components/Paging/Paging/Paging.js +96 -47
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -2
- package/components/Paging/Paging.styles/Paging.styles.js +77 -16
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +24 -1
- package/components/Paging/PagingHelper/PagingHelper.js +16 -8
- package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
- package/components/Paging/PagingHelper.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +2 -0
- package/components/SidePage/SidePage.styles/SidePage.styles.js +41 -35
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +3 -1
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +2 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +2 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +2 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +61 -39
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +12 -2
- package/components/Spinner/Spinner/Spinner.js +1 -18
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -18
- package/components/Sticky/Sticky/Sticky.js +1 -13
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +2 -13
- package/components/Switcher/Switcher/Switcher.js +19 -16
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +6 -21
- package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +2 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -0
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Textarea/Textarea/Textarea.js +1 -44
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +2 -44
- package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +2 -0
- package/components/Toast/ToastView/ToastView.js +3 -17
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +2 -14
- package/components/Toggle/Toggle/Toggle.js +1 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -10
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +2 -0
- package/components/Tooltip/Tooltip/Tooltip.js +67 -20
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +14 -9
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js +22 -4
- package/components/Tooltip/Tooltip.styles/Tooltip.styles.js.map +1 -1
- package/components/Tooltip/Tooltip.styles.d.ts +7 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -2
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/ComponentTable/ComponentTable.js +0 -2
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -10
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +0 -10
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/internal/Popup/Popup/Popup.js +14 -64
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +41 -59
- package/internal/Popup/PopupPin/PopupPin.js +1 -34
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +23 -33
- package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
- package/internal/Popup/PopupPinNew/package.json +6 -0
- package/internal/Popup/PopupPinNew.d.ts +31 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
- package/internal/Popup/PopupPinNew.styles/package.json +6 -0
- package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/internal/ThemePlayground/Playground/Playground.js +4 -3
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js +4 -4
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js +6 -1
- package/internal/ThemePlayground/ShowcaseGroup/ShowcaseGroup.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +3 -3
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js +170 -26
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +112 -20
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
- package/internal/themes/DarkTheme5_3/package.json +6 -0
- package/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
- package/internal/themes/LightTheme5_3/package.json +6 -0
- package/internal/themes/LightTheme5_3.d.ts +1 -0
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +5 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +6 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +5 -0
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +1 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/utils/utils.js +2 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -0
- package/package.json +10 -13
- package/cjs/lib/SSRSafe.d.ts +0 -2
- package/cjs/lib/SSRSafe.js +0 -5
- package/cjs/lib/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/SSRSafe.js +0 -4
- package/lib/SSRSafe/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/package.json +0 -6
- package/lib/SSRSafe.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_lodash","_globalObject","_utils","_identifiers","_MouseDrag","_client","_selectionHelpers","_Input","_Input2","_ThemeContext","_CommonWrapper","_Emotion","_listenFocusOutside","_rootNode","_createPropsGetter","_InputLayoutAside","_InputLayoutContext","_isInstanceOf","_FocusControlWrapper","_ClearCrossIcon","_HiddenInput","_InputLikeText2","_excluded","_class","_InputLikeText","InputLikeTextDataTids","exports","root","input","nativeInput","InputLikeText","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","calculateClearCrossShowedState","showClearIcon","notEmptyValue","Boolean","children","state","blinking","clearCrossShowed","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectNodeContentsDebounced","debounce","selectNodeContents","selectInnerNode","start","end","isIE11","globalObject","document","findRenderContainer","body","focusTimeout","clearInterval","setTimeout","isEdge","focus","renderMain","_cx","_cx2","_cx3","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","ariaLabel","ariaLabelledby","onClearCrossClick","rest","_objectWithoutPropertiesLoose2","default","_this$state","getRightIcon","createElement","ClearCrossIcon","InputDataTids","clearCross","onFocus","event","stopPropagation","onClick","leftSide","InputLayoutAside","icon","text","side","rightSide","className","cx","styles","jsInputStyles","theme","getSizeClassName","hovering","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","FocusControlWrapper","onBlurWhenDisabled","resetFocus","_extends2","style","textAlign","handleFocus","onMouseEnter","handleHover","onMouseLeave","handleUnhover","onBlur","handleBlur","ref","onKeyDown","handleKeyDown","onMouseDown","handleMouseDown","role","InputLayoutContext","Provider","type","absolute","inputFocus","inputDisabled","renderPlaceholder","HiddenInput","nodeRef","hiddenInputRef","_this$props","hasValue","isNonNullable","_cx4","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","isInstanceOf","target","Node","contains","defrost","handleDocumentKeyDown","isKeyTab","isShortcutPaste","_this2","handleMouseDragStart","_globalObject$documen","documentElement","classList","add","userSelectNone","handleMouseDragEnd","_globalObject$documen2","remove","_this$node","setAttribute","React","version","search","ReactDOM","flushSync","setState","cancel","_this$node2","removeAttribute","removeAllSelections","_this$node3","el","_cx5","_cx6","_cx7","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_inheritsLoose2","_proto","prototype","blur","_this3","blinkTimeout","getNode","componentDidMount","_globalObject$documen3","_globalObject$documen4","MouseDrag","listen","addEventListener","componentWillUnmount","_globalObject$documen5","_globalObject$documen6","clearTimeout","stop","removeEventListener","render","_this4","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["InputLikeText.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport type { MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers';\nimport type { InputProps, InputState } from '../../components/Input';\nimport { calculateClearCrossShowedState, InputDataTids } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../FocusControlWrapper';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n onClearCrossClick?: () => void;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder' | 'hovered'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size' | 'showClearIcon'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.props.children),\n focused,\n hovered,\n });\n };\n\n public state = {\n blinking: false,\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n }),\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: SafeTimer;\n private blinkTimeout: SafeTimer;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && globalObject.document && findRenderContainer(node, globalObject.document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n this.selectNodeContentsDebounced(node, start, end);\n\n if (this.focusTimeout) {\n globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n showClearIcon,\n onClearCrossClick,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon\n data-tid={InputDataTids.clearCross}\n size={size}\n onFocus={(event) => event.stopPropagation()}\n onClick={onClearCrossClick}\n />\n ) : (\n rightIcon\n );\n };\n const leftSide = <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />;\n const rightSide = <InputLayoutAside icon={getRightIcon()} text={suffix} side=\"right\" />;\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? -1 : 0}\n onFocus={this.handleFocus}\n onMouseEnter={this.handleHover}\n onMouseLeave={this.handleUnhover}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n role=\"textbox\"\n aria-disabled={disabled}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n >\n <InputLayoutContext.Provider value={context}>\n <input type=\"hidden\" data-tid={InputLikeTextDataTids.nativeInput} value={value} disabled={disabled} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && isInstanceOf(e.target, globalObject.Node) && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n globalObject.setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n globalObject.document?.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n globalObject.document?.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11 && globalObject.document) {\n selectNodeContents(globalObject.document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n }\n removeAllSelections();\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private handleHover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleUnhover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_lodash","_globalObject","_utils","_identifiers","_MouseDrag","_client","_selectionHelpers","_Input","_Input2","_ThemeContext","_CommonWrapper","_Emotion","_listenFocusOutside","_rootNode","_createPropsGetter","_InputLayoutAside","_InputLayoutContext","_isInstanceOf","_FocusControlWrapper","_ClearCrossIcon","_HiddenInput","_InputLikeText2","_excluded","_class","_InputLikeText","InputLikeTextDataTids","exports","root","input","nativeInput","InputLikeText","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","calculateClearCrossShowedState","showClearIcon","notEmptyValue","Boolean","children","state","blinking","clearCrossShowed","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectNodeContentsDebounced","debounce","selectNodeContents","selectInnerNode","start","end","isIE11","globalObject","document","findRenderContainer","body","focusTimeout","clearInterval","setTimeout","isEdge","focus","renderMain","_cx","_cx2","_cx3","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","ariaLabel","ariaLabelledby","onClearCrossClick","rest","_objectWithoutPropertiesLoose2","default","_this$state","getRightIcon","createElement","ClearCrossIcon","InputDataTids","clearCross","onFocus","event","stopPropagation","onClick","leftSide","InputLayoutAside","icon","text","side","rightSide","className","cx","styles","jsInputStyles","theme","getSizeClassName","hovering","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","FocusControlWrapper","onBlurWhenDisabled","resetFocus","_extends2","style","textAlign","handleFocus","onMouseEnter","handleHover","onMouseLeave","handleUnhover","onBlur","handleBlur","ref","onKeyDown","handleKeyDown","onMouseDown","handleMouseDown","role","InputLayoutContext","Provider","type","absolute","inputFocus","inputDisabled","renderPlaceholder","HiddenInput","nodeRef","hiddenInputRef","_this$props","hasValue","isNonNullable","_cx4","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","isInstanceOf","target","Node","contains","defrost","handleDocumentKeyDown","isKeyTab","isShortcutPaste","_this2","handleMouseDragStart","_globalObject$documen","documentElement","classList","add","userSelectNone","handleMouseDragEnd","_globalObject$documen2","remove","_this$node","setAttribute","React","version","search","ReactDOM","flushSync","setState","cancel","_this$node2","removeAttribute","removeAllSelections","_this$node3","el","_cx5","_cx6","_cx7","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","_inheritsLoose2","_proto","prototype","blur","_this3","blinkTimeout","getNode","componentDidMount","_globalObject$documen3","_globalObject$documen4","MouseDrag","listen","addEventListener","componentWillUnmount","_globalObject$documen5","_globalObject$documen6","clearTimeout","stop","removeEventListener","render","_this4","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["InputLikeText.tsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport debounce from 'lodash.debounce';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport type { MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers';\nimport type { InputProps, InputState } from '../../components/Input';\nimport { calculateClearCrossShowedState, InputDataTids } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps, CommonWrapperRestProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../FocusControlWrapper';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n onClearCrossClick?: () => void;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder' | 'hovered'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size' | 'showClearIcon'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n public static displayName = 'InputLikeText';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon,\n notEmptyValue: Boolean(this.props.children),\n focused,\n hovered,\n });\n };\n\n public state = {\n blinking: false,\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({\n focused: false,\n }),\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: SafeTimer;\n private blinkTimeout: SafeTimer;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = globalObject.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && globalObject.document && findRenderContainer(node, globalObject.document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n this.selectNodeContentsDebounced(node, start, end);\n\n if (this.focusTimeout) {\n globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n showClearIcon,\n onClearCrossClick,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n const getRightIcon = () => {\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon\n data-tid={InputDataTids.clearCross}\n size={size}\n onFocus={(event) => event.stopPropagation()}\n onClick={onClearCrossClick}\n />\n ) : (\n rightIcon\n );\n };\n const leftSide = <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />;\n const rightSide = <InputLayoutAside icon={getRightIcon()} text={suffix} side=\"right\" />;\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? -1 : 0}\n onFocus={this.handleFocus}\n onMouseEnter={this.handleHover}\n onMouseLeave={this.handleUnhover}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n role=\"textbox\"\n aria-disabled={disabled}\n aria-describedby={ariaDescribedby}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n >\n <InputLayoutContext.Provider value={context}>\n <input type=\"hidden\" data-tid={InputLikeTextDataTids.nativeInput} value={value} disabled={disabled} />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n </FocusControlWrapper>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && isInstanceOf(e.target, globalObject.Node) && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n globalObject.setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n globalObject.document?.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n globalObject.document?.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11 && globalObject.document) {\n selectNodeContents(globalObject.document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n }\n removeAllSelections();\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n this.setState({ focused: false });\n\n this.props.onBlur?.(e);\n };\n\n private handleHover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleUnhover = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { HTMLAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { ScrollContainerScrollState } from '../../components/ScrollContainer';
|
|
4
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
4
5
|
import type { CommonProps } from '../CommonWrapper';
|
|
5
6
|
export interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
|
|
6
7
|
children: React.ReactNode;
|
|
@@ -53,6 +54,7 @@ export declare class Menu extends React.PureComponent<MenuProps, MenuState> {
|
|
|
53
54
|
private scrollContainer;
|
|
54
55
|
private isMobileLayout;
|
|
55
56
|
private unmounted;
|
|
57
|
+
getRootNode: TGetRootNode;
|
|
56
58
|
private setRootNode;
|
|
57
59
|
private header;
|
|
58
60
|
private footer;
|
|
@@ -117,6 +117,7 @@ Menu = exports.Menu = (0, _decorator.responsiveLayout)(_class = (0, _rootNode2.r
|
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
|
|
120
|
+
|
|
120
121
|
contentRef = /*#__PURE__*/_react.default.createRef();_this.
|
|
121
122
|
menuNavigation = new _MenuNavigation.MenuNavigation(_this.contentRef, _MenuItem.MenuItemDataTids.content);_this.
|
|
122
123
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_identifiers","_MenuSeparator","_ThemeFactory","_getDOMRect","_decorator","_utils","_ScrollContainer","_MenuItem","_ThemeContext","_Emotion","_rootNode2","_client","_createPropsGetter","_isInstanceOf","_CommonWrapper","_Menu2","_MenuNavigation","_MenuContext","_class","_Menu","MenuDataTids","exports","root","Menu","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","renderHeader","_cx","default","createElement","className","cx","styles","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","ThemeContext","Provider","value","ThemeFactory","create","menuSeparatorMarginY","MenuSeparator","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","isBrowser","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","getDOMRect","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","isKeyArrowUp","preventDefault","up","isKeyArrowDown","isKeyEnter","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose2","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","CommonWrapper","_extends2","rootNodeRef","setRootNode","getAlignRightClass","mobileRoot","shadow","style","id","tabIndex","ScrollContainer","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","MenuContext","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport type { ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport type { MenuItem } from '../../components/MenuItem';\nimport { MenuItemDataTids } from '../../components/MenuItem';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number; // TODO unused variable, remove in next major release\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;;AAEA,IAAAQ,gBAAA,GAAAR,OAAA;;AAEA,IAAAS,SAAA,GAAAT,OAAA;;AAEA,IAAAU,aAAA,GAAAV,OAAA;;AAEA,IAAAW,QAAA,GAAAX,OAAA;;AAEA,IAAAY,UAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AACA,IAAAe,aAAA,GAAAf,OAAA;;AAEA,IAAAgB,cAAA,GAAAhB,OAAA;;AAEA,IAAAiB,MAAA,GAAAjB,OAAA;AACA,IAAAkB,eAAA,GAAAlB,OAAA;AACA,IAAAmB,YAAA,GAAAnB,OAAA,kBAA4C,IAAAoB,MAAA,EAAAC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CrC,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,IAAI,EAAE;AACR,CAAU,CAAC;;;;;;;;;;;;;;;;;AAiBEC,IAAI,GAAAF,OAAA,CAAAE,IAAA,OAFhBC,2BAAgB,EAAAN,MAAA,OAChBO,mBAAQ,EAAAP,MAAA,IAAAC,KAAA,0BAAAO,oBAAA,YAAAH,KAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,oBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,oBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;IAeCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACf,IAAI,CAACgB,YAAY,CAAC,CAAAZ,KAAA;;IAEhDa,KAAK,GAAc;MACxBC,gBAAgB,EAAE,CAAC,CAAC;MACpBC,SAAS,EAAEf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACK,SAAS,IAAI,MAAM;MAC9CC,WAAW,EAAE,KAAK;MAClBC,iBAAiB,EAAE;IACrB,CAAC,CAAAjB,KAAA;;;;;IAKOkB,SAAS,GAAG,KAAK,CAAAlB,KAAA;;;;IAIjBmB,UAAU,gBAAGC,cAAK,CAACC,SAAS,CAAiB,CAAC,CAAArB,KAAA;IAC9CsB,cAAc,GAA6B,IAAIC,8BAAc,CAACvB,KAAA,CAAKmB,UAAU,EAAEK,0BAAgB,CAACC,OAAO,CAAC,CAAAzB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BxG0B,kBAAkB,GAAG,YAAY;MACvC,IAAM5B,QAAQ,GAAG,IAAA6B,sBAAW,EAAA3B,KAAK,CAAC;MAClC,IAAI,IAAA4B,0BAAY,EAAC9B,QAAQ,EAAE+B,0BAAY,CAACC,WAAW,CAAC,EAAE;QACpDhC,QAAQ,YAARA,QAAQ,CAAEiC,KAAK,CAAC,CAAC;MACnB;IACF,CAAC,CAAA/B,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmHOgC,YAAY,GAAG,YAAM,KAAAC,GAAA;MAC3B;QACEhE,MAAA,CAAAiE,OAAA,CAAAC,aAAA;UACEC,SAAS,EAAE,IAAAC,WAAE,GAAAJ,GAAA,OAAAA,GAAA;UACVK,aAAM,CAACC,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAN,GAAA;UACvBK,aAAM,CAACE,aAAa,CAAC,CAAC,IAAG,IAAI,EAAAP,GAAA;UAC/B,CAAE;UACHQ,GAAG,EAAE,SAAAA,IAACC,EAAE,UAAM1C,KAAA,CAAK2C,MAAM,GAAGD,EAAE,EAAE;;QAEhCzE,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAEE,aAAM,CAACM,cAAc,CAAC,CAAE,IAAE5C,KAAA,CAAK6C,KAAK,CAACF,MAAY,CAAC;QAClE1E,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAEE,aAAM,CAACQ,oBAAoB,CAAC9C,KAAA,CAAK+C,KAAK,CAAE;QACrD/C,KAAA,CAAKa,KAAK,CAACG,WAAW,KAAK,KAAK,IAAIhB,KAAA,CAAKgD,+BAA+B,CAAC;QACvE;QACF,CAAC;;IAEV,CAAC,CAAAhD,KAAA;;IAEOiD,YAAY,GAAG,YAAM,KAAAC,IAAA;MAC3B;QACEjF,MAAA,CAAAiE,OAAA,CAAAC,aAAA;UACEC,SAAS,EAAE,IAAAC,WAAE,GAAAa,IAAA,OAAAA,IAAA;UACVZ,aAAM,CAACC,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAW,IAAA;UACvBZ,aAAM,CAACa,aAAa,CAAC,CAAC,IAAG,IAAI,EAAAD,IAAA;UAC/B,CAAE;UACHT,GAAG,EAAE,SAAAA,IAACC,EAAE,UAAM1C,KAAA,CAAKoD,MAAM,GAAGV,EAAE,EAAE;;QAEhCzE,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAEE,aAAM,CAACQ,oBAAoB,CAAC9C,KAAA,CAAK+C,KAAK,CAAE;QACrD/C,KAAA,CAAKa,KAAK,CAACG,WAAW,KAAK,QAAQ,IAAIhB,KAAA,CAAKgD,+BAA+B,CAAC;QAC1E,CAAC;QACN/E,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UAAKC,SAAS,EAAEE,aAAM,CAACM,cAAc,CAAC,CAAE,IAAE5C,KAAA,CAAK6C,KAAK,CAACO,MAAY;QAC9D,CAAC;;IAEV,CAAC,CAAApD,KAAA;;IAEOgD,+BAA+B,GAAG,YAAM;MAC9C;QACE/E,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAACtD,aAAA,CAAAwE,YAAY,CAACC,QAAQ,IAACC,KAAK,EAAEC,0BAAY,CAACC,MAAM,CAAC,EAAEC,oBAAoB,EAAE,GAAG,CAAC,CAAC,EAAE1D,KAAA,CAAK+C,KAAK,CAAE;QAC3F9E,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAAC7D,cAAA,CAAAqF,aAAa,MAAE;QACK,CAAC;;IAE5B,CAAC,CAAA3D,KAAA;;IAEO4D,mBAAmB,GAAG,YAAM;MAClC,KAAK,IAAIC,CAAC,GAAG7D,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACoD,wBAAwB,EAAED,CAAC,GAAG,CAAC,CAAC,EAAEA,CAAC,EAAE,EAAE;QAClE7D,KAAA,CAAK+D,IAAI,CAAC,CAAC;MACb;IACF,CAAC,CAAA/D,KAAA;;IAEOgE,0BAA0B,GAAG,UAACC,SAAoB,EAAc;MACtE,IAAAC,WAAA,GAAqClE,KAAA,CAAK6C,KAAK,CAAvCF,MAAM,GAAAuB,WAAA,CAANvB,MAAM,CAAES,MAAM,GAAAc,WAAA,CAANd,MAAM,CAAEe,QAAQ,GAAAD,WAAA,CAARC,QAAQ;MAChC,IAAMpD,SAAS,GAAGf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACK,SAAS;MAC3C,IAAMqD,aAAa,GAAGH,SAAS,CAAClD,SAAS;MACzC,IAAMsD,UAAU,GAAGJ,SAAS,CAACtB,MAAM;MACnC,IAAM2B,UAAU,GAAGL,SAAS,CAACb,MAAM;MACnC,IAAMmB,iBAAiB,GAAGnD,cAAK,CAACoD,QAAQ,CAACC,KAAK,CAACR,SAAS,CAACE,QAAQ,CAAC;;MAElE;QACEpD,SAAS,KAAKqD,aAAa;QAC3BhB,MAAM,KAAKkB,UAAU;QACrB3B,MAAM,KAAK0B,UAAU;QACrBjD,cAAK,CAACoD,QAAQ,CAACC,KAAK,CAACN,QAAQ,CAAC,KAAKI,iBAAiB;;IAExD,CAAC,CAAAvE,KAAA;;IAEO0E,kBAAkB,GAAG,YAAM;MACjC,IAAM3D,SAAS,GAAGf,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACK,SAAS;MAC3C,IAAI4D,eAAe,GAAG5D,SAAS;MAC/B,IAAMjB,QAAQ,GAAG,IAAA6B,sBAAW,EAAA3B,KAAK,CAAC;;MAElC,IAAI,OAAOe,SAAS,KAAK,QAAQ,IAAI,IAAA6D,uBAAS,EAAC/C,0BAAY,CAAC,IAAI/B,QAAQ,EAAE;QACxE,IAAM+E,oBAAoB,GAAGhD,0BAAY,CAACiD,gBAAgB,oBAA7BjD,0BAAY,CAACiD,gBAAgB,CAAGhF,QAAQ,CAAC,CAACiB,SAAS;;QAEhF,IAAI8D,oBAAoB,EAAE;UACxBF,eAAe,GAAGI,UAAU,CAACF,oBAAoB,CAAC;QACpD;MACF;;MAEA,IAAMG,mBAAmB;MACvB,OAAOL,eAAe,KAAK,QAAQ;MAC/BA,eAAe;MACb3E,KAAA,CAAK2C,MAAM,IAAI,IAAAsC,sBAAU,EAACjF,KAAA,CAAK2C,MAAM,CAAC,CAACuC,MAAM,IAAK,CAAC,CAAC;MACpDlF,KAAA,CAAKoD,MAAM,IAAI,IAAA6B,sBAAU,EAACjF,KAAA,CAAKoD,MAAM,CAAC,CAAC8B,MAAM,IAAK,CAAC,CAAC;MACtDnE,SAAS;;MAEff,KAAA,CAAKmF,QAAQ,CAAC;QACZpE,SAAS,EAAEiE,mBAAmB,IAAI;MACpC,CAAC,CAAC;IACJ,CAAC,CAAAhF,KAAA;;IAEOoF,kBAAkB,GAAG,UAACC,eAA0C,EAAK;MAC3ErF,KAAA,CAAKqF,eAAe,GAAGA,eAAe;IACxC,CAAC,CAAArF,KAAA;;IAEOsF,gBAAgB,GAAG,YAAM;MAC/B,IAAMC,eAAe,GAAGvF,KAAA,CAAKsB,cAAc,CAACiE,eAAe;MAC3D,IAAIvF,KAAA,CAAKqF,eAAe,IAAIE,eAAe,EAAE;QAC3C,IAAMzF,SAAQ,GAAG,IAAA6B,sBAAW,EAAC4D,eAAe,CAAC;QAC7C;QACA,IAAI,IAAA3D,0BAAY,EAAC9B,SAAQ,EAAE+B,0BAAY,CAACC,WAAW,CAAC,EAAE;UACpD9B,KAAA,CAAKqF,eAAe,CAACG,QAAQ,CAAC1F,SAAQ,CAAC;QACzC;MACF;IACF,CAAC,CAAAE,KAAA;;IAEOyF,WAAW,GAAG,YAAM;MAC1B,IAAIzF,KAAA,CAAKqF,eAAe,EAAE;QACxBrF,KAAA,CAAKqF,eAAe,CAACI,WAAW,CAAC,CAAC;MACpC;IACF,CAAC,CAAAzF,KAAA;;IAEO0F,cAAc,GAAG,YAAM;MAC7B,IAAI1F,KAAA,CAAKqF,eAAe,EAAE;QACxBrF,KAAA,CAAKqF,eAAe,CAACK,cAAc,CAAC,CAAC;MACvC;IACF,CAAC,CAAA1F,KAAA;;IAEO2F,MAAM,GAAG,UAACC,SAAiB,EAAK;MACtC,QAAQA,SAAS;QACf,KAAK,CAAC;UACJ5F,KAAA,CAAKyF,WAAW,YAAhBzF,KAAA,CAAKyF,WAAW,CAAG,CAAC;UACpB;QACF,KAAKzF,KAAA,CAAKsB,cAAc,CAACuE,KAAK,CAAC1F,MAAM,GAAG,CAAC;UACvCH,KAAA,CAAK0F,cAAc,YAAnB1F,KAAA,CAAK0F,cAAc,CAAG,CAAC;UACvB;QACF;UACE1F,KAAA,CAAKsF,gBAAgB,YAArBtF,KAAA,CAAKsF,gBAAgB,CAAG,CAAC;MAC7B;IACF,CAAC,CAAAtF,KAAA;;;;;;;;;;;;;;;;IAgBO8F,aAAa,GAAG,UAACC,KAA0C,EAAW;MAC5E,IAAI,OAAO/F,KAAA,CAAK6C,KAAK,CAACmD,SAAS,KAAK,UAAU,EAAE;QAC9ChG,KAAA,CAAK6C,KAAK,CAACmD,SAAS,CAACD,KAAK,CAAC;MAC7B;;MAEA,IAAIA,KAAK,CAACE,gBAAgB,EAAE;QAC1B;MACF;;MAEA,IAAI,IAAAC,yBAAY,EAACH,KAAK,CAAC,EAAE;QACvBA,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBnG,KAAA,CAAKoG,EAAE,CAAC,CAAC;MACX,CAAC,MAAM,IAAI,IAAAC,2BAAc,EAACN,KAAK,CAAC,EAAE;QAChCA,KAAK,CAACI,cAAc,CAAC,CAAC;QACtBnG,KAAA,CAAK+D,IAAI,CAAC,CAAC;MACb,CAAC,MAAM,IAAI,IAAAuC,uBAAU,EAACP,KAAK,CAAC,EAAE;QAC5B/F,KAAA,CAAKsB,cAAc,CAACiF,MAAM,CAACR,KAAK,CAAC;MACnC;IACF,CAAC,CAAA/F,KAAA;;IAEOwG,QAAQ,GAAG,UAAC3D,KAAgB,EAAoB;MACtD,IAAIA,KAAK,CAAC4D,KAAK,KAAK,OAAO,EAAE;QAC3B,OAAO;UACLC,QAAQ,EAAE7D,KAAK,CAAC8D,KAAK;UACrBC,QAAQ,EAAE/D,KAAK,CAAC8D,KAAK;UACrB5F,SAAS,EAAEf,KAAA,CAAKa,KAAK,CAACE;QACxB,CAAC;MACH;;MAEA,OAAO;QACL4F,KAAK,EAAE9D,KAAK,CAAC8D,KAAK;QAClB5F,SAAS,EAAEf,KAAA,CAAKa,KAAK,CAACE;MACxB,CAAC;IACH,CAAC,CAAAf,KAAA;;IAEO6G,uBAAuB,GAAG,UAAC7F,WAAuC,EAAK;MAC7E,IAAIhB,KAAA,CAAKa,KAAK,CAACG,WAAW,KAAKA,WAAW,EAAE;QAC1ChB,KAAA,CAAKmF,QAAQ,CAAC,EAAEnE,WAAW,EAAXA,WAAW,CAAC,CAAC,CAAC;MAChC;IACF,CAAC,CAAAhB,KAAA;;IAEO8G,oBAAoB,GAAG,UAACC,oBAA6B,EAAK;MAChE,CAAC/G,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAACsG,kBAAkB,IAAIhH,KAAA,CAAKmF,QAAQ,CAAC,EAAElE,iBAAiB,EAAE8F,oBAAoB,CAAC,CAAC,CAAC;IACnG,CAAC,QAAA/G,KAAA,MAAAiH,eAAA,CAAA/E,OAAA,EAAAtC,IAAA,EAAAG,oBAAA,MAAAmH,MAAA,GAAAtH,IAAA,CAAAuH,SAAA,CAAAD,MAAA,CA5UME,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAAClG,SAAS,GAAG,IAAI,CACvB,CAAC,CAAAgG,MAAA,CAEMG,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACzD,mBAAmB,CAAC,CAAC,CAC1B,IAAI,CAACc,kBAAkB,CAAC,CAAC,CACzB,IAAI,CAACxD,SAAS,GAAG,KAAK,CACxB,CAAC,CAAAgG,MAAA,CAEMI,kBAAkB,GAAzB,SAAAA,mBAA0BrD,SAAoB,EAAE,CAC9C,IAAI,IAAI,CAACD,0BAA0B,CAACC,SAAS,CAAC,EAAE,CAC9C,IAAI,CAACS,kBAAkB,CAAC,CAAC,CAC3B,CAEA,IAAIT,SAAS,CAAClD,SAAS,KAAK,IAAI,CAACL,QAAQ,CAAC,CAAC,CAACK,SAAS,EAAE,CACrD,IAAI,CAACoE,QAAQ,CAAC,EACZpE,SAAS,EAAE,IAAI,CAAC8B,KAAK,CAAC9B,SAAS,IAAI,MAAM,CAC3C,CAAC,CAAC,CACJ,CACF,CAAC,CAAAmG,MAAA,CAEMnF,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,CAACL,kBAAkB,CAAC,CAAC,CAC3B,CAAC,CAAAwF,MAAA,CASMK,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACEvJ,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAACtD,aAAA,CAAAwE,YAAY,CAACoE,QAAQ,QACnB,UAAC1E,KAAK,EAAK,CACVyE,MAAI,CAACzE,KAAK,GAAGA,KAAK,CAClB,OAAOyE,MAAI,CAACE,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CAAC,CAED;AACF;AACA,KAFE,CAAAR,MAAA,CAGOd,EAAE,GAAT,SAAAA,GAAA,EAAY,CACV,IAAI,CAACuB,IAAI,CAAC,CAAC,CAAC,CAAC,CACf,CAAC,CAED;AACF;AACA,KAFE,CAAAT,MAAA,CAGOnD,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,CAAC4D,IAAI,CAAC,CAAC,CAAC,CACd,CAAC,CAED;AACF;AACA,KAFE,CAAAT,MAAA,CAGOU,KAAK,GAAZ,SAAAA,MAAa7B,KAAwC,EAAE,KAAA8B,qBAAA,CACrD,CAAAA,qBAAA,OAAI,CAACvG,cAAc,CAACiE,eAAe,aAAnCsC,qBAAA,CAAqCC,QAAQ,CAAC,CAAC,CAC/C,OAAO,IAAI,CAACxG,cAAc,CAACiF,MAAM,CAACR,KAAK,CAAC,CAC1C,CAAC,CAED;AACF;AACA,KAFE,CAAAmB,MAAA,CAGOa,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,CAACzG,cAAc,CAACyG,KAAK,CAAC,CAAC,CAC7B,CAAC,CAED;AACF;AACA,KAFE,CAAAb,MAAA,CAGOc,kBAAkB,GAAzB,SAAAA,mBAAA,EAA4B,CAC1B,OAAO,CAAC,CAAC,IAAI,CAAC1G,cAAc,CAACiE,eAAe,CAC9C,CAAC,CAAA2B,MAAA,CAEMe,aAAa,GAApB,SAAAA,cAAqBC,KAAa,EAAE,CAClC,IAAI,CAAC5G,cAAc,CAAC6G,gBAAgB,CAACD,KAAK,CAAC,CAC7C,CAAC,CAAAhB,MAAA,CAEOQ,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAU,IAAA,EAAAC,IAAA,CACnB,IAAI,IAAI,CAACC,OAAO,CAAC,CAAC,EAAE,CAClB,OAAO,IAAI,CACb,CACA,IAAAC,cAAA,GAAsD,IAAI,CAAC7H,QAAQ,CAAC,CAAC,CAA7D8H,SAAS,GAAAD,cAAA,CAATC,SAAS,CAAEzH,SAAS,GAAAwH,cAAA,CAATxH,SAAS,CAAE0H,mBAAmB,GAAAF,cAAA,CAAnBE,mBAAmB,CAEjD,IAAMC,OAAO,GAAG,EACdC,GAAG,OAAK,IAAI,CAAC5F,KAAK,CAAC6F,+BAAiC,EACpDC,KAAK,EAAE,CAAC,EACRC,MAAM,OAAK,IAAI,CAAC/F,KAAK,CAAC6F,+BAAiC,CACzD,CAAC,CAED,IAAMG,QAAQ,GAAG,IAAI,CAACC,cAAc,CACpC,oBACE/K,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAAChD,cAAA,CAAA8J,aAAa,MAAAC,SAAA,CAAAhH,OAAA,IAACiH,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACvG,KAAK,gBAC1D5E,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UACE,YAAU1C,YAAY,CAACE,IAAK,EAC5ByC,SAAS,EAAE,IAAAC,WAAE,EAACgH,kBAAkB,CAAC,IAAI,CAACxG,KAAK,CAAC,GAAAuF,IAAA,OAAAA,IAAA,CACzC9F,aAAM,CAAC3C,IAAI,CAAC,IAAI,CAACoD,KAAK,CAAC,IAAG,IAAI,EAAAqF,IAAA,CAC9B9F,aAAM,CAACkG,SAAS,CAAC,IAAI,CAACzF,KAAK,CAAC,IAAGyF,SAAS,EAAAJ,IAAA,CACxC9F,aAAM,CAACgH,UAAU,CAAC,IAAI,CAACvG,KAAK,CAAC,IAAGgG,QAAQ,EAAAX,IAAA,CACxC9F,aAAM,CAACiH,MAAM,CAAC,IAAI,CAACxG,KAAK,CAAC,IAAG,CAACgG,QAAQ,EAAAX,IAAA,CACvC,CAAE,EACHoB,KAAK,EAAE,IAAI,CAAChD,QAAQ,CAAC,IAAI,CAAC3D,KAAK,CAAE,EACjC4G,EAAE,EAAE,IAAI,CAAC5G,KAAK,CAAC4G,EAAG,EAClBzD,SAAS,EAAE,IAAI,CAACF,aAAc,EAC9B4D,QAAQ,EAAE,CAAE,IAEX,IAAI,CAAC7G,KAAK,CAACF,MAAM,IAAI,IAAI,CAACX,YAAY,CAAC,CAAC,eACzC/D,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAACxD,gBAAA,CAAAgL,eAAe,IACdlH,GAAG,EAAE,IAAI,CAAC2C,kBAAmB,EAC7BrE,SAAS,EAAEA,SAAU,EACrB0H,mBAAmB,EAAEA,mBAAoB,EACzCmB,mBAAmB,EAAE,IAAI,CAAC/C,uBAAwB,EAClDgD,QAAQ,EAAE,IAAI,CAAChH,KAAK,CAACiH,sBAAuB,EAC5CpB,OAAO,EAAEA,OAAQ,iBAEjBzK,MAAA,CAAAiE,OAAA,CAAAC,aAAA,UACEC,SAAS,EAAE,IAAAC,WAAE,GAAAgG,IAAA,OAAAA,IAAA,CACV/F,aAAM,CAAC+C,eAAe,CAAC,IAAI,CAACtC,KAAK,CAAC,IAAG,IAAI,EAAAsF,IAAA,CACzC/F,aAAM,CAACyH,qBAAqB,CAAC,IAAI,CAAChH,KAAK,CAAC,IAAGgG,QAAQ,EAAAV,IAAA,CACrD,CAAE,EACH5F,GAAG,EAAE,IAAI,CAACtB,UAAW,iBAErBlD,MAAA,CAAAiE,OAAA,CAAAC,aAAA,CAAC7C,YAAA,CAAA0K,WAAW,CAAC1G,QAAQ,IACnBC,KAAK,EAAE,EACL0G,UAAU,EAAE,IAAI,CAAC3I,cAAc,EAC/B4I,WAAW,EAAE,IAAI,CAACrH,KAAK,CAACqH,WAAW,EACnCjJ,iBAAiB,EAAE,IAAI,CAACJ,KAAK,CAACI,iBAAiB,EAC/C6F,oBAAoB,EAAE,IAAI,CAACA,oBAAoB,CACjD,CAAE,IAED,IAAI,CAACjE,KAAK,CAACsB,QACQ,CACnB,CACU,CAAC,EACjB,IAAI,CAACtB,KAAK,CAACO,MAAM,IAAI,IAAI,CAACH,YAAY,CAAC,CACrC,CACQ,CAAC,CAEpB,CAAC,CAAAiE,MAAA,CAmIOS,IAAI,GAAZ,SAAAA,KAAawC,IAAY,EAAE,CACzB,IAAI,IAAI,CAACjJ,SAAS,EAAE,CAClB;MACA,OACF,CACA,IAAM0E,SAAS,GAAG,IAAI,CAACtE,cAAc,CAACqG,IAAI,CAACwC,IAAI,EAAE,IAAI,CAACzJ,QAAQ,CAAC,CAAC,CAAC0J,eAAe,CAAC,CACjF,IAAI,CAACzE,MAAM,CAACC,SAAS,CAAC,CACxB,CAAC,CAAAsB,MAAA,CAEOoB,OAAO,GAAf,SAAAA,QAAA,EAAkB,CAChB,IAAQnE,QAAQ,GAAK,IAAI,CAACtB,KAAK,CAAvBsB,QAAQ,CAChB,OAAO,CAACA,QAAQ,IAAI,CAACkG,eAAe,CAAClG,QAAQ,CAAC,CAACmG,MAAM,CAACC,oBAAa,CAAC,CAACpK,MAAM,CAC7E,CAAC,QAAAP,IAAA,GAhUuBwB,cAAK,CAACoJ,aAAa,GAAAhL,KAAA,CAC7BiL,mBAAmB,GAAG,MAAM,EAAAjL,KAAA,CAC5BkL,WAAW,GAAG,MAAM,EAAAlL,KAAA,CAEpBoB,YAAY,GAAiB,EACzC6F,KAAK,EAAE,MAAM,EACbE,KAAK,EAAE,MAAM,EACb5F,SAAS,EAAE,GAAG,EACdyH,SAAS,EAAE,IAAI,EACfC,mBAAmB,EAAE,IAAI,EACzB2B,eAAe,EAAE,IAAI,EACrBtG,wBAAwB,EAAE,CAAC,CAAC,CAC9B,CAAC,EAAAtE,KAAA,MAAAD,MAAA,KAAAA,MAAA,CAoWH,SAAS8K,eAAeA,CAAClG,QAAyB,EAAqB,CACrE,IAAMwG,GAAsB,GAAG,EAAE,CAAC,CAClC;EACAvJ,cAAK,CAACoD,QAAQ,CAACoG,OAAO,CAACzG,QAAQ,EAAE,UAAC0G,KAAK,EAAK,CAC1CF,GAAG,CAACG,IAAI,CAACD,KAAK,CAAC,CACjB,CAAC,CAAC,CACF,OAAOF,GAAG,CACZ,CAEA,IAAMtB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIxG,KAAgB,EAAK;EAC/C,IAAIA,KAAK,CAAC4D,KAAK,KAAK,OAAO,EAAE,KAAAsE,IAAA;IAC3B,OAAO,IAAA1I,WAAE,GAAA0I,IAAA,OAAAA,IAAA;IACNzI,aAAM,CAAC0I,UAAU,CAAC,CAAC,IAAG,CAACC,cAAM,EAAAF,IAAA;IAC7BzI,aAAM,CAAC4I,cAAc,CAAC,CAAC,IAAGD,cAAM,EAAAF,IAAA;IAChCzI,aAAM,CAAC6I,0BAA0B,CAAC,CAAC,IAAGF,cAAM,IAAIpI,KAAK,CAAC8D,KAAK,KAAK,MAAM,EAAAoE,IAAA;IACxE,CAAC;EACJ;;EAEA,OAAO,IAAI;AACb,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_identifiers","_MenuSeparator","_ThemeFactory","_getDOMRect","_decorator","_utils","_ScrollContainer","_MenuItem","_ThemeContext","_Emotion","_rootNode2","_client","_createPropsGetter","_isInstanceOf","_CommonWrapper","_Menu2","_MenuNavigation","_MenuContext","_class","_Menu","MenuDataTids","exports","root","Menu","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","highlightedIndex","maxHeight","scrollState","enableIconPadding","unmounted","contentRef","React","createRef","menuNavigation","MenuNavigation","MenuItemDataTids","content","focusOnRootElement","getRootNode","isInstanceOf","globalObject","HTMLElement","focus","renderHeader","_cx","default","createElement","className","cx","styles","wrapper","headerWrapper","ref","el","header","contentWrapper","props","menuSeparatorWrapper","theme","renderMenuSeparatorWithNoMargin","renderFooter","_cx2","footerWrapper","footer","ThemeContext","Provider","value","ThemeFactory","create","menuSeparatorMarginY","MenuSeparator","setInitialSelection","i","initialSelectedItemIndex","down","shouldRecalculateMaxHeight","prevProps","_this$props","children","prevMaxHeight","prevHeader","prevFooter","prevChildrenCount","Children","count","calculateMaxHeight","parsedMaxHeight","isBrowser","rootElementMaxHeight","getComputedStyle","parseFloat","calculatedMaxHeight","getDOMRect","height","setState","refScrollContainer","scrollContainer","scrollToSelected","highlightedItem","scrollTo","scrollToTop","scrollToBottom","scroll","nextIndex","items","handleKeyDown","event","onKeyDown","defaultPrevented","isKeyArrowUp","preventDefault","up","isKeyArrowDown","isKeyEnter","select","getStyle","align","maxWidth","width","minWidth","handleScrollStateChange","setEnableIconPadding","isIconPaddingEnabled","preventIconsOffset","_inheritsLoose2","_proto","prototype","componentWillUnmount","componentDidMount","componentDidUpdate","render","_this2","Consumer","renderMain","move","enter","_this$menuNavigation$","navigate","reset","hasHighlightedItem","highlightItem","index","highlightByIndex","_cx3","_cx4","isEmpty","_this$getProps","hasMargin","preventWindowScroll","offsetY","top","scrollContainerScrollBarOffsetY","right","bottom","isMobile","isMobileLayout","CommonWrapper","_extends2","rootNodeRef","setRootNode","getAlignRightClass","mobileRoot","shadow","style","id","tabIndex","ScrollContainer","onScrollStateChange","disabled","disableScrollContainer","scrollContainerMobile","MenuContext","navigation","onItemClick","step","cyclicSelection","childrenToArray","filter","isNonNullable","PureComponent","__KONTUR_REACT_UI__","displayName","ret","forEach","child","push","_cx5","alignRight","isIE11","alignRightIE11","alignRightIE11FixAutoWidth"],"sources":["Menu.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { isNonNullable } from '../../lib/utils';\nimport type { ScrollContainerScrollState } from '../../components/ScrollContainer';\nimport { ScrollContainer } from '../../components/ScrollContainer';\nimport type { MenuItem } from '../../components/MenuItem';\nimport { MenuItemDataTids } from '../../components/MenuItem';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { isIE11 } from '../../lib/client';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\n\nimport { styles } from './Menu.styles';\nimport { MenuNavigation } from './MenuNavigation';\nimport { MenuContext } from './MenuContext';\n\nexport interface MenuProps extends CommonProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n children: React.ReactNode;\n hasMargin?: boolean;\n /**\n * Максимальная высота применяется только для скролл контейнера\n *\n * Высота `header` и `footer` в нее не включены\n */\n maxHeight?: number | string;\n onItemClick?: (event: React.SyntheticEvent<HTMLElement>) => void;\n width?: number | string;\n preventWindowScroll?: boolean;\n /**\n * Отключение кастомного скролла контейнера\n */\n disableScrollContainer?: boolean;\n align?: 'left' | 'right';\n /**\n * Предотвращает выравнивание текста всех пунктов меню относительно друг друга.\n * Так, если хотя бы у одного пункта меню есть иконка, текст в остальных пунктах меню будет выровнен относительно пункта меню с иконкой\n */\n preventIconsOffset?: boolean;\n onKeyDown?: (event: React.KeyboardEvent<HTMLElement>) => void;\n\n header?: React.ReactNode;\n footer?: React.ReactNode;\n /**\n * Циклический перебор айтемов меню (по-дефолтну включен)\n */\n cyclicSelection?: boolean;\n initialSelectedItemIndex?: number;\n}\n\nexport interface MenuState {\n highlightedIndex: number; // TODO unused variable, remove in next major release\n maxHeight: number | string;\n scrollState: ScrollContainerScrollState;\n enableIconPadding: boolean;\n}\n\nexport const MenuDataTids = {\n root: 'Menu__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<\n MenuProps,\n | 'align'\n | 'width'\n | 'hasMargin'\n | 'maxHeight'\n | 'preventWindowScroll'\n | 'cyclicSelection'\n | 'initialSelectedItemIndex'\n >\n>;\n\n@responsiveLayout\n@rootNode\nexport class Menu extends React.PureComponent<MenuProps, MenuState> {\n public static __KONTUR_REACT_UI__ = 'Menu';\n public static displayName = 'Menu';\n\n public static defaultProps: DefaultProps = {\n align: 'left',\n width: 'auto',\n maxHeight: 300,\n hasMargin: true,\n preventWindowScroll: true,\n cyclicSelection: true,\n initialSelectedItemIndex: -1,\n };\n\n private getProps = createPropsGetter(Menu.defaultProps);\n\n public state: MenuState = {\n highlightedIndex: -1,\n maxHeight: this.getProps().maxHeight || 'none',\n scrollState: 'top',\n enableIconPadding: false,\n };\n\n private theme!: Theme;\n private scrollContainer: Nullable<ScrollContainer>;\n private isMobileLayout!: boolean;\n private unmounted = false;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private header: Nullable<HTMLDivElement>;\n private footer: Nullable<HTMLDivElement>;\n private contentRef = React.createRef<HTMLDivElement>();\n private menuNavigation: MenuNavigation<MenuItem> = new MenuNavigation(this.contentRef, MenuItemDataTids.content);\n\n public componentWillUnmount() {\n this.unmounted = true;\n }\n\n public componentDidMount() {\n this.setInitialSelection();\n this.calculateMaxHeight();\n this.unmounted = false;\n }\n\n public componentDidUpdate(prevProps: MenuProps) {\n if (this.shouldRecalculateMaxHeight(prevProps)) {\n this.calculateMaxHeight();\n }\n\n if (prevProps.maxHeight !== this.getProps().maxHeight) {\n this.setState({\n maxHeight: this.props.maxHeight || 'none',\n });\n }\n }\n\n public focus() {\n this.focusOnRootElement();\n }\n\n private focusOnRootElement = (): void => {\n const rootNode = getRootNode(this);\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n rootNode?.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public up() {\n this.move(-1);\n }\n\n /**\n * @public\n */\n public down() {\n this.move(1);\n }\n\n /**\n * @public\n */\n public enter(event: React.SyntheticEvent<HTMLElement>) {\n this.menuNavigation.highlightedItem?.navigate();\n return this.menuNavigation.select(event);\n }\n\n /**\n * @public\n */\n public reset() {\n this.menuNavigation.reset();\n }\n\n /**\n * @public\n */\n public hasHighlightedItem() {\n return !!this.menuNavigation.highlightedItem;\n }\n\n public highlightItem(index: number) {\n this.menuNavigation.highlightByIndex(index);\n }\n\n private renderMain() {\n if (this.isEmpty()) {\n return null;\n }\n const { hasMargin, maxHeight, preventWindowScroll } = this.getProps();\n\n const offsetY = {\n top: `${this.theme.scrollContainerScrollBarOffsetY}`,\n right: 0,\n bottom: `${this.theme.scrollContainerScrollBarOffsetY}`,\n };\n\n const isMobile = this.isMobileLayout;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n data-tid={MenuDataTids.root}\n className={cx(getAlignRightClass(this.props), {\n [styles.root(this.theme)]: true,\n [styles.hasMargin(this.theme)]: hasMargin,\n [styles.mobileRoot(this.theme)]: isMobile,\n [styles.shadow(this.theme)]: !isMobile,\n })}\n style={this.getStyle(this.props)}\n id={this.props.id}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n >\n {this.props.header && this.renderHeader()}\n <ScrollContainer\n ref={this.refScrollContainer}\n maxHeight={maxHeight}\n preventWindowScroll={preventWindowScroll}\n onScrollStateChange={this.handleScrollStateChange}\n disabled={this.props.disableScrollContainer}\n offsetY={offsetY}\n >\n <div\n className={cx({\n [styles.scrollContainer(this.theme)]: true,\n [styles.scrollContainerMobile(this.theme)]: isMobile,\n })}\n ref={this.contentRef}\n >\n <MenuContext.Provider\n value={{\n navigation: this.menuNavigation,\n onItemClick: this.props.onItemClick,\n enableIconPadding: this.state.enableIconPadding,\n setEnableIconPadding: this.setEnableIconPadding,\n }}\n >\n {this.props.children}\n </MenuContext.Provider>\n </div>\n </ScrollContainer>\n {this.props.footer && this.renderFooter()}\n </div>\n </CommonWrapper>\n );\n }\n\n private renderHeader = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.headerWrapper()]: true,\n })}\n ref={(el) => (this.header = el)}\n >\n <div className={styles.contentWrapper()}>{this.props.header}</div>\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'top' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n </div>\n );\n };\n\n private renderFooter = () => {\n return (\n <div\n className={cx({\n [styles.wrapper()]: true,\n [styles.footerWrapper()]: true,\n })}\n ref={(el) => (this.footer = el)}\n >\n <div className={styles.menuSeparatorWrapper(this.theme)}>\n {this.state.scrollState !== 'bottom' && this.renderMenuSeparatorWithNoMargin()}\n </div>\n <div className={styles.contentWrapper()}>{this.props.footer}</div>\n </div>\n );\n };\n\n private renderMenuSeparatorWithNoMargin = () => {\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ menuSeparatorMarginY: '0' }, this.theme)}>\n <MenuSeparator />\n </ThemeContext.Provider>\n );\n };\n\n private setInitialSelection = () => {\n for (let i = this.getProps().initialSelectedItemIndex; i > -1; i--) {\n this.down();\n }\n };\n\n private shouldRecalculateMaxHeight = (prevProps: MenuProps): boolean => {\n const { header, footer, children } = this.props;\n const maxHeight = this.getProps().maxHeight;\n const prevMaxHeight = prevProps.maxHeight;\n const prevHeader = prevProps.header;\n const prevFooter = prevProps.footer;\n const prevChildrenCount = React.Children.count(prevProps.children);\n\n return (\n maxHeight !== prevMaxHeight ||\n footer !== prevFooter ||\n header !== prevHeader ||\n React.Children.count(children) !== prevChildrenCount\n );\n };\n\n private calculateMaxHeight = () => {\n const maxHeight = this.getProps().maxHeight;\n let parsedMaxHeight = maxHeight;\n const rootNode = getRootNode(this);\n\n if (typeof maxHeight === 'string' && isBrowser(globalObject) && rootNode) {\n const rootElementMaxHeight = globalObject.getComputedStyle?.(rootNode).maxHeight;\n\n if (rootElementMaxHeight) {\n parsedMaxHeight = parseFloat(rootElementMaxHeight);\n }\n }\n\n const calculatedMaxHeight =\n typeof parsedMaxHeight === 'number'\n ? parsedMaxHeight +\n ((this.header && getDOMRect(this.header).height) || 0) +\n ((this.footer && getDOMRect(this.footer).height) || 0)\n : maxHeight;\n\n this.setState({\n maxHeight: calculatedMaxHeight || 'none',\n });\n };\n\n private refScrollContainer = (scrollContainer: Nullable<ScrollContainer>) => {\n this.scrollContainer = scrollContainer;\n };\n\n private scrollToSelected = () => {\n const highlightedItem = this.menuNavigation.highlightedItem;\n if (this.scrollContainer && highlightedItem) {\n const rootNode = getRootNode(highlightedItem);\n // TODO: Remove this check once IF-647 is resolved\n if (isInstanceOf(rootNode, globalObject.HTMLElement)) {\n this.scrollContainer.scrollTo(rootNode);\n }\n }\n };\n\n private scrollToTop = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToTop();\n }\n };\n\n private scrollToBottom = () => {\n if (this.scrollContainer) {\n this.scrollContainer.scrollToBottom();\n }\n };\n\n private scroll = (nextIndex: number) => {\n switch (nextIndex) {\n case 0:\n this.scrollToTop?.();\n break;\n case this.menuNavigation.items.length - 1:\n this.scrollToBottom?.();\n break;\n default:\n this.scrollToSelected?.();\n }\n };\n\n private move(step: number) {\n if (this.unmounted) {\n // NOTE workaround, because `ComboBox` call `process.nextTick` in reducer\n return;\n }\n const nextIndex = this.menuNavigation.move(step, this.getProps().cyclicSelection);\n this.scroll(nextIndex);\n }\n\n private isEmpty() {\n const { children } = this.props;\n return !children || !childrenToArray(children).filter(isNonNullable).length;\n }\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\n if (typeof this.props.onKeyDown === 'function') {\n this.props.onKeyDown(event);\n }\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (isKeyArrowUp(event)) {\n event.preventDefault();\n this.up();\n } else if (isKeyArrowDown(event)) {\n event.preventDefault();\n this.down();\n } else if (isKeyEnter(event)) {\n this.menuNavigation.select(event);\n }\n };\n\n private getStyle = (props: MenuProps): CSSProperties => {\n if (props.align === 'right') {\n return {\n maxWidth: props.width,\n minWidth: props.width,\n maxHeight: this.state.maxHeight,\n };\n }\n\n return {\n width: props.width,\n maxHeight: this.state.maxHeight,\n };\n };\n\n private handleScrollStateChange = (scrollState: ScrollContainerScrollState) => {\n if (this.state.scrollState !== scrollState) {\n this.setState({ scrollState });\n }\n };\n\n private setEnableIconPadding = (isIconPaddingEnabled: boolean) => {\n !this.getProps().preventIconsOffset && this.setState({ enableIconPadding: isIconPaddingEnabled });\n };\n}\n\nfunction childrenToArray(children: React.ReactNode): React.ReactNode[] {\n const ret: React.ReactNode[] = [];\n // Use forEach instead of map to avoid cloning for key unifying.\n React.Children.forEach(children, (child) => {\n ret.push(child);\n });\n return ret;\n}\n\nconst getAlignRightClass = (props: MenuProps) => {\n if (props.align === 'right') {\n return cx({\n [styles.alignRight()]: !isIE11,\n [styles.alignRightIE11()]: isIE11,\n [styles.alignRightIE11FixAutoWidth()]: isIE11 && props.width === 'auto',\n });\n }\n\n return null;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { HTMLAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
3
4
|
interface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
|
|
4
5
|
/**
|
|
5
6
|
* Функция, вызываемая при закрытии всплывающего окна
|
|
@@ -40,6 +41,7 @@ export declare class MobilePopup extends React.Component<MobilePopupProps> {
|
|
|
40
41
|
static displayName: string;
|
|
41
42
|
static readonly defaultRootNode: null;
|
|
42
43
|
private theme;
|
|
44
|
+
getRootNode: TGetRootNode;
|
|
43
45
|
private setRootNode;
|
|
44
46
|
render(): React.JSX.Element;
|
|
45
47
|
renderMain(): React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_ThemeContext","_RenderContainer","_HideBodyVerticalScroll","_ZIndex","_RenderLayer","_rootNode","_MobilePopup2","_MobilePopupHeader","_MobilePopupFooter","_class","_MobilePopup","MobilePopupDataTids","exports","root","container","MobilePopup","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","close","props","onCloseRequest","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","content","ZIndex","id","className","jsStyles","zIndex","priority","Transition","in","opened","onExited","onClose","mountOnEnter","unmountOnExit","timeout","wrapper","RenderLayer","onClickOutside","ref","setRootNode","MobilePopupHeader","caption","headerChildComponent","children","MobilePopupFooter","footerChildComponent","onClick","bottomIndent","bg","HideBodyVerticalScroll","withoutRenderContainer","RenderContainer","React","Component","__KONTUR_REACT_UI__","displayName","defaultRootNode"],"sources":["MobilePopup.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { RenderLayer } from '../RenderLayer';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { jsStyles } from './MobilePopup.styles';\nimport { MobilePopupHeader } from './MobilePopupHeader';\nimport { MobilePopupFooter } from './MobilePopupFooter';\n\ninterface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Функция, вызываемая при закрытии всплывающего окна\n */\n onClose?: () => void;\n /**\n * Заголовок всплывающего окна, располагается в шапке\n */\n caption?: string;\n /**\n * Шапка всплывающего окна\n */\n headerChildComponent?: React.ReactNode;\n /**\n * Подвал всплывающего окна\n */\n footerChildComponent?: React.ReactNode;\n /**\n * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`\n */\n withoutRenderContainer?: boolean;\n /**\n * Функция, вызываемая при клике по вуали\n */\n onCloseRequest?: () => void;\n /**\n * Позволяет контролировать текущее состояние всплывающего окна\n */\n opened: boolean;\n children?: React.ReactNode;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\n@rootNode\nexport class MobilePopup extends React.Component<MobilePopupProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const content = (\n <ZIndex id={this.props.id} className={jsStyles.zIndex()} priority={'MobilePopup'}>\n <Transition in={this.props.opened} onExited={this.props.onClose} mountOnEnter unmountOnExit timeout={0}>\n <div className={jsStyles.wrapper()}>\n <RenderLayer onClickOutside={this.close}>\n <div\n ref={this.setRootNode}\n data-tid={MobilePopupDataTids.container}\n className={jsStyles.container(this.theme)}\n >\n <div data-tid={MobilePopupDataTids.root} className={jsStyles.root(this.theme)}>\n <MobilePopupHeader caption={this.props.caption}>{this.props.headerChildComponent}</MobilePopupHeader>\n <div className={jsStyles.content(this.theme)}>{this.props.children}</div>\n <MobilePopupFooter>{this.props.footerChildComponent}</MobilePopupFooter>\n </div>\n <div onClick={this.close} className={jsStyles.bottomIndent()} />\n </div>\n </RenderLayer>\n <div className={jsStyles.bg()} />\n <HideBodyVerticalScroll />\n </div>\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;;;AAGA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,uBAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;;AAEA,IAAAQ,aAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,kBAAA,GAAAV,OAAA,wBAAwD,IAAAW,MAAA,EAAAC,YAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCjD,IAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG;EACjCE,IAAI,EAAE,mBAAmB;EACzBC,SAAS,EAAE;AACb,CAAU,CAAC;;;AAGEC,WAAW,GAAAH,OAAA,CAAAG,WAAA,OADvBC,kBAAQ,EAAAP,MAAA,IAAAC,YAAA,0BAAAO,gBAAA,YAAAF,YAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_ThemeContext","_RenderContainer","_HideBodyVerticalScroll","_ZIndex","_RenderLayer","_rootNode","_MobilePopup2","_MobilePopupHeader","_MobilePopupFooter","_class","_MobilePopup","MobilePopupDataTids","exports","root","container","MobilePopup","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","close","props","onCloseRequest","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","content","ZIndex","id","className","jsStyles","zIndex","priority","Transition","in","opened","onExited","onClose","mountOnEnter","unmountOnExit","timeout","wrapper","RenderLayer","onClickOutside","ref","setRootNode","MobilePopupHeader","caption","headerChildComponent","children","MobilePopupFooter","footerChildComponent","onClick","bottomIndent","bg","HideBodyVerticalScroll","withoutRenderContainer","RenderContainer","React","Component","__KONTUR_REACT_UI__","displayName","defaultRootNode"],"sources":["MobilePopup.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { Transition } from 'react-transition-group';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { RenderContainer } from '../RenderContainer';\nimport { HideBodyVerticalScroll } from '../HideBodyVerticalScroll';\nimport { ZIndex } from '../ZIndex';\nimport { RenderLayer } from '../RenderLayer';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { jsStyles } from './MobilePopup.styles';\nimport { MobilePopupHeader } from './MobilePopupHeader';\nimport { MobilePopupFooter } from './MobilePopupFooter';\n\ninterface MobilePopupProps extends Pick<HTMLAttributes<HTMLDivElement>, 'id'> {\n /**\n * Функция, вызываемая при закрытии всплывающего окна\n */\n onClose?: () => void;\n /**\n * Заголовок всплывающего окна, располагается в шапке\n */\n caption?: string;\n /**\n * Шапка всплывающего окна\n */\n headerChildComponent?: React.ReactNode;\n /**\n * Подвал всплывающего окна\n */\n footerChildComponent?: React.ReactNode;\n /**\n * Позволяет получить контент всплывающего окна без обёртки в виде `RenderContainer`\n */\n withoutRenderContainer?: boolean;\n /**\n * Функция, вызываемая при клике по вуали\n */\n onCloseRequest?: () => void;\n /**\n * Позволяет контролировать текущее состояние всплывающего окна\n */\n opened: boolean;\n children?: React.ReactNode;\n}\n\nexport const MobilePopupDataTids = {\n root: 'MobilePopup__root',\n container: 'MobilePopup__container',\n} as const;\n\n@rootNode\nexport class MobilePopup extends React.Component<MobilePopupProps> {\n public static __KONTUR_REACT_UI__ = 'MobileMenuHeader';\n public static displayName = 'MobileMenuHeader';\n\n // see #2873 and #2895\n public static readonly defaultRootNode = null;\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const content = (\n <ZIndex id={this.props.id} className={jsStyles.zIndex()} priority={'MobilePopup'}>\n <Transition in={this.props.opened} onExited={this.props.onClose} mountOnEnter unmountOnExit timeout={0}>\n <div className={jsStyles.wrapper()}>\n <RenderLayer onClickOutside={this.close}>\n <div\n ref={this.setRootNode}\n data-tid={MobilePopupDataTids.container}\n className={jsStyles.container(this.theme)}\n >\n <div data-tid={MobilePopupDataTids.root} className={jsStyles.root(this.theme)}>\n <MobilePopupHeader caption={this.props.caption}>{this.props.headerChildComponent}</MobilePopupHeader>\n <div className={jsStyles.content(this.theme)}>{this.props.children}</div>\n <MobilePopupFooter>{this.props.footerChildComponent}</MobilePopupFooter>\n </div>\n <div onClick={this.close} className={jsStyles.bottomIndent()} />\n </div>\n </RenderLayer>\n <div className={jsStyles.bg()} />\n <HideBodyVerticalScroll />\n </div>\n </Transition>\n </ZIndex>\n );\n\n if (this.props.withoutRenderContainer) {\n return content;\n }\n\n return <RenderContainer>{content}</RenderContainer>;\n }\n\n public close = () => {\n if (this.props.onCloseRequest) {\n this.props.onCloseRequest();\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { HTMLAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import type { Nullable } from '../../typings/utility-types';
|
|
5
4
|
import type { Priority } from '../ZIndex';
|
|
6
5
|
import type { FocusEventType, MouseEventType } from '../../typings/event-types';
|
|
7
6
|
import type { CommonProps } from '../CommonWrapper';
|
|
7
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
8
8
|
import type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';
|
|
9
9
|
export declare const PopupNonPinnablePositions: string[];
|
|
10
10
|
export declare const PopupPinnablePositions: string[];
|
|
@@ -24,21 +24,57 @@ export interface PopupHandlerProps {
|
|
|
24
24
|
onClose?: () => void;
|
|
25
25
|
}
|
|
26
26
|
export interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerProps, Pick<HTMLAttributes<HTMLDivElement>, 'id'> {
|
|
27
|
+
/**
|
|
28
|
+
* Ссылка (ref) на элемент или React компонент, для которого рисуется попап
|
|
29
|
+
*/
|
|
27
30
|
anchorElement: React.ReactNode | Element;
|
|
31
|
+
/**
|
|
32
|
+
* Фон попапа и пина
|
|
33
|
+
*/
|
|
28
34
|
backgroundColor?: React.CSSProperties['backgroundColor'];
|
|
29
35
|
borderColor?: React.CSSProperties['borderColor'];
|
|
30
36
|
children: React.ReactNode | (() => React.ReactNode);
|
|
37
|
+
/**
|
|
38
|
+
* Показывать ли пин
|
|
39
|
+
*/
|
|
31
40
|
hasPin?: boolean;
|
|
41
|
+
/**
|
|
42
|
+
* Применять ли box-shadow на попапе. При false отключает границу на пине
|
|
43
|
+
*/
|
|
32
44
|
hasShadow?: boolean;
|
|
33
45
|
disableAnimations?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Отступ попапа от элемента
|
|
48
|
+
*/
|
|
34
49
|
margin?: number;
|
|
35
50
|
maxWidth?: number | string;
|
|
51
|
+
/**
|
|
52
|
+
* Показан или скрыт попап
|
|
53
|
+
*/
|
|
36
54
|
opened: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Смещение пина от края попапа. Край задаётся в пропе position вторым словом
|
|
57
|
+
*/
|
|
37
58
|
pinOffset?: number;
|
|
59
|
+
/**
|
|
60
|
+
* Сторона пина без учёта границы.
|
|
61
|
+
* Пин представляет собой равносторонний треугольник, высота от попапа
|
|
62
|
+
* до "носика" пина будет соответствовать формуле (size* √3)/2
|
|
63
|
+
*/
|
|
38
64
|
pinSize?: number;
|
|
65
|
+
/**
|
|
66
|
+
* смещение попапа относительно родительского элемента
|
|
67
|
+
*/
|
|
39
68
|
popupOffset?: number;
|
|
40
69
|
priority?: Priority;
|
|
70
|
+
/**
|
|
71
|
+
* С какой стороны показывать попап и край попапа,
|
|
72
|
+
* на котором будет отображаться пин
|
|
73
|
+
*/
|
|
41
74
|
positions?: Readonly<PopupPositionsType[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Приоритетная позиция попапа
|
|
77
|
+
*/
|
|
42
78
|
pos?: PopupPositionsType | ShortPopupPositionsType;
|
|
43
79
|
/**
|
|
44
80
|
* Явно указывает, что вложенные элементы должны быть обёрнуты в `<span/>`. <br/> Используется для корректного позиционирования тултипа при двух и более вложенных элементах.
|
|
@@ -46,6 +82,9 @@ export interface PopupProps extends Omit<CommonProps, 'children'>, PopupHandlerP
|
|
|
46
82
|
* _Примечание_: при **двух и более** вложенных элементах обёртка будет добавлена автоматически.
|
|
47
83
|
*/
|
|
48
84
|
useWrapper?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Игнорировать ли события hover/click
|
|
87
|
+
*/
|
|
49
88
|
ignoreHover?: boolean;
|
|
50
89
|
width?: React.CSSProperties['width'];
|
|
51
90
|
minWidth?: React.CSSProperties['minWidth'];
|
|
@@ -90,64 +129,6 @@ type DefaultProps = Required<Pick<PopupProps, 'popupOffset' | 'hasPin' | 'hasSha
|
|
|
90
129
|
export declare class Popup extends React.Component<PopupProps, PopupState> {
|
|
91
130
|
static __KONTUR_REACT_UI__: string;
|
|
92
131
|
static displayName: string;
|
|
93
|
-
static propTypes: {
|
|
94
|
-
/**
|
|
95
|
-
* Ссылка (ref) на элемент или React компонент, для которого рисуется попап
|
|
96
|
-
*/
|
|
97
|
-
anchorElement: PropTypes.Validator<NonNullable<NonNullable<HTMLElement | PropTypes.ReactNodeLike>>>;
|
|
98
|
-
/**
|
|
99
|
-
* Фон попапа и пина
|
|
100
|
-
*/
|
|
101
|
-
backgroundColor: PropTypes.Requireable<string>;
|
|
102
|
-
children: PropTypes.Requireable<NonNullable<((...args: any[]) => any) | PropTypes.ReactNodeLike>>;
|
|
103
|
-
/**
|
|
104
|
-
* Показывать ли пин
|
|
105
|
-
*/
|
|
106
|
-
hasPin: PropTypes.Requireable<boolean>;
|
|
107
|
-
/**
|
|
108
|
-
* Применять ли box-shadow на попапе. При false отключает границу на пине
|
|
109
|
-
*/
|
|
110
|
-
hasShadow: PropTypes.Requireable<boolean>;
|
|
111
|
-
/**
|
|
112
|
-
* Отступ попапа от элемента
|
|
113
|
-
*/
|
|
114
|
-
margin: PropTypes.Requireable<number>;
|
|
115
|
-
/**
|
|
116
|
-
* Показан или скрыт попап
|
|
117
|
-
*/
|
|
118
|
-
opened: PropTypes.Requireable<boolean>;
|
|
119
|
-
/**
|
|
120
|
-
* Смещение пина от края попапа. Край задаётся в пропе position вторым словом
|
|
121
|
-
*/
|
|
122
|
-
pinOffset: PropTypes.Requireable<number>;
|
|
123
|
-
/**
|
|
124
|
-
* Сторона пина без учёта границы.
|
|
125
|
-
* Пин представляет собой равносторонний треугольник, высота от попапа
|
|
126
|
-
* до "носика" пина будет соответствовать формуле (size* √3)/2
|
|
127
|
-
*/
|
|
128
|
-
pinSize: PropTypes.Requireable<number>;
|
|
129
|
-
/**
|
|
130
|
-
* смещение попапа относительно родительского элемента
|
|
131
|
-
*/
|
|
132
|
-
popupOffset: PropTypes.Requireable<number>;
|
|
133
|
-
/**
|
|
134
|
-
* С какой стороны показывать попап и край попапа,
|
|
135
|
-
* на котором будет отображаться пин
|
|
136
|
-
*/
|
|
137
|
-
positions: PropTypes.Requireable<any[]>;
|
|
138
|
-
/**
|
|
139
|
-
* Приоритетная позиция попапа
|
|
140
|
-
*/
|
|
141
|
-
pos: PropTypes.Requireable<string>;
|
|
142
|
-
/**
|
|
143
|
-
* Отключает использование портала
|
|
144
|
-
*/
|
|
145
|
-
disablePortal: PropTypes.Requireable<boolean>;
|
|
146
|
-
/**
|
|
147
|
-
* Игнорировать ли события hover/click
|
|
148
|
-
*/
|
|
149
|
-
ignoreHover: PropTypes.Requireable<boolean>;
|
|
150
|
-
};
|
|
151
132
|
static defaultProps: DefaultProps;
|
|
152
133
|
private getProps;
|
|
153
134
|
static readonly defaultRootNode: null;
|
|
@@ -158,6 +139,7 @@ export declare class Popup extends React.Component<PopupProps, PopupState> {
|
|
|
158
139
|
private locationUpdateId;
|
|
159
140
|
private lastPopupContentElement;
|
|
160
141
|
private isMobileLayout;
|
|
142
|
+
getRootNode: TGetRootNode;
|
|
161
143
|
private setRootNode;
|
|
162
144
|
private refForTransition;
|
|
163
145
|
private hasAnchorElementListeners;
|