@skbkontur/react-ui 0.0.0-6dd088a035 → 0.0.0-70dd810c5c
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 +129 -0
- package/README.md +7 -7
- package/cjs/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/cjs/components/Autocomplete/Autocomplete.js +49 -46
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +2 -0
- package/cjs/components/Button/Button.js +32 -4
- 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 +109 -76
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +2 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.js +18 -2
- package/cjs/components/Calendar/CalendarDay.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +7 -15
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +2 -0
- package/cjs/components/Center/Center.js +1 -0
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +2 -12
- package/cjs/components/Checkbox/Checkbox.js +2 -14
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +2 -0
- package/cjs/components/ComboBox/ComboBox.js +1 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +2 -2
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/cjs/components/CurrencyInput/CurrencyInput.js +5 -28
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/constants.js +1 -2
- package/cjs/components/CurrencyInput/constants.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +21 -28
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +2 -0
- package/cjs/components/DateInput/DateInput.js +20 -11
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
- package/cjs/components/DateInput/helpers/InternalDateMediator.js +10 -1
- package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +6 -33
- package/cjs/components/DatePicker/DatePicker.js +6 -60
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +61 -23
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js +13 -18
- package/cjs/components/DateRangePicker/DateRangePicker.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +4 -8
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js +17 -17
- package/cjs/components/DateRangePicker/helpers/validateDateRangePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -47
- package/cjs/components/Dropdown/Dropdown.js +2 -82
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -0
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +8 -8
- package/cjs/components/FileUploader/FileUploader.js +26 -10
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +3 -6
- package/cjs/components/FxInput/FxInput.js +2 -7
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +2 -15
- package/cjs/components/Gapped/Gapped.js +1 -24
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +1 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +5 -4
- package/cjs/components/Group/Group.js +91 -40
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.md +4 -4
- package/cjs/components/Group/Group.styles.d.ts +1 -0
- package/cjs/components/Group/Group.styles.js +12 -6
- package/cjs/components/Group/Group.styles.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +2 -0
- package/cjs/components/Hint/Hint.js +5 -4
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -0
- package/cjs/components/Input/Input.js +1 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +4 -5
- package/cjs/components/Kebab/Kebab.d.ts +2 -1
- package/cjs/components/Kebab/Kebab.js +2 -26
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +32 -32
- package/cjs/components/Link/Link.d.ts +2 -0
- package/cjs/components/Link/Link.js +6 -0
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.mixins.js +1 -2
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/Link/Link.styles.js +3 -2
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +6 -36
- package/cjs/components/Loader/Loader.js +3 -57
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/cjs/components/MaskedInput/MaskedInput.js +17 -1
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +2 -12
- package/cjs/components/MenuItem/MenuItem.js +2 -22
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +6 -6
- package/cjs/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/cjs/components/MiniModal/MiniModal.styles.js +14 -7
- package/cjs/components/MiniModal/MiniModal.styles.js.map +1 -1
- package/cjs/components/MiniModal/MiniModalBody.js +17 -2
- package/cjs/components/MiniModal/MiniModalBody.js.map +1 -1
- package/cjs/components/Modal/Modal.js +4 -2
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.d.ts +2 -1
- package/cjs/components/Modal/Modal.styles.js +40 -32
- 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/Modal/ModalSeparator.js +1 -1
- package/cjs/components/Modal/ModalSeparator.js.map +1 -1
- package/cjs/components/Paging/DotsIcon.d.ts +3 -0
- package/cjs/components/Paging/DotsIcon.js +13 -0
- package/cjs/components/Paging/DotsIcon.js.map +1 -0
- package/cjs/components/Paging/ForwardIcon.d.ts +3 -0
- package/cjs/components/Paging/ForwardIcon.js +13 -1
- package/cjs/components/Paging/ForwardIcon.js.map +1 -1
- package/cjs/components/Paging/NavigationHelper.d.ts +3 -2
- package/cjs/components/Paging/NavigationHelper.js +8 -6
- package/cjs/components/Paging/NavigationHelper.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +13 -2
- package/cjs/components/Paging/Paging.js +120 -50
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.d.ts +24 -1
- package/cjs/components/Paging/Paging.styles.js +151 -22
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/Paging/PagingHelper.d.ts +1 -1
- package/cjs/components/Paging/PagingHelper.js +18 -11
- package/cjs/components/Paging/PagingHelper.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/cjs/components/PasswordInput/PasswordInput.js +2 -11
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +2 -0
- package/cjs/components/Radio/Radio.js +1 -0
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/cjs/components/RadioGroup/RadioGroup.js +2 -1
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.styles.d.ts +1 -1
- package/cjs/components/RadioGroup/RadioGroup.styles.js +1 -1
- package/cjs/components/RadioGroup/RadioGroup.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -11
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +5 -0
- package/cjs/components/Select/Select.js +5 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.md +3 -3
- package/cjs/components/SidePage/SidePage.js +1 -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 +63 -19
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +3 -3
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +2 -18
- package/cjs/components/Spinner/Spinner.js +2 -32
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +5 -13
- package/cjs/components/Sticky/Sticky.js +12 -18
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +6 -21
- package/cjs/components/Switcher/Switcher.js +11 -20
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.styles.js +17 -9
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.d.ts +2 -0
- package/cjs/components/Tabs/Indicator.js +1 -0
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -0
- package/cjs/components/Tabs/Tab.js +1 -0
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +2 -0
- package/cjs/components/Tabs/Tabs.js +1 -0
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +2 -44
- package/cjs/components/Textarea/Textarea.js +16 -68
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.js +2 -13
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +6 -2
- package/cjs/components/Toast/Toast.js +12 -2
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +2 -14
- package/cjs/components/Toast/ToastView.js +3 -22
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +3 -10
- package/cjs/components/Toggle/Toggle.js +6 -13
- 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/Token/Token.md +0 -83
- package/cjs/components/TokenInput/TokenInput.d.ts +4 -2
- package/cjs/components/TokenInput/TokenInput.js +3 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +2 -33
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +12 -3
- package/cjs/components/TokenInput/TokenInputMenu.js +23 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +14 -9
- package/cjs/components/Tooltip/Tooltip.js +95 -13
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.md +8 -8
- 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/components/TooltipMenu/TooltipMenu.md +12 -12
- package/cjs/components/__stories__/iframe.creevey.mts +124 -0
- package/cjs/components/__stories__/iframeStoriesImplementation.js +73 -0
- package/cjs/components/__stories__/iframeStoriesImplementation.js.map +1 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/ComponentTable.js +2 -3
- package/cjs/internal/ComponentTable.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +3 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +0 -10
- package/cjs/internal/DateSelect/DateSelect.js +12 -18
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/cjs/internal/FocusTrap/FocusTrap.js +1 -0
- package/cjs/internal/FocusTrap/FocusTrap.js.map +1 -1
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +7 -3
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js +36 -13
- package/cjs/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js +1 -0
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +2 -0
- package/cjs/internal/Menu/Menu.js +1 -0
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +43 -60
- package/cjs/internal/Popup/Popup.js +41 -81
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.d.ts +23 -33
- package/cjs/internal/Popup/PopupPin.js +2 -35
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/Popup/PopupPinNew.d.ts +31 -0
- package/cjs/internal/Popup/PopupPinNew.js +180 -0
- package/cjs/internal/Popup/PopupPinNew.js.map +1 -0
- package/cjs/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js +33 -0
- package/cjs/internal/Popup/PopupPinNew.styles.js.map +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -0
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +0 -9
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/cjs/internal/RenderLayer/RenderLayer.js +3 -12
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +16 -16
- 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/ThemePlayground/SizesGroup.js +4 -4
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.js +4 -4
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +3 -3
- package/cjs/internal/ZIndex/ZIndex.js +5 -1
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js +16 -0
- package/cjs/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/cjs/internal/themes/BasicTheme.d.ts +114 -20
- package/cjs/internal/themes/BasicTheme.js +152 -19
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js +1 -1
- package/cjs/internal/themes/DarkTheme5_2.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_3.js +13 -0
- package/cjs/internal/themes/DarkTheme5_3.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_3.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_3.js +13 -0
- package/cjs/internal/themes/LightTheme5_3.js.map +1 -0
- package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
- package/cjs/lib/date/InternalDateGetter.js +8 -1
- package/cjs/lib/date/InternalDateGetter.js.map +1 -1
- package/cjs/lib/delay.mts +3 -0
- package/cjs/lib/events/keyListener.d.ts +7 -0
- package/cjs/lib/events/keyListener.js +21 -2
- package/cjs/lib/events/keyListener.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +9 -2
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +9 -2
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +16 -2
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +1 -1
- package/cjs/lib/forwardRefAndName.js +0 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/getMenuPositions.d.ts +21 -1
- package/cjs/lib/getMenuPositions.js +45 -8
- package/cjs/lib/getMenuPositions.js.map +1 -1
- package/cjs/lib/globalObject.d.ts +18 -0
- package/cjs/lib/globalObject.js +45 -0
- package/cjs/lib/globalObject.js.map +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +1 -0
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/theming/ThemeVersions.d.ts +1 -1
- package/cjs/lib/theming/ThemeVersions.js.map +1 -1
- package/cjs/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/DarkTheme.js +4 -2
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +1 -0
- package/cjs/lib/theming/themes/LightTheme.js +4 -2
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -0
- package/cjs/lib/utils.js +5 -1
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +49 -45
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +6 -23
- package/components/Button/Button/Button.js +29 -7
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +2 -0
- package/components/Button/Button.styles/Button.styles.js +79 -61
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +6 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +2 -0
- package/components/Calendar/CalendarDay/CalendarDay.js +9 -2
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +6 -10
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +2 -0
- package/components/Checkbox/Checkbox/Checkbox.js +0 -11
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +2 -12
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +2 -0
- package/components/ComboBox/ComboBox.md +2 -2
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +12 -36
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +6 -24
- package/components/CurrencyInput/constants/constants.js +0 -1
- package/components/CurrencyInput/constants/constants.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +10 -22
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/DateInput/DateInput/DateInput.js +14 -11
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +2 -0
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +2 -2
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator.d.ts +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +1 -32
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +6 -33
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +41 -22
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +3 -1
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js +12 -15
- package/components/DateRangePicker/DateRangePicker.styles/DateRangePicker.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.styles.d.ts +0 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +5 -8
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js +16 -15
- package/components/DateRangePicker/helpers/validateDateRangePicker/validateDateRangePicker.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +1 -47
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -47
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +4 -2
- package/components/DropdownMenu/DropdownMenu.md +8 -8
- package/components/FileUploader/FileUploader/FileUploader.js +19 -8
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FxInput/FxInput/FxInput.js +1 -5
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +3 -6
- package/components/Gapped/Gapped/Gapped.js +1 -15
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +2 -15
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +2 -0
- package/components/Group/Group/Group.js +64 -28
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +5 -4
- package/components/Group/Group.md +4 -4
- package/components/Group/Group.styles/Group.styles.js +9 -6
- package/components/Group/Group.styles/Group.styles.js.map +1 -1
- package/components/Group/Group.styles.d.ts +1 -0
- package/components/Hint/Hint/Hint.js +5 -5
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +2 -0
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -0
- package/components/Input/Input.md +4 -5
- package/components/Kebab/Kebab/Kebab.js +2 -20
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -1
- package/components/Kebab/Kebab.md +32 -32
- package/components/Link/Link/Link.js +4 -0
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -0
- package/components/Link/Link.mixins/Link.mixins.js +1 -1
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/Link/Link.styles/Link.styles.js +1 -1
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Loader/Loader/Loader.js +0 -33
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +6 -36
- package/components/MaskedInput/MaskedInput/MaskedInput.js +14 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -12
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +2 -12
- package/components/MenuItem/MenuItem.md +6 -6
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js +10 -7
- package/components/MiniModal/MiniModal.styles/MiniModal.styles.js.map +1 -1
- package/components/MiniModal/MiniModal.styles.d.ts +1 -0
- package/components/MiniModal/MiniModalBody/MiniModalBody.js +13 -5
- package/components/MiniModal/MiniModalBody/MiniModalBody.js.map +1 -1
- package/components/Modal/Modal/Modal.js +3 -1
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.styles/Modal.styles.js +32 -29
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +2 -1
- 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/Modal/ModalSeparator/ModalSeparator.js +1 -1
- package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
- package/components/Paging/DotsIcon/DotsIcon.js +14 -0
- package/components/Paging/DotsIcon/DotsIcon.js.map +1 -0
- package/components/Paging/DotsIcon/package.json +6 -0
- package/components/Paging/DotsIcon.d.ts +3 -0
- package/components/Paging/ForwardIcon/ForwardIcon.js +15 -1
- package/components/Paging/ForwardIcon/ForwardIcon.js.map +1 -1
- package/components/Paging/ForwardIcon.d.ts +3 -0
- package/components/Paging/NavigationHelper/NavigationHelper.js +9 -8
- package/components/Paging/NavigationHelper/NavigationHelper.js.map +1 -1
- package/components/Paging/NavigationHelper.d.ts +3 -2
- package/components/Paging/Paging/Paging.js +96 -47
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +13 -2
- package/components/Paging/Paging.styles/Paging.styles.js +77 -16
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/Paging/Paging.styles.d.ts +24 -1
- package/components/Paging/PagingHelper/PagingHelper.js +16 -8
- package/components/Paging/PagingHelper/PagingHelper.js.map +1 -1
- package/components/Paging/PagingHelper.d.ts +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +1 -7
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +2 -7
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +2 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -0
- package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js +1 -1
- package/components/RadioGroup/RadioGroup.styles/RadioGroup.styles.js.map +1 -1
- package/components/RadioGroup/RadioGroup.styles.d.ts +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -9
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +2 -9
- package/components/Select/Select/Select.js +3 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +5 -0
- package/components/Select/Select.md +3 -3
- package/components/SidePage/SidePage/SidePage.js +1 -1
- 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 +62 -35
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +12 -2
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +3 -3
- package/components/Spinner/Spinner/Spinner.js +1 -18
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +2 -18
- package/components/Sticky/Sticky/Sticky.js +10 -14
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +5 -13
- package/components/Switcher/Switcher/Switcher.js +19 -16
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +6 -21
- package/components/Switcher/Switcher.styles/Switcher.styles.js +12 -9
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Indicator.d.ts +2 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -0
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +2 -0
- package/components/Textarea/Textarea/Textarea.js +10 -51
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +2 -44
- package/components/Textarea/TextareaCounter/TextareaCounter.js +1 -11
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Toast/Toast/Toast.js +6 -8
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +6 -2
- package/components/Toast/ToastView/ToastView.js +3 -17
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +2 -14
- package/components/Toggle/Toggle/Toggle.js +7 -14
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +3 -10
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -0
- package/components/Token/Token.md +0 -83
- package/components/TokenInput/TokenInput/TokenInput.js +2 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +4 -2
- package/components/TokenInput/TokenInput.md +2 -33
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +16 -6
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +12 -3
- package/components/Tooltip/Tooltip/Tooltip.js +67 -20
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +14 -9
- package/components/Tooltip/Tooltip.md +8 -8
- 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/components/TooltipMenu/TooltipMenu.md +12 -12
- package/components/__stories__/iframe.creevey.mts +124 -0
- package/components/__stories__/iframeStoriesImplementation/iframeStoriesImplementation.js +90 -0
- package/components/__stories__/iframeStoriesImplementation/iframeStoriesImplementation.js.map +1 -0
- package/components/__stories__/iframeStoriesImplementation/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +2 -0
- package/internal/ComponentTable/ComponentTable.js +0 -2
- package/internal/ComponentTable/ComponentTable.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +2 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +2 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +3 -10
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +0 -10
- package/internal/FocusTrap/FocusTrap/FocusTrap.js.map +1 -1
- package/internal/FocusTrap/FocusTrap.d.ts +2 -0
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js +46 -17
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll/HideBodyVerticalScroll.js.map +1 -1
- package/internal/HideBodyVerticalScroll/HideBodyVerticalScroll.d.ts +7 -3
- package/internal/IgnoreLayerClick/IgnoreLayerClick/IgnoreLayerClick.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +2 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -0
- package/internal/Popup/Popup/Popup.js +23 -69
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +43 -60
- package/internal/Popup/PopupPin/PopupPin.js +1 -34
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/Popup/PopupPin.d.ts +23 -33
- package/internal/Popup/PopupPinNew/PopupPinNew.js +146 -0
- package/internal/Popup/PopupPinNew/PopupPinNew.js.map +1 -0
- package/internal/Popup/PopupPinNew/package.json +6 -0
- package/internal/Popup/PopupPinNew.d.ts +31 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js +20 -0
- package/internal/Popup/PopupPinNew.styles/PopupPinNew.styles.js.map +1 -0
- package/internal/Popup/PopupPinNew.styles/package.json +6 -0
- package/internal/Popup/PopupPinNew.styles.d.ts +7 -0
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +2 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +0 -8
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +0 -6
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +3 -11
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -3
- package/internal/ThemePlayground/Playground/Playground.js +17 -16
- 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/ThemePlayground/SizesGroup/SizesGroup.js +4 -4
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +2 -2
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/VariableValue/VariableValue.js +4 -4
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +8 -10
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +3 -3
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js +21 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/UiMenuDots3HIcon16Regular.js.map +1 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular/package.json +6 -0
- package/internal/icons2022/UiMenuDots3HIcon/UiMenuDots3HIcon16Regular.d.ts +2 -0
- package/internal/themes/BasicTheme/BasicTheme.js +172 -26
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +114 -20
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js +3 -3
- package/internal/themes/DarkTheme5_2/DarkTheme5_2.js.map +1 -1
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js +16 -0
- package/internal/themes/DarkTheme5_3/DarkTheme5_3.js.map +1 -0
- package/internal/themes/DarkTheme5_3/package.json +6 -0
- package/internal/themes/DarkTheme5_3.d.ts +1 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js +16 -0
- package/internal/themes/LightTheme5_3/LightTheme5_3.js.map +1 -0
- package/internal/themes/LightTheme5_3/package.json +6 -0
- package/internal/themes/LightTheme5_3.d.ts +1 -0
- package/lib/date/InternalDateGetter/InternalDateGetter.js +4 -1
- package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
- package/lib/date/InternalDateGetter.d.ts +1 -1
- package/lib/delay.d.mts +1 -0
- package/lib/delay.mts +3 -0
- package/lib/events/keyListener/keyListener.js +17 -1
- package/lib/events/keyListener/keyListener.js.map +1 -1
- package/lib/events/keyListener.d.ts +7 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +9 -2
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +9 -2
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +9 -2
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +1 -1
- package/lib/getMenuPositions/getMenuPositions.js +33 -4
- package/lib/getMenuPositions/getMenuPositions.js.map +1 -1
- package/lib/getMenuPositions.d.ts +21 -1
- package/lib/globalObject/globalObject.js +20 -0
- package/lib/globalObject/globalObject.js.map +1 -0
- package/lib/globalObject/package.json +6 -0
- package/lib/globalObject.d.ts +18 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +2 -1
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -1
- package/lib/theming/ThemeVersions.d.ts +1 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js +3 -1
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +1 -0
- package/lib/theming/themes/LightTheme/LightTheme.js +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +1 -0
- package/lib/utils/utils.js +2 -0
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -0
- package/package.json +16 -18
- package/cjs/lib/SSRSafe.d.ts +0 -2
- package/cjs/lib/SSRSafe.js +0 -5
- package/cjs/lib/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/SSRSafe.js +0 -4
- package/lib/SSRSafe/SSRSafe.js.map +0 -1
- package/lib/SSRSafe/package.json +0 -6
- package/lib/SSRSafe.d.ts +0 -2
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.TextareaDataTids = exports.Textarea = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
2
2
|
var _react = _interopRequireDefault(require("react"));
|
|
3
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
4
3
|
var _lodash = _interopRequireDefault(require("lodash.throttle"));
|
|
5
|
-
var _globalObject = require("@skbkontur/global-object");
|
|
6
4
|
|
|
5
|
+
var _globalObject = require("../../lib/globalObject");
|
|
7
6
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
8
7
|
var _needsPolyfillPlaceholder = require("../../lib/needsPolyfillPlaceholder");
|
|
9
8
|
var LayoutEvents = _interopRequireWildcard(require("../../lib/LayoutEvents"));
|
|
@@ -128,60 +127,6 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
128
127
|
|
|
129
128
|
|
|
130
129
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
130
|
getProps = (0, _createPropsGetter.createPropsGetter)(Textarea.defaultProps);_this.
|
|
186
131
|
|
|
187
132
|
|
|
@@ -219,14 +164,17 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
219
164
|
};_this.
|
|
220
165
|
|
|
221
166
|
|
|
222
|
-
selectAllId = null;
|
|
167
|
+
selectAllId = null;
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
|
|
223
174
|
|
|
224
175
|
|
|
225
176
|
|
|
226
177
|
|
|
227
|
-
textareaObserver = _globalObject.globalObject.MutationObserver ?
|
|
228
|
-
new _globalObject.globalObject.MutationObserver(_this.reflowCounter) :
|
|
229
|
-
null;
|
|
230
178
|
|
|
231
179
|
|
|
232
180
|
|
|
@@ -310,12 +258,12 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
310
258
|
* @param {number} start
|
|
311
259
|
* @param {number} end
|
|
312
260
|
*/_this.
|
|
313
|
-
setSelectionRange = function (start, end) {var
|
|
261
|
+
setSelectionRange = function (start, end) {var _getOwnerGlobalObject;
|
|
314
262
|
if (!_this.node) {
|
|
315
263
|
throw new Error('Cannot call "setSelectionRange" on unmounted Input');
|
|
316
264
|
}
|
|
317
265
|
|
|
318
|
-
if (((
|
|
266
|
+
if (((_getOwnerGlobalObject = (0, _globalObject.getOwnerGlobalObject)(_this.node).document) == null ? void 0 : _getOwnerGlobalObject.activeElement) !== _this.node) {
|
|
319
267
|
_this.focus();
|
|
320
268
|
}
|
|
321
269
|
|
|
@@ -331,12 +279,12 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
331
279
|
}
|
|
332
280
|
};_this.
|
|
333
281
|
|
|
334
|
-
delaySelectAll = function () {var
|
|
335
|
-
_this.selectAllId = (
|
|
282
|
+
delaySelectAll = function () {var _getOwnerGlobalObject2, _getOwnerGlobalObject3, _getOwnerGlobalObject4;return (
|
|
283
|
+
_this.selectAllId = (_getOwnerGlobalObject2 = (_getOwnerGlobalObject3 = (_getOwnerGlobalObject4 = (0, _globalObject.getOwnerGlobalObject)()).requestAnimationFrame) == null ? void 0 : _getOwnerGlobalObject3.call(_getOwnerGlobalObject4, _this.selectAll)) != null ? _getOwnerGlobalObject2 : null);};_this.
|
|
336
284
|
|
|
337
285
|
cancelDelayedSelectAll = function () {
|
|
338
|
-
if (_this.selectAllId) {
|
|
339
|
-
_globalObject.
|
|
286
|
+
if (_this.selectAllId) {var _getOwnerGlobalObject5, _getOwnerGlobalObject6;
|
|
287
|
+
(_getOwnerGlobalObject5 = (_getOwnerGlobalObject6 = (0, _globalObject.getOwnerGlobalObject)()).cancelAnimationFrame) == null || _getOwnerGlobalObject5.call(_getOwnerGlobalObject6, _this.selectAllId);
|
|
340
288
|
_this.selectAllId = null;
|
|
341
289
|
}
|
|
342
290
|
};_this.
|
|
@@ -582,8 +530,8 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (_Textarea = /*#_
|
|
|
582
530
|
}
|
|
583
531
|
};return _this;}(0, _inheritsLoose2.default)(Textarea, _React$Component);var _proto = Textarea.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.rootLarge(this.theme);case 'medium':return _Textarea2.styles.rootMedium(this.theme);case 'small':default:return _Textarea2.styles.rootSmall(this.theme);}};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.getProps().size) {case 'large':return _Textarea2.styles.textareaLarge(this.theme);case 'medium':return _Textarea2.styles.textareaMedium(this.theme);case 'small':default:return _Textarea2.styles.textareaSmall(this.theme);}};_proto.getAutoResizeThrottleWait = function getAutoResizeThrottleWait(props) {if (props === void 0) {props = this.props;} // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты
|
|
584
532
|
// Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120
|
|
585
|
-
return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref3 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref3.disableAnimations,extraRow = _ref3.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}var _this$getProps2 = this.getProps(),rows = _this$getProps2.rows,maxRows = _this$getProps2.maxRows;if (this.props.autoResize && (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_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(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});} /**
|
|
533
|
+
return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref3 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref3.disableAnimations,extraRow = _ref3.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {var globalObject = (0, _globalObject.getOwnerGlobalObject)(this.node);this.textareaObserver = globalObject.MutationObserver ? new globalObject.MutationObserver(this.reflowCounter) : null;if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}var _this$getProps2 = this.getProps(),rows = _this$getProps2.rows,maxRows = _this$getProps2.maxRows;if (this.props.autoResize && (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_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(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});} /**
|
|
586
534
|
* @public
|
|
587
535
|
*/;_proto.focus = function focus() {if (this.node) {this.node.focus();}} /**
|
|
588
536
|
* @public
|
|
589
|
-
*/;_proto.blur = function blur() {if (this.node) {this.node.blur();}};return Textarea;}(_react.default.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.
|
|
537
|
+
*/;_proto.blur = function blur() {if (this.node) {this.node.blur();}};return Textarea;}(_react.default.Component), _Textarea.__KONTUR_REACT_UI__ = 'Textarea', _Textarea.displayName = 'Textarea', _Textarea.defaultProps = { rows: 3, maxRows: 15, extraRow: true, size: 'small', disableAnimations: _currentEnvironment.isTestEnv }, _Textarea)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","exports","root","counter","helpIcon","Textarea","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","MutationObserver","setSelectionRange","start","end","_globalObject$documen","node","Error","document","activeElement","focus","selectAll","value","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\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';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","exports","root","counter","helpIcon","Textarea","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","setSelectionRange","start","end","_getOwnerGlobalObject","node","Error","getOwnerGlobalObject","document","activeElement","focus","selectAll","value","delaySelectAll","_getOwnerGlobalObject2","_getOwnerGlobalObject3","_getOwnerGlobalObject4","requestAnimationFrame","cancelDelayedSelectAll","_getOwnerGlobalObject5","_getOwnerGlobalObject6","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","fakeNode","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","globalObject","textareaObserver","MutationObserver","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\n\nimport { getOwnerGlobalObject } from '../../lib/globalObject';\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\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';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations' | 'size'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n@rootNode\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n size: 'small',\n disableAnimations: isTestEnv,\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver: Nullable<MutationObserver>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n const globalObject = getOwnerGlobalObject(this.node);\n this.textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (getOwnerGlobalObject(this.node).document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = getOwnerGlobalObject().requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n getOwnerGlobalObject().cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.getProps().size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.TextareaCounter = void 0;
|
|
2
2
|
var _react = _interopRequireWildcard(require("react"));
|
|
3
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
4
|
-
var _globalObject = require("@skbkontur/global-object");
|
|
5
3
|
|
|
6
|
-
var _SSRSafe = require("../../lib/SSRSafe");
|
|
7
4
|
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
8
5
|
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
9
6
|
var _utils = require("../../lib/utils");
|
|
@@ -91,12 +88,4 @@ var TextareaCounter = exports.TextareaCounter = (0, _forwardRefAndName.forwardRe
|
|
|
91
88
|
));
|
|
92
89
|
|
|
93
90
|
}
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
TextareaCounter.propTypes = {
|
|
97
|
-
length: _propTypes.default.number.isRequired,
|
|
98
|
-
value: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]),
|
|
99
|
-
help: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),
|
|
100
|
-
onCloseHelp: _propTypes.default.func.isRequired,
|
|
101
|
-
textarea: (0, _SSRSafe.safePropTypesInstanceOf)(_globalObject.globalObject.HTMLTextAreaElement).isRequired
|
|
102
|
-
};
|
|
91
|
+
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_ThemeContext","_utils","_Tooltip","_Emotion","_QuestionCircleIcon16Solid","_Textarea","_Textarea2","handleHelpMouseDown","e","preventDefault","TextareaCounter","exports","forwardRefAndName","_ref","ref","_cx","length","value","help","onCloseHelp","textarea","size","theme","useContext","ThemeContext","_useState","useState","clientWidth","width","setWidth","_useState2","clientHeight","height","setHeight","reflow","useCallback","useImperativeHandle","renderTooltipContent","textareaValue","toString","counterValue","helpIconProps","onMouseDown","color","textareaCounterHelpIconColor","TextareaDataTids","helpIcon","default","createElement","QuestionCircleIcon16Solid","counterHelp","isFunction","Tooltip","pos","trigger","render","onCloseClick","getCounterSizeClassName","styles","counterLarge","counterMedium","counterSmall","counter","className","cx","counterContainer","style","counterError"],"sources":["TextareaCounter.tsx"],"sourcesContent":["import type { SyntheticEvent } from 'react';\nimport React, { useContext, useCallback, useImperativeHandle, useState } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isFunction } from '../../lib/utils';\nimport { Tooltip } from '../Tooltip';\nimport { cx } from '../../lib/theming/Emotion';\nimport { QuestionCircleIcon16Solid } from '../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Solid';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport type { TextareaProps } from './Textarea';\nimport { TextareaDataTids } from './Textarea';\nimport { styles } from './Textarea.styles';\n\nexport interface TextareaCounterProps {\n value: TextareaProps['value'];\n length: number;\n help: TextareaProps['counterHelp'];\n onCloseHelp: () => void;\n textarea: HTMLTextAreaElement;\n size: SizeProp;\n}\n\nexport interface TextareaCounterRef {\n reflow: () => void;\n}\n\nconst handleHelpMouseDown = (e: SyntheticEvent) => e.preventDefault();\n\nexport const TextareaCounter = forwardRefAndName<TextareaCounterRef, TextareaCounterProps>(\n 'TextareaCounter',\n ({ length, value, help, onCloseHelp, textarea, size }, ref) => {\n const theme = useContext(ThemeContext);\n const [width, setWidth] = useState(textarea.clientWidth);\n const [height, setHeight] = useState(textarea.clientHeight);\n const reflow = useCallback(() => {\n const { clientWidth, clientHeight } = textarea;\n setWidth(clientWidth);\n setHeight(clientHeight);\n }, [textarea]);\n useImperativeHandle(ref, () => ({ reflow }), [reflow]);\n const renderTooltipContent = useCallback(() => {\n if (typeof help === 'function') {\n return help();\n }\n return help;\n }, [help]);\n const textareaValue = value ? value.toString().length : 0;\n const counterValue = length - textareaValue;\n\n const helpIconProps = {\n onMouseDown: handleHelpMouseDown,\n color: theme.textareaCounterHelpIconColor,\n 'data-tid': TextareaDataTids.helpIcon,\n };\n const helpIcon = <QuestionCircleIcon16Solid {...helpIconProps} />;\n const counterHelp = isFunction(help) ? (\n help()\n ) : (\n <Tooltip pos={'right bottom'} trigger={'click'} render={renderTooltipContent} onCloseClick={onCloseHelp}>\n {helpIcon}\n </Tooltip>\n );\n\n const getCounterSizeClassName = () => {\n switch (size) {\n case 'large':\n return styles.counterLarge(theme);\n case 'medium':\n return styles.counterMedium(theme);\n case 'small':\n default:\n return styles.counterSmall(theme);\n }\n };\n\n return (\n <div data-tid={TextareaDataTids.counter} className={cx(styles.counterContainer(theme))} style={{ width, height }}>\n <span\n className={cx(getCounterSizeClassName(), styles.counter(theme), {\n [styles.counterError(theme)]: counterValue < 0,\n })}\n >\n {counterValue}\n {help && <span className={styles.counterHelp()}>{counterHelp}</span>}\n </span>\n </div>\n );\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,6 +3,7 @@ import React from 'react';
|
|
|
3
3
|
import type { ThemeIn } from '../../lib/theming/Theme';
|
|
4
4
|
import type { Nullable } from '../../typings/utility-types';
|
|
5
5
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
6
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
7
|
import { ToastView } from './ToastView';
|
|
7
8
|
export interface Action {
|
|
8
9
|
label: string;
|
|
@@ -24,6 +25,8 @@ export interface ToastProps extends Pick<AriaAttributes, 'aria-label'>, CommonPr
|
|
|
24
25
|
/** Задает объект с переменными темы. Он будет объединён с темой из контекста. */
|
|
25
26
|
theme?: ThemeIn;
|
|
26
27
|
}
|
|
28
|
+
export type ToastPush = (notification: React.ReactNode, action?: Nullable<Action>, showTime?: number, showCloseIcon?: boolean) => void;
|
|
29
|
+
export type ToastClose = () => void;
|
|
27
30
|
export declare const ToastDataTids: {
|
|
28
31
|
readonly toastStatic: "StaticToast";
|
|
29
32
|
readonly toastView: "ToastView__root";
|
|
@@ -42,12 +45,13 @@ export declare const ToastDataTids: {
|
|
|
42
45
|
export declare class Toast extends React.Component<ToastProps, ToastState> {
|
|
43
46
|
static __KONTUR_REACT_UI__: string;
|
|
44
47
|
static displayName: string;
|
|
48
|
+
getRootNode: TGetRootNode;
|
|
45
49
|
private setRootNode;
|
|
46
50
|
private theme;
|
|
47
51
|
/** @deprecated use `push` method in ref or `SingleToast.push` */
|
|
48
|
-
static push
|
|
52
|
+
static push: ToastPush;
|
|
49
53
|
/** @deprecated use `close` method in ref or `SingleToast.close` */
|
|
50
|
-
static close
|
|
54
|
+
static close: ToastClose;
|
|
51
55
|
_toast: Nullable<ToastView>;
|
|
52
56
|
private _timeout;
|
|
53
57
|
private rootRef;
|
|
@@ -35,6 +35,15 @@ var _ToastStatic = require("./ToastStatic");var _class, _Toast;
|
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
38
47
|
|
|
39
48
|
|
|
40
49
|
|
|
@@ -86,6 +95,7 @@ Toast = exports.Toast = (0, _rootNode.rootNode)(_class = (_Toast = /*#__PURE__*/
|
|
|
86
95
|
|
|
87
96
|
|
|
88
97
|
|
|
98
|
+
|
|
89
99
|
|
|
90
100
|
|
|
91
101
|
function Toast(props) {var _this;
|
|
@@ -215,7 +225,7 @@ Toast = exports.Toast = (0, _rootNode.rootNode)(_class = (_Toast = /*#__PURE__*/
|
|
|
215
225
|
|
|
216
226
|
_refToast = function (element) {
|
|
217
227
|
_this._toast = element;
|
|
218
|
-
};_this.state = { notification: null, action: null, id: 0, showTime: null, showCloseIcon: false };return _this;}(0, _inheritsLoose2.default)(Toast, _React$Component);
|
|
228
|
+
};_this.state = { notification: null, action: null, id: 0, showTime: null, showCloseIcon: false };return _this;}(0, _inheritsLoose2.default)(Toast, _React$Component);var _proto = Toast.prototype;_proto.componentWillUnmount = function componentWillUnmount() {this._clearTimer();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = _this2.props.theme ? _ThemeFactory.ThemeFactory.create(_this2.props.theme, theme) : theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, /*#__PURE__*/_react.default.createElement(_RenderContainer.RenderContainer, null, /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.TransitionGroup, null, _this2._renderToast())));});} /**
|
|
219
229
|
* Показывает тост с `notification` в качестве сообщения.
|
|
220
230
|
* Тост автоматически скрывается через 3 или 7 секунд,
|
|
221
231
|
* в зависимости от наличия у него кнопки `action`.
|
|
@@ -227,4 +237,4 @@ Toast = exports.Toast = (0, _rootNode.rootNode)(_class = (_Toast = /*#__PURE__*/
|
|
|
227
237
|
* добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler
|
|
228
238
|
* @param {number} showTime Время существования Toast в миллисекундах
|
|
229
239
|
* @param {boolean} showCloseIcon Добавляет крестик для закрытия тоста. При указывании action в onPush крестик отображается всегда.
|
|
230
|
-
*/;_proto.push = function push(notification, action, showTime, showCloseIcon) {if (this.state.notification) {this.close();}safelyCall(this.props.onPush, notification, action);this.setState(function (_ref) {var id = _ref.id;return { notification: notification, action: action, id: id + 1, showTime: showTime, showCloseIcon: showCloseIcon };}, this._setTimer);};_proto._renderToast = function _renderToast() {var _this$state = this.state,notification = _this$state.notification,action = _this$state.action,id = _this$state.id,showCloseIcon = _this$state.showCloseIcon;if (!notification) {return null;}var toastProps = { onMouseEnter: this._clearTimer, onMouseLeave: this._setTimer, onClose: this.close, children: notification, 'aria-label': this.props['aria-label'], action: action, showCloseIcon: showCloseIcon };return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { key: id, classNames: { enter: _Toast2.styles.enter(), enterActive: _Toast2.styles.enterActive(), exit: _Toast2.styles.exit(), exitActive: _Toast2.styles.exitActive() }, timeout: { enter: 200, exit: 150 }, enter: !_currentEnvironment.isTestEnv, exit: !_currentEnvironment.isTestEnv, nodeRef: this.rootRef }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootRef }, this.props), /*#__PURE__*/_react.default.createElement(_ToastView.ToastView, (0, _extends2.default)({ ref: this._refToast }, toastProps))));};return Toast;}(_react.default.Component), _Toast.__KONTUR_REACT_UI__ = 'Toast', _Toast.displayName = 'Toast', _Toast)) || _class;function safelyCall(fn) {if (fn) {for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}fn.apply(void 0, args);}}
|
|
240
|
+
*/;_proto.push = function push(notification, action, showTime, showCloseIcon) {if (this.state.notification) {this.close();}safelyCall(this.props.onPush, notification, action);this.setState(function (_ref) {var id = _ref.id;return { notification: notification, action: action, id: id + 1, showTime: showTime, showCloseIcon: showCloseIcon };}, this._setTimer);};_proto._renderToast = function _renderToast() {var _this$state = this.state,notification = _this$state.notification,action = _this$state.action,id = _this$state.id,showCloseIcon = _this$state.showCloseIcon;if (!notification) {return null;}var toastProps = { onMouseEnter: this._clearTimer, onMouseLeave: this._setTimer, onClose: this.close, children: notification, 'aria-label': this.props['aria-label'], action: action, showCloseIcon: showCloseIcon };return /*#__PURE__*/_react.default.createElement(_reactTransitionGroup.CSSTransition, { key: id, classNames: { enter: _Toast2.styles.enter(), enterActive: _Toast2.styles.enterActive(), exit: _Toast2.styles.exit(), exitActive: _Toast2.styles.exitActive() }, timeout: { enter: 200, exit: 150 }, enter: !_currentEnvironment.isTestEnv, exit: !_currentEnvironment.isTestEnv, nodeRef: this.rootRef }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootRef }, this.props), /*#__PURE__*/_react.default.createElement(_ToastView.ToastView, (0, _extends2.default)({ ref: this._refToast }, toastProps))));};return Toast;}(_react.default.Component), _Toast.__KONTUR_REACT_UI__ = 'Toast', _Toast.displayName = 'Toast', _Toast.push = function (notification, action, showTime, showCloseIcon) {_ToastStatic.ToastStatic.push(notification, action, showTime, showCloseIcon);}, _Toast.close = function () {_ToastStatic.ToastStatic.close();}, _Toast)) || _class;function safelyCall(fn) {if (fn) {for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {args[_key - 1] = arguments[_key];}fn.apply(void 0, args);}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_globalObject","_ThemeFactory","_ThemeContext","_RenderContainer","_CommonWrapper","_currentEnvironment","_rootNode","_Toast2","_ToastView","_ToastStatic","_class","_Toast","ToastDataTids","exports","toastStatic","toastView","action","close","Toast","rootNode","_React$Component","props","_this","call","rootRef","React","createRef","safelyCall","onClose","state","notification","setState","setRootRef","element","setRootNode","current","_clearTimer","_timeout","globalObject","clearTimeout","_setTimer","_this$state$showTime","showTime","setTimeout","_refToast","_toast","id","showCloseIcon","_inheritsLoose2","default","push","ToastStatic","_proto","prototype","componentWillUnmount","render","_this2","createElement","ThemeContext","Consumer","theme","ThemeFactory","create","Provider","value","RenderContainer","TransitionGroup","_renderToast","onPush","_ref","_this$state","toastProps","onMouseEnter","onMouseLeave","children","CSSTransition","key","classNames","enter","styles","enterActive","exit","exitActive","timeout","isTestEnv","nodeRef","CommonWrapper","_extends2","rootNodeRef","ToastView","ref","Component","__KONTUR_REACT_UI__","displayName","fn","_len","arguments","length","args","Array","_key","apply"],"sources":["Toast.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './Toast.styles';\nimport type { ToastViewProps } from './ToastView';\nimport { ToastView } from './ToastView';\nimport { ToastStatic } from './ToastStatic';\n\nexport interface Action {\n label: string;\n handler: () => void;\n 'aria-label'?: string;\n}\n\nexport interface ToastState {\n notification: Nullable<React.ReactNode>;\n action: Nullable<Action>;\n id: number;\n showTime: Nullable<number>;\n showCloseIcon?: boolean;\n}\n\nexport interface ToastProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Задает функцию, которая вызывается при возникновении тоста. */\n onPush?: (notification: string, action?: Action) => void;\n\n /** Задает функцию, которая вызывается при закрытии тоста. */\n onClose?: (notification: string, action?: Action) => void;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n}\n\nexport const ToastDataTids = {\n toastStatic: 'StaticToast',\n toastView: 'ToastView__root',\n action: 'ToastView__action',\n close: 'ToastView__close',\n} as const;\n\n/**\n * `Toast` — это короткое немодальное уведомление, которое сообщает пользователю о результате выполнения его команды.\n * Результат может быть положительным, отрицательным или нейтральным.\n *\n * Доступен статический метод: `Toast.push(notification, action?, showTime?)`.\n * Однако, при его использовании не работает кастомизация, они не поддерживаются в `React@18`, а также могут быть проблемы с перекрытием уведомления другими элементами страницы.\n *\n * Для статических тостов рекомендуется использовать компонент SingleToast - в нём исправлены эти проблемы.\n */\n@rootNode\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n public static displayName = 'Toast';\n\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n /** @deprecated use `push` method in ref or `SingleToast.push` */\n public static push(\n notification: React.ReactNode,\n action?: Nullable<Action>,\n showTime?: number,\n showCloseIcon?: boolean,\n ) {\n ToastStatic.push(notification, action, showTime, showCloseIcon);\n }\n\n /** @deprecated use `close` method in ref or `SingleToast.close` */\n public static close() {\n ToastStatic.close();\n }\n\n public _toast: Nullable<ToastView>;\n private _timeout: SafeTimer;\n private rootRef = React.createRef<HTMLElement>();\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n showTime: null,\n showCloseIcon: false,\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render() {\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 <ThemeContext.Provider value={this.theme}>\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action`.\n * Время показа можно задать вручную, передав `showTime`.\n *\n * @public\n * @param {React.ReactNode} notification\n * @param {Action} action `action` опциональный параметр формата `{ label: React.ReactNode, handler: function }`\n * добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler\n * @param {number} showTime Время существования Toast в миллисекундах\n * @param {boolean} showCloseIcon Добавляет крестик для закрытия тоста. При указывании action в onPush крестик отображается всегда.\n */\n public push(notification: React.ReactNode, action?: Nullable<Action>, showTime?: number, showCloseIcon?: boolean) {\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, action);\n\n this.setState(({ id }) => ({ notification, action, id: id + 1, showTime, showCloseIcon }), this._setTimer);\n }\n\n /**\n * @public\n */\n public close = () => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id, showCloseIcon } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n 'aria-label': this.props['aria-label'],\n action,\n showCloseIcon,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: styles.enter(),\n enterActive: styles.enterActive(),\n exit: styles.exit(),\n exitActive: styles.exitActive(),\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n nodeRef={this.rootRef}\n >\n <CommonWrapper rootNodeRef={this.setRootRef} {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private setRootRef = (element: Nullable<Element>) => {\n this.setRootNode(element);\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n this.rootRef.current = element;\n };\n\n private _clearTimer = () => {\n if (this._timeout) {\n globalObject.clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n let showTime = this.state.action ? 7000 : 3000;\n showTime = this.state.showTime ?? showTime;\n this._timeout = globalObject.setTimeout(this.close, showTime);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_globalObject","_ThemeFactory","_ThemeContext","_RenderContainer","_CommonWrapper","_currentEnvironment","_rootNode","_Toast2","_ToastView","_ToastStatic","_class","_Toast","ToastDataTids","exports","toastStatic","toastView","action","close","Toast","rootNode","_React$Component","props","_this","call","rootRef","React","createRef","safelyCall","onClose","state","notification","setState","setRootRef","element","setRootNode","current","_clearTimer","_timeout","globalObject","clearTimeout","_setTimer","_this$state$showTime","showTime","setTimeout","_refToast","_toast","id","showCloseIcon","_inheritsLoose2","default","_proto","prototype","componentWillUnmount","render","_this2","createElement","ThemeContext","Consumer","theme","ThemeFactory","create","Provider","value","RenderContainer","TransitionGroup","_renderToast","push","onPush","_ref","_this$state","toastProps","onMouseEnter","onMouseLeave","children","CSSTransition","key","classNames","enter","styles","enterActive","exit","exitActive","timeout","isTestEnv","nodeRef","CommonWrapper","_extends2","rootNodeRef","ToastView","ref","Component","__KONTUR_REACT_UI__","displayName","ToastStatic","fn","_len","arguments","length","args","Array","_key","apply"],"sources":["Toast.tsx"],"sourcesContent":["import type { AriaAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport type { SafeTimer } from '@skbkontur/global-object';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\n\nimport { styles } from './Toast.styles';\nimport type { ToastViewProps } from './ToastView';\nimport { ToastView } from './ToastView';\nimport { ToastStatic } from './ToastStatic';\n\nexport interface Action {\n label: string;\n handler: () => void;\n 'aria-label'?: string;\n}\n\nexport interface ToastState {\n notification: Nullable<React.ReactNode>;\n action: Nullable<Action>;\n id: number;\n showTime: Nullable<number>;\n showCloseIcon?: boolean;\n}\n\nexport interface ToastProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {\n /** Задает функцию, которая вызывается при возникновении тоста. */\n onPush?: (notification: string, action?: Action) => void;\n\n /** Задает функцию, которая вызывается при закрытии тоста. */\n onClose?: (notification: string, action?: Action) => void;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme?: ThemeIn;\n}\n\nexport type ToastPush = (\n notification: React.ReactNode,\n action?: Nullable<Action>,\n showTime?: number,\n showCloseIcon?: boolean,\n) => void;\n\nexport type ToastClose = () => void;\n\nexport const ToastDataTids = {\n toastStatic: 'StaticToast',\n toastView: 'ToastView__root',\n action: 'ToastView__action',\n close: 'ToastView__close',\n} as const;\n\n/**\n * `Toast` — это короткое немодальное уведомление, которое сообщает пользователю о результате выполнения его команды.\n * Результат может быть положительным, отрицательным или нейтральным.\n *\n * Доступен статический метод: `Toast.push(notification, action?, showTime?)`.\n * Однако, при его использовании не работает кастомизация, они не поддерживаются в `React@18`, а также могут быть проблемы с перекрытием уведомления другими элементами страницы.\n *\n * Для статических тостов рекомендуется использовать компонент SingleToast - в нём исправлены эти проблемы.\n */\n@rootNode\nexport class Toast extends React.Component<ToastProps, ToastState> {\n public static __KONTUR_REACT_UI__ = 'Toast';\n public static displayName = 'Toast';\n\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private theme!: Theme;\n\n /** @deprecated use `push` method in ref or `SingleToast.push` */\n public static push: ToastPush = (\n notification: React.ReactNode,\n action?: Nullable<Action>,\n showTime?: number,\n showCloseIcon?: boolean,\n ) => {\n ToastStatic.push(notification, action, showTime, showCloseIcon);\n };\n\n /** @deprecated use `close` method in ref or `SingleToast.close` */\n public static close: ToastClose = () => {\n ToastStatic.close();\n };\n\n public _toast: Nullable<ToastView>;\n private _timeout: SafeTimer;\n private rootRef = React.createRef<HTMLElement>();\n\n constructor(props: ToastProps) {\n super(props);\n this.state = {\n notification: null,\n action: null,\n id: 0,\n showTime: null,\n showCloseIcon: false,\n };\n }\n\n public componentWillUnmount() {\n this._clearTimer();\n }\n\n public render() {\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 <ThemeContext.Provider value={this.theme}>\n <RenderContainer>\n <TransitionGroup>{this._renderToast()}</TransitionGroup>\n </RenderContainer>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * Показывает тост с `notification` в качестве сообщения.\n * Тост автоматически скрывается через 3 или 7 секунд,\n * в зависимости от наличия у него кнопки `action`.\n * Время показа можно задать вручную, передав `showTime`.\n *\n * @public\n * @param {React.ReactNode} notification\n * @param {Action} action `action` опциональный параметр формата `{ label: React.ReactNode, handler: function }`\n * добавляет кнопку в виде ссылки при клике на которую вызывается переданный handler\n * @param {number} showTime Время существования Toast в миллисекундах\n * @param {boolean} showCloseIcon Добавляет крестик для закрытия тоста. При указывании action в onPush крестик отображается всегда.\n */\n public push(notification: React.ReactNode, action?: Nullable<Action>, showTime?: number, showCloseIcon?: boolean) {\n if (this.state.notification) {\n this.close();\n }\n\n safelyCall(this.props.onPush, notification, action);\n\n this.setState(({ id }) => ({ notification, action, id: id + 1, showTime, showCloseIcon }), this._setTimer);\n }\n\n /**\n * @public\n */\n public close = () => {\n safelyCall(this.props.onClose, this.state.notification, this.state.action);\n this.setState({ notification: null, action: null });\n };\n\n private _renderToast() {\n const { notification, action, id, showCloseIcon } = this.state;\n\n if (!notification) {\n return null;\n }\n\n const toastProps: ToastViewProps = {\n onMouseEnter: this._clearTimer,\n onMouseLeave: this._setTimer,\n onClose: this.close,\n children: notification,\n 'aria-label': this.props['aria-label'],\n action,\n showCloseIcon,\n };\n\n return (\n <CSSTransition\n key={id}\n classNames={{\n enter: styles.enter(),\n enterActive: styles.enterActive(),\n exit: styles.exit(),\n exitActive: styles.exitActive(),\n }}\n timeout={{\n enter: 200,\n exit: 150,\n }}\n enter={!isTestEnv}\n exit={!isTestEnv}\n nodeRef={this.rootRef}\n >\n <CommonWrapper rootNodeRef={this.setRootRef} {...this.props}>\n <ToastView ref={this._refToast} {...toastProps} />\n </CommonWrapper>\n </CSSTransition>\n );\n }\n\n private setRootRef = (element: Nullable<Element>) => {\n this.setRootNode(element);\n // @ts-expect-error: See: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/31065.\n this.rootRef.current = element;\n };\n\n private _clearTimer = () => {\n if (this._timeout) {\n globalObject.clearTimeout(this._timeout);\n this._timeout = null;\n }\n };\n\n private _setTimer = () => {\n this._clearTimer();\n\n let showTime = this.state.action ? 7000 : 3000;\n showTime = this.state.showTime ?? showTime;\n this._timeout = globalObject.setTimeout(this.close, showTime);\n };\n\n private _refToast = (element: ToastView) => {\n this._toast = element;\n };\n}\n\nfunction safelyCall(fn: Nullable<(a?: any) => any>, ...args: any[]) {\n if (fn) {\n fn(...args);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import type { AriaAttributes } from 'react';
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import type { Nullable } from '../../typings/utility-types';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
5
6
|
import type { Action } from './Toast';
|
|
6
7
|
export interface ToastViewProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps {
|
|
7
8
|
/** Задает контент тоста. */
|
|
@@ -14,21 +15,8 @@ export interface ToastViewProps extends Pick<AriaAttributes, 'aria-label'>, Comm
|
|
|
14
15
|
onMouseLeave?: () => void;
|
|
15
16
|
}
|
|
16
17
|
export declare class ToastView extends React.Component<ToastViewProps> {
|
|
17
|
-
static propTypes: {
|
|
18
|
-
/**
|
|
19
|
-
* Adds action handling and close icon for toast
|
|
20
|
-
*/
|
|
21
|
-
action: import("prop-types").Requireable<import("prop-types").InferProps<{
|
|
22
|
-
label: import("prop-types").Validator<string>;
|
|
23
|
-
handler: import("prop-types").Validator<(...args: any[]) => any>;
|
|
24
|
-
}>>;
|
|
25
|
-
/**
|
|
26
|
-
* Toast content
|
|
27
|
-
*/
|
|
28
|
-
children: import("prop-types").Validator<string>;
|
|
29
|
-
onClose: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
30
|
-
};
|
|
31
18
|
private theme;
|
|
19
|
+
getRootNode: TGetRootNode;
|
|
32
20
|
private setRootNode;
|
|
33
21
|
private readonly locale;
|
|
34
22
|
render(): React.JSX.Element;
|