@skbkontur/react-ui 4.0.6 → 4.1.2-fix-zindex
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 +53 -0
- package/README.md +1 -1
- package/cjs/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/cjs/components/Autocomplete/Autocomplete.js +20 -7
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Button/Button.d.ts +4 -5
- package/cjs/components/Button/Button.js +8 -12
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Center/Center.d.ts +3 -0
- package/cjs/components/Center/Center.js +8 -3
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.d.ts +8 -0
- package/cjs/components/Checkbox/Checkbox.js +37 -3
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +1 -0
- package/cjs/components/Checkbox/Checkbox.styles.js +27 -24
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyHelper.js +18 -12
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +3 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js +23 -10
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js +7 -5
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CursorHelper.js +19 -16
- package/cjs/components/CurrencyInput/CursorHelper.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -2
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/DateInput/DateInput.js +5 -1
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
- package/cjs/components/DateInput/helpers/InternalDateMediator.js +12 -2
- package/cjs/components/DateInput/helpers/InternalDateMediator.js.map +1 -1
- package/cjs/components/DateInput/helpers/inputNumber.d.ts +1 -1
- package/cjs/components/DateInput/helpers/inputNumber.js +45 -12
- package/cjs/components/DateInput/helpers/inputNumber.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +5 -0
- package/cjs/components/DatePicker/DatePicker.js +14 -3
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/Picker.js +7 -2
- package/cjs/components/DatePicker/Picker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +3 -0
- package/cjs/components/Dropdown/Dropdown.js +7 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -4
- package/cjs/components/DropdownMenu/DropdownMenu.js +2 -16
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +5 -0
- package/cjs/components/FileUploader/FileUploader.js +18 -9
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.d.ts +3 -2
- package/cjs/components/FileUploader/FileUploader.styles.js +21 -15
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +3 -0
- package/cjs/components/FxInput/FxInput.js +7 -3
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/Gapped/Gapped.d.ts +4 -0
- package/cjs/components/Gapped/Gapped.js +13 -7
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +3 -0
- package/cjs/components/GlobalLoader/GlobalLoader.js +9 -7
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js +5 -7
- package/cjs/components/GlobalLoader/GlobalLoaderView.styles.js.map +1 -1
- package/cjs/components/Group/Group.d.ts +3 -0
- package/cjs/components/Group/Group.js +80 -33
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +4 -5
- package/cjs/components/Input/Input.js +21 -24
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +2 -13
- package/cjs/components/Kebab/Kebab.js +5 -29
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +3 -0
- package/cjs/components/Link/Link.js +7 -3
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Loader/Loader.d.ts +4 -0
- package/cjs/components/Loader/Loader.js +8 -3
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.d.ts +3 -0
- package/cjs/components/MenuHeader/MenuHeader.js +7 -2
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +4 -0
- package/cjs/components/MenuItem/MenuItem.js +10 -4
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +3 -2
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +3 -0
- package/cjs/components/MenuSeparator/MenuSeparator.js +7 -3
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +5 -0
- package/cjs/components/Modal/Modal.js +10 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.styles.js +10 -6
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +3 -2
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +3 -0
- package/cjs/components/Modal/ModalFooter.js +8 -3
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -0
- package/cjs/components/Modal/ModalHeader.js +9 -3
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +20 -3
- package/cjs/components/Paging/Paging.js +29 -10
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +9 -0
- package/cjs/components/Paging/PagingDefaultComponent.js +21 -0
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -0
- package/cjs/components/PasswordInput/PasswordInput.d.ts +7 -0
- package/cjs/components/PasswordInput/PasswordInput.js +36 -11
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
- package/cjs/components/PasswordInput/PasswordInputIcon.js +15 -0
- package/cjs/components/PasswordInput/PasswordInputIcon.js.map +1 -0
- package/cjs/components/Radio/Radio.d.ts +3 -0
- package/cjs/components/Radio/Radio.js +7 -3
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.styles.js +4 -7
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +9 -0
- package/cjs/components/RadioGroup/RadioGroup.js +22 -5
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +7 -2
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js +3 -4
- package/cjs/components/ResponsiveLayout/ResponsiveLayoutEvents.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +4 -0
- package/cjs/components/ScrollContainer/ScrollContainer.js +14 -4
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +3 -0
- package/cjs/components/Select/Select.js +43 -17
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +4 -0
- package/cjs/components/SidePage/SidePage.js +9 -3
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageBody.d.ts +3 -0
- package/cjs/components/SidePage/SidePageBody.js +10 -3
- package/cjs/components/SidePage/SidePageBody.js.map +1 -1
- package/cjs/components/SidePage/SidePageContainer.d.ts +3 -0
- package/cjs/components/SidePage/SidePageContainer.js +7 -2
- package/cjs/components/SidePage/SidePageContainer.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +3 -0
- package/cjs/components/SidePage/SidePageFooter.js +11 -3
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +4 -0
- package/cjs/components/SidePage/SidePageHeader.js +9 -4
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Spinner/Spinner.d.ts +3 -1
- package/cjs/components/Spinner/Spinner.js +8 -8
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js +16 -5
- package/cjs/components/Spinner/SpinnerFallbackAnimation.js.map +1 -1
- package/cjs/components/Sticky/Sticky.d.ts +3 -0
- package/cjs/components/Sticky/Sticky.js +7 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +3 -0
- package/cjs/components/Switcher/Switcher.js +7 -3
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.styles.js +2 -2
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Tabs/Indicator.js +4 -2
- package/cjs/components/Tabs/Indicator.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +3 -0
- package/cjs/components/Tabs/Tab.js +7 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +4 -0
- package/cjs/components/Tabs/Tabs.js +12 -3
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +6 -2
- package/cjs/components/Textarea/Textarea.js +14 -9
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +1 -2
- package/cjs/components/Textarea/TextareaCounter.js +21 -12
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +6 -0
- package/cjs/components/Toast/Toast.js +9 -2
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastStatic.js +1 -1
- package/cjs/components/Toast/ToastStatic.js.map +1 -1
- package/cjs/components/Toast/ToastView.js +6 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.d.ts +1 -1
- package/cjs/components/Toast/ToastView.styles.js +3 -2
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +4 -1
- package/cjs/components/Toggle/Toggle.js +7 -3
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.styles.js +12 -10
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +3 -0
- package/cjs/components/Token/Token.js +20 -3
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/Token/Token.styles.js +13 -6
- package/cjs/components/Token/Token.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +14 -0
- package/cjs/components/TokenInput/TokenInput.js +36 -13
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.styles.js +3 -2
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +4 -3
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +3 -0
- package/cjs/components/Tooltip/Tooltip.js +12 -4
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +4 -1
- package/cjs/components/TooltipMenu/TooltipMenu.js +9 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/hooks/useDrop.js +3 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/index.d.ts +2 -0
- package/cjs/index.js +2 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.d.ts +6 -0
- package/cjs/internal/Calendar/Calendar.js +12 -5
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/Calendar/CalendarDateShape.d.ts +1 -1
- package/cjs/internal/Calendar/MonthView.js +5 -4
- package/cjs/internal/Calendar/MonthView.js.map +1 -1
- package/cjs/internal/Calendar/MonthViewModel.js +36 -17
- package/cjs/internal/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/cjs/internal/CommonWrapper/CommonWrapper.js +7 -5
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +28 -5
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.js +4 -2
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +9 -4
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +35 -35
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DataTids/DATATIDS.md +12 -0
- package/cjs/internal/DataTids/DataTids.d.ts +12 -0
- package/cjs/internal/DataTids/DataTids.js +46 -0
- package/cjs/internal/DataTids/DataTids.js.map +1 -0
- package/cjs/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/cjs/internal/DataTids/DataTids.styles.js +41 -0
- package/cjs/internal/DataTids/DataTids.styles.js.map +1 -0
- package/cjs/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/cjs/internal/DataTids/componentsDataTids.js +16 -0
- package/cjs/internal/DataTids/componentsDataTids.js.map +1 -0
- package/cjs/internal/DateSelect/DateSelect.d.ts +4 -0
- package/cjs/internal/DateSelect/DateSelect.js +28 -12
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +3 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +14 -6
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +6 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +14 -10
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +5 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +10 -4
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +3 -0
- package/cjs/internal/InternalMenu/InternalMenu.js +10 -12
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +2 -2
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js +16 -0
- package/cjs/internal/InternalMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
- package/cjs/internal/MaskedInput/MaskedInput.d.ts +3 -0
- package/cjs/internal/MaskedInput/MaskedInput.js +16 -5
- package/cjs/internal/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/internal/Menu/Menu.d.ts +3 -0
- package/cjs/internal/Menu/Menu.js +22 -21
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.js +5 -3
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +10 -3
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +6 -0
- package/cjs/internal/Popup/Popup.js +18 -13
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupPin.js +2 -1
- package/cjs/internal/Popup/PopupPin.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +8 -0
- package/cjs/internal/PopupMenu/PopupMenu.js +22 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/PopupMenu/validatePositions.js +6 -6
- package/cjs/internal/PopupMenu/validatePositions.js.map +1 -1
- package/cjs/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/cjs/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js +9 -1
- package/cjs/internal/RenderContainer/RenderInnerContainer.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.js +4 -1
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/ThemePlayground/Playground.js +11 -19
- package/cjs/internal/ThemePlayground/Playground.js.map +1 -1
- package/cjs/internal/ThemePlayground/SizesGroup.d.ts +4 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js +20 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -0
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +14 -2
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js +6 -1
- package/cjs/internal/ThemePlayground/ThemeEditor.js.map +1 -1
- package/cjs/internal/ThemePlayground/VariableValue.js +18 -6
- package/cjs/internal/ThemePlayground/VariableValue.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.d.ts +3 -1
- package/cjs/internal/ThemePlayground/constants.js +3 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js +4 -7
- package/cjs/internal/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.js +5 -6
- package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndex.d.ts +8 -0
- package/cjs/internal/ZIndex/ZIndex.js +25 -3
- package/cjs/internal/ZIndex/ZIndex.js.map +1 -1
- package/cjs/internal/ZIndex/ZIndexStorage.d.ts +2 -1
- package/cjs/internal/ZIndex/ZIndexStorage.js +13 -6
- package/cjs/internal/ZIndex/ZIndexStorage.js.map +1 -1
- package/cjs/internal/icons/16px/index.d.ts +19 -19
- package/cjs/internal/icons/16px/index.js +45 -38
- package/cjs/internal/icons/16px/index.js.map +1 -1
- package/cjs/internal/icons/20px/svg.js +6 -0
- package/cjs/internal/icons/20px/svg.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +20 -1
- package/cjs/internal/themes/DefaultTheme.js +40 -5
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/NotFlat.d.ts +6 -0
- package/cjs/internal/themes/NotFlat.js +12 -2
- package/cjs/internal/themes/NotFlat.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +66 -0
- package/cjs/internal/themes/Theme2022.js +100 -0
- package/cjs/internal/themes/Theme2022.js.map +1 -0
- package/cjs/internal/themes/Theme2022Dark.d.ts +5 -0
- package/cjs/internal/themes/Theme2022Dark.js +9 -0
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -0
- package/cjs/lib/animation/index.d.ts +1 -1
- package/cjs/lib/animation/index.js +3 -3
- package/cjs/lib/animation/index.js.map +1 -1
- package/cjs/lib/date/InternalDate.js +23 -9
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateCalculator.js +16 -2
- package/cjs/lib/date/InternalDateCalculator.js.map +1 -1
- package/cjs/lib/date/InternalDateGetter.d.ts +1 -1
- package/cjs/lib/date/InternalDateGetter.js +27 -7
- package/cjs/lib/date/InternalDateGetter.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.js +11 -2
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +52 -17
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/types.d.ts +4 -0
- package/cjs/lib/date/types.js.map +1 -1
- package/cjs/lib/events/MouseDrag.js +5 -1
- package/cjs/lib/events/MouseDrag.js.map +1 -1
- package/cjs/lib/events/keyboard/extractCode.js +7 -5
- package/cjs/lib/events/keyboard/extractCode.js.map +1 -1
- package/cjs/lib/needsPolyfillPlaceholder.d.ts +6 -0
- package/cjs/lib/needsPolyfillPlaceholder.js +19 -0
- package/cjs/lib/needsPolyfillPlaceholder.js.map +1 -0
- package/cjs/lib/rootNode/getRootNode.d.ts +9 -0
- package/cjs/lib/rootNode/getRootNode.js +37 -8
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +9 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +11 -2
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/stringUtils.js +3 -1
- package/cjs/lib/stringUtils.js.map +1 -1
- package/cjs/lib/styles/ColorFactory.js +9 -9
- package/cjs/lib/styles/ColorFactory.js.map +1 -1
- package/cjs/lib/styles/ColorHelpers.d.ts +1 -0
- package/cjs/lib/styles/ColorHelpers.js +33 -10
- package/cjs/lib/styles/ColorHelpers.js.map +1 -1
- package/cjs/lib/styles/ColorObject.js +3 -2
- package/cjs/lib/styles/ColorObject.js.map +1 -1
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +9 -0
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -0
- package/cjs/lib/taskWithDelayAndMinimalDuration.js +3 -1
- package/cjs/lib/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/cjs/lib/theming/Emotion.js +5 -2
- package/cjs/lib/theming/Emotion.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.js +5 -1
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.js +7 -2
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/cjs/lib/theming/themes/Theme2022.d.ts +1 -0
- package/cjs/lib/theming/themes/Theme2022.js +6 -0
- package/cjs/lib/theming/themes/Theme2022.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Dark.d.ts +1 -0
- package/cjs/lib/theming/themes/Theme2022Dark.js +9 -0
- package/cjs/lib/theming/themes/Theme2022Dark.js.map +1 -0
- package/cjs/lib/utils.d.ts +15 -0
- package/cjs/lib/utils.js +45 -9
- package/cjs/lib/utils.js.map +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +16 -11
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +3 -0
- package/components/Button/Button/Button.js +8 -10
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +4 -5
- package/components/Center/Center/Center.js +10 -5
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +3 -0
- package/components/Checkbox/Checkbox/Checkbox.js +33 -2
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +8 -0
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +22 -18
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +1 -0
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +12 -11
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +30 -17
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +3 -0
- package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js +7 -1
- package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
- package/components/CurrencyInput/CursorHelper/CursorHelper.js +18 -11
- package/components/CurrencyInput/CursorHelper/CursorHelper.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +6 -1
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +3 -0
- package/components/DateInput/DateInput/DateInput.js +9 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js +16 -10
- package/components/DateInput/helpers/InternalDateMediator/InternalDateMediator.js.map +1 -1
- package/components/DateInput/helpers/InternalDateMediator.d.ts +2 -2
- package/components/DateInput/helpers/inputNumber/inputNumber.js +53 -16
- package/components/DateInput/helpers/inputNumber/inputNumber.js.map +1 -1
- package/components/DateInput/helpers/inputNumber.d.ts +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +6 -0
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +5 -0
- package/components/DatePicker/Picker/Picker.js +3 -1
- package/components/DatePicker/Picker/Picker.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js +9 -5
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +3 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +3 -16
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -4
- package/components/FileUploader/FileUploader/FileUploader.js +18 -9
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +5 -0
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +15 -12
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/FileUploader/FileUploader.styles.d.ts +3 -2
- package/components/FxInput/FxInput/FxInput.js +6 -2
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +3 -0
- package/components/Gapped/Gapped/Gapped.js +16 -8
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +4 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +9 -8
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +3 -0
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js +1 -2
- package/components/GlobalLoader/GlobalLoaderView.styles/GlobalLoaderView.styles.js.map +1 -1
- package/components/Group/Group/Group.js +66 -30
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +3 -0
- package/components/Input/Input/Input.js +18 -31
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +4 -5
- package/components/Kebab/Kebab/Kebab.js +3 -13
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +2 -13
- package/components/Link/Link/Link.js +10 -5
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +3 -0
- package/components/Loader/Loader/Loader.js +10 -6
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +4 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +4 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +3 -0
- package/components/MenuItem/MenuItem/MenuItem.js +15 -9
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +4 -0
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +1 -1
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +4 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +3 -0
- package/components/Modal/Modal/Modal.js +9 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +5 -0
- package/components/Modal/Modal.styles/Modal.styles.js +4 -4
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/ModalClose/ModalClose.js +2 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +5 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +3 -0
- package/components/Modal/ModalHeader/ModalHeader.js +5 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -0
- package/components/Paging/Paging/Paging.js +24 -18
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +20 -3
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js +19 -0
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -0
- package/components/Paging/PagingDefaultComponent/package.json +6 -0
- package/components/Paging/PagingDefaultComponent.d.ts +9 -0
- package/components/PasswordInput/PasswordInput/PasswordInput.js +39 -14
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +7 -0
- package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js +15 -0
- package/components/PasswordInput/PasswordInputIcon/PasswordInputIcon.js.map +1 -0
- package/components/PasswordInput/PasswordInputIcon/package.json +6 -0
- package/components/PasswordInput/PasswordInputIcon.d.ts +3 -0
- package/components/Radio/Radio/Radio.js +10 -5
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +3 -0
- package/components/Radio/Radio.styles/Radio.styles.js +2 -1
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js +25 -13
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +9 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +5 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js +3 -3
- package/components/ResponsiveLayout/ResponsiveLayoutEvents/ResponsiveLayoutEvents.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +6 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +4 -0
- package/components/Select/Select/Select.js +35 -15
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +3 -0
- package/components/SidePage/SidePage/SidePage.js +8 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +4 -0
- package/components/SidePage/SidePageBody/SidePageBody.js +10 -6
- package/components/SidePage/SidePageBody/SidePageBody.js.map +1 -1
- package/components/SidePage/SidePageBody.d.ts +3 -0
- package/components/SidePage/SidePageContainer/SidePageContainer.js +10 -6
- package/components/SidePage/SidePageContainer/SidePageContainer.js.map +1 -1
- package/components/SidePage/SidePageContainer.d.ts +3 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js +10 -6
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +3 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +12 -7
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +4 -0
- package/components/Spinner/Spinner/Spinner.js +14 -6
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +3 -1
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js +18 -4
- package/components/Spinner/SpinnerFallbackAnimation/SpinnerFallbackAnimation.js.map +1 -1
- package/components/Sticky/Sticky/Sticky.js +4 -0
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +3 -0
- package/components/Switcher/Switcher/Switcher.js +4 -0
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +3 -0
- package/components/Switcher/Switcher.styles/Switcher.styles.js +1 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Tabs/Indicator/Indicator.js +2 -0
- package/components/Tabs/Indicator/Indicator.js.map +1 -1
- package/components/Tabs/Tab/Tab.js +4 -0
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +3 -0
- package/components/Tabs/Tabs/Tabs.js +11 -6
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +4 -0
- package/components/Textarea/Textarea/Textarea.js +21 -15
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +6 -2
- package/components/Textarea/TextareaCounter/TextareaCounter.js +13 -2
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +1 -2
- package/components/Toast/Toast/Toast.js +16 -10
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +6 -0
- package/components/Toast/ToastStatic/ToastStatic.js +2 -2
- package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
- package/components/Toast/ToastView/ToastView.js +5 -4
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/ToastView.styles.d.ts +1 -1
- package/components/Toggle/Toggle/Toggle.js +8 -4
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +4 -1
- package/components/Toggle/Toggle.styles/Toggle.styles.js +3 -4
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Token/Token/Token.js +16 -1
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +3 -0
- package/components/Token/Token.styles/Token.styles.js +11 -4
- package/components/Token/Token.styles/Token.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +30 -16
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +14 -0
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +9 -2
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +3 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +18 -12
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +4 -1
- package/hooks/useDrop/useDrop.js +5 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/index.js.map +1 -1
- package/internal/Calendar/Calendar/Calendar.js +13 -5
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/Calendar/Calendar.d.ts +6 -0
- package/internal/Calendar/CalendarDateShape.d.ts +1 -1
- package/internal/Calendar/MonthView/MonthView.js +4 -3
- package/internal/Calendar/MonthView/MonthView.js.map +1 -1
- package/internal/Calendar/MonthViewModel/MonthViewModel.js +35 -18
- package/internal/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +7 -8
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper.d.ts +1 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +34 -19
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +7 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +2 -0
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +21 -17
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +3 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +35 -35
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +16 -16
- package/internal/DataTids/DATATIDS.md +12 -0
- package/internal/DataTids/DataTids/DataTids.js +69 -0
- package/internal/DataTids/DataTids/DataTids.js.map +1 -0
- package/internal/DataTids/DataTids/package.json +6 -0
- package/internal/DataTids/DataTids.d.ts +12 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js +22 -0
- package/internal/DataTids/DataTids.styles/DataTids.styles.js.map +1 -0
- package/internal/DataTids/DataTids.styles/package.json +6 -0
- package/internal/DataTids/DataTids.styles.d.ts +7 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js +14 -0
- package/internal/DataTids/componentsDataTids/componentsDataTids.js.map +1 -0
- package/internal/DataTids/componentsDataTids/package.json +6 -0
- package/internal/DataTids/componentsDataTids.d.ts +5 -0
- package/internal/DateSelect/DateSelect/DateSelect.js +27 -17
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +4 -0
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +5 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +12 -5
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +7 -0
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js +4 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +3 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -0
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +8 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +5 -1
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +18 -21
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +3 -0
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +1 -1
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js +14 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/addIconPaddingIfPartOfMenu.js.map +1 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu/package.json +6 -0
- package/internal/InternalMenu/addIconPaddingIfPartOfMenu.d.ts +2 -0
- package/internal/MaskedInput/MaskedInput/MaskedInput.js +14 -3
- package/internal/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/internal/MaskedInput/MaskedInput.d.ts +3 -0
- package/internal/Menu/Menu/Menu.js +15 -19
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +3 -0
- package/internal/Menu/Menu.styles/Menu.styles.js +1 -1
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +6 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/Popup/Popup/Popup.js +15 -9
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +6 -0
- package/internal/Popup/PopupPin/PopupPin.js +2 -0
- package/internal/Popup/PopupPin/PopupPin.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +15 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +8 -0
- package/internal/PopupMenu/validatePositions/validatePositions.js +6 -6
- package/internal/PopupMenu/validatePositions/validatePositions.js.map +1 -1
- package/internal/RenderContainer/RenderContainerTypes.d.ts +1 -0
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js +11 -2
- package/internal/RenderContainer/RenderInnerContainer/RenderInnerContainer.js.map +1 -1
- package/internal/RenderContainer/RenderInnerContainer.d.ts +9 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js +5 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/ThemePlayground/Playground/Playground.js +15 -29
- package/internal/ThemePlayground/Playground/Playground.js.map +1 -1
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js +29 -0
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -0
- package/internal/ThemePlayground/SizesGroup/package.json +6 -0
- package/internal/ThemePlayground/SizesGroup.d.ts +4 -0
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +14 -2
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground.d.ts +4 -0
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js +5 -1
- package/internal/ThemePlayground/ThemeEditor/ThemeEditor.js.map +1 -1
- package/internal/ThemePlayground/VariableValue/VariableValue.js +16 -5
- package/internal/ThemePlayground/VariableValue/VariableValue.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +2 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemePlayground/constants.d.ts +3 -1
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js +3 -6
- package/internal/ThemeShowcase/ThemeShowcase/ThemeShowcase.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js +4 -6
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/ZIndex/ZIndex.js +23 -8
- package/internal/ZIndex/ZIndex/ZIndex.js.map +1 -1
- package/internal/ZIndex/ZIndex.d.ts +8 -0
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js +12 -6
- package/internal/ZIndex/ZIndexStorage/ZIndexStorage.js.map +1 -1
- package/internal/ZIndex/ZIndexStorage.d.ts +2 -1
- package/internal/icons/16px/index/index.js +28 -20
- package/internal/icons/16px/index/index.js.map +1 -1
- package/internal/icons/16px/index.d.ts +19 -19
- package/internal/icons/20px/svg/svg.js +5 -0
- package/internal/icons/20px/svg/svg.js.map +1 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js +48 -4
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +20 -1
- package/internal/themes/NotFlat/NotFlat.js +15 -0
- package/internal/themes/NotFlat/NotFlat.js.map +1 -1
- package/internal/themes/NotFlat.d.ts +6 -0
- package/internal/themes/Theme2022/Theme2022.js +78 -0
- package/internal/themes/Theme2022/Theme2022.js.map +1 -0
- package/internal/themes/Theme2022/package.json +6 -0
- package/internal/themes/Theme2022.d.ts +66 -0
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +17 -0
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
- package/internal/themes/Theme2022Dark/package.json +6 -0
- package/internal/themes/Theme2022Dark.d.ts +5 -0
- package/lib/animation/index/index.js +1 -1
- package/lib/animation/index/index.js.map +1 -1
- package/lib/animation/index.d.ts +1 -1
- package/lib/date/InternalDate/InternalDate.js +16 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js +14 -2
- package/lib/date/InternalDateCalculator/InternalDateCalculator.js.map +1 -1
- package/lib/date/InternalDateGetter/InternalDateGetter.js +23 -7
- package/lib/date/InternalDateGetter/InternalDateGetter.js.map +1 -1
- package/lib/date/InternalDateGetter.d.ts +1 -1
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +11 -1
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js +75 -34
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/types/types.js.map +1 -1
- package/lib/date/types.d.ts +4 -0
- package/lib/events/MouseDrag/MouseDrag.js +5 -1
- package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
- package/lib/events/keyboard/extractCode/extractCode.js +5 -5
- package/lib/events/keyboard/extractCode/extractCode.js.map +1 -1
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js +21 -0
- package/lib/needsPolyfillPlaceholder/needsPolyfillPlaceholder.js.map +1 -0
- package/lib/needsPolyfillPlaceholder/package.json +6 -0
- package/lib/needsPolyfillPlaceholder.d.ts +6 -0
- package/lib/rootNode/getRootNode/getRootNode.js +36 -8
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/getRootNode.d.ts +9 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +3 -1
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +9 -1
- package/lib/stringUtils/stringUtils.js +4 -1
- package/lib/stringUtils/stringUtils.js.map +1 -1
- package/lib/styles/ColorFactory/ColorFactory.js +9 -9
- package/lib/styles/ColorFactory/ColorFactory.js.map +1 -1
- package/lib/styles/ColorHelpers/ColorHelpers.js +26 -9
- package/lib/styles/ColorHelpers/ColorHelpers.js.map +1 -1
- package/lib/styles/ColorHelpers.d.ts +1 -0
- package/lib/styles/ColorObject/ColorObject.js +2 -2
- package/lib/styles/ColorObject/ColorObject.js.map +1 -1
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +9 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation/package.json +6 -0
- package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -0
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js +4 -1
- package/lib/taskWithDelayAndMinimalDuration/taskWithDelayAndMinimalDuration.js.map +1 -1
- package/lib/theming/Emotion/Emotion.js +5 -2
- package/lib/theming/Emotion/Emotion.js.map +1 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js +5 -2
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +5 -1
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/themes/Theme2022/Theme2022.js +4 -0
- package/lib/theming/themes/Theme2022/Theme2022.js.map +1 -0
- package/lib/theming/themes/Theme2022/package.json +6 -0
- package/lib/theming/themes/Theme2022.d.ts +1 -0
- package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js +5 -0
- package/lib/theming/themes/Theme2022Dark/Theme2022Dark.js.map +1 -0
- package/lib/theming/themes/Theme2022Dark/package.json +6 -0
- package/lib/theming/themes/Theme2022Dark.d.ts +1 -0
- package/lib/utils/utils.js +42 -6
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +15 -0
- package/package.json +5 -6
- package/cjs/components/Button/Corners.d.ts +0 -6
- package/cjs/components/Button/Corners.js +0 -5
- package/cjs/components/Button/Corners.js.map +0 -1
- package/cjs/lib/polyfillPlaceholder.d.ts +0 -1
- package/cjs/lib/polyfillPlaceholder.js +0 -17
- package/cjs/lib/polyfillPlaceholder.js.map +0 -1
- package/components/Button/Corners/Corners.js +0 -6
- package/components/Button/Corners/Corners.js.map +0 -1
- package/components/Button/Corners/package.json +0 -6
- package/components/Button/Corners.d.ts +0 -6
- package/lib/polyfillPlaceholder/package.json +0 -6
- package/lib/polyfillPlaceholder/polyfillPlaceholder.js +0 -12
- package/lib/polyfillPlaceholder/polyfillPlaceholder.js.map +0 -1
- package/lib/polyfillPlaceholder.d.ts +0 -1
|
@@ -11,19 +11,22 @@ import React from 'react';
|
|
|
11
11
|
import raf from 'raf';
|
|
12
12
|
import { isIE11, isEdge } from "../../../lib/client";
|
|
13
13
|
import { isKeyBackspace, isKeyDelete, someKeys } from "../../../lib/events/keyboard/identifiers";
|
|
14
|
-
import {
|
|
14
|
+
import { needsPolyfillPlaceholder } from "../../../lib/needsPolyfillPlaceholder";
|
|
15
15
|
import { MaskedInput } from "../../../internal/MaskedInput";
|
|
16
16
|
import { ThemeContext } from "../../../lib/theming/ThemeContext";
|
|
17
17
|
import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
18
18
|
import { cx } from "../../../lib/theming/Emotion";
|
|
19
19
|
import { rootNode } from "../../../lib/rootNode";
|
|
20
20
|
import { styles } from "../Input.styles";
|
|
21
|
-
export
|
|
21
|
+
export var InputDataTids = {
|
|
22
|
+
root: 'Input__root'
|
|
23
|
+
};
|
|
22
24
|
/**
|
|
23
|
-
* Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
|
|
24
|
-
* Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
|
|
25
|
-
*/
|
|
26
|
-
|
|
25
|
+
* Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
|
|
26
|
+
* Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
export var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
27
30
|
_inheritsLoose(Input, _React$Component);
|
|
28
31
|
|
|
29
32
|
function Input() {
|
|
@@ -35,7 +38,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
35
38
|
|
|
36
39
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
37
40
|
_this.state = {
|
|
38
|
-
|
|
41
|
+
needsPolyfillPlaceholder: needsPolyfillPlaceholder,
|
|
39
42
|
blinking: false,
|
|
40
43
|
focused: false
|
|
41
44
|
};
|
|
@@ -136,7 +139,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
136
139
|
},
|
|
137
140
|
ref: _this.refInput,
|
|
138
141
|
type: 'text',
|
|
139
|
-
placeholder: !_this.isMaskVisible && !
|
|
142
|
+
placeholder: !_this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,
|
|
140
143
|
disabled: disabled
|
|
141
144
|
});
|
|
142
145
|
|
|
@@ -145,7 +148,9 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
145
148
|
}
|
|
146
149
|
|
|
147
150
|
var input = mask ? _this.renderMaskedInput(inputProps, mask) : /*#__PURE__*/React.createElement('input', inputProps);
|
|
148
|
-
return /*#__PURE__*/React.createElement("label",
|
|
151
|
+
return /*#__PURE__*/React.createElement("label", _extends({
|
|
152
|
+
"data-tid": InputDataTids.root
|
|
153
|
+
}, labelProps), /*#__PURE__*/React.createElement("span", {
|
|
149
154
|
className: styles.sideContainer()
|
|
150
155
|
}, _this.renderLeftIcon(), _this.renderPrefix()), /*#__PURE__*/React.createElement("span", {
|
|
151
156
|
className: styles.wrapper()
|
|
@@ -163,12 +168,12 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
163
168
|
};
|
|
164
169
|
|
|
165
170
|
_this.handleChange = function (event) {
|
|
166
|
-
if (
|
|
171
|
+
if (needsPolyfillPlaceholder) {
|
|
167
172
|
var fieldIsEmpty = event.target.value === '';
|
|
168
173
|
|
|
169
|
-
if (_this.state.
|
|
174
|
+
if (_this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {
|
|
170
175
|
_this.setState({
|
|
171
|
-
|
|
176
|
+
needsPolyfillPlaceholder: fieldIsEmpty
|
|
172
177
|
});
|
|
173
178
|
}
|
|
174
179
|
}
|
|
@@ -284,30 +289,12 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
284
289
|
|
|
285
290
|
var _proto = Input.prototype;
|
|
286
291
|
|
|
287
|
-
_proto.componentDidMount = function componentDidMount() {
|
|
288
|
-
if (polyfillPlaceholder) {
|
|
289
|
-
this.setState({
|
|
290
|
-
polyfillPlaceholder: true
|
|
291
|
-
});
|
|
292
|
-
}
|
|
293
|
-
};
|
|
294
|
-
|
|
295
292
|
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
296
293
|
if (this.blinkTimeout) {
|
|
297
294
|
clearTimeout(this.blinkTimeout);
|
|
298
295
|
}
|
|
299
296
|
|
|
300
297
|
this.cancelDelayedSelectAll();
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
Input.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
|
|
304
|
-
if (polyfillPlaceholder && !props.value) {
|
|
305
|
-
return {
|
|
306
|
-
polyfillPlaceholder: true
|
|
307
|
-
};
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
return state;
|
|
311
298
|
}
|
|
312
299
|
/**
|
|
313
300
|
* @public
|
|
@@ -451,7 +438,7 @@ var Input = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$C
|
|
|
451
438
|
var focused = this.state.focused;
|
|
452
439
|
var placeholder = null;
|
|
453
440
|
|
|
454
|
-
if (this.state.
|
|
441
|
+
if (this.state.needsPolyfillPlaceholder && this.props.placeholder && !this.isMaskVisible && !this.props.value && !this.props.defaultValue) {
|
|
455
442
|
var _cx6;
|
|
456
443
|
|
|
457
444
|
placeholder = /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Input.tsx"],"names":["invariant","React","raf","isIE11","isEdge","isKeyBackspace","isKeyDelete","someKeys","polyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","styles","Input","state","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","root","theme","getSizeClassName","focus","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentDidMount","componentWillUnmount","getDerivedStateFromProps","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconDisabled","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n polyfillPlaceholder: boolean;\n}\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: {\n size: InputSize;\n } = {\n size: 'small',\n };\n\n public state: InputState = {\n polyfillPlaceholder: false,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (polyfillPlaceholder) {\n this.setState({ polyfillPlaceholder: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n public static getDerivedStateFromProps(props: InputProps, state: InputState) {\n if (polyfillPlaceholder && !props.value) {\n return { polyfillPlaceholder: true };\n }\n return state;\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input!.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input!.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !polyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (this.state.polyfillPlaceholder && this.props.placeholder && !this.isMaskVisible && !this.props.value) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (polyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Input.tsx"],"names":["invariant","React","raf","isIE11","isEdge","isKeyBackspace","isKeyDelete","someKeys","needsPolyfillPlaceholder","MaskedInput","ThemeContext","CommonWrapper","cx","rootNode","styles","InputDataTids","root","Input","state","blinking","focused","selectAllId","blinkTimeout","input","selectAll","setSelectionRange","value","length","delaySelectAll","cancelDelayedSelectAll","cancel","cancelBlink","callback","clearTimeout","setState","renderMain","props","onMouseEnter","onMouseLeave","onMouseOver","onKeyDown","onKeyPress","onValueChange","width","error","warning","leftIcon","rightIcon","borderless","align","type","mask","maskChar","alwaysShowMask","size","placeholder","selectAllOnFocus","disabled","onUnexpectedInput","prefix","suffix","formatChars","rest","labelProps","className","theme","getSizeClassName","focus","blink","focusFallback","warningFallback","errorFallback","style","inputProps","inputFocus","inputDisabled","onChange","handleChange","onFocus","handleFocus","handleKeyDown","handleKeyPress","onBlur","handleBlur","textAlign","ref","refInput","isMaskVisible","undefined","renderMaskedInput","createElement","sideContainer","renderLeftIcon","renderPrefix","wrapper","renderPlaceholder","rightContainer","renderSuffix","renderRightIcon","element","event","fieldIsEmpty","target","e","isDeleteKey","currentTarget","repeat","handleUnexpectedInput","maxLength","handleMaskedValueChange","prefixDisabled","suffixDisabled","componentWillUnmount","blur","getNode","offsetWidth","window","setTimeout","start","end","Error","document","activeElement","render","setRootNode","getIconSizeClassname","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","renderIcon","icon","sizeClassName","iconNode","Function","useDefaultColor","iconDisabled","defaultValue","placeholderDisabled","placeholderFocus","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","Boolean","Component","__KONTUR_REACT_UI__","defaultProps"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport React from 'react';\nimport raf from 'raf';\n\nimport { isIE11, isEdge } from '../../lib/client';\nimport { isKeyBackspace, isKeyDelete, someKeys } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { MaskedInput } from '../../internal/MaskedInput';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Input.styles';\n\nexport type InputSize = 'small' | 'medium' | 'large';\nexport type InputAlign = 'left' | 'center' | 'right';\nexport type InputType = 'password' | 'text';\nexport type InputIconType = React.ReactNode | (() => React.ReactNode);\n\nexport interface InputProps\n extends CommonProps,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Иконка слева\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n leftIcon?: InputIconType;\n /**\n * Иконка справа\n * Если `ReactNode` применяются дефолтные стили для иконки\n * Если `() => ReactNode` применяются только стили для позиционирование\n */\n rightIcon?: InputIconType;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Режим прозрачной рамки */\n borderless?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n /** Паттерн маски */\n mask?: Nullable<string>;\n /** Символ маски */\n maskChar?: Nullable<string>;\n /**\n * Словарь символов-регулярок для задания маски\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' }\n */\n formatChars?: Record<string, string>;\n /** Показывать символы маски */\n alwaysShowMask?: boolean;\n /** Размер */\n size?: InputSize;\n /** onValueChange */\n onValueChange?: (value: string) => void;\n /** Вызывается на label */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /** Вызывается на label */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /** Тип */\n type?: InputType;\n /** Значение */\n value?: string;\n capture?: boolean;\n\n /**\n * Префикс\n * `ReactNode` перед значением, но после иконки\n */\n prefix?: React.ReactNode;\n /**\n * Суффикс\n * `ReactNode` после значения, но перед правой иконкой\n */\n suffix?: React.ReactNode;\n /** Выделять введенное значение при фокусе */\n selectAllOnFocus?: boolean;\n /**\n * Обработчик неправильного ввода.\n * По-умолчанию, инпут вспыхивает синим.\n * Если передан - вызывается переданный обработчик,\n * в таком случае вспыхивание можно вызвать\n * публичным методом инстанса `blink()`.\n *\n * @param value значение инпута.\n */\n onUnexpectedInput?: (value: string) => void;\n }\n > {}\n\nexport interface InputState {\n blinking: boolean;\n focused: boolean;\n needsPolyfillPlaceholder: boolean;\n}\n\nexport const InputDataTids = {\n root: 'Input__root',\n} as const;\n\n/**\n * Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.\n * Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`\n */\n@rootNode\nexport class Input extends React.Component<InputProps, InputState> {\n public static __KONTUR_REACT_UI__ = 'Input';\n\n public static defaultProps: {\n size: InputSize;\n } = {\n size: 'small',\n };\n\n public state: InputState = {\n needsPolyfillPlaceholder,\n blinking: false,\n focused: false,\n };\n\n private selectAllId: number | null = null;\n private theme!: Theme;\n private blinkTimeout = 0;\n private input: HTMLInputElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n this.cancelDelayedSelectAll();\n }\n\n /**\n * @public\n */\n public focus() {\n invariant(this.input, 'Cannot call \"focus\" because Input is not mounted');\n this.input!.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n invariant(this.input, 'Cannot call \"blur\" because Input is not mounted');\n this.input!.blur();\n }\n\n /**\n * @public\n */\n public getNode() {\n return this.input;\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.blinkTimeout) {\n this.cancelBlink(() => {\n // trigger reflow to restart animation\n // @see https://css-tricks.com/restart-css-animation/#article-header-id-0\n void (this.input && this.input.offsetWidth);\n this.blink();\n });\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(this.cancelBlink, 150);\n });\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange(start: number, end: number) {\n if (!this.input) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (document.activeElement !== this.input) {\n this.focus();\n }\n\n this.input.setSelectionRange(start, end);\n }\n\n public get isMaskVisible(): boolean {\n const { mask, alwaysShowMask } = this.props;\n const { focused } = this.state;\n return Boolean(mask && (focused || alwaysShowMask));\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public selectAll = (): void => {\n if (this.input) {\n this.setSelectionRange(0, this.input.value.length);\n }\n };\n\n private delaySelectAll = (): number => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private cancelBlink = (callback?: () => void): void => {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n this.blinkTimeout = 0;\n if (this.state.blinking) {\n this.setState({ blinking: false }, callback);\n return;\n }\n }\n if (callback) {\n callback();\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<InputProps>) => {\n const {\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onKeyDown,\n onKeyPress,\n onValueChange,\n width,\n error,\n warning,\n leftIcon,\n rightIcon,\n borderless,\n value,\n align,\n type,\n mask,\n maskChar,\n alwaysShowMask,\n size,\n placeholder,\n selectAllOnFocus,\n disabled,\n onUnexpectedInput,\n prefix,\n suffix,\n formatChars,\n ...rest\n } = props;\n\n const { blinking, focused } = this.state;\n\n const labelProps = {\n className: cx(styles.root(this.theme), this.getSizeClassName(), {\n [styles.focus(this.theme)]: focused,\n [styles.blink(this.theme)]: blinking,\n [styles.borderless()]: borderless && !focused,\n [styles.disabled(this.theme)]: disabled,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [styles.warningFallback(this.theme)]: warning && (isIE11 || isEdge),\n [styles.errorFallback(this.theme)]: error && (isIE11 || isEdge),\n }),\n style: { width },\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n };\n\n const inputProps = {\n ...rest,\n className: cx(styles.input(this.theme), {\n [styles.inputFocus(this.theme)]: focused,\n [styles.inputDisabled(this.theme)]: disabled,\n }),\n value,\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onKeyDown: this.handleKeyDown,\n onKeyPress: this.handleKeyPress,\n onBlur: this.handleBlur,\n style: { textAlign: align },\n ref: this.refInput,\n type: 'text',\n placeholder: !this.isMaskVisible && !needsPolyfillPlaceholder ? placeholder : undefined,\n disabled,\n };\n\n if (type === 'password') {\n inputProps.type = type;\n }\n\n const input = mask ? this.renderMaskedInput(inputProps, mask) : React.createElement('input', inputProps);\n\n return (\n <label data-tid={InputDataTids.root} {...labelProps}>\n <span className={styles.sideContainer()}>\n {this.renderLeftIcon()}\n {this.renderPrefix()}\n </span>\n <span className={styles.wrapper()}>\n {input}\n {this.renderPlaceholder()}\n </span>\n <span className={cx(styles.sideContainer(), styles.rightContainer())}>\n {this.renderSuffix()}\n {this.renderRightIcon()}\n </span>\n </label>\n );\n };\n\n private renderMaskedInput(\n inputProps: React.InputHTMLAttributes<HTMLInputElement> & {\n capture?: boolean;\n },\n mask: string,\n ) {\n return (\n <MaskedInput\n {...inputProps}\n mask={mask}\n maskChar={this.props.maskChar}\n alwaysShowMask={this.props.alwaysShowMask}\n formatChars={this.props.formatChars}\n onChange={this.props.onChange}\n onValueChange={this.handleMaskedValueChange}\n onUnexpectedInput={this.handleUnexpectedInput}\n />\n );\n }\n\n private getIconSizeClassname(right = false) {\n switch (this.props.size) {\n case 'large':\n return right ? styles.rightIconLarge(this.theme) : styles.leftIconLarge(this.theme);\n case 'medium':\n return right ? styles.rightIconMedium(this.theme) : styles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? styles.rightIconSmall(this.theme) : styles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon() {\n return this.renderIcon(this.props.leftIcon, this.getIconSizeClassname());\n }\n\n private renderRightIcon() {\n return this.renderIcon(this.props.rightIcon, this.getIconSizeClassname(true));\n }\n\n private renderIcon(icon: InputIconType, sizeClassName: string) {\n if (!icon) {\n return null;\n }\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(styles.icon(), sizeClassName, styles.useDefaultColor(this.theme), {\n [styles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n }\n\n private renderPlaceholder() {\n const { disabled } = this.props;\n const { focused } = this.state;\n let placeholder = null;\n\n if (\n this.state.needsPolyfillPlaceholder &&\n this.props.placeholder &&\n !this.isMaskVisible &&\n !this.props.value &&\n !this.props.defaultValue\n ) {\n placeholder = (\n <div\n className={cx(styles.placeholder(this.theme), {\n [styles.placeholderDisabled(this.theme)]: disabled,\n [styles.placeholderFocus(this.theme)]: focused,\n })}\n style={{ textAlign: this.props.align || 'inherit' }}\n >\n {this.props.placeholder}\n </div>\n );\n }\n\n return placeholder;\n }\n\n private getSizeClassName() {\n switch (this.props.size) {\n case 'large':\n return cx({\n [styles.sizeLarge(this.theme)]: true,\n [styles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [styles.sizeMedium(this.theme)]: true,\n [styles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [styles.sizeSmall(this.theme)]: true,\n [styles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n }\n\n private refInput = (element: HTMLInputElement | MaskedInput | null) => {\n if (element instanceof MaskedInput) {\n this.input = element.input;\n } else {\n this.input = element;\n }\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = event.target.value === '';\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({\n focused: true,\n });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.input && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n\n const isDeleteKey = someKeys(isKeyBackspace, isKeyDelete)(e);\n\n if (!e.currentTarget.value && isDeleteKey && !e.repeat) {\n this.handleUnexpectedInput();\n }\n };\n\n private handleKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n\n if (this.props.maxLength === event.currentTarget.value.length) {\n this.handleUnexpectedInput(event.currentTarget.value);\n }\n };\n\n private handleMaskedValueChange = (value: string) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n\n private handleUnexpectedInput = (value: string = this.props.value || '') => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(value);\n } else {\n this.blink();\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private renderPrefix = () => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(styles.prefix(this.theme), { [styles.prefixDisabled(this.theme)]: disabled })}>{prefix}</span>\n );\n };\n\n private renderSuffix = () => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(styles.suffix(this.theme), { [styles.suffixDisabled(this.theme)]: disabled })}>{suffix}</span>\n );\n };\n}\n"]}
|
|
@@ -83,8 +83,11 @@ export interface InputProps extends CommonProps, Override<React.InputHTMLAttribu
|
|
|
83
83
|
export interface InputState {
|
|
84
84
|
blinking: boolean;
|
|
85
85
|
focused: boolean;
|
|
86
|
-
|
|
86
|
+
needsPolyfillPlaceholder: boolean;
|
|
87
87
|
}
|
|
88
|
+
export declare const InputDataTids: {
|
|
89
|
+
readonly root: "Input__root";
|
|
90
|
+
};
|
|
88
91
|
/**
|
|
89
92
|
* Интерфейс пропсов наследуется от `React.InputHTMLAttributes<HTMLInputElement>`.
|
|
90
93
|
* Все пропсы кроме перечисленных, `className` и `style` передаются в `<input>`
|
|
@@ -100,11 +103,7 @@ export declare class Input extends React.Component<InputProps, InputState> {
|
|
|
100
103
|
private blinkTimeout;
|
|
101
104
|
private input;
|
|
102
105
|
private setRootNode;
|
|
103
|
-
componentDidMount(): void;
|
|
104
106
|
componentWillUnmount(): void;
|
|
105
|
-
static getDerivedStateFromProps(props: InputProps, state: InputState): InputState | {
|
|
106
|
-
polyfillPlaceholder: boolean;
|
|
107
|
-
};
|
|
108
107
|
/**
|
|
109
108
|
* @public
|
|
110
109
|
*/
|
|
@@ -29,7 +29,6 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
|
|
|
29
29
|
|
|
30
30
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
31
31
|
_this.state = {
|
|
32
|
-
opened: false,
|
|
33
32
|
focusedByTab: false,
|
|
34
33
|
anchor: null
|
|
35
34
|
};
|
|
@@ -75,18 +74,7 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
|
|
|
75
74
|
|
|
76
75
|
_this.handleChangeMenuState = function (isOpened, restoreFocus) {
|
|
77
76
|
_this.setState({
|
|
78
|
-
opened: isOpened,
|
|
79
77
|
focusedByTab: !isOpened && restoreFocus
|
|
80
|
-
}, function () {
|
|
81
|
-
if (_this.props.disabled) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (_this.state.opened) {
|
|
86
|
-
_this.props.onOpen();
|
|
87
|
-
} else {
|
|
88
|
-
_this.props.onClose();
|
|
89
|
-
}
|
|
90
78
|
});
|
|
91
79
|
};
|
|
92
80
|
|
|
@@ -153,7 +141,9 @@ export var Kebab = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_
|
|
|
153
141
|
onChangeMenuState: this.handleChangeMenuState,
|
|
154
142
|
caption: this.renderCaption,
|
|
155
143
|
disableAnimations: this.props.disableAnimations,
|
|
156
|
-
menuMaxHeight: this.props.menuMaxHeight
|
|
144
|
+
menuMaxHeight: this.props.menuMaxHeight,
|
|
145
|
+
onOpen: this.props.onOpen,
|
|
146
|
+
onClose: this.props.onClose
|
|
157
147
|
}, !disabled && this.props.children));
|
|
158
148
|
};
|
|
159
149
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Kebab.tsx"],"names":["React","PropTypes","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","MenuKebabIcon","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","styles","Kebab","state","opened","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","kebab","theme","focused","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","onOpen","onClose","requestAnimationFrame","isTabPressed","componentDidMount","addListener","componentWillUnmount","render","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","setRootNode","disableAnimations","menuMaxHeight","children","icon","iconsmall","size","iconmedium","iconlarge","Component","__KONTUR_REACT_UI__","propTypes","defaultProps","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Kebab.styles';\n\nexport interface KebabProps extends CommonProps {\n disabled?: boolean;\n /**\n * Функция вызываемая при закрытии выпадашки\n * @default () => undefined\n */\n onClose: () => void;\n /**\n * Функция вызываемая при открытии выпадашки\n * @default () => undefined\n */\n onOpen: () => void;\n size: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n opened: boolean;\n}\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n public state = {\n opened: false,\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled, positions } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={this.props.disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState(\n {\n opened: isOpened,\n focusedByTab: !isOpened && restoreFocus,\n },\n () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.state.opened) {\n this.props.onOpen();\n } else {\n this.props.onClose();\n }\n },\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: this.props.size === 'small',\n [styles.iconmedium()]: this.props.size === 'medium',\n [styles.iconlarge()]: this.props.size === 'large',\n })}\n >\n {this.props.icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["Kebab.tsx"],"names":["React","PropTypes","isKeyArrowVertical","isKeyEnter","isKeySpace","someKeys","LayoutEvents","keyListener","PopupMenu","ThemeContext","MenuKebabIcon","isTestEnv","ThemeFactory","CommonWrapper","cx","rootNode","styles","Kebab","state","focusedByTab","anchor","listener","remove","undefined","renderCaption","captionProps","disabled","props","handleCaptionKeyDown","event","openMenu","handleCaptionClick","toggleMenu","handleFocus","handleBlur","kebab","theme","opened","focused","renderIcon","e","preventDefault","handleChangeMenuState","isOpened","restoreFocus","setState","requestAnimationFrame","isTabPressed","componentDidMount","addListener","componentWillUnmount","render","create","popupPinOffset","kebabPinOffset","popupMargin","kebabMargin","popupPinSize","kebabPinSize","renderMain","positions","setRootNode","disableAnimations","menuMaxHeight","onOpen","onClose","children","icon","iconsmall","size","iconmedium","iconlarge","Component","__KONTUR_REACT_UI__","propTypes","defaultProps","node","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { isKeyArrowVertical, isKeyEnter, isKeySpace, someKeys } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { PopupMenu, PopupMenuCaptionProps, PopupMenuProps } from '../../internal/PopupMenu';\nimport { Nullable } from '../../typings/utility-types';\nimport { PopupPositionsType } from '../../internal/Popup';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MenuKebabIcon } from '../../internal/icons/16px';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\n\nimport { styles } from './Kebab.styles';\n\nexport interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {\n disabled?: boolean;\n size: 'small' | 'medium' | 'large';\n /**\n * Список позиций доступных для расположения выпадашки.\n *\n * Если во всех позициях выпадашка вылезает за пределы `viewport`, будет использована первая из этого списка.\n *\n * **Возможные значения**: `top left`, `top center`, `top right`, `right top`, `right middle`, `right bottom`, `bottom left`, `bottom center`, `bottom right`, `left top`, `left middle`, `left bottom`\n * @default ['bottom left', 'bottom right', 'top left', 'top right']\n */\n positions: PopupPositionsType[];\n menuMaxHeight?: number | string;\n /**\n * Не показывать анимацию\n */\n disableAnimations: boolean;\n /**\n * Кастомная иконка\n */\n icon?: React.ReactNode;\n}\n\nexport interface KebabState {\n anchor: Nullable<HTMLElement>;\n focusedByTab: boolean;\n}\n\n@rootNode\nexport class Kebab extends React.Component<KebabProps, KebabState> {\n public static __KONTUR_REACT_UI__ = 'Kebab';\n\n public static propTypes = {};\n\n public static defaultProps = {\n onOpen: () => undefined,\n onClose: () => undefined,\n positions: ['bottom left', 'bottom right', 'top left', 'top right'],\n size: 'small',\n disableAnimations: isTestEnv,\n icon: <MenuKebabIcon />,\n };\n\n public state = {\n focusedByTab: false,\n anchor: null,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n private listener: {\n remove: () => void;\n } = {\n remove: () => undefined,\n };\n\n public componentDidMount() {\n /** addListener'у нужен колбэк в аргумент */\n this.listener = LayoutEvents.addListener(() => undefined);\n }\n\n public componentWillUnmount() {\n this.listener.remove();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupPinOffset: theme.kebabPinOffset,\n popupMargin: theme.kebabMargin,\n popupPinSize: theme.kebabPinSize,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { disabled, positions } = this.props;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <PopupMenu\n popupHasPin\n positions={positions}\n onChangeMenuState={this.handleChangeMenuState}\n caption={this.renderCaption}\n disableAnimations={this.props.disableAnimations}\n menuMaxHeight={this.props.menuMaxHeight}\n onOpen={this.props.onOpen}\n onClose={this.props.onClose}\n >\n {!disabled && this.props.children}\n </PopupMenu>\n </CommonWrapper>\n );\n }\n\n private renderCaption = (captionProps: PopupMenuCaptionProps) => {\n const { disabled } = this.props;\n const handleCaptionKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disabled) {\n this.handleCaptionKeyDown(event, captionProps.openMenu);\n }\n };\n\n const handleCaptionClick = () => {\n if (!disabled) {\n captionProps.toggleMenu();\n }\n };\n\n return (\n <span\n tabIndex={disabled ? -1 : 0}\n onClick={handleCaptionClick}\n onKeyDown={handleCaptionKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n className={cx({\n [styles.kebab(this.theme)]: true,\n [styles.opened(this.theme)]: captionProps.opened,\n [styles.disabled()]: disabled,\n [styles.focused(this.theme)]: this.state.focusedByTab,\n })}\n >\n {this.renderIcon()}\n </span>\n );\n };\n\n private handleCaptionKeyDown = (\n e: React.KeyboardEvent<HTMLDivElement>,\n openMenu: PopupMenuCaptionProps['openMenu'],\n ) => {\n if (someKeys(isKeyEnter, isKeySpace, isKeyArrowVertical)(e)) {\n e.preventDefault();\n openMenu(true);\n }\n };\n\n private handleChangeMenuState = (isOpened: boolean, restoreFocus: boolean): void => {\n this.setState({\n focusedByTab: !isOpened && restoreFocus,\n });\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private handleBlur = () => {\n this.setState({\n focusedByTab: false,\n });\n };\n\n private renderIcon() {\n return (\n <div\n className={cx({\n [styles.icon()]: true,\n [styles.iconsmall()]: this.props.size === 'small',\n [styles.iconmedium()]: this.props.size === 'medium',\n [styles.iconlarge()]: this.props.size === 'large',\n })}\n >\n {this.props.icon}\n </div>\n );\n }\n}\n\nKebab.propTypes = {\n children: PropTypes.node,\n disabled: PropTypes.bool,\n menuMaxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n /**\n * Размер кебаба small 14px | large 20px\n */\n size: PropTypes.string,\n\n /**\n * Коллбек, вызывающийся перед закрытием кебаба\n */\n onClose: PropTypes.func,\n\n /**\n * Коллбек, вызывающийся перед открытием кебаба\n */\n onOpen: PropTypes.func,\n};\n"]}
|
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { PopupMenuProps } from '../../internal/PopupMenu';
|
|
2
3
|
import { Nullable } from '../../typings/utility-types';
|
|
3
4
|
import { PopupPositionsType } from '../../internal/Popup';
|
|
4
5
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
5
|
-
export interface KebabProps extends CommonProps {
|
|
6
|
+
export interface KebabProps extends CommonProps, Pick<PopupMenuProps, 'onOpen' | 'onClose'> {
|
|
6
7
|
disabled?: boolean;
|
|
7
|
-
/**
|
|
8
|
-
* Функция вызываемая при закрытии выпадашки
|
|
9
|
-
* @default () => undefined
|
|
10
|
-
*/
|
|
11
|
-
onClose: () => void;
|
|
12
|
-
/**
|
|
13
|
-
* Функция вызываемая при открытии выпадашки
|
|
14
|
-
* @default () => undefined
|
|
15
|
-
*/
|
|
16
|
-
onOpen: () => void;
|
|
17
8
|
size: 'small' | 'medium' | 'large';
|
|
18
9
|
/**
|
|
19
10
|
* Список позиций доступных для расположения выпадашки.
|
|
@@ -37,7 +28,6 @@ export interface KebabProps extends CommonProps {
|
|
|
37
28
|
export interface KebabState {
|
|
38
29
|
anchor: Nullable<HTMLElement>;
|
|
39
30
|
focusedByTab: boolean;
|
|
40
|
-
opened: boolean;
|
|
41
31
|
}
|
|
42
32
|
export declare class Kebab extends React.Component<KebabProps, KebabState> {
|
|
43
33
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -51,7 +41,6 @@ export declare class Kebab extends React.Component<KebabProps, KebabState> {
|
|
|
51
41
|
icon: JSX.Element;
|
|
52
42
|
};
|
|
53
43
|
state: {
|
|
54
|
-
opened: boolean;
|
|
55
44
|
focusedByTab: boolean;
|
|
56
45
|
anchor: null;
|
|
57
46
|
};
|
|
@@ -15,11 +15,14 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
|
|
|
15
15
|
import { cx } from "../../../lib/theming/Emotion";
|
|
16
16
|
import { rootNode } from "../../../lib/rootNode/rootNodeDecorator";
|
|
17
17
|
import { styles } from "../Link.styles";
|
|
18
|
-
export
|
|
18
|
+
export var LinkDataTids = {
|
|
19
|
+
root: 'Link__root'
|
|
20
|
+
};
|
|
19
21
|
/**
|
|
20
|
-
* Элемент ссылки из HTML.
|
|
21
|
-
*/
|
|
22
|
-
|
|
22
|
+
* Элемент ссылки из HTML.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export var Link = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
23
26
|
_inheritsLoose(Link, _React$Component);
|
|
24
27
|
|
|
25
28
|
function Link() {
|
|
@@ -83,7 +86,9 @@ var Link = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Co
|
|
|
83
86
|
onBlur: _this._handleBlur,
|
|
84
87
|
tabIndex: disabled || loading ? -1 : _this.props.tabIndex
|
|
85
88
|
};
|
|
86
|
-
return /*#__PURE__*/React.createElement("a", _extends({
|
|
89
|
+
return /*#__PURE__*/React.createElement("a", _extends({
|
|
90
|
+
"data-tid": LinkDataTids.root
|
|
91
|
+
}, rest, linkProps), iconElement, _this.props.children, arrow);
|
|
87
92
|
};
|
|
88
93
|
|
|
89
94
|
_this._handleFocus = function (event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Link.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","isExternalLink","Spinner","CommonWrapper","cx","rootNode","styles","Link","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","theme","arrow","focused","linkProps","className","root","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","event","requestAnimationFrame","isTabPressed","setState","preventDefault","render","setRootNode","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","node","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps = {\n href: '',\n use: 'default',\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<LinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = (event: React.FocusEvent<HTMLAnchorElement>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { href, onClick, disabled, loading } = this.props;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Link.tsx"],"names":["React","PropTypes","keyListener","ThemeContext","isExternalLink","Spinner","CommonWrapper","cx","rootNode","styles","LinkDataTids","root","Link","state","focusedByTab","renderMain","props","disabled","href","icon","use","loading","_button","_buttonOpened","relOrigin","rel","rest","iconElement","theme","arrow","focused","linkProps","className","button","buttonOpened","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","focus","onClick","_handleClick","onFocus","_handleFocus","onBlur","_handleBlur","tabIndex","children","event","requestAnimationFrame","isTabPressed","setState","preventDefault","render","setRootNode","Component","__KONTUR_REACT_UI__","propTypes","bool","string","oneOfType","node","oneOf","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { Spinner } from '../Spinner';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode/rootNodeDecorator';\n\nimport { styles } from './Link.styles';\n\nexport interface LinkProps\n extends CommonProps,\n Override<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * HTML-атрибут `href`.\n */\n href?: string;\n /**\n * Добавляет ссылке иконку.\n */\n icon?: React.ReactElement<any>;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * HTML-событие `onclick`.\n */\n onClick?: (event: React.MouseEvent<HTMLAnchorElement>) => void;\n }\n > {}\n\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link extends React.Component<LinkProps, LinkState> {\n public static __KONTUR_REACT_UI__ = 'Link';\n\n public static propTypes = {\n disabled: PropTypes.bool,\n\n href: PropTypes.string,\n\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n\n use: PropTypes.oneOf(['default', 'success', 'danger', 'grayed']),\n };\n\n public static defaultProps = {\n href: '',\n use: 'default',\n };\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<LinkProps>) => {\n const { disabled, href, icon, use, loading, _button, _buttonOpened, rel: relOrigin, ...rest } = props;\n\n let iconElement = null;\n if (icon) {\n iconElement = (\n <span className={styles.icon(this.theme)}>{loading ? <Spinner caption={null} dimmed inline /> : icon}</span>\n );\n }\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n let rel = relOrigin;\n if (typeof rel === 'undefined' && href) {\n rel = `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n\n const focused = !disabled && this.state.focusedByTab;\n\n const linkProps = {\n className: cx({\n [styles.root(this.theme)]: true,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.focus(this.theme)]: focused,\n [styles.disabled(this.theme)]: !!disabled || !!loading,\n }),\n href,\n rel,\n onClick: this._handleClick,\n onFocus: this._handleFocus,\n onBlur: this._handleBlur,\n tabIndex: disabled || loading ? -1 : this.props.tabIndex,\n };\n\n return (\n <a data-tid={LinkDataTids.root} {...rest} {...linkProps}>\n {iconElement}\n {this.props.children}\n {arrow}\n </a>\n );\n };\n\n private _handleFocus = (event: React.FocusEvent<HTMLAnchorElement>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n requestAnimationFrame(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n }\n };\n\n private _handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private _handleClick = (event: React.MouseEvent<HTMLAnchorElement>) => {\n const { href, onClick, disabled, loading } = this.props;\n if (!href) {\n event.preventDefault();\n }\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n"]}
|
|
@@ -44,6 +44,9 @@ export interface LinkProps extends CommonProps, Override<React.AnchorHTMLAttribu
|
|
|
44
44
|
export interface LinkState {
|
|
45
45
|
focusedByTab: boolean;
|
|
46
46
|
}
|
|
47
|
+
export declare const LinkDataTids: {
|
|
48
|
+
readonly root: "Link__root";
|
|
49
|
+
};
|
|
47
50
|
/**
|
|
48
51
|
* Элемент ссылки из HTML.
|
|
49
52
|
*/
|
|
@@ -18,11 +18,15 @@ import { getTabbableElements } from "../../../lib/dom/tabbableHelpers";
|
|
|
18
18
|
import { rootNode } from "../../../lib/rootNode";
|
|
19
19
|
import { getDOMRect } from "../../../lib/dom/getDOMRect";
|
|
20
20
|
import { styles } from "../Loader.styles";
|
|
21
|
-
export
|
|
21
|
+
export var LoaderDataTids = {
|
|
22
|
+
veil: 'Loader__Veil',
|
|
23
|
+
spinner: 'Loader__Spinner'
|
|
24
|
+
};
|
|
22
25
|
/**
|
|
23
|
-
* DRAFT - лоадер-контейнер
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
+
* DRAFT - лоадер-контейнер
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
export var Loader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$Component) {
|
|
26
30
|
_inheritsLoose(Loader, _React$Component);
|
|
27
31
|
|
|
28
32
|
function Loader(props) {
|
|
@@ -277,7 +281,7 @@ var Loader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
|
|
|
277
281
|
rootNodeRef: this.setRootNode
|
|
278
282
|
}, this.props), /*#__PURE__*/React.createElement("div", {
|
|
279
283
|
className: styles.loader(),
|
|
280
|
-
"data-tid": isLoaderActive ?
|
|
284
|
+
"data-tid": isLoaderActive ? LoaderDataTids.veil : ''
|
|
281
285
|
}, /*#__PURE__*/React.createElement(ZIndex, {
|
|
282
286
|
priority: 'Loader',
|
|
283
287
|
applyZIndex: isLoaderActive,
|
|
@@ -298,7 +302,7 @@ var Loader = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (_React$
|
|
|
298
302
|
_this3 = this;
|
|
299
303
|
|
|
300
304
|
return /*#__PURE__*/React.createElement("span", {
|
|
301
|
-
"data-tid":
|
|
305
|
+
"data-tid": LoaderDataTids.spinner,
|
|
302
306
|
className: cx(styles.spinnerContainer(), (_cx2 = {}, _cx2[styles.spinnerContainerSticky()] = this.state.isStickySpinner, _cx2)),
|
|
303
307
|
style: this.state.spinnerStyle
|
|
304
308
|
}, /*#__PURE__*/React.createElement("div", {
|