@skbkontur/react-ui 0.0.0-68e286f9fe → 0.0.0-6911f001e4
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 +182 -0
- package/README.md +6 -6
- package/cjs/components/Autocomplete/Autocomplete.d.ts +18 -4
- package/cjs/components/Autocomplete/Autocomplete.js +73 -15
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +4 -1
- package/cjs/components/Button/Button.js +47 -17
- 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/Button/ButtonArrow.js +13 -14
- package/cjs/components/Button/ButtonArrow.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 +4 -4
- package/cjs/components/Checkbox/Checkbox.js +16 -19
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +20 -7
- package/cjs/components/ComboBox/ComboBox.js +19 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +5 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +9 -1
- 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 +2 -3
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +5 -1
- package/cjs/components/DateInput/DateInput.js +9 -4
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +2 -0
- package/cjs/components/DatePicker/DatePicker.js +1 -0
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.js +1 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +1 -0
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -0
- package/cjs/components/Dropdown/Dropdown.js +1 -0
- 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/FileUploader/FileUploader.js +1 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +12 -2
- package/cjs/components/FxInput/FxInput.js +141 -58
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/FxInput/FxInputRestoreBtn.js +2 -3
- package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -0
- package/cjs/components/Gapped/Gapped.js +1 -0
- 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 +2 -0
- package/cjs/components/Group/Group.js +1 -0
- package/cjs/components/Group/Group.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 +6 -5
- package/cjs/components/Input/Input.js +17 -47
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +0 -1
- package/cjs/components/Input/Input.styles.js +8 -19
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +4 -1
- package/cjs/components/Kebab/Kebab.js +10 -5
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +10 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +3 -0
- package/cjs/components/Loader/Loader.js +6 -1
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -2
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +9 -0
- package/cjs/components/MaskedInput/MaskedInput.js +43 -4
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +3 -0
- package/cjs/components/MenuItem/MenuItem.js +15 -2
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.d.ts +3 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +35 -21
- package/cjs/components/MenuItem/MenuItem.styles.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 -1
- package/cjs/components/Paging/Paging.js +120 -24
- 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 +5 -5
- package/cjs/components/PasswordInput/PasswordInput.js +21 -22
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +4 -1
- package/cjs/components/Radio/Radio.js +7 -4
- 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 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +1 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +4 -1
- package/cjs/components/Select/Select.js +11 -6
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +3 -1
- package/cjs/components/SidePage/SidePage.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/SingleToast/SingleToast.d.ts +32 -2
- package/cjs/components/SingleToast/SingleToast.js +58 -3
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -0
- package/cjs/components/Spinner/Spinner.js +1 -0
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +2 -0
- package/cjs/components/Sticky/Sticky.js +1 -0
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +2 -0
- package/cjs/components/Switcher/Switcher.js +1 -0
- package/cjs/components/Switcher/Switcher.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 +4 -1
- package/cjs/components/Textarea/Textarea.js +9 -4
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.styles.js +3 -3
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +56 -9
- package/cjs/components/Toast/Toast.js +104 -11
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +7 -1
- package/cjs/components/Toast/ToastView.js +22 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.d.ts +4 -0
- package/cjs/components/Toast/ToastView.styles.js +43 -9
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +4 -1
- package/cjs/components/Toggle/Toggle.js +6 -5
- 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 +6 -1
- package/cjs/components/TokenInput/TokenInput.js +43 -30
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +12 -5
- package/cjs/components/Tooltip/Tooltip.js +100 -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 +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.js +4 -4
- package/cjs/internal/ClearCrossIcon/ClearCrossIcon.styles.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/CustomComboBox/ComboBoxView.d.ts +8 -4
- package/cjs/internal/CustomComboBox/ComboBoxView.js +35 -25
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +7 -2
- package/cjs/internal/CustomComboBox/CustomComboBox.js +17 -5
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js +10 -7
- package/cjs/internal/CustomComboBox/getComboBoxTheme.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.js +1 -1
- 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 +4 -3
- package/cjs/internal/InputLikeText/InputLikeText.js +13 -14
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +23 -21
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.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/MenuMessage/MenuMessage.js +13 -1
- package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.styles.d.ts +3 -1
- package/cjs/internal/MenuMessage/MenuMessage.styles.js +24 -8
- package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +9 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +24 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.styles.d.ts +7 -3
- package/cjs/internal/MobilePopup/MobilePopup.styles.js +55 -19
- package/cjs/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +36 -18
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +23 -3
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +31 -33
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +3 -2
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +22 -13
- package/cjs/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +2 -0
- package/cjs/internal/Popup/Popup.js +14 -3
- package/cjs/internal/Popup/Popup.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/RenderLayer/RenderLayer.d.ts +2 -0
- package/cjs/internal/RenderLayer/RenderLayer.js +1 -0
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +5 -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 +2 -0
- package/cjs/internal/ZIndex/ZIndex.js +1 -0
- 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 +147 -28
- package/cjs/internal/themes/BasicTheme.js +800 -33
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_4.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_4.js +18 -0
- package/cjs/internal/themes/DarkTheme5_4.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_4.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_4.js +18 -0
- package/cjs/internal/themes/LightTheme5_4.js.map +1 -0
- package/cjs/internal/themes/consts.d.ts +8 -0
- package/cjs/internal/themes/consts.js +8 -0
- package/cjs/internal/themes/consts.js.map +1 -0
- package/cjs/lib/__stories__/Blink.creevey.mts +90 -0
- package/cjs/lib/blink.d.ts +15 -0
- package/cjs/lib/blink.js +65 -0
- package/cjs/lib/blink.js.map +1 -0
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +6 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +13 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.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/size/SizeControlContext.d.ts +6 -0
- package/cjs/lib/size/SizeControlContext.js +16 -0
- package/cjs/lib/size/SizeControlContext.js.map +1 -0
- package/cjs/lib/size/SizeDecorator.d.ts +33 -0
- package/cjs/lib/size/SizeDecorator.js +41 -0
- package/cjs/lib/size/SizeDecorator.js.map +1 -0
- package/cjs/lib/size/constants.d.ts +2 -0
- package/cjs/lib/size/constants.js +3 -0
- package/cjs/lib/size/constants.js.map +1 -0
- package/cjs/lib/size/index.d.ts +1 -0
- package/cjs/lib/size/index.js +1 -0
- package/cjs/lib/size/index.js.map +1 -0
- package/cjs/lib/size/useSizeControl.d.ts +2 -0
- package/cjs/lib/size/useSizeControl.js +10 -0
- package/cjs/lib/size/useSizeControl.js.map +1 -0
- 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 +13 -0
- package/cjs/lib/utils.js +34 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +72 -32
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +18 -4
- package/components/Button/Button/Button.js +45 -24
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +4 -1
- 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/Button/ButtonArrow/ButtonArrow.js +1 -3
- package/components/Button/ButtonArrow/ButtonArrow.js.map +1 -1
- 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 +12 -13
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +4 -4
- package/components/ComboBox/ComboBox/ComboBox.js +1 -1
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +20 -7
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -2
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +5 -0
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +9 -8
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +5 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +2 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js +1 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -0
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/FileUploader/FileUploader/FileUploader.js +1 -0
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FxInput/FxInput/FxInput.js +121 -65
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +12 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js +2 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +2 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js +23 -52
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +6 -5
- package/components/Input/Input.styles/Input.styles.js +9 -13
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +0 -1
- package/components/Kebab/Kebab/Kebab.js +7 -7
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +4 -1
- package/components/Link/Link/Link.js +4 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Loader/Loader/Loader.js +2 -1
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +3 -0
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +3 -2
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +28 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +9 -0
- package/components/MenuItem/MenuItem/MenuItem.js +12 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +3 -0
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +25 -19
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.d.ts +3 -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 +95 -25
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -1
- 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 +13 -19
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +5 -5
- package/components/Radio/Radio/Radio.js +7 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +4 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -0
- package/components/Select/Select/Select.js +17 -15
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +4 -1
- package/components/SidePage/SidePage/SidePage.js +2 -2
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- 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/SingleToast/SingleToast/SingleToast.js +37 -12
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +32 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -0
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +2 -0
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +2 -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 +7 -6
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +4 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Toast/Toast/Toast.js +86 -23
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +56 -9
- package/components/Toast/ToastView/ToastView.js +17 -5
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +7 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +17 -5
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +4 -0
- package/components/Toggle/Toggle/Toggle.js +10 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +4 -1
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/TokenInput/TokenInput/TokenInput.js +47 -42
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +6 -1
- package/components/Tooltip/Tooltip/Tooltip.js +69 -19
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +12 -5
- 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/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js +1 -1
- package/internal/ClearCrossIcon/ClearCrossIcon.styles/ClearCrossIcon.styles.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +46 -45
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +8 -4
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +12 -7
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +7 -2
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js +5 -3
- package/internal/CustomComboBox/getComboBoxTheme/getComboBoxTheme.js.map +1 -1
- package/internal/CustomComboBox/getComboBoxTheme.d.ts +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- 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 +17 -28
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +4 -3
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +21 -16
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MenuMessage/MenuMessage/MenuMessage.js +12 -1
- package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +12 -6
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +19 -6
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +9 -0
- package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js +24 -12
- package/internal/MobilePopup/MobilePopup.styles/MobilePopup.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -3
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +23 -9
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -2
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js +29 -23
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +3 -0
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js +12 -9
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles/MobilePopupHeader.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +3 -2
- package/internal/Popup/Popup/Popup.js +10 -3
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +2 -0
- 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/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -0
- package/internal/ThemePlayground/Playground/Playground.js +8 -5
- 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.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +2 -0
- 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 +267 -44
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +147 -28
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js +17 -0
- package/internal/themes/DarkTheme5_4/DarkTheme5_4.js.map +1 -0
- package/internal/themes/DarkTheme5_4/package.json +6 -0
- package/internal/themes/DarkTheme5_4.d.ts +1 -0
- package/internal/themes/LightTheme5_4/LightTheme5_4.js +17 -0
- package/internal/themes/LightTheme5_4/LightTheme5_4.js.map +1 -0
- package/internal/themes/LightTheme5_4/package.json +6 -0
- package/internal/themes/LightTheme5_4.d.ts +1 -0
- package/internal/themes/consts/consts.js +9 -0
- package/internal/themes/consts/consts.js.map +1 -0
- package/internal/themes/consts/package.json +6 -0
- package/internal/themes/consts.d.ts +8 -0
- package/lib/__stories__/Blink.creevey.mts +90 -0
- package/lib/blink/blink.js +63 -0
- package/lib/blink/blink.js.map +1 -0
- package/lib/blink/package.json +6 -0
- package/lib/blink.d.ts +15 -0
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +6 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +7 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +6 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/size/SizeControlContext/SizeControlContext.js +7 -0
- package/lib/size/SizeControlContext/SizeControlContext.js.map +1 -0
- package/lib/size/SizeControlContext/package.json +6 -0
- package/lib/size/SizeControlContext.d.ts +6 -0
- package/lib/size/SizeDecorator/SizeDecorator.js +41 -0
- package/lib/size/SizeDecorator/SizeDecorator.js.map +1 -0
- package/lib/size/SizeDecorator/package.json +6 -0
- package/lib/size/SizeDecorator.d.ts +33 -0
- package/lib/size/constants/constants.js +1 -0
- package/lib/size/constants/constants.js.map +1 -0
- package/lib/size/constants/package.json +6 -0
- package/lib/size/constants.d.ts +2 -0
- package/lib/size/index/index.js +1 -0
- package/lib/size/index/index.js.map +1 -0
- package/lib/size/index/package.json +6 -0
- package/lib/size/index.d.ts +1 -0
- package/lib/size/package.json +6 -0
- package/lib/size/useSizeControl/package.json +6 -0
- package/lib/size/useSizeControl/useSizeControl.js +7 -0
- package/lib/size/useSizeControl/useSizeControl.js.map +1 -0
- package/lib/size/useSizeControl.d.ts +2 -0
- 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 +26 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +13 -0
- package/package.json +9 -15
- package/cjs/components/Autocomplete/Autocomplete.md +0 -113
- package/cjs/components/Button/Button.md +0 -261
- package/cjs/components/Calendar/Calendar.md +0 -276
- package/cjs/components/Calendar/CalendarDay.md +0 -70
- package/cjs/components/Center/Center.md +0 -26
- package/cjs/components/Checkbox/Checkbox.md +0 -171
- package/cjs/components/ComboBox/ComboBox.md +0 -574
- package/cjs/components/CurrencyInput/CurrencyInput.md +0 -39
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/cjs/components/DateInput/DateInput.md +0 -111
- package/cjs/components/DatePicker/DatePicker.md +0 -368
- package/cjs/components/Dropdown/Dropdown.md +0 -45
- package/cjs/components/DropdownMenu/DropdownMenu.md +0 -290
- package/cjs/components/FileUploader/FileUploader.md +0 -131
- package/cjs/components/FxInput/FxInput.md +0 -31
- package/cjs/components/Gapped/Gapped.md +0 -44
- package/cjs/components/GlobalLoader/GlobalLoader.md +0 -97
- package/cjs/components/Group/Group.md +0 -19
- package/cjs/components/Hint/Hint.md +0 -86
- package/cjs/components/Input/Input.md +0 -86
- package/cjs/components/Kebab/Kebab.md +0 -306
- package/cjs/components/Link/Link.md +0 -182
- package/cjs/components/Loader/Loader.md +0 -33
- package/cjs/components/MaskedInput/MaskedInput.md +0 -114
- package/cjs/components/MenuFooter/MenuFooter.md +0 -27
- package/cjs/components/MenuHeader/MenuHeader.md +0 -35
- package/cjs/components/MenuItem/MenuItem.md +0 -139
- package/cjs/components/MenuSeparator/MenuSeparator.md +0 -14
- package/cjs/components/MiniModal/MiniModal.md +0 -231
- package/cjs/components/Modal/Modal.md +0 -56
- package/cjs/components/Paging/Paging.md +0 -57
- package/cjs/components/PasswordInput/PasswordInput.md +0 -29
- package/cjs/components/Radio/Radio.md +0 -57
- package/cjs/components/RadioGroup/RadioGroup.md +0 -44
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/cjs/components/ScrollContainer/ScrollContainer.md +0 -224
- package/cjs/components/Select/Select.md +0 -113
- package/cjs/components/SidePage/SidePage.md +0 -65
- package/cjs/components/SingleToast/SingleToast.md +0 -36
- package/cjs/components/Spinner/Spinner.md +0 -36
- package/cjs/components/Sticky/Sticky.md +0 -28
- package/cjs/components/Switcher/Switcher.md +0 -111
- package/cjs/components/Tabs/Tab.md +0 -73
- package/cjs/components/Tabs/Tabs.md +0 -54
- package/cjs/components/Textarea/Textarea.md +0 -58
- package/cjs/components/Toast/Toast.md +0 -69
- package/cjs/components/Toggle/Toggle.md +0 -110
- package/cjs/components/Token/Token.md +0 -48
- package/cjs/components/TokenInput/TokenInput.md +0 -277
- package/cjs/components/Tooltip/Tooltip.md +0 -322
- package/cjs/components/TooltipMenu/TooltipMenu.md +0 -241
- package/cjs/internal/DataTids/DATATIDS.md +0 -12
- package/cjs/internal/DataTids/DataTids.d.ts +0 -12
- package/cjs/internal/DataTids/DataTids.js +0 -50
- package/cjs/internal/DataTids/DataTids.js.map +0 -1
- package/cjs/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/cjs/internal/DataTids/DataTids.styles.js +0 -42
- package/cjs/internal/DataTids/DataTids.styles.js.map +0 -1
- package/cjs/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/cjs/internal/DataTids/componentsDataTids.js +0 -15
- package/cjs/internal/DataTids/componentsDataTids.js.map +0 -1
- package/cjs/internal/ThemePlayground/Playground.md +0 -7
- package/cjs/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/cjs/lib/locale/LOCALECONTEXT.md +0 -222
- package/cjs/lib/theming/ThemeContext.md +0 -265
- package/components/Autocomplete/Autocomplete.md +0 -113
- package/components/Button/Button.md +0 -261
- package/components/Calendar/Calendar.md +0 -276
- package/components/Calendar/CalendarDay.md +0 -70
- package/components/Center/Center.md +0 -26
- package/components/Checkbox/Checkbox.md +0 -171
- package/components/ComboBox/ComboBox.md +0 -574
- package/components/CurrencyInput/CurrencyInput.md +0 -39
- package/components/CurrencyLabel/CurrencyLabel.md +0 -29
- package/components/DateInput/DateInput.md +0 -111
- package/components/DatePicker/DatePicker.md +0 -368
- package/components/Dropdown/Dropdown.md +0 -45
- package/components/DropdownMenu/DropdownMenu.md +0 -290
- package/components/FileUploader/FileUploader.md +0 -131
- package/components/FxInput/FxInput.md +0 -31
- package/components/Gapped/Gapped.md +0 -44
- package/components/GlobalLoader/GlobalLoader.md +0 -97
- package/components/Group/Group.md +0 -19
- package/components/Hint/Hint.md +0 -86
- package/components/Input/Input.md +0 -86
- package/components/Kebab/Kebab.md +0 -306
- package/components/Link/Link.md +0 -182
- package/components/Loader/Loader.md +0 -33
- package/components/MaskedInput/MaskedInput.md +0 -114
- package/components/MenuFooter/MenuFooter.md +0 -27
- package/components/MenuHeader/MenuHeader.md +0 -35
- package/components/MenuItem/MenuItem.md +0 -139
- package/components/MenuSeparator/MenuSeparator.md +0 -14
- package/components/MiniModal/MiniModal.md +0 -231
- package/components/Modal/Modal.md +0 -56
- package/components/Paging/Paging.md +0 -57
- package/components/PasswordInput/PasswordInput.md +0 -29
- package/components/Radio/Radio.md +0 -57
- package/components/RadioGroup/RadioGroup.md +0 -44
- package/components/ResponsiveLayout/ResponsiveLayout.md +0 -75
- package/components/ScrollContainer/ScrollContainer.md +0 -224
- package/components/Select/Select.md +0 -113
- package/components/SidePage/SidePage.md +0 -65
- package/components/SingleToast/SingleToast.md +0 -36
- package/components/Spinner/Spinner.md +0 -36
- package/components/Sticky/Sticky.md +0 -28
- package/components/Switcher/Switcher.md +0 -111
- package/components/Tabs/Tab.md +0 -73
- package/components/Tabs/Tabs.md +0 -54
- package/components/Textarea/Textarea.md +0 -58
- package/components/Toast/Toast.md +0 -69
- package/components/Toggle/Toggle.md +0 -110
- package/components/Token/Token.md +0 -48
- package/components/TokenInput/TokenInput.md +0 -277
- package/components/Tooltip/Tooltip.md +0 -322
- package/components/TooltipMenu/TooltipMenu.md +0 -241
- package/internal/DataTids/DATATIDS.md +0 -12
- package/internal/DataTids/DataTids/DataTids.js +0 -69
- package/internal/DataTids/DataTids/DataTids.js.map +0 -1
- package/internal/DataTids/DataTids/package.json +0 -6
- package/internal/DataTids/DataTids.d.ts +0 -12
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +0 -20
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +0 -1
- package/internal/DataTids/DataTids.styles/package.json +0 -6
- package/internal/DataTids/DataTids.styles.d.ts +0 -7
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +0 -12
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +0 -1
- package/internal/DataTids/componentsDataTids/package.json +0 -6
- package/internal/DataTids/componentsDataTids.d.ts +0 -5
- package/internal/ThemePlayground/Playground.md +0 -7
- package/lib/featureFlagsContext/FEATUREFLAGSCONTEXT.md +0 -64
- package/lib/locale/LOCALECONTEXT.md +0 -222
- package/lib/theming/ThemeContext.md +0 -265
|
@@ -4,6 +4,7 @@ import type { PopupMenuProps } from '../../internal/PopupMenu';
|
|
|
4
4
|
import type { Nullable } from '../../typings/utility-types';
|
|
5
5
|
import type { PopupPositionsType } from '../../internal/Popup';
|
|
6
6
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
7
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
7
8
|
import type { SizeProp } from '../../lib/types/props';
|
|
8
9
|
export interface KebabProps extends Pick<AriaAttributes, 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>, CommonProps {
|
|
9
10
|
/** Делает компонент недоступным. */
|
|
@@ -31,7 +32,7 @@ export interface KebabState {
|
|
|
31
32
|
anchor: Nullable<HTMLElement>;
|
|
32
33
|
focusedByTab: boolean;
|
|
33
34
|
}
|
|
34
|
-
type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | '
|
|
35
|
+
type DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;
|
|
35
36
|
/**
|
|
36
37
|
* Кебаб-меню `Kebab` содержит действия с объектом.
|
|
37
38
|
*/
|
|
@@ -42,6 +43,8 @@ export declare class Kebab extends React.Component<KebabProps, KebabState> {
|
|
|
42
43
|
private getProps;
|
|
43
44
|
state: KebabState;
|
|
44
45
|
private theme;
|
|
46
|
+
private size;
|
|
47
|
+
getRootNode: TGetRootNode;
|
|
45
48
|
private setRootNode;
|
|
46
49
|
private listener;
|
|
47
50
|
componentDidMount(): void;
|
|
@@ -23,6 +23,7 @@ var _rootNode = require("../../lib/rootNode");
|
|
|
23
23
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
24
24
|
|
|
25
25
|
var _getVisualStateDataAttributes = require("../../internal/CommonWrapper/utils/getVisualStateDataAttributes");
|
|
26
|
+
var _SizeDecorator = require("../../lib/size/SizeDecorator");
|
|
26
27
|
|
|
27
28
|
var _Kebab2 = require("./Kebab.styles");
|
|
28
29
|
var _KebabIcon = require("./KebabIcon");var _class, _Kebab;
|
|
@@ -72,9 +73,10 @@ var KebabDataTids = exports.KebabDataTids = {
|
|
|
72
73
|
* Кебаб-меню `Kebab` содержит действия с объектом.
|
|
73
74
|
*/var
|
|
74
75
|
|
|
75
|
-
Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (_Kebab = /*#__PURE__*/function (_React$Component) {function Kebab() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
76
76
|
|
|
77
77
|
|
|
78
|
+
Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (0, _SizeDecorator.withSize)(_class = (_Kebab = /*#__PURE__*/function (_React$Component) {function Kebab() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
79
|
+
|
|
78
80
|
|
|
79
81
|
|
|
80
82
|
|
|
@@ -94,6 +96,8 @@ Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (_Kebab = /*#__PURE__*/
|
|
|
94
96
|
|
|
95
97
|
|
|
96
98
|
|
|
99
|
+
|
|
100
|
+
|
|
97
101
|
listener =
|
|
98
102
|
|
|
99
103
|
{
|
|
@@ -157,7 +161,8 @@ Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (_Kebab = /*#__PURE__*/
|
|
|
157
161
|
|
|
158
162
|
|
|
159
163
|
renderCaption = function (captionProps) {
|
|
160
|
-
var _this$getProps = _this.getProps(),disabled = _this$getProps.disabled
|
|
164
|
+
var _this$getProps = _this.getProps(),disabled = _this$getProps.disabled;
|
|
165
|
+
var size = _this.size;
|
|
161
166
|
var handleCaptionKeyDown = function handleCaptionKeyDown(event) {
|
|
162
167
|
if (!disabled) {
|
|
163
168
|
_this.handleCaptionKeyDown(event, captionProps.openMenu);
|
|
@@ -230,7 +235,7 @@ Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (_Kebab = /*#__PURE__*/
|
|
|
230
235
|
};return _this;}(0, _inheritsLoose2.default)(Kebab, _React$Component);var _proto = Kebab.prototype;_proto.componentDidMount = function componentDidMount() {/** addListener'у нужен колбэк в аргумент */this.listener = LayoutEvents.addListener(function () {return undefined;});};_proto.componentWillUnmount = function componentWillUnmount() {this.listener.remove();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ popupMargin: theme.kebabMargin }, theme) }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var disabled = this.props.disabled;var _this$getProps2 = this.getProps(),positions = _this$getProps2.positions,disableAnimations = _this$getProps2.disableAnimations,onOpen = _this$getProps2.onOpen,onClose = _this$getProps2.onClose;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props, (0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })), /*#__PURE__*/_react.default.createElement(_PopupMenu.PopupMenu, { id: this.props.id, popupHasPin: false, preventIconsOffset: this.props.preventIconsOffset, positions: positions, onChangeMenuState: this.handleChangeMenuState, caption: this.renderCaption, disableAnimations: disableAnimations, menuMaxHeight: this.props.menuMaxHeight, onOpen: onOpen, onClose: onClose, popupMenuId: this.props.popupMenuId, "aria-label": this.props['aria-label'] }, !disabled && this.props.children));};_proto.
|
|
231
236
|
|
|
232
237
|
renderIcon = function renderIcon() {
|
|
233
|
-
var _this$getProps3 = this.getProps(),
|
|
238
|
+
var _this$getProps3 = this.getProps(),_this$getProps3$icon = _this$getProps3.icon,icon = _this$getProps3$icon === void 0 ? /*#__PURE__*/_react.default.createElement(_KebabIcon.KebabIcon, null) : _this$getProps3$icon;
|
|
234
239
|
|
|
235
240
|
if ((0, _reactIs.isElement)(icon) && (0, _utils.isKonturIcon)(icon)) {var _icon$props$size, _icon$props$color;
|
|
236
241
|
var sizes = {
|
|
@@ -240,10 +245,10 @@ Kebab = exports.Kebab = (0, _rootNode.rootNode)(_class = (_Kebab = /*#__PURE__*/
|
|
|
240
245
|
};
|
|
241
246
|
|
|
242
247
|
return /*#__PURE__*/_react.default.cloneElement(icon, {
|
|
243
|
-
size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[size],
|
|
248
|
+
size: (_icon$props$size = icon.props.size) != null ? _icon$props$size : sizes[this.size],
|
|
244
249
|
color: (_icon$props$color = icon.props.color) != null ? _icon$props$color : this.theme.kebabIconColor
|
|
245
250
|
});
|
|
246
251
|
}
|
|
247
252
|
|
|
248
253
|
return icon;
|
|
249
|
-
};return Kebab;}(_react.default.Component), _Kebab.__KONTUR_REACT_UI__ = 'Kebab', _Kebab.displayName = 'Kebab', _Kebab.defaultProps = { onOpen: function onOpen() {return undefined;}, onClose: function onClose() {return undefined;}, positions: ['bottom left', 'bottom right', 'top left', 'top right'],
|
|
254
|
+
};return Kebab;}(_react.default.Component), _Kebab.__KONTUR_REACT_UI__ = 'Kebab', _Kebab.displayName = 'Kebab', _Kebab.defaultProps = { onOpen: function onOpen() {return undefined;}, onClose: function onClose() {return undefined;}, positions: ['bottom left', 'bottom right', 'top left', 'top right'], disableAnimations: _currentEnvironment.isTestEnv }, _Kebab)) || _class) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactIs","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_keyListener","_PopupMenu","_ThemeContext","_currentEnvironment","_ThemeFactory","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_Kebab2","_KebabIcon","_class","_Kebab","KebabDataTids","exports","caption","Kebab","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","default","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose2","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","PopupMenu","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","KebabIcon","isElement","isKonturIcon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","React","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'size' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled, size } = this.getProps();\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { size, icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;AACA,IAAAO,YAAA,GAAAP,OAAA;;AAEA,IAAAQ,UAAA,GAAAR,OAAA;;;AAGA,IAAAS,aAAA,GAAAT,OAAA;;AAEA,IAAAU,mBAAA,GAAAV,OAAA;AACA,IAAAW,aAAA,GAAAX,OAAA;;AAEA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;;AAEA,IAAAc,SAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;;AAEA,IAAAgB,6BAAA,GAAAhB,OAAA;;AAEA,IAAAiB,OAAA,GAAAjB,OAAA;AACA,IAAAkB,UAAA,GAAAlB,OAAA,gBAAwC,IAAAmB,MAAA,EAAAC,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCjC,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,OAAO,EAAE;AACX,CAAU;;;;;;;;;AASV;AACA;AACA,GAFA;;AAIaC,KAAK,GAAAF,OAAA,CAAAE,KAAA,OADjBC,kBAAQ,EAAAN,MAAA,IAAAC,MAAA,0BAAAM,gBAAA,YAAAF,MAAA,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;;;;;;;;;;;;IAaCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,KAAK,CAACe,YAAY,CAAC,CAAAZ,KAAA;;IAEjDa,KAAK,GAAe;MACzBC,YAAY,EAAE,KAAK;MACnBC,MAAM,EAAE;IACV,CAAC,CAAAf,KAAA;;;;;IAKOgB,QAAQ;;IAEZ;MACFC,MAAM,EAAE,SAAAA,OAAA,UAAMC,SAAS;IACzB,CAAC,CAAAlB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0DOmB,aAAa,GAAG,UAACC,YAAmC,EAAK;MAC/D,IAAAC,cAAA,GAA2BrB,KAAA,CAAKU,QAAQ,CAAC,CAAC,CAAlCY,QAAQ,GAAAD,cAAA,CAARC,QAAQ,CAAEC,IAAI,GAAAF,cAAA,CAAJE,IAAI;MACtB,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,KAA0C,EAAK;QAC3E,IAAI,CAACH,QAAQ,EAAE;UACbtB,KAAA,CAAKwB,oBAAoB,CAACC,KAAK,EAAEL,YAAY,CAACM,QAAQ,CAAC;QACzD;MACF,CAAC;;MAED,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;QAC/B,IAAI,CAACL,QAAQ,EAAE;UACbF,YAAY,CAACQ,UAAU,CAAC,CAAC;QAC3B;MACF,CAAC;;MAED;QACEzD,MAAA,CAAA0D,OAAA,CAAAC,aAAA;UACEC,IAAI,EAAC,QAAQ;UACb,YAAUrC,aAAa,CAACE,OAAQ;UAChCoC,QAAQ,EAAEV,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;UAC5BW,OAAO,EAAEN,kBAAmB;UAC5BO,SAAS,EAAEV,oBAAqB;UAChCW,OAAO,EAAEnC,KAAA,CAAKoC,WAAY;UAC1BC,MAAM,EAAErC,KAAA,CAAKsC,UAAW;UACxBC,SAAS,EAAE,IAAAC,WAAE;YACXC,cAAM,CAACC,KAAK,CAAC1C,KAAA,CAAK2C,KAAK,CAAC;YACxBpB,IAAI,KAAK,OAAO,IAAIkB,cAAM,CAACG,UAAU,CAAC5C,KAAA,CAAK2C,KAAK,CAAC;YACjDpB,IAAI,KAAK,QAAQ,IAAIkB,cAAM,CAACI,WAAW,CAAC7C,KAAA,CAAK2C,KAAK,CAAC;YACnDpB,IAAI,KAAK,OAAO,IAAIkB,cAAM,CAACK,UAAU,CAAC9C,KAAA,CAAK2C,KAAK,CAAC;YACjDvB,YAAY,CAAC2B,MAAM,IAAIN,cAAM,CAACM,MAAM,CAAC/C,KAAA,CAAK2C,KAAK,CAAC;YAChDrB,QAAQ,IAAImB,cAAM,CAACnB,QAAQ,CAAC,CAAC;YAC7BtB,KAAA,CAAKa,KAAK,CAACC,YAAY,IAAI2B,cAAM,CAACO,OAAO,CAAChD,KAAA,CAAK2C,KAAK;UACtD,CAAE;UACF,oBAAkB3C,KAAA,CAAKiD,KAAK,CAAC,kBAAkB,CAAE;;QAEhDjD,KAAA,CAAKkD,UAAU,CAAC;QACb,CAAC;;IAEX,CAAC,CAAAlD,KAAA;;IAEOwB,oBAAoB,GAAG;IAC7B2B,CAAsC;IACtCzB,QAA2C;IACxC;MACH,IAAI,IAAA0B,qBAAQ,EAACC,uBAAU,EAAEC,uBAAU,EAAEC,+BAAkB,CAAC,CAACJ,CAAC,CAAC,EAAE;QAC3DA,CAAC,CAACK,cAAc,CAAC,CAAC;QAClB9B,QAAQ,CAAC,IAAI,CAAC;MAChB;IACF,CAAC,CAAA1B,KAAA;;IAEOyD,qBAAqB,GAAG,UAACC,QAAiB,EAAEC,YAAqB,EAAW;MAClF3D,KAAA,CAAK4D,QAAQ,CAAC;QACZ9C,YAAY,EAAE,CAAC4C,QAAQ,IAAIC;MAC7B,CAAC,CAAC;IACJ,CAAC,CAAA3D,KAAA;;IAEOoC,WAAW,GAAG,YAAM;MAC1B,IAAI,CAACpC,KAAA,CAAKiD,KAAK,CAAC3B,QAAQ,EAAE;QACxB;QACA;QACAuC,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,YAAM;UACzC,IAAIC,wBAAW,CAACC,YAAY,EAAE;YAC5BhE,KAAA,CAAK4D,QAAQ,CAAC,EAAE9C,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAAd,KAAA;;IAEOsC,UAAU,GAAG,YAAM;MACzBtC,KAAA,CAAK4D,QAAQ,CAAC;QACZ9C,YAAY,EAAE;MAChB,CAAC,CAAC;IACJ,CAAC,QAAAd,KAAA,MAAAiE,eAAA,CAAApC,OAAA,EAAAhC,KAAA,EAAAE,gBAAA,MAAAmE,MAAA,GAAArE,KAAA,CAAAsE,SAAA,CAAAD,MAAA,CA/HME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,4CACA,IAAI,CAACpD,QAAQ,GAAGtC,YAAY,CAAC2F,WAAW,CAAC,oBAAMnD,SAAS,GAAC,CAC3D,CAAC,CAAAgD,MAAA,CAEMI,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,CAACtD,QAAQ,CAACC,MAAM,CAAC,CAAC,CACxB,CAAC,CAAAiD,MAAA,CAEMK,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,oBACErG,MAAA,CAAA0D,OAAA,CAAAC,aAAA,CAAChD,aAAA,CAAA2F,YAAY,CAACC,QAAQ,QACnB,UAAC/B,KAAK,EAAK,CACV6B,MAAI,CAAC7B,KAAK,GAAGA,KAAK,CAClB,oBACExE,MAAA,CAAA0D,OAAA,CAAAC,aAAA,CAAChD,aAAA,CAAA2F,YAAY,CAACE,QAAQ,IACpBC,KAAK,EAAEC,0BAAY,CAACC,MAAM,CACxB,EACEC,WAAW,EAAEpC,KAAK,CAACqC,WAAW,CAChC,CAAC,EACDrC,KACF,CAAE,IAED6B,MAAI,CAACS,UAAU,CAAC,CACI,CAAC,CAE5B,CACqB,CAAC,CAE5B,CAAC,CAAAf,MAAA,CAEOe,UAAU,GAAlB,SAAAA,WAAA,EAAqB,CACnB,IAAQ3D,QAAQ,GAAK,IAAI,CAAC2B,KAAK,CAAvB3B,QAAQ,CAChB,IAAA4D,eAAA,GAA0D,IAAI,CAACxE,QAAQ,CAAC,CAAC,CAAjEyE,SAAS,GAAAD,eAAA,CAATC,SAAS,CAAEC,iBAAiB,GAAAF,eAAA,CAAjBE,iBAAiB,CAAEC,MAAM,GAAAH,eAAA,CAANG,MAAM,CAAEC,OAAO,GAAAJ,eAAA,CAAPI,OAAO,CACrD,oBACEnH,MAAA,CAAA0D,OAAA,CAAAC,aAAA,CAAC7C,cAAA,CAAAsG,aAAa,MAAAC,SAAA,CAAA3D,OAAA,IAAC4D,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACzC,KAAK,EAAM,IAAA0C,0DAA4B,EAAC,EAAErE,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC,gBAC1GnD,MAAA,CAAA0D,OAAA,CAAAC,aAAA,CAACjD,UAAA,CAAA+G,SAAS,IACRC,EAAE,EAAE,IAAI,CAAC5C,KAAK,CAAC4C,EAAG,EAClBC,WAAW,EAAE,KAAM,EACnBC,kBAAkB,EAAE,IAAI,CAAC9C,KAAK,CAAC8C,kBAAmB,EAClDZ,SAAS,EAAEA,SAAU,EACrBa,iBAAiB,EAAE,IAAI,CAACvC,qBAAsB,EAC9C7D,OAAO,EAAE,IAAI,CAACuB,aAAc,EAC5BiE,iBAAiB,EAAEA,iBAAkB,EACrCa,aAAa,EAAE,IAAI,CAAChD,KAAK,CAACgD,aAAc,EACxCZ,MAAM,EAAEA,MAAO,EACfC,OAAO,EAAEA,OAAQ,EACjBY,WAAW,EAAE,IAAI,CAACjD,KAAK,CAACiD,WAAY,EACpC,cAAY,IAAI,CAACjD,KAAK,CAAC,YAAY,CAAE,IAEpC,CAAC3B,QAAQ,IAAI,IAAI,CAAC2B,KAAK,CAACkD,QAChB,CACE,CAAC,CAEpB,CAAC,CAAAjC,MAAA;;EA2EOhB,UAAU,GAAlB,SAAAA,WAAA,EAAqB;IACnB,IAAAkD,eAAA,GAAuC,IAAI,CAAC1F,QAAQ,CAAC,CAAC,CAA9Ca,IAAI,GAAA6E,eAAA,CAAJ7E,IAAI,CAAA8E,oBAAA,GAAAD,eAAA,CAAEE,IAAI,CAAJA,IAAI,GAAAD,oBAAA,2BAAGlI,MAAA,CAAA0D,OAAA,CAAAC,aAAA,CAACvC,UAAA,CAAAgH,SAAS,MAAE,CAAC,GAAAF,oBAAA;;IAElC,IAAI,IAAAG,kBAAS,EAACF,IAAI,CAAC,IAAI,IAAAG,mBAAY,EAACH,IAAoB,CAAC,EAAE,KAAAI,gBAAA,EAAAC,iBAAA;MACzD,IAAMC,KAA+B,GAAG;QACtCC,KAAK,EAAEC,QAAQ,CAAC,IAAI,CAACnE,KAAK,CAACoE,kBAAkB,CAAC;QAC9CC,MAAM,EAAEF,QAAQ,CAAC,IAAI,CAACnE,KAAK,CAACsE,mBAAmB,CAAC;QAChDC,KAAK,EAAEJ,QAAQ,CAAC,IAAI,CAACnE,KAAK,CAACwE,kBAAkB;MAC/C,CAAC;;MAED,oBAAOC,cAAK,CAACC,YAAY,CAACf,IAAI,EAAkB;QAC9C/E,IAAI,GAAAmF,gBAAA,GAAEJ,IAAI,CAACrD,KAAK,CAAC1B,IAAI,YAAAmF,gBAAA,GAAIE,KAAK,CAACrF,IAAI,CAAC;QACpC+F,KAAK,GAAAX,iBAAA,GAAEL,IAAI,CAACrD,KAAK,CAACqE,KAAK,YAAAX,iBAAA,GAAI,IAAI,CAAChE,KAAK,CAAC4E;MACxC,CAAC,CAAC;IACJ;;IAEA,OAAOjB,IAAI;EACb,CAAC,QAAAzG,KAAA,GA9KwBuH,cAAK,CAACI,SAAS,GAAA/H,MAAA,CAC1BgI,mBAAmB,GAAG,OAAO,EAAAhI,MAAA,CAC7BiI,WAAW,GAAG,OAAO,EAAAjI,MAAA,CAErBmB,YAAY,GAAiB,EACzCyE,MAAM,EAAE,SAAAA,OAAA,UAAMnE,SAAS,IACvBoE,OAAO,EAAE,SAAAA,QAAA,UAAMpE,SAAS,IACxBiE,SAAS,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAC,EACnE5D,IAAI,EAAE,OAAO,EACb6D,iBAAiB,EAAEuC,6BAAS,CAC9B,CAAC,EAAAlI,MAAA,MAAAD,MAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactIs","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_keyListener","_PopupMenu","_ThemeContext","_currentEnvironment","_ThemeFactory","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_getVisualStateDataAttributes","_SizeDecorator","_Kebab2","_KebabIcon","_class","_Kebab","KebabDataTids","exports","caption","Kebab","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","_this$getProps","disabled","size","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","default","createElement","role","tabIndex","onClick","onKeyDown","onFocus","handleFocus","onBlur","handleBlur","className","cx","styles","kebab","theme","kebabSmall","kebabMedium","kebabLarge","opened","focused","props","renderIcon","e","someKeys","isKeyEnter","isKeySpace","isKeyArrowVertical","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","globalObject","requestAnimationFrame","keyListener","isTabPressed","_inheritsLoose2","_proto","prototype","componentDidMount","addListener","componentWillUnmount","render","_this2","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","kebabMargin","renderMain","_this$getProps2","positions","disableAnimations","onOpen","onClose","CommonWrapper","_extends2","rootNodeRef","setRootNode","getVisualStateDataAttributes","PopupMenu","id","popupHasPin","preventIconsOffset","onChangeMenuState","menuMaxHeight","popupMenuId","children","_this$getProps3","_this$getProps3$icon","icon","KebabIcon","isElement","isKonturIcon","_icon$props$size","_icon$props$color","sizes","small","parseInt","kebabIconSizeSmall","medium","kebabIconSizeMedium","large","kebabIconSizeLarge","React","cloneElement","color","kebabIconColor","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Kebab.tsx"],"sourcesContent":["import type { AriaAttributes, ReactElement, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { isElement } from 'react-is';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKonturIcon } from '../../lib/utils';\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { PopupMenu } from '../../internal/PopupMenu';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Kebab.styles';\nimport { KebabIcon } from './KebabIcon';\n\nexport interface KebabProps\n extends Pick<AriaAttributes, 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Pick<PopupMenuProps, 'onOpen' | 'onClose' | 'popupMenuId' | 'preventIconsOffset'>,\n CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер контрола. */\n size?: SizeProp;\n\n /** Определяет список позиций, доступных для расположения выпадашки относительно `kebab`.\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n * @default ['bottom left', 'bottom right', 'top left', 'top right']. */\n positions?: PopupPositionsType[];\n positions2?: string;\n\n /** Задает максимальную высоту меню. */\n menuMaxHeight?: number | string;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactNode;\n\n /** @ignore */\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n}\n\nexport const KebabDataTids = {\n caption: 'Kebab__caption',\n} as const;\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\ntype DefaultProps = Required<Pick<KebabProps, 'onOpen' | 'onClose' | 'positions' | 'disableAnimations'>>;\n\n/**\n * Кебаб-меню `Kebab` содержит действия с объектом.\n */\n\n@rootNode\n@withSize\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n public static displayName = 'Kebab';\n\n public static defaultProps: DefaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Kebab.defaultProps);\n\n public state: KebabState = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: theme.kebabMargin,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled } = this.props;\n const { positions, disableAnimations, onOpen, onClose } = this.getProps();\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props} {...getVisualStateDataAttributes({ disabled })}>\n <PopupMenu\n id={this.props.id}\n popupHasPin={false}\n preventIconsOffset={this.props.preventIconsOffset}\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={onOpen}\n onClose={onClose}\n popupMenuId={this.props.popupMenuId}\n aria-label={this.props['aria-label']}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.getProps();\n const size = this.size;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n role=\"button\"\n data-tid={KebabDataTids.caption}\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx(\n styles.kebab(this.theme),\n size === 'small' && styles.kebabSmall(this.theme),\n size === 'medium' && styles.kebabMedium(this.theme),\n size === 'large' && styles.kebabLarge(this.theme),\n captionProps.opened && styles.opened(this.theme),\n disabled && styles.disabled(),\n this.state.focusedByTab && styles.focused(this.theme),\n )}\n aria-describedby={this.props['aria-describedby']}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n const { icon = <KebabIcon /> } = this.getProps();\n\n if (isElement(icon) && isKonturIcon(icon as ReactElement)) {\n const sizes: Record<SizeProp, number> = {\n small: parseInt(this.theme.kebabIconSizeSmall),\n medium: parseInt(this.theme.kebabIconSizeMedium),\n large: parseInt(this.theme.kebabIconSizeLarge),\n };\n\n return React.cloneElement(icon as ReactElement, {\n size: icon.props.size ?? sizes[this.size],\n color: icon.props.color ?? this.theme.kebabIconColor,\n });\n }\n\n return icon;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import type { ButtonLinkAllowedValues } from '../../lib/types/button-link';
|
|
|
3
3
|
import type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';
|
|
4
4
|
import type { ThemeIn } from '../../lib/theming/Theme';
|
|
5
5
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
6
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
7
|
export interface LinkInnerProps extends CommonProps {
|
|
7
8
|
/** Делает компонент недоступным. */
|
|
8
9
|
disabled?: boolean;
|
|
@@ -49,6 +50,7 @@ export declare class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAUL
|
|
|
49
50
|
private getProps;
|
|
50
51
|
state: LinkState;
|
|
51
52
|
private theme;
|
|
53
|
+
getRootNode: TGetRootNode;
|
|
52
54
|
private setRootNode;
|
|
53
55
|
render(): JSX.Element;
|
|
54
56
|
private getTabIndex;
|
|
@@ -117,6 +117,7 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
|
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
|
|
120
|
+
|
|
120
121
|
getTabIndex = function (_ref)
|
|
121
122
|
|
|
122
123
|
|
|
@@ -193,6 +194,7 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
|
|
|
193
194
|
return _Link2.styles.lineFocusGrayed(_this.theme);
|
|
194
195
|
}
|
|
195
196
|
};
|
|
197
|
+
|
|
196
198
|
var rootProps = (0, _extends2.default)({},
|
|
197
199
|
rest, {
|
|
198
200
|
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
@@ -215,8 +217,15 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
|
|
|
215
217
|
rel: _this.getRel() });
|
|
216
218
|
|
|
217
219
|
|
|
220
|
+
var buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};
|
|
221
|
+
|
|
218
222
|
return /*#__PURE__*/(
|
|
219
|
-
_react.default.createElement(Root, (0, _extends2.default)({
|
|
223
|
+
_react.default.createElement(Root, (0, _extends2.default)({
|
|
224
|
+
"data-tid": LinkDataTids.root },
|
|
225
|
+
rootProps,
|
|
226
|
+
buttonOnlyProps,
|
|
227
|
+
(0, _getVisualStateDataAttributes.getVisualStateDataAttributes)({ disabled: disabled })),
|
|
228
|
+
|
|
220
229
|
leftIconElement,
|
|
221
230
|
_this.props.children,
|
|
222
231
|
rightIconElement,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends2","cx","resetButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа. */\n rightIcon?: React.ReactElement;\n\n /** Задает тему ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"6dAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;AAGA,IAAAE,OAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;;AAEA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;;AAEA,IAAAQ,SAAA,GAAAR,OAAA;;AAEA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,6BAAA,GAAAX,OAAA;;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA,eAAsC,IAAAc,SAAA,wJAAAC,MAAA,EAAAC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCtC,IAAMC,sBAAsB,GAAG,GAAG;;;;;;;;;;AAU3B,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,IAAI,EAAE;AACR,CAAU;;;;;AAKV;AACA;AACA,GAFA;;AAIaC,IAAI,GAAAF,OAAA,CAAAE,IAAA,OADhBC,kBAAQ,EAAAP,MAAA,IAAAC,KAAA,0BAAAO,gBAAA,YAAAF,KAAA,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;;;;;;;;;;;;IAaCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,IAAI,CAACe,YAAY,CAAC,CAAAZ,KAAA;;IAEhDa,KAAK,GAAc;MACxBC,YAAY,EAAE;IAChB,CAAC,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;IAoBOe,WAAW,GAAG,UAAAC,IAAA;;;;;;IAMhB,KALJC,cAAc,GAAAD,IAAA,CAAdC,cAAc,CAAAC,aAAA,GAAAF,IAAA,CACdG,QAAQ,CAARA,QAAQ,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;MAKZ,OAAOD,cAAc,GAAG,CAAC,CAAC,GAAGE,QAAQ;IACvC,CAAC,CAAAnB,KAAA;;IAEOoB,MAAM,GAAG,YAAM;MACrB,IAAIC,aAAa,CAACrB,KAAA,CAAKsB,KAAK,CAAC,EAAE;QAC7B,IAAAC,WAAA,GAAsBvB,KAAA,CAAKsB,KAAK,CAAxBE,GAAG,GAAAD,WAAA,CAAHC,GAAG,CAAEC,IAAI,GAAAF,WAAA,CAAJE,IAAI;QACjB,IAAI,CAACD,GAAG,IAAIC,IAAI,EAAE;UAChB,qBAAkB,IAAAC,qBAAc,EAACD,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE;QAC7D;QACA,OAAOD,GAAG;MACZ;;MAEA,OAAOG,SAAS;IAClB,CAAC,CAAA3B,KAAA;;IAEO4B,UAAU,GAAG,UAACN,KAAmD,EAAK,KAAAO,GAAA;MAC5E;QACEC,QAAQ;;;;;;;;;;;;;;QAcNR,KAAK,CAdPQ,QAAQ,CACRC,IAAI,GAaFT,KAAK,CAbPS,IAAI,CACJC,SAAS,GAYPV,KAAK,CAZPU,SAAS,CACTC,GAAG,GAWDX,KAAK,CAXPW,GAAG,CACHC,OAAO,GAULZ,KAAK,CAVPY,OAAO,CACPC,OAAO,GASLb,KAAK,CATPa,OAAO,CACPC,aAAa,GAQXd,KAAK,CARPc,aAAa,CACFC,IAAI,GAObf,KAAK,CAPPgB,SAAS,CAAAC,cAAA,GAOPjB,KAAK,CANPkB,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA,CACfE,KAAK,GAKHnB,KAAK,CALPmB,KAAK,CACLC,OAAO,GAILpB,KAAK,CAJPoB,OAAO,CACPvB,QAAQ,GAGNG,KAAK,CAHPH,QAAQ,CACRwB,KAAK,GAEHrB,KAAK,CAFPqB,KAAK,CACFC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLxB,KAAK,EAAAhC,SAAA;;MAET,IAAIyD,KAAK,GAAG,IAAI;MAChB,IAAIZ,OAAO,EAAE;QACXY,KAAK,gBAAGzE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,WAAMC,SAAS,EAAEC,aAAM,CAACH,KAAK,CAAC,CAAE,EAAE,CAAC;MAC7C;;MAEA,IAAMI,SAAS,GAAG,CAACrB,QAAQ,KAAK9B,KAAA,CAAKa,KAAK,CAACC,YAAY,IAAI0B,OAAO,CAAC;;MAEnE,IAAMY,eAAe,GAAGrB,IAAI,iBAAIzD,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACtB,IAAI,EAAEA,IAAK,EAACG,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,MAAM,EAAE,CAAC;MAC1F,IAAMC,gBAAgB,GAAGvB,SAAS;MAChC1D,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACG,YAAY,EAAE,CAAC,CAACzB,IAAI,IAAI,CAAC,CAACC,SAAU,EAACD,IAAI,EAAEC,SAAU,EAACE,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,OAAO,EAAE,CACrG;;MACD,IAAMrC,cAAc,GAAGa,QAAQ,IAAII,OAAO;MAC1C,IAAMuB,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;QACzB,QAAQxB,GAAG;UACT,KAAK,SAAS;YACZ,OAAOiB,aAAM,CAACJ,OAAO,CAAC9C,KAAA,CAAK2C,KAAK,CAAC;UACnC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACQ,MAAM,CAAC1D,KAAA,CAAK2C,KAAK,CAAC;UAClC,KAAK,SAAS;YACZ,OAAOO,aAAM,CAACS,OAAO,CAAC3D,KAAA,CAAK2C,KAAK,CAAC;UACnC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACU,MAAM,CAAC5D,KAAA,CAAK2C,KAAK,CAAC;QACpC;MACF,CAAC;MACD,IAAMkB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;QAClC,QAAQ5B,GAAG;UACT,KAAK,SAAS;YACZ,OAAOiB,aAAM,CAACY,SAAS,CAAC9D,KAAA,CAAK2C,KAAK,CAAC;UACrC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACa,eAAe,CAAC/D,KAAA,CAAK2C,KAAK,CAAC;UAC3C,KAAK,SAAS;YACZ,OAAOO,aAAM,CAACc,gBAAgB,CAAChE,KAAA,CAAK2C,KAAK,CAAC;UAC5C,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACe,eAAe,CAACjE,KAAA,CAAK2C,KAAK,CAAC;QAC7C;MACF,CAAC;MACD,IAAMuB,SAAS,OAAAC,SAAA,CAAArB,OAAA;MACVF,IAAI;QACPK,SAAS,EAAE,IAAAmB,WAAE,GAAAvC,GAAA,OAAAA,GAAA;QACVqB,aAAM,CAACtD,IAAI,CAACI,KAAA,CAAK2C,KAAK,CAAC,IAAG,IAAI,EAAAd,GAAA;QAC9B,IAAAwC,mBAAW,EAAC,CAAC,IAAGhC,IAAI,KAAK,QAAQ,EAAAR,GAAA;QACjCqB,aAAM,CAACoB,KAAK,CAACtE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,EAAAtB,GAAA;QACpCqB,aAAM,CAACpB,QAAQ,CAAC9B,KAAA,CAAK2C,KAAK,CAAC,IAAGb,QAAQ,IAAII,OAAO,EAAAL,GAAA;QACjD4B,YAAY,CAAC,CAAC,IAAG,IAAI,EAAA5B,GAAA;QACrBqB,aAAM,CAACqB,cAAc,CAACvE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,QAAQ,IAAIO,OAAO,EAAAX,GAAA;QAC/DqB,aAAM,CAACsB,MAAM,CAACxE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACR,OAAO,EAAAN,GAAA;QACrCqB,aAAM,CAACuB,YAAY,CAACzE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACP,aAAa,EAAAP,GAAA;QACjDqB,aAAM,CAACR,OAAO,CAAC1C,KAAA,CAAK2C,KAAK,CAAC,IAAGD,OAAO,EAAAb,GAAA;QACpCqB,aAAM,CAACT,KAAK,CAACzC,KAAA,CAAK2C,KAAK,CAAC,IAAGF,KAAK,EAAAZ,GAAA;QAChCgC,qBAAqB,CAAC,CAAC,IAAGV,SAAS,EAAAtB,GAAA;QACrC,CAAC;QACF6C,OAAO,EAAE1E,KAAA,CAAK2E,WAAW;QACzBC,OAAO,EAAE5E,KAAA,CAAK6E,WAAW;QACzBC,MAAM,EAAE9E,KAAA,CAAK+E,UAAU;QACvB5D,QAAQ,EAAEnB,KAAA,CAAKe,WAAW,CAAC,EAAEE,cAAc,EAAdA,cAAc,EAAEE,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QACxDK,GAAG,EAAExB,KAAA,CAAKoB,MAAM,CAAC,CAAC,GACnB;;;MAED;QACE9C,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACX,IAAI,MAAA8B,SAAA,CAAArB,OAAA,IAAC,YAAUpD,YAAY,CAACE,IAAK,IAAKsE,SAAS,EAAM,IAAAc,0DAA4B,EAAC,EAAElD,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QAC7FsB,eAAe;QACfpD,KAAA,CAAKsB,KAAK,CAAC2D,QAAQ;QACnB1B,gBAAgB;QAChBR;QACG,CAAC;;IAEX,CAAC,CAAA/C,KAAA;;IAEO6E,WAAW,GAAG,YAAM;MAC1B,IAAI,CAAC7E,KAAA,CAAKsB,KAAK,CAACQ,QAAQ,EAAE;QACxB;QACA;QACAoD,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,YAAM;UACzC,IAAIC,wBAAW,CAACC,YAAY,EAAE;YAC5BrF,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAAd,KAAA;;IAEO+E,UAAU,GAAG,YAAM;MACzB/E,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAAd,KAAA;;IAEO2E,WAAW,GAAG,UAACY,KAAuB,EAAK;MACjD,IAAAC,YAAA,GAAuCxF,KAAA,CAAKsB,KAAK,CAAzCoD,OAAO,GAAAc,YAAA,CAAPd,OAAO,CAAE5C,QAAQ,GAAA0D,YAAA,CAAR1D,QAAQ,CAAEI,OAAO,GAAAsD,YAAA,CAAPtD,OAAO;;MAElC,IAAIJ,QAAQ,EAAE;QACZyD,KAAK,CAACE,cAAc,CAAC,CAAC;QACtBF,KAAK,CAACG,eAAe,CAAC,CAAC;MACzB;;MAEA,IAAIhB,OAAO,IAAI,CAAC5C,QAAQ,IAAI,CAACI,OAAO,EAAE;QACpCwC,OAAO,CAACa,KAAK,CAAC;MAChB;IACF,CAAC,QAAAvF,KAAA,MAAA2F,eAAA,CAAA7C,OAAA,EAAAjD,IAAA,EAAAE,gBAAA,MAAA6F,MAAA,GAAA/F,IAAA,CAAAgG,SAAA,CAAAD,MAAA,CAtJME,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,oBACEzH,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACpE,aAAA,CAAAoH,YAAY,CAACC,QAAQ,QACnB,UAACtD,KAAK,EAAK,CACVoD,MAAI,CAACpD,KAAK,GAAGoD,MAAI,CAACzE,KAAK,CAACqB,KAAK,GAAGuD,0BAAY,CAACC,MAAM,CAACJ,MAAI,CAACzE,KAAK,CAACqB,KAAK,EAAWA,KAAK,CAAC,GAAGA,KAAK,CAC7F,oBACErE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAClE,cAAA,CAAAsH,aAAa,MAAAjC,SAAA,CAAArB,OAAA,IAACuD,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACrF,QAAQ,CAAC,CAAC,GAC9DqF,MAAI,CAACnE,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,QAAA/B,IAAA,GAlC0F0G,cAAK,CAACC,SAAS,GAAAhH,KAAA,CAI5FiH,mBAAmB,GAAG,MAAM,EAAAjH,KAAA,CAC5BkH,WAAW,GAAG,MAAM,EAAAlH,KAAA,CAEpBoB,YAAY,GAAiB,EACzCqB,GAAG,EAAE,SAAS,EACdK,SAAS,EAAE7C,sBAAsB,CACnC,CAAC,EAAAD,KAAA,MAAAD,MAAA;;;AAoKH,IAAM8B,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAqB,EAA8B;EACxE,OAAOA,KAAK,CAACgB,SAAS,KAAK,GAAG;AAChC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends2","cx","resetButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","buttonOnlyProps","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","preventDefault","stopPropagation","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { DefaultizedProps } from '../../lib/createPropsGetter';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Добавляет иконку слева. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа. */\n rightIcon?: React.ReactElement;\n\n /** Задает тему ссылки. */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n\n /** @ignore */\n _button?: boolean;\n\n /** @ignore */\n _buttonOpened?: boolean;\n\n /** Задает HTML-атрибут `tabindex`. */\n tabIndex?: number;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n\n /** Задает состояние фокуса.\n * @ignore */\n focused?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, 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 getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n const buttonOnlyProps = Root === 'button' ? { disabled: nonInteractive } : {};\n\n return (\n <Root\n data-tid={LinkDataTids.root}\n {...rootProps}\n {...buttonOnlyProps}\n {...getVisualStateDataAttributes({ disabled })}\n >\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (disabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import type { AnyObject } from '../../lib/utils';
|
|
3
3
|
import type { SpinnerProps } from '../Spinner';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
5
6
|
declare const types: readonly ["mini", "normal", "big"];
|
|
6
7
|
export type LoaderType = (typeof types)[number];
|
|
7
8
|
export interface LoaderProps extends CommonProps {
|
|
@@ -33,6 +34,7 @@ export interface LoaderState {
|
|
|
33
34
|
spinnerStyle?: AnyObject;
|
|
34
35
|
}
|
|
35
36
|
export declare const LoaderDataTids: {
|
|
37
|
+
readonly idle: "Loader__Idle";
|
|
36
38
|
readonly veil: "Loader__Veil";
|
|
37
39
|
readonly spinner: "Loader__Spinner";
|
|
38
40
|
};
|
|
@@ -48,6 +50,7 @@ export declare class Loader extends React.Component<LoaderProps, LoaderState> {
|
|
|
48
50
|
static defaultProps: DefaultProps;
|
|
49
51
|
private getProps;
|
|
50
52
|
private theme;
|
|
53
|
+
getRootNode: TGetRootNode;
|
|
51
54
|
private setRootNode;
|
|
52
55
|
private spinnerContainerNode;
|
|
53
56
|
private childrenContainerNode;
|
|
@@ -64,6 +64,7 @@ var types = ['mini', 'normal', 'big'];
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
var LoaderDataTids = exports.LoaderDataTids = {
|
|
67
|
+
idle: 'Loader__Idle',
|
|
67
68
|
veil: 'Loader__Veil',
|
|
68
69
|
spinner: 'Loader__Spinner'
|
|
69
70
|
};
|
|
@@ -98,6 +99,7 @@ Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE_
|
|
|
98
99
|
|
|
99
100
|
|
|
100
101
|
|
|
102
|
+
|
|
101
103
|
|
|
102
104
|
|
|
103
105
|
function Loader(props) {var _this;
|
|
@@ -226,6 +228,9 @@ Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE_
|
|
|
226
228
|
|
|
227
229
|
|
|
228
230
|
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
|
|
229
234
|
|
|
230
235
|
|
|
231
236
|
|
|
@@ -376,4 +381,4 @@ Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE_
|
|
|
376
381
|
makeUnobservable = function () {var _this$childrenObserve;
|
|
377
382
|
(_this$childrenObserve = _this.childrenObserver) == null || _this$childrenObserve.disconnect();
|
|
378
383
|
_this.childrenObserver = null;
|
|
379
|
-
};_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.getProps().delayBeforeSpinnerShow, durationOfTask: _this.getProps().minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}(0, _inheritsLoose2.default)(Loader, _React$Component);var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {var active = this.getProps().active;this.checkSpinnerPosition();active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var component = this.props.component;var _this$getProps = this.getProps(),active = _this$getProps.active,delayBeforeSpinnerShow = _this$getProps.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$getProps.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,caption = _this$props.caption,component = _this$props.component;var type = this.getProps().type;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.loader(), "data-tid": isLoaderActive ? LoaderDataTids.veil :
|
|
384
|
+
};_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.getProps().delayBeforeSpinnerShow, durationOfTask: _this.getProps().minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}(0, _inheritsLoose2.default)(Loader, _React$Component);var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {var active = this.getProps().active;this.checkSpinnerPosition();active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var component = this.props.component;var _this$getProps = this.getProps(),active = _this$getProps.active,delayBeforeSpinnerShow = _this$getProps.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$getProps.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,caption = _this$props.caption,component = _this$props.component;var type = this.getProps().type;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.loader(), "data-tid": this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle) }, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children), isLoaderActive && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { wrapperRef: this.spinnerRef, className: (0, _Emotion.cx)((_cx = {}, _cx[_Loader2.styles.active(this.theme)] = isLoaderActive, _cx)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))));};_proto.renderSpinner = function renderSpinner(type, caption, component) {var _cx2,_this3 = this;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": LoaderDataTids.spinner, className: (0, _Emotion.cx)(_Loader2.styles.spinnerContainer(), (_cx2 = {}, _cx2[_Loader2.styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)), style: this.state.spinnerStyle }, /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.spinnerComponentWrapper(), ref: function ref(element) {_this3.spinnerNode = element;} }, component !== undefined ? component : /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: type, caption: caption })));};return Loader;}(_react.default.Component), _Loader.__KONTUR_REACT_UI__ = 'Loader', _Loader.displayName = 'Loader', _Loader.defaultProps = { type: 'normal', active: false, delayBeforeSpinnerShow: _currentEnvironment.isTestEnv ? 0 : 300, minimalDelayBeforeSpinnerHide: _currentEnvironment.isTestEnv ? 0 : 1000 }, _Loader)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером.\n * @default \"Загрузка\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","idle","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером.\n * @default \"Загрузка\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n idle: 'Loader__Idle',\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\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 private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div\n className={styles.loader()}\n data-tid={this.props['data-tid'] || (isLoaderActive ? LoaderDataTids.veil : LoaderDataTids.idle)}\n >\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|