@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,5 +1,4 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.LoaderDataTids = exports.Loader = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
3
2
|
var _lodash = _interopRequireDefault(require("lodash.debounce"));
|
|
4
3
|
var _globalObject = require("@skbkontur/global-object");
|
|
5
4
|
|
|
@@ -59,6 +58,8 @@ var types = ['mini', 'normal', 'big'];
|
|
|
59
58
|
|
|
60
59
|
|
|
61
60
|
|
|
61
|
+
|
|
62
|
+
|
|
62
63
|
|
|
63
64
|
|
|
64
65
|
|
|
@@ -98,43 +99,6 @@ Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE_
|
|
|
98
99
|
|
|
99
100
|
|
|
100
101
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
102
|
|
|
139
103
|
|
|
140
104
|
function Loader(props) {var _this;
|
|
@@ -413,22 +377,4 @@ Loader = exports.Loader = (0, _rootNode.rootNode)(_class = (_Loader = /*#__PURE_
|
|
|
413
377
|
makeUnobservable = function () {var _this$childrenObserve;
|
|
414
378
|
(_this$childrenObserve = _this.childrenObserver) == null || _this$childrenObserve.disconnect();
|
|
415
379
|
_this.childrenObserver = null;
|
|
416
|
-
};_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.getProps().delayBeforeSpinnerShow, durationOfTask: _this.getProps().minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}(0, _inheritsLoose2.default)(Loader, _React$Component);var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {var active = this.getProps().active;this.checkSpinnerPosition();active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var component = this.props.component;var _this$getProps = this.getProps(),active = _this$getProps.active,delayBeforeSpinnerShow = _this$getProps.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$getProps.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,caption = _this$props.caption,component = _this$props.component;var type = this.getProps().type;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.loader(), "data-tid": isLoaderActive ? LoaderDataTids.veil : '' }, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children), isLoaderActive && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { wrapperRef: this.spinnerRef, className: (0, _Emotion.cx)((_cx = {}, _cx[_Loader2.styles.active(this.theme)] = isLoaderActive, _cx)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))));};_proto.renderSpinner = function renderSpinner(type, caption, component) {var _cx2,_this3 = this;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": LoaderDataTids.spinner, className: (0, _Emotion.cx)(_Loader2.styles.spinnerContainer(), (_cx2 = {}, _cx2[_Loader2.styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)), style: this.state.spinnerStyle }, /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.spinnerComponentWrapper(), ref: function ref(element) {_this3.spinnerNode = element;} }, component !== undefined ? component : /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: type, caption: caption })));};return Loader;}(_react.default.Component), _Loader.__KONTUR_REACT_UI__ = 'Loader', _Loader.displayName = 'Loader', _Loader.defaultProps = { type: 'normal', active: false, delayBeforeSpinnerShow: _currentEnvironment.isTestEnv ? 0 : 300, minimalDelayBeforeSpinnerHide: _currentEnvironment.isTestEnv ? 0 : 1000 }, _Loader
|
|
417
|
-
* показываем лоадер или нет
|
|
418
|
-
*/active: _propTypes.default.bool, /**
|
|
419
|
-
* Текст рядом с лоадером.
|
|
420
|
-
*
|
|
421
|
-
* @default "Загрузка"
|
|
422
|
-
*/caption: _Spinner.Spinner.propTypes.caption, component: _propTypes.default.node, /**
|
|
423
|
-
* Класс для обертки
|
|
424
|
-
*/className: _propTypes.default.string, /**
|
|
425
|
-
* Тип спиннера: mini, normal, big
|
|
426
|
-
*
|
|
427
|
-
* @default normal
|
|
428
|
-
*/type: _propTypes.default.oneOf(types), /**
|
|
429
|
-
* Время в миллисекундах для показа вуали без спиннера.
|
|
430
|
-
* @default 300
|
|
431
|
-
*/delayBeforeSpinnerShow: _propTypes.default.number, /**
|
|
432
|
-
* Минимальное время в миллисекундах для показа спиннера
|
|
433
|
-
* @default 1000
|
|
434
|
-
*/minimalDelayBeforeSpinnerHide: _propTypes.default.number }, _Loader)) || _class;
|
|
380
|
+
};_this.spinnerContainerNode = null;_this.childrenContainerNode = null;_this.childrenObserver = null;_this.spinnerNode = null;_this.state = { isStickySpinner: false, isSpinnerVisible: false, isLoaderActive: false };_this.spinnerTask = new _taskWithDelayAndMinimalDuration.TaskWithDelayAndMinimalDuration({ delayBeforeTaskStart: _this.getProps().delayBeforeSpinnerShow, durationOfTask: _this.getProps().minimalDelayBeforeSpinnerHide, taskStartCallback: function taskStartCallback() {return _this.setState({ isSpinnerVisible: true });}, taskStopCallback: function taskStopCallback() {return _this.setState({ isSpinnerVisible: false });} });return _this;}(0, _inheritsLoose2.default)(Loader, _React$Component);var _proto = Loader.prototype;_proto.componentDidMount = function componentDidMount() {var active = this.getProps().active;this.checkSpinnerPosition();active && this.spinnerTask.start();this.layoutEvents = LayoutEvents.addListener((0, _lodash.default)(this.checkSpinnerPosition, 10));if (active) {this.disableChildrenFocus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {var component = this.props.component;var _this$getProps = this.getProps(),active = _this$getProps.active,delayBeforeSpinnerShow = _this$getProps.delayBeforeSpinnerShow,minimalDelayBeforeSpinnerHide = _this$getProps.minimalDelayBeforeSpinnerHide;var isLoaderActive = this.state.isLoaderActive;if (active && !prevProps.active || prevProps.component !== component) {this.checkSpinnerPosition();}if (delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow || minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide) {this.spinnerTask.update({ delayBeforeTaskStart: delayBeforeSpinnerShow, durationOfTask: minimalDelayBeforeSpinnerHide });}if (active !== prevProps.active) {active ? this.spinnerTask.start() : this.spinnerTask.stop();}if (isLoaderActive !== prevState.isLoaderActive) {if (isLoaderActive) {this.disableChildrenFocus();} else {this.enableChildrenFocus();}}};_proto.componentWillUnmount = function componentWillUnmount() {this.makeUnobservable();if (this.layoutEvents) {this.layoutEvents.remove();}this.spinnerTask.clearTask();};Loader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {if (props.active && !state.isLoaderActive) {return { isLoaderActive: true };}if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {return { isLoaderActive: false };}return state;};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx;var _this$props = this.props,caption = _this$props.caption,component = _this$props.component;var type = this.getProps().type;var isLoaderActive = this.state.isLoaderActive;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.loader(), "data-tid": isLoaderActive ? LoaderDataTids.veil : '' }, /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { applyZIndex: isLoaderActive, coverChildren: isLoaderActive, style: { height: '100%' }, wrapperRef: this.childrenRef }, this.props.children), isLoaderActive && /*#__PURE__*/_react.default.createElement(_ZIndex.ZIndex, { wrapperRef: this.spinnerRef, className: (0, _Emotion.cx)((_cx = {}, _cx[_Loader2.styles.active(this.theme)] = isLoaderActive, _cx)) }, this.state.isSpinnerVisible && this.renderSpinner(type, caption, component))));};_proto.renderSpinner = function renderSpinner(type, caption, component) {var _cx2,_this3 = this;return /*#__PURE__*/_react.default.createElement("span", { "data-tid": LoaderDataTids.spinner, className: (0, _Emotion.cx)(_Loader2.styles.spinnerContainer(), (_cx2 = {}, _cx2[_Loader2.styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)), style: this.state.spinnerStyle }, /*#__PURE__*/_react.default.createElement("div", { className: _Loader2.styles.spinnerComponentWrapper(), ref: function ref(element) {_this3.spinnerNode = element;} }, component !== undefined ? component : /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: type, caption: caption })));};return Loader;}(_react.default.Component), _Loader.__KONTUR_REACT_UI__ = 'Loader', _Loader.displayName = 'Loader', _Loader.defaultProps = { type: 'normal', active: false, delayBeforeSpinnerShow: _currentEnvironment.isTestEnv ? 0 : 300, minimalDelayBeforeSpinnerHide: _currentEnvironment.isTestEnv ? 0 : 1000 }, _Loader)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_propTypes","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv","propTypes","PropTypes","bool","node","string","oneOf","number"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером. */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 30.0 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n public static propTypes = {\n /**\n * показываем лоадер или нет\n */\n active: PropTypes.bool,\n\n /**\n * Текст рядом с лоадером.\n *\n * @default \"Загрузка\"\n */\n caption: Spinner.propTypes.caption,\n\n component: PropTypes.node,\n\n /**\n * Класс для обертки\n */\n className: PropTypes.string,\n\n /**\n * Тип спиннера: mini, normal, big\n *\n * @default normal\n */\n type: PropTypes.oneOf(types),\n /**\n * Время в миллисекундах для показа вуали без спиннера.\n * @default 300\n */\n delayBeforeSpinnerShow: PropTypes.number,\n /**\n * Минимальное время в миллисекундах для показа спиннера\n * @default 1000\n */\n minimalDelayBeforeSpinnerHide: PropTypes.number,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","LayoutEvents","_interopRequireWildcard","_Spinner","_ThemeContext","_ZIndex","_CommonWrapper","_Emotion","_currentEnvironment","_taskWithDelayAndMinimalDuration","_tabbableHelpers","_rootNode","_getDOMRect2","_createPropsGetter","_Loader2","_class","_Loader","types","LoaderDataTids","exports","veil","spinner","Loader","rootNode","_React$Component","props","_this","call","getProps","createPropsGetter","defaultProps","childrenRef","element","childrenContainerNode","spinnerRef","spinnerContainerNode","checkSpinnerPosition","isBrowser","globalObject","_getDOMRect","getDOMRect","containerTop","top","containerRight","right","containerBottom","bottom","containerLeft","left","containerHeight","height","containerWidth","width","windowHeight","innerHeight","windowWidth","innerWidth","setState","isStickySpinner","spinnerStyle","Math","abs","spinnerHeight","spinnerNode","disableChildrenFocus","childrenObserver","makeObservable","tabbableElements","getTabbableElements","forEach","el","hasAttribute","setAttribute","tabIndex","toString","enableChildrenFocus","_globalObject$documen","_globalObject$documen2","makeUnobservable","Array","from","document","querySelectorAll","_el$getAttribute","getAttribute","removeAttribute","target","MutationObserver","config","childList","subtree","observer","observe","_this$childrenObserve","disconnect","state","isSpinnerVisible","isLoaderActive","spinnerTask","TaskWithDelayAndMinimalDuration","delayBeforeTaskStart","delayBeforeSpinnerShow","durationOfTask","minimalDelayBeforeSpinnerHide","taskStartCallback","taskStopCallback","_inheritsLoose2","default","_proto","prototype","componentDidMount","active","start","layoutEvents","addListener","debounce","componentDidUpdate","prevProps","prevState","component","_this$getProps","update","stop","componentWillUnmount","remove","clearTask","getDerivedStateFromProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_cx","_this$props","caption","type","CommonWrapper","_extends2","rootNodeRef","setRootNode","className","styles","loader","ZIndex","applyZIndex","coverChildren","style","wrapperRef","children","cx","renderSpinner","_cx2","_this3","spinnerContainer","spinnerContainerSticky","spinnerComponentWrapper","ref","undefined","Spinner","React","Component","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Loader.tsx"],"sourcesContent":["import React from 'react';\nimport debounce from 'lodash.debounce';\nimport { globalObject, isBrowser } from '@skbkontur/global-object';\n\nimport type { AnyObject } from '../../lib/utils';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { SpinnerProps } from '../Spinner';\nimport { Spinner } from '../Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { ZIndex } from '../../internal/ZIndex';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { TaskWithDelayAndMinimalDuration } from '../../lib/taskWithDelayAndMinimalDuration';\nimport { getTabbableElements } from '../../lib/dom/tabbableHelpers';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './Loader.styles';\n\nconst types = ['mini', 'normal', 'big'] as const;\n\nexport type LoaderType = (typeof types)[number];\n\nexport interface LoaderProps extends CommonProps {\n /** @ignore */\n children?: React.ReactNode;\n\n /** Задает состояние лоадера.\n * @default false */\n active?: boolean;\n\n /** Задает подпись под спиннером.\n * @default \"Загрузка\"\n */\n caption?: SpinnerProps['caption'];\n\n /** Задает компонент, заменяющий спиннер. */\n component?: React.ReactNode;\n\n /** Задает размер спиннера и текста.\n * @default normal. */\n type?: LoaderType;\n\n /** Устанавливает время в миллисекундах для показа вуали без спиннера.\n * @default 300 */\n delayBeforeSpinnerShow?: number;\n\n /** Устанавливает минимальное время в миллисекундах для показа спиннера.\n * @default 1000. */\n minimalDelayBeforeSpinnerHide?: number;\n}\n\nexport interface LoaderState {\n isStickySpinner: boolean;\n isSpinnerVisible: boolean;\n isLoaderActive: boolean;\n spinnerStyle?: AnyObject;\n}\n\nexport const LoaderDataTids = {\n veil: 'Loader__Veil',\n spinner: 'Loader__Spinner',\n} as const;\n\ntype DefaultProps = Required<\n Pick<LoaderProps, 'type' | 'active' | 'delayBeforeSpinnerShow' | 'minimalDelayBeforeSpinnerHide'>\n>;\n\n/**\n * Компонент `Loader` принимает внутрь себя контент, поверх которого в активном состоянии `Loader`'а будет отрисован спиннер.\n *\n * Если вам нужен только сам спиннер без дополнительного функционала - используйте компонент Spinner.\n */\n@rootNode\nexport class Loader extends React.Component<LoaderProps, LoaderState> {\n public static __KONTUR_REACT_UI__ = 'Loader';\n public static displayName = 'Loader';\n\n public static defaultProps: DefaultProps = {\n type: 'normal',\n active: false,\n delayBeforeSpinnerShow: isTestEnv ? 0 : 300,\n minimalDelayBeforeSpinnerHide: isTestEnv ? 0 : 1000,\n };\n\n private getProps = createPropsGetter(Loader.defaultProps);\n\n private theme!: Theme;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private spinnerContainerNode: Nullable<HTMLDivElement>;\n private childrenContainerNode: Nullable<HTMLDivElement>;\n private spinnerNode: Nullable<HTMLDivElement>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private spinnerTask: TaskWithDelayAndMinimalDuration;\n private childrenObserver: Nullable<MutationObserver>;\n\n constructor(props: LoaderProps) {\n super(props);\n\n this.spinnerContainerNode = null;\n this.childrenContainerNode = null;\n this.childrenObserver = null;\n this.spinnerNode = null;\n\n this.state = {\n isStickySpinner: false,\n isSpinnerVisible: false,\n isLoaderActive: false,\n };\n\n this.spinnerTask = new TaskWithDelayAndMinimalDuration({\n delayBeforeTaskStart: this.getProps().delayBeforeSpinnerShow,\n durationOfTask: this.getProps().minimalDelayBeforeSpinnerHide,\n taskStartCallback: () => this.setState({ isSpinnerVisible: true }),\n taskStopCallback: () => this.setState({ isSpinnerVisible: false }),\n });\n }\n\n public componentDidMount() {\n const active = this.getProps().active;\n this.checkSpinnerPosition();\n active && this.spinnerTask.start();\n this.layoutEvents = LayoutEvents.addListener(debounce(this.checkSpinnerPosition, 10));\n\n if (active) {\n this.disableChildrenFocus();\n }\n }\n\n public componentDidUpdate(prevProps: Readonly<LoaderProps>, prevState: Readonly<LoaderState>) {\n const { component } = this.props;\n const { active, delayBeforeSpinnerShow, minimalDelayBeforeSpinnerHide } = this.getProps();\n const { isLoaderActive } = this.state;\n\n if ((active && !prevProps.active) || prevProps.component !== component) {\n this.checkSpinnerPosition();\n }\n\n if (\n delayBeforeSpinnerShow !== prevProps.delayBeforeSpinnerShow ||\n minimalDelayBeforeSpinnerHide !== prevProps.minimalDelayBeforeSpinnerHide\n ) {\n this.spinnerTask.update({\n delayBeforeTaskStart: delayBeforeSpinnerShow,\n durationOfTask: minimalDelayBeforeSpinnerHide,\n });\n }\n\n if (active !== prevProps.active) {\n active ? this.spinnerTask.start() : this.spinnerTask.stop();\n }\n\n if (isLoaderActive !== prevState.isLoaderActive) {\n if (isLoaderActive) {\n this.disableChildrenFocus();\n } else {\n this.enableChildrenFocus();\n }\n }\n }\n\n public componentWillUnmount() {\n this.makeUnobservable();\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n this.spinnerTask.clearTask();\n }\n\n public static getDerivedStateFromProps(props: LoaderProps, state: LoaderState): Partial<LoaderState> {\n if (props.active && !state.isLoaderActive) {\n return {\n isLoaderActive: true,\n };\n }\n if (state.isLoaderActive && !(props.active || state.isSpinnerVisible)) {\n return {\n isLoaderActive: false,\n };\n }\n\n return state;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { caption, component } = this.props;\n const type = this.getProps().type;\n const { isLoaderActive } = this.state;\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div className={styles.loader()} data-tid={isLoaderActive ? LoaderDataTids.veil : ''}>\n <ZIndex\n applyZIndex={isLoaderActive}\n coverChildren={isLoaderActive}\n style={{ height: '100%' }}\n wrapperRef={this.childrenRef}\n >\n {this.props.children}\n </ZIndex>\n {isLoaderActive && (\n <ZIndex\n wrapperRef={this.spinnerRef}\n className={cx({\n [styles.active(this.theme)]: isLoaderActive,\n })}\n >\n {this.state.isSpinnerVisible && this.renderSpinner(type, caption, component)}\n </ZIndex>\n )}\n </div>\n </CommonWrapper>\n );\n }\n\n private childrenRef = (element: HTMLDivElement | null) => {\n this.childrenContainerNode = element;\n };\n\n private spinnerRef = (element: HTMLDivElement | null) => {\n this.spinnerContainerNode = element;\n };\n\n private renderSpinner(type?: LoaderType, caption?: React.ReactNode, component?: React.ReactNode) {\n return (\n <span\n data-tid={LoaderDataTids.spinner}\n className={cx(styles.spinnerContainer(), { [styles.spinnerContainerSticky()]: this.state.isStickySpinner })}\n style={this.state.spinnerStyle}\n >\n <div\n className={styles.spinnerComponentWrapper()}\n ref={(element) => {\n this.spinnerNode = element;\n }}\n >\n {component !== undefined ? component : <Spinner type={type} caption={caption} />}\n </div>\n </span>\n );\n }\n\n private checkSpinnerPosition = () => {\n if (!this.spinnerContainerNode || !isBrowser(globalObject)) {\n return;\n }\n\n const {\n top: containerTop,\n right: containerRight,\n bottom: containerBottom,\n left: containerLeft,\n height: containerHeight,\n width: containerWidth,\n } = getDOMRect(this.spinnerContainerNode);\n\n const windowHeight = globalObject.innerHeight;\n const windowWidth = globalObject.innerWidth;\n\n // Если контейнер не больше высоты и не шире окна,\n // то просто выравниваем по центру\n if (windowHeight >= containerHeight && windowWidth >= containerWidth) {\n this.setState({\n isStickySpinner: false,\n spinnerStyle: {},\n });\n return;\n }\n\n const spinnerStyle: {\n top?: number;\n right: number;\n bottom: number;\n left: number;\n } = {\n top: 30,\n right: 0,\n bottom: 30,\n left: 0,\n };\n\n // ПО ВЕРТИКАЛИ\n // Если верхний край контейнера ниже верхнего края окна,\n // то сдвигаем и лоадер\n if (containerTop > 0) {\n spinnerStyle.top = containerTop + 30;\n }\n\n // Если нижний край контейнера выше нижнего края окна,\n // то сдвигаем и лоадер\n if (containerBottom < windowHeight) {\n spinnerStyle.bottom = Math.abs(windowHeight - containerBottom) + 30;\n }\n\n // Если знаем высоту спиннера и нижний край контейнера поднимается\n // выше отступа на высоту спиннера, то убираем верхнюю позицию лоадера\n\n const spinnerHeight = getDOMRect(this.spinnerNode).height;\n\n if (spinnerHeight && spinnerStyle.bottom >= windowHeight - spinnerHeight) {\n delete spinnerStyle.top;\n }\n\n // ПО ГОРИЗОНТАЛИ\n // Если левый край контейнера правее левого края окна,\n // то сдвигаем и лоадер\n if (containerLeft > 0) {\n spinnerStyle.left = containerLeft;\n }\n\n // Если правый край контейнера левее правого края окна,\n // то сдвигаем и лоадер\n if (containerRight < windowWidth) {\n spinnerStyle.right = windowWidth - containerRight;\n }\n\n this.setState({\n isStickySpinner: true,\n spinnerStyle,\n });\n };\n\n private disableChildrenFocus = () => {\n if (!this.childrenObserver) {\n this.makeObservable();\n }\n const tabbableElements = getTabbableElements(this.childrenContainerNode);\n tabbableElements.forEach((el) => {\n if (!el.hasAttribute('origin-tabindex')) {\n el.setAttribute('origin-tabindex', el.tabIndex.toString());\n }\n el.tabIndex = -1;\n });\n };\n\n private enableChildrenFocus = () => {\n this.makeUnobservable();\n // NOTE: NodeList doesn't support 'forEach' method in IE11 and other older browsers\n Array.from(globalObject.document?.querySelectorAll('[origin-tabindex]') ?? []).forEach((el) => {\n el.setAttribute('tabindex', el.getAttribute('origin-tabindex') ?? '0');\n el.removeAttribute('origin-tabindex');\n });\n };\n\n private makeObservable = () => {\n const target = this.childrenContainerNode;\n if (!target || !globalObject.MutationObserver) {\n return;\n }\n const config = {\n childList: true,\n subtree: true,\n };\n const observer = new globalObject.MutationObserver(this.disableChildrenFocus);\n observer.observe(target, config);\n this.childrenObserver = observer;\n };\n\n private makeUnobservable = () => {\n this.childrenObserver?.disconnect();\n this.childrenObserver = null;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -33,6 +33,7 @@ export interface MaskedProps {
|
|
|
33
33
|
imaskProps?: IMaskInputProps<HTMLInputElement>;
|
|
34
34
|
}
|
|
35
35
|
export type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;
|
|
36
|
+
export declare const getSafeMaskInputType: (type?: InputType) => MaskInputType | undefined;
|
|
36
37
|
export interface MaskedInputProps extends MaskedProps, Omit<InputProps, 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'> {
|
|
37
38
|
type?: MaskInputType;
|
|
38
39
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.getSafeMaskInputType = exports.MaskedInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -54,6 +54,22 @@ var _FixedIMaskInput = require("./FixedIMaskInput");var _excluded = ["mask", "ma
|
|
|
54
54
|
|
|
55
55
|
|
|
56
56
|
|
|
57
|
+
|
|
58
|
+
var getSafeMaskInputType = exports.getSafeMaskInputType = function getSafeMaskInputType(type) {
|
|
59
|
+
if (!type) {
|
|
60
|
+
return type;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
switch (type) {
|
|
64
|
+
case 'number':
|
|
65
|
+
case 'date':
|
|
66
|
+
case 'time':
|
|
67
|
+
case 'password':
|
|
68
|
+
return 'text';
|
|
69
|
+
default:
|
|
70
|
+
return type;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
57
73
|
|
|
58
74
|
|
|
59
75
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_Emotion","_Input","_identifiers","_ThemeContext","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","MaskedInput","exports","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","uiFontGlobalClassesRoot","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","cx","globalClasses","root","styles","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useEffect, useContext } from 'react';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\nimport type { Ref } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InputProps, InputType } from '../Input';\nimport { Input } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { globalClasses, styles } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n\n /** Устанавливает символ маски\n * @default _ */\n maskChar?: string;\n\n /** Задает словарь символов-регулярок для задания маски.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Задает обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /** Убирает из value символы, не введённые пользователем\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n // TODO: Удалить в следующем мажоре\n // Селекторы могут ожидать определённый порядок классов\n const uiFontGlobalClassesRoot = 'react-ui-ui-font-root';\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClassesRoot, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_Emotion","_Input","_identifiers","_ThemeContext","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","getSafeMaskInputType","exports","type","MaskedInput","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","uiFontGlobalClassesRoot","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","cx","globalClasses","root","styles","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { useImperativeHandle, useRef, useState, useEffect, useContext } from 'react';\nimport type { IMaskInputProps } from '@skbkontur/react-imask';\nimport type { Ref } from 'react';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { InputProps, InputType } from '../Input';\nimport { Input } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { globalClasses, styles } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n\n /** Устанавливает символ маски\n * @default _ */\n maskChar?: string;\n\n /** Задает словарь символов-регулярок для задания маски.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Задает обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /** Убирает из value символы, не введённые пользователем\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport const getSafeMaskInputType = (type?: InputType): MaskInputType | undefined => {\n if (!type) {\n return type;\n }\n\n switch (type) {\n case 'number':\n case 'date':\n case 'time':\n case 'password':\n return 'text';\n default:\n return type;\n }\n};\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n // TODO: Удалить в следующем мажоре\n // Селекторы могут ожидать определённый порядок классов\n const uiFontGlobalClassesRoot = 'react-ui-ui-font-root';\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClassesRoot, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AriaAttributes, HTMLAttributes } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
+
import type { TGetRootNode } from '../../lib/rootNode';
|
|
5
5
|
import type { SizeProp } from '../../lib/types/props';
|
|
6
6
|
import type { MenuContextType } from '../../internal/Menu/MenuContext';
|
|
7
7
|
export type MenuItemState = null | 'hover' | 'selected' | void;
|
|
@@ -66,23 +66,13 @@ export declare class MenuItem extends React.Component<MenuItemProps> {
|
|
|
66
66
|
static __KONTUR_REACT_UI__: string;
|
|
67
67
|
static displayName: string;
|
|
68
68
|
static __MENU_ITEM__: boolean;
|
|
69
|
-
static propTypes: {
|
|
70
|
-
comment: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
71
|
-
disabled: PropTypes.Requireable<boolean>;
|
|
72
|
-
href: PropTypes.Requireable<string>;
|
|
73
|
-
icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
|
|
74
|
-
loose: PropTypes.Requireable<boolean>;
|
|
75
|
-
state: PropTypes.Requireable<string>;
|
|
76
|
-
target: PropTypes.Requireable<string>;
|
|
77
|
-
onClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
78
|
-
size: PropTypes.Requireable<string>;
|
|
79
|
-
};
|
|
80
69
|
state: {
|
|
81
70
|
iconOffsetTop: number;
|
|
82
71
|
highlighted: boolean;
|
|
83
72
|
};
|
|
84
73
|
private theme;
|
|
85
74
|
private mouseEntered;
|
|
75
|
+
getRootNode: TGetRootNode;
|
|
86
76
|
private setRootNode;
|
|
87
77
|
private rootRef;
|
|
88
78
|
private contentRef;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.isMenuItem = exports.MenuItemDataTids = exports.MenuItem = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));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 _globalObject = require("@skbkontur/global-object");
|
|
5
4
|
|
|
6
5
|
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
@@ -107,26 +106,6 @@ MenuItem = exports.MenuItem = (0, _rootNode.rootNode)(_class = (_MenuItem = /*#_
|
|
|
107
106
|
|
|
108
107
|
|
|
109
108
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
109
|
|
|
131
110
|
state = {
|
|
132
111
|
iconOffsetTop: 0,
|
|
@@ -136,6 +115,7 @@ MenuItem = exports.MenuItem = (0, _rootNode.rootNode)(_class = (_MenuItem = /*#_
|
|
|
136
115
|
|
|
137
116
|
mouseEntered = false;_this.
|
|
138
117
|
|
|
118
|
+
|
|
139
119
|
rootRef = null;_this.
|
|
140
120
|
contentRef = /*#__PURE__*/_react.default.createRef();_this.
|
|
141
121
|
|
|
@@ -422,7 +402,7 @@ MenuItem = exports.MenuItem = (0, _rootNode.rootNode)(_class = (_MenuItem = /*#_
|
|
|
422
402
|
|
|
423
403
|
hasIconAmongItems = function () {var _this$context$navigat3;
|
|
424
404
|
return Boolean((_this$context$navigat3 = _this.context.navigation) == null ? void 0 : _this$context$navigat3.items.some(function (item) {return item.props.icon;}));
|
|
425
|
-
};return _this;}(0, _inheritsLoose2.default)(MenuItem, _React$Component);var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.componentDidMount = function componentDidMount() {if (this.props.scrollIntoView && this.rootRef) {(0, _scrollYCenterIntoNearestScrollable.scrollYCenterIntoNearestScrollable)(this.rootRef);}if (this.rootRef && (0, _globalObject.isBrowser)(_globalObject.globalObject)) {this.setState({ iconOffsetTop: _globalObject.globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });}if (this.contentRef.current && !this.props.isNotSelectable) {var _this$context$navigat4;(_this$context$navigat4 = this.context.navigation) == null || _this$context$navigat4.add(this.contentRef.current, this);}if (this.props.icon) {var _this$context$setEnab, _this$context;(_this$context$setEnab = (_this$context = this.context).setEnableIconPadding) == null || _this$context$setEnab.call(_this$context, true);}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.contentRef.current) {var _this$context$navigat5, _this$context$setEnab2, _this$context2;!this.props.isNotSelectable && ((_this$context$navigat5 = this.context.navigation) == null ? void 0 : _this$context$navigat5.remove(this.contentRef.current));(_this$context$setEnab2 = (_this$context2 = this.context).setEnableIconPadding) == null || _this$context$setEnab2.call(_this$context2, this.hasIconAmongItems());}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.icon !== this.props.icon) {var _this$context$setEnab3, _this$context3;(_this$context$setEnab3 = (_this$context3 = this.context).setEnableIconPadding) == null || _this$context$setEnab3.call(_this$context3, !!this.props.icon || this.hasIconAmongItems());}if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {if (this.props.isNotSelectable) {var _this$context$navigat6;this.unhighlight();(_this$context$navigat6 = this.context.navigation) == null || _this$context$navigat6.remove(this.contentRef.current);} else {var _this$context$navigat7;(_this$context$navigat7 = this.context.navigation) == null || _this$context$navigat7.add(this.contentRef.current, this);}}};_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.rootLarge(this.theme);case 'medium':return _MenuItem2.styles.rootMedium(this.theme);case 'small':default:return _MenuItem2.styles.rootSmall(this.theme);}};_proto.getIconSizeClassName = function getIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.iconLarge(this.theme);case 'medium':return _MenuItem2.styles.iconMedium(this.theme);case 'small':default:return _MenuItem2.styles.iconSmall(this.theme);}};_proto.getWithIconSizeClassName = function getWithIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.withIconLarge(this.theme);case 'medium':return _MenuItem2.styles.withIconMedium(this.theme);case 'small':default:return _MenuItem2.styles.withIconSmall(this.theme);}};return (0, _createClass2.default)(MenuItem, [{ key: "activeState", get: function get() {return this.state.highlighted ? 'hover' : this.props.state;} }, { key: "isHover", get: function get() {return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;} }, { key: "isSelected", get: function get() {return this.props.state === 'selected' && !this.state.highlighted;} }]);}(_react.default.Component), _MenuItem.__KONTUR_REACT_UI__ = 'MenuItem', _MenuItem.displayName = 'MenuItem', _MenuItem.__MENU_ITEM__ = true, _MenuItem.
|
|
405
|
+
};return _this;}(0, _inheritsLoose2.default)(MenuItem, _React$Component);var _proto = MenuItem.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.componentDidMount = function componentDidMount() {if (this.props.scrollIntoView && this.rootRef) {(0, _scrollYCenterIntoNearestScrollable.scrollYCenterIntoNearestScrollable)(this.rootRef);}if (this.rootRef && (0, _globalObject.isBrowser)(_globalObject.globalObject)) {this.setState({ iconOffsetTop: _globalObject.globalObject.getComputedStyle(this.rootRef).getPropertyValue('padding-top') });}if (this.contentRef.current && !this.props.isNotSelectable) {var _this$context$navigat4;(_this$context$navigat4 = this.context.navigation) == null || _this$context$navigat4.add(this.contentRef.current, this);}if (this.props.icon) {var _this$context$setEnab, _this$context;(_this$context$setEnab = (_this$context = this.context).setEnableIconPadding) == null || _this$context$setEnab.call(_this$context, true);}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.contentRef.current) {var _this$context$navigat5, _this$context$setEnab2, _this$context2;!this.props.isNotSelectable && ((_this$context$navigat5 = this.context.navigation) == null ? void 0 : _this$context$navigat5.remove(this.contentRef.current));(_this$context$setEnab2 = (_this$context2 = this.context).setEnableIconPadding) == null || _this$context$setEnab2.call(_this$context2, this.hasIconAmongItems());}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (prevProps.icon !== this.props.icon) {var _this$context$setEnab3, _this$context3;(_this$context$setEnab3 = (_this$context3 = this.context).setEnableIconPadding) == null || _this$context$setEnab3.call(_this$context3, !!this.props.icon || this.hasIconAmongItems());}if (this.contentRef.current && prevProps.isNotSelectable !== this.props.isNotSelectable) {if (this.props.isNotSelectable) {var _this$context$navigat6;this.unhighlight();(_this$context$navigat6 = this.context.navigation) == null || _this$context$navigat6.remove(this.contentRef.current);} else {var _this$context$navigat7;(_this$context$navigat7 = this.context.navigation) == null || _this$context$navigat7.add(this.contentRef.current, this);}}};_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.rootLarge(this.theme);case 'medium':return _MenuItem2.styles.rootMedium(this.theme);case 'small':default:return _MenuItem2.styles.rootSmall(this.theme);}};_proto.getIconSizeClassName = function getIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.iconLarge(this.theme);case 'medium':return _MenuItem2.styles.iconMedium(this.theme);case 'small':default:return _MenuItem2.styles.iconSmall(this.theme);}};_proto.getWithIconSizeClassName = function getWithIconSizeClassName() {switch (this.props.size) {case 'large':return _MenuItem2.styles.withIconLarge(this.theme);case 'medium':return _MenuItem2.styles.withIconMedium(this.theme);case 'small':default:return _MenuItem2.styles.withIconSmall(this.theme);}};return (0, _createClass2.default)(MenuItem, [{ key: "activeState", get: function get() {return this.state.highlighted ? 'hover' : this.props.state;} }, { key: "isHover", get: function get() {return (this.state.highlighted || this.props.state === 'hover') && !this.props.disabled;} }, { key: "isSelected", get: function get() {return this.props.state === 'selected' && !this.state.highlighted;} }]);}(_react.default.Component), _MenuItem.__KONTUR_REACT_UI__ = 'MenuItem', _MenuItem.displayName = 'MenuItem', _MenuItem.__MENU_ITEM__ = true, _MenuItem.contextType = _MenuContext.MenuContext, _MenuItem)) || _class;
|
|
426
406
|
|
|
427
407
|
|
|
428
408
|
var isMenuItem = exports.isMenuItem = (0, _utils.isReactUIComponent)('MenuItem');
|