@skbkontur/react-ui 0.0.0-0dca6f33be → 0.0.0-0ffbe8b468
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 +188 -0
- package/cjs/components/Autocomplete/Autocomplete.d.ts +9 -3
- package/cjs/components/Autocomplete/Autocomplete.js +24 -7
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +17 -0
- package/cjs/components/Button/Button.d.ts +9 -3
- package/cjs/components/Button/Button.js +27 -4
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.mixins.js +1 -1
- package/cjs/components/Button/Button.mixins.js.map +1 -1
- package/cjs/components/Button/Button.styles.d.ts +1 -0
- package/cjs/components/Button/Button.styles.js +68 -62
- package/cjs/components/Button/Button.styles.js.map +1 -1
- package/cjs/components/Button/ButtonIcon.d.ts +3 -2
- package/cjs/components/Button/ButtonIcon.js +1 -0
- package/cjs/components/Button/ButtonIcon.js.map +1 -1
- package/cjs/components/Button/getInnerLinkTheme.js +9 -4
- package/cjs/components/Button/getInnerLinkTheme.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -0
- package/cjs/components/Calendar/Calendar.js +1 -0
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +14 -3
- package/cjs/components/Calendar/Calendar.styles.js +1 -2
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.js +9 -2
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/cjs/components/Calendar/DayCellView.styles.js +4 -4
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/locale/locales/en.js +3 -1
- package/cjs/components/Calendar/locale/locales/en.js.map +1 -1
- package/cjs/components/Calendar/locale/locales/ru.js +3 -1
- package/cjs/components/Calendar/locale/locales/ru.js.map +1 -1
- package/cjs/components/Calendar/locale/types.d.ts +4 -0
- package/cjs/components/Checkbox/Checkbox.d.ts +15 -5
- package/cjs/components/Checkbox/Checkbox.js +73 -16
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +18 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js +37 -0
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -0
- package/cjs/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/cjs/components/Checkbox/Checkbox.styles.js +95 -34
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.d.ts +6 -8
- package/cjs/components/ComboBox/ComboBox.js +2 -1
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +51 -5
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js +21 -6
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +2 -2
- package/cjs/components/CurrencyInput/CurrencyInput.js +2 -0
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +5 -1
- package/cjs/components/DateInput/DateInput.js +24 -8
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +2 -1
- package/cjs/components/DatePicker/DatePicker.js +13 -2
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +15 -0
- package/cjs/components/DatePicker/locale/locales/en.js +4 -1
- package/cjs/components/DatePicker/locale/locales/en.js.map +1 -1
- package/cjs/components/DatePicker/locale/locales/ru.js +4 -1
- package/cjs/components/DatePicker/locale/locales/ru.js.map +1 -1
- package/cjs/components/DatePicker/locale/types.d.ts +3 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +4 -7
- package/cjs/components/Dropdown/Dropdown.js +4 -3
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.md +33 -0
- package/cjs/components/Dropdown/getDropdownTheme.js +32 -1
- package/cjs/components/Dropdown/getDropdownTheme.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/cjs/components/DropdownMenu/DropdownMenu.js +6 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +28 -0
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js +5 -1
- package/cjs/components/DropdownMenu/getDropdownMenuTheme.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +6 -2
- package/cjs/components/FileUploader/FileUploader.js +4 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.styles.js +3 -2
- package/cjs/components/FileUploader/FileUploader.styles.js.map +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +4 -2
- package/cjs/components/FxInput/FxInput.js +6 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/FxInput/FxInputRestoreBtn.d.ts +3 -2
- package/cjs/components/FxInput/FxInputRestoreBtn.js +7 -2
- package/cjs/components/FxInput/FxInputRestoreBtn.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.js +6 -2
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +6 -4
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Hint/Hint.js +2 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +7 -7
- package/cjs/components/Input/Input.js +12 -7
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.js +4 -3
- package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAside.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +5 -4
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
- package/cjs/components/Input/InputLayout/InputLayoutContext.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +3 -2
- package/cjs/components/Kebab/Kebab.js +8 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +28 -0
- package/cjs/components/Link/Link.d.ts +2 -2
- package/cjs/components/Link/Link.js +20 -4
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.mixins.d.ts +1 -2
- package/cjs/components/Link/Link.mixins.js +5 -16
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +4 -0
- package/cjs/components/Link/Link.styles.js +96 -37
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/components/MenuFooter/MenuFooter.d.ts +30 -0
- package/cjs/components/MenuFooter/MenuFooter.js +83 -0
- package/cjs/components/MenuFooter/MenuFooter.js.map +1 -0
- package/cjs/components/MenuFooter/MenuFooter.md +27 -0
- package/cjs/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
- package/cjs/components/MenuFooter/MenuFooter.mixins.js +26 -0
- package/cjs/components/MenuFooter/MenuFooter.mixins.js.map +1 -0
- package/cjs/components/MenuFooter/MenuFooter.styles.d.ts +10 -0
- package/cjs/components/MenuFooter/MenuFooter.styles.js +65 -0
- package/cjs/components/MenuFooter/MenuFooter.styles.js.map +1 -0
- package/cjs/components/MenuFooter/index.d.ts +1 -0
- package/cjs/components/MenuFooter/index.js +1 -0
- package/cjs/components/MenuFooter/index.js.map +1 -0
- package/cjs/components/MenuHeader/MenuHeader.d.ts +8 -1
- package/cjs/components/MenuHeader/MenuHeader.js +35 -4
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.md +12 -0
- package/cjs/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
- package/cjs/components/MenuHeader/MenuHeader.mixins.js +26 -0
- package/cjs/components/MenuHeader/MenuHeader.mixins.js.map +1 -0
- package/cjs/components/MenuHeader/MenuHeader.styles.d.ts +6 -1
- package/cjs/components/MenuHeader/MenuHeader.styles.js +54 -12
- package/cjs/components/MenuHeader/MenuHeader.styles.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +14 -5
- package/cjs/components/MenuItem/MenuItem.js +61 -9
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +12 -0
- package/cjs/components/MenuItem/MenuItem.mixins.d.ts +3 -0
- package/cjs/components/MenuItem/MenuItem.mixins.js +42 -0
- package/cjs/components/MenuItem/MenuItem.mixins.js.map +1 -0
- package/cjs/components/MenuItem/MenuItem.styles.d.ts +9 -1
- package/cjs/components/MenuItem/MenuItem.styles.js +80 -27
- package/cjs/components/MenuItem/MenuItem.styles.js.map +1 -1
- package/cjs/components/Modal/Modal.md +16 -0
- package/cjs/components/Modal/ModalClose.js +5 -1
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/locale/index.d.ts +4 -0
- package/cjs/components/Modal/locale/index.js +11 -0
- package/cjs/components/Modal/locale/index.js.map +1 -0
- package/cjs/components/Modal/locale/locales/en.d.ts +2 -0
- package/cjs/components/Modal/locale/locales/en.js +4 -0
- package/cjs/components/Modal/locale/locales/en.js.map +1 -0
- package/cjs/components/Modal/locale/locales/ru.d.ts +2 -0
- package/cjs/components/Modal/locale/locales/ru.js +4 -0
- package/cjs/components/Modal/locale/locales/ru.js.map +1 -0
- package/cjs/components/Modal/locale/types.d.ts +3 -0
- package/cjs/components/Modal/locale/types.js +1 -0
- package/cjs/components/Modal/locale/types.js.map +1 -0
- package/cjs/components/Paging/Paging.js +1 -1
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.styles.js +2 -1
- package/cjs/components/Paging/Paging.styles.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/cjs/components/PasswordInput/PasswordInput.js +13 -4
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.md +19 -0
- package/cjs/components/PasswordInput/PasswordInput.styles.d.ts +1 -0
- package/cjs/components/PasswordInput/PasswordInput.styles.js +11 -1
- package/cjs/components/PasswordInput/PasswordInput.styles.js.map +1 -1
- package/cjs/components/PasswordInput/locale/index.d.ts +4 -0
- package/cjs/components/PasswordInput/locale/index.js +11 -0
- package/cjs/components/PasswordInput/locale/index.js.map +1 -0
- package/cjs/components/PasswordInput/locale/locales/en.d.ts +2 -0
- package/cjs/components/PasswordInput/locale/locales/en.js +5 -0
- package/cjs/components/PasswordInput/locale/locales/en.js.map +1 -0
- package/cjs/components/PasswordInput/locale/locales/ru.d.ts +2 -0
- package/cjs/components/PasswordInput/locale/locales/ru.js +5 -0
- package/cjs/components/PasswordInput/locale/locales/ru.js.map +1 -0
- package/cjs/components/PasswordInput/locale/types.d.ts +4 -0
- package/cjs/components/PasswordInput/locale/types.js +1 -0
- package/cjs/components/PasswordInput/locale/types.js.map +1 -0
- package/cjs/components/Radio/Radio.d.ts +15 -3
- package/cjs/components/Radio/Radio.js +58 -6
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.md +18 -0
- package/cjs/components/Radio/Radio.mixins.d.ts +5 -0
- package/cjs/components/Radio/Radio.mixins.js +71 -0
- package/cjs/components/Radio/Radio.mixins.js.map +1 -0
- package/cjs/components/Radio/Radio.styles.d.ts +9 -0
- package/cjs/components/Radio/Radio.styles.js +93 -57
- package/cjs/components/Radio/Radio.styles.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/cjs/components/ScrollContainer/ScrollContainer.js +2 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +12 -10
- package/cjs/components/Select/Select.js +30 -9
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.md +17 -0
- package/cjs/components/Select/Select.styles.js +3 -2
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/Select/selectTheme.js +4 -1
- package/cjs/components/Select/selectTheme.js.map +1 -1
- package/cjs/components/SidePage/SidePage.js +5 -1
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.md +16 -0
- package/cjs/components/SidePage/SidePageCloseButton.d.ts +1 -0
- package/cjs/components/SidePage/SidePageCloseButton.js +47 -0
- package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -0
- package/cjs/components/SidePage/SidePageHeader.d.ts +0 -4
- package/cjs/components/SidePage/SidePageHeader.js +7 -41
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SidePage/locale/index.d.ts +4 -0
- package/cjs/components/SidePage/locale/index.js +11 -0
- package/cjs/components/SidePage/locale/index.js.map +1 -0
- package/cjs/components/SidePage/locale/locales/en.d.ts +2 -0
- package/cjs/components/SidePage/locale/locales/en.js +4 -0
- package/cjs/components/SidePage/locale/locales/en.js.map +1 -0
- package/cjs/components/SidePage/locale/locales/ru.d.ts +2 -0
- package/cjs/components/SidePage/locale/locales/ru.js +4 -0
- package/cjs/components/SidePage/locale/locales/ru.js.map +1 -0
- package/cjs/components/SidePage/locale/types.d.ts +3 -0
- package/cjs/components/SidePage/locale/types.js +1 -0
- package/cjs/components/SidePage/locale/types.js.map +1 -0
- package/cjs/components/Sticky/Sticky.js +10 -3
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Switcher/Switcher.d.ts +12 -7
- package/cjs/components/Switcher/Switcher.js +16 -5
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +17 -36
- package/cjs/components/Tabs/Tab.js +24 -21
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.md +71 -0
- package/cjs/components/Tabs/Tab.styles.d.ts +9 -3
- package/cjs/components/Tabs/Tab.styles.js +106 -68
- package/cjs/components/Tabs/Tab.styles.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +16 -15
- package/cjs/components/Tabs/Tabs.js +12 -4
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/Tabs.md +39 -22
- package/cjs/components/Tabs/Tabs.styles.d.ts +3 -1
- package/cjs/components/Tabs/Tabs.styles.js +23 -7
- package/cjs/components/Tabs/Tabs.styles.js.map +1 -1
- package/cjs/components/Tabs/TabsContext.d.ts +2 -0
- package/cjs/components/Tabs/TabsContext.js +3 -0
- package/cjs/components/Tabs/TabsContext.js.map +1 -1
- package/cjs/components/Tabs/helpers.d.ts +6 -0
- package/cjs/components/Tabs/helpers.js +31 -0
- package/cjs/components/Tabs/helpers.js.map +1 -0
- package/cjs/components/Textarea/Textarea.d.ts +12 -3
- package/cjs/components/Textarea/Textarea.js +48 -7
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.md +12 -0
- package/cjs/components/Textarea/Textarea.mixins.d.ts +3 -0
- package/cjs/components/Textarea/Textarea.mixins.js +22 -0
- package/cjs/components/Textarea/Textarea.mixins.js.map +1 -0
- package/cjs/components/Textarea/Textarea.styles.d.ts +10 -1
- package/cjs/components/Textarea/Textarea.styles.js +64 -23
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Textarea/TextareaCounter.d.ts +2 -0
- package/cjs/components/Textarea/TextareaCounter.js +17 -3
- package/cjs/components/Textarea/TextareaCounter.js.map +1 -1
- package/cjs/components/Toast/Toast.d.ts +3 -2
- package/cjs/components/Toast/Toast.js +3 -1
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +6 -6
- package/cjs/components/Toast/ToastView.js +19 -6
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.js +5 -2
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toast/locale/index.d.ts +4 -0
- package/cjs/components/Toast/locale/index.js +11 -0
- package/cjs/components/Toast/locale/index.js.map +1 -0
- package/cjs/components/Toast/locale/locales/en.d.ts +2 -0
- package/cjs/components/Toast/locale/locales/en.js +4 -0
- package/cjs/components/Toast/locale/locales/en.js.map +1 -0
- package/cjs/components/Toast/locale/locales/ru.d.ts +2 -0
- package/cjs/components/Toast/locale/locales/ru.js +4 -0
- package/cjs/components/Toast/locale/locales/ru.js.map +1 -0
- package/cjs/components/Toast/locale/types.d.ts +3 -0
- package/cjs/components/Toast/locale/types.js +1 -0
- package/cjs/components/Toast/locale/types.js.map +1 -0
- package/cjs/components/Toggle/Toggle.d.ts +16 -6
- package/cjs/components/Toggle/Toggle.js +112 -3
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.md +18 -2
- package/cjs/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/cjs/components/Toggle/Toggle.mixins.js +90 -0
- package/cjs/components/Toggle/Toggle.mixins.js.map +1 -0
- package/cjs/components/Toggle/Toggle.styles.d.ts +21 -1
- package/cjs/components/Toggle/Toggle.styles.js +172 -56
- package/cjs/components/Toggle/Toggle.styles.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +2 -5
- package/cjs/components/Token/Token.js +15 -8
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/Token/locale/index.d.ts +4 -0
- package/cjs/components/Token/locale/index.js +11 -0
- package/cjs/components/Token/locale/index.js.map +1 -0
- package/cjs/components/Token/locale/locales/en.d.ts +2 -0
- package/cjs/components/Token/locale/locales/en.js +4 -0
- package/cjs/components/Token/locale/locales/en.js.map +1 -0
- package/cjs/components/Token/locale/locales/ru.d.ts +2 -0
- package/cjs/components/Token/locale/locales/ru.js +4 -0
- package/cjs/components/Token/locale/locales/ru.js.map +1 -0
- package/cjs/components/Token/locale/types.d.ts +3 -0
- package/cjs/components/Token/locale/types.js +1 -0
- package/cjs/components/Token/locale/types.js.map +1 -0
- package/cjs/components/TokenInput/TokenInput.d.ts +3 -5
- package/cjs/components/TokenInput/TokenInput.js +11 -8
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +26 -35
- package/cjs/components/TokenInput/TokenInput.styles.js +2 -1
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/cjs/components/TokenInput/TokenInputMenu.js +9 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js +10 -2
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.md +28 -0
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +1 -0
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.d.ts +2 -2
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js +3 -0
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js +2 -1
- package/cjs/internal/CloseButtonIcon/CloseButtonIcon.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.d.ts +9 -3
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +37 -2
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +14 -13
- package/cjs/internal/CustomComboBox/ComboBoxView.js +32 -34
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +10 -7
- package/cjs/internal/CustomComboBox/CustomComboBox.js +21 -12
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +2 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +4 -0
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +31 -2
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +26 -4
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/index.d.ts +4 -0
- package/cjs/internal/DateSelect/locale/index.js +11 -0
- package/cjs/internal/DateSelect/locale/index.js.map +1 -0
- package/cjs/internal/DateSelect/locale/locales/en.d.ts +2 -0
- package/cjs/internal/DateSelect/locale/locales/en.js +6 -0
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -0
- package/cjs/internal/DateSelect/locale/locales/ru.d.ts +2 -0
- package/cjs/internal/DateSelect/locale/locales/ru.js +6 -0
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -0
- package/cjs/internal/DateSelect/locale/types.d.ts +5 -0
- package/cjs/internal/DateSelect/locale/types.js +1 -0
- package/cjs/internal/DateSelect/locale/types.js.map +1 -0
- package/cjs/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/cjs/internal/DropdownContainer/DropdownContainer.js +6 -1
- package/cjs/internal/DropdownContainer/DropdownContainer.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -6
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js +9 -7
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -2
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
- package/cjs/internal/FileUploaderControl/hooks/useFileUploaderSize.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +16 -4
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/cjs/internal/InternalMenu/InternalMenu.js +15 -5
- package/cjs/internal/InternalMenu/InternalMenu.js.map +1 -1
- package/cjs/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/cjs/internal/InternalMenu/InternalMenu.styles.js +13 -7
- package/cjs/internal/InternalMenu/InternalMenu.styles.js.map +1 -1
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js +9 -0
- package/cjs/internal/InternalMenu/isIconPaddingEnabled.js.map +1 -0
- package/cjs/internal/Menu/Menu.d.ts +42 -8
- package/cjs/internal/Menu/Menu.js +272 -78
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/Menu.styles.d.ts +6 -1
- package/cjs/internal/Menu/Menu.styles.js +42 -8
- package/cjs/internal/Menu/Menu.styles.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.d.ts +2 -0
- package/cjs/internal/MenuMessage/MenuMessage.js +18 -3
- package/cjs/internal/MenuMessage/MenuMessage.js.map +1 -1
- package/cjs/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
- package/cjs/internal/MenuMessage/MenuMessage.styles.js +21 -6
- package/cjs/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/cjs/internal/MobilePopup/MobilePopup.js +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +7 -2
- package/cjs/internal/Popup/Popup.js +13 -3
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +5 -2
- package/cjs/internal/PopupMenu/PopupMenu.js +33 -4
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/ThemePlayground/SizesGroup.d.ts +2 -1
- package/cjs/internal/ThemePlayground/SizesGroup.js +1 -0
- package/cjs/internal/ThemePlayground/SizesGroup.js.map +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.d.ts +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.js +1 -1
- package/cjs/internal/ThemePlayground/darkTheme.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +11 -3
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +280 -19
- package/cjs/internal/themes/DefaultTheme.js +604 -94
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/internal/themes/Theme2022.d.ts +28 -4
- package/cjs/internal/themes/Theme2022.js +53 -19
- package/cjs/internal/themes/Theme2022.js.map +1 -1
- package/cjs/internal/themes/Theme2022Dark.d.ts +5 -7
- package/cjs/internal/themes/Theme2022Dark.js +8 -18
- package/cjs/internal/themes/Theme2022Dark.js.map +1 -1
- package/cjs/lib/locale/types.d.ts +6 -0
- package/cjs/lib/locale/types.js +6 -0
- package/cjs/lib/locale/types.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +5 -1
- package/cjs/lib/rootNode/rootNodeDecorator.js +7 -3
- package/cjs/lib/rootNode/rootNodeDecorator.js.map +1 -1
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -1
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js +7 -2
- package/cjs/lib/styles/getLabGrotesqueBaselineCompensation.js.map +1 -1
- package/cjs/lib/types/props.d.ts +1 -0
- package/cjs/lib/types/props.js +1 -0
- package/cjs/lib/types/props.js.map +1 -0
- package/components/Autocomplete/Autocomplete/Autocomplete.js +18 -5
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +9 -3
- package/components/Autocomplete/Autocomplete.md +17 -0
- package/components/Button/Button/Button.js +17 -2
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +9 -3
- package/components/Button/Button.mixins/Button.mixins.js +1 -1
- package/components/Button/Button.mixins/Button.mixins.js.map +1 -1
- package/components/Button/Button.styles/Button.styles.js +61 -58
- package/components/Button/Button.styles/Button.styles.js.map +1 -1
- package/components/Button/Button.styles.d.ts +1 -0
- package/components/Button/ButtonIcon/ButtonIcon.js.map +1 -1
- package/components/Button/ButtonIcon.d.ts +3 -2
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js +9 -4
- package/components/Button/getInnerLinkTheme/getInnerLinkTheme.js.map +1 -1
- package/components/Calendar/Calendar/Calendar.js +1 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -0
- package/components/Calendar/Calendar.md +14 -3
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/DayCellView/DayCellView.js +7 -1
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +2 -2
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +1 -1
- package/components/Calendar/locale/locales/en/en.js +2 -1
- package/components/Calendar/locale/locales/en/en.js.map +1 -1
- package/components/Calendar/locale/locales/ru/ru.js +2 -1
- package/components/Calendar/locale/locales/ru/ru.js.map +1 -1
- package/components/Calendar/locale/types.d.ts +4 -0
- package/components/Checkbox/Checkbox/Checkbox.js +62 -8
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +15 -5
- package/components/Checkbox/Checkbox.md +18 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +16 -0
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -0
- package/components/Checkbox/Checkbox.mixins/package.json +6 -0
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -0
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +39 -25
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/Checkbox/Checkbox.styles.d.ts +6 -0
- package/components/ComboBox/ComboBox/ComboBox.js +1 -0
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +6 -8
- package/components/ComboBox/ComboBox.md +51 -5
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js +32 -4
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +2 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +1 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +2 -2
- package/components/DateInput/DateInput/DateInput.js +26 -9
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +5 -1
- package/components/DatePicker/DatePicker/DatePicker.js +7 -1
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +2 -1
- package/components/DatePicker/DatePicker.md +15 -0
- package/components/DatePicker/locale/locales/en/en.js +4 -2
- package/components/DatePicker/locale/locales/en/en.js.map +1 -1
- package/components/DatePicker/locale/locales/ru/ru.js +4 -2
- package/components/DatePicker/locale/locales/ru/ru.js.map +1 -1
- package/components/DatePicker/locale/types.d.ts +3 -1
- package/components/Dropdown/Dropdown/Dropdown.js +3 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +4 -7
- package/components/Dropdown/Dropdown.md +33 -0
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js +27 -1
- package/components/Dropdown/getDropdownTheme/getDropdownTheme.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +2 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +2 -2
- package/components/DropdownMenu/DropdownMenu.md +28 -0
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js +5 -1
- package/components/DropdownMenu/getDropdownMenuTheme/getDropdownMenuTheme.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js +4 -0
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +6 -2
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js +1 -1
- package/components/FileUploader/FileUploader.styles/FileUploader.styles.js.map +1 -1
- package/components/FxInput/FxInput/FxInput.js +2 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +4 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js +4 -2
- package/components/FxInput/FxInputRestoreBtn/FxInputRestoreBtn.js.map +1 -1
- package/components/FxInput/FxInputRestoreBtn.d.ts +3 -2
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +5 -1
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +6 -2
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +2 -1
- package/components/Hint/Hint/Hint.js +2 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Input/Input/Input.js +10 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +7 -7
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +3 -2
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js +1 -2
- package/components/Input/InputLayout/InputLayoutAside/InputLayoutAside.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +7 -5
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutContext/InputLayoutContext.js.map +1 -1
- package/components/Input/InputLayout/InputLayoutContext.d.ts +2 -2
- package/components/Kebab/Kebab/Kebab.js +7 -3
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +3 -2
- package/components/Kebab/Kebab.md +28 -0
- package/components/Link/Link/Link.js +12 -6
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +2 -2
- package/components/Link/Link.mixins/Link.mixins.js +2 -5
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/Link/Link.mixins.d.ts +1 -2
- package/components/Link/Link.styles/Link.styles.js +45 -21
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +4 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js +74 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -0
- package/components/MenuFooter/MenuFooter/package.json +6 -0
- package/components/MenuFooter/MenuFooter.d.ts +30 -0
- package/components/MenuFooter/MenuFooter.md +27 -0
- package/components/MenuFooter/MenuFooter.mixins/MenuFooter.mixins.js +13 -0
- package/components/MenuFooter/MenuFooter.mixins/MenuFooter.mixins.js.map +1 -0
- package/components/MenuFooter/MenuFooter.mixins/package.json +6 -0
- package/components/MenuFooter/MenuFooter.mixins.d.ts +2 -0
- package/components/MenuFooter/MenuFooter.styles/MenuFooter.styles.js +29 -0
- package/components/MenuFooter/MenuFooter.styles/MenuFooter.styles.js.map +1 -0
- package/components/MenuFooter/MenuFooter.styles/package.json +6 -0
- package/components/MenuFooter/MenuFooter.styles.d.ts +10 -0
- package/components/MenuFooter/index/index.js +1 -0
- package/components/MenuFooter/index/index.js.map +1 -0
- package/components/MenuFooter/index/package.json +6 -0
- package/components/MenuFooter/index.d.ts +1 -0
- package/components/MenuFooter/package.json +6 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +37 -2
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +8 -1
- package/components/MenuHeader/MenuHeader.md +12 -0
- package/components/MenuHeader/MenuHeader.mixins/MenuHeader.mixins.js +13 -0
- package/components/MenuHeader/MenuHeader.mixins/MenuHeader.mixins.js.map +1 -0
- package/components/MenuHeader/MenuHeader.mixins/package.json +6 -0
- package/components/MenuHeader/MenuHeader.mixins.d.ts +2 -0
- package/components/MenuHeader/MenuHeader.styles/MenuHeader.styles.js +20 -6
- package/components/MenuHeader/MenuHeader.styles/MenuHeader.styles.js.map +1 -1
- package/components/MenuHeader/MenuHeader.styles.d.ts +6 -1
- package/components/MenuItem/MenuItem/MenuItem.js +54 -8
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +14 -5
- package/components/MenuItem/MenuItem.md +12 -0
- package/components/MenuItem/MenuItem.mixins/MenuItem.mixins.js +24 -0
- package/components/MenuItem/MenuItem.mixins/MenuItem.mixins.js.map +1 -0
- package/components/MenuItem/MenuItem.mixins/package.json +6 -0
- package/components/MenuItem/MenuItem.mixins.d.ts +3 -0
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js +39 -23
- package/components/MenuItem/MenuItem.styles/MenuItem.styles.js.map +1 -1
- package/components/MenuItem/MenuItem.styles.d.ts +9 -1
- package/components/Modal/Modal.md +16 -0
- package/components/Modal/ModalClose/ModalClose.js +4 -0
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/locale/index/index.js +8 -0
- package/components/Modal/locale/index/index.js.map +1 -0
- package/components/Modal/locale/index/package.json +6 -0
- package/components/Modal/locale/index.d.ts +4 -0
- package/components/Modal/locale/locales/en/en.js +3 -0
- package/components/Modal/locale/locales/en/en.js.map +1 -0
- package/components/Modal/locale/locales/en/package.json +6 -0
- package/components/Modal/locale/locales/en.d.ts +2 -0
- package/components/Modal/locale/locales/ru/package.json +6 -0
- package/components/Modal/locale/locales/ru/ru.js +3 -0
- package/components/Modal/locale/locales/ru/ru.js.map +1 -0
- package/components/Modal/locale/locales/ru.d.ts +2 -0
- package/components/Modal/locale/package.json +6 -0
- package/components/Modal/locale/types/package.json +6 -0
- package/components/Modal/locale/types/types.js +1 -0
- package/components/Modal/locale/types/types.js.map +1 -0
- package/components/Modal/locale/types.d.ts +3 -0
- package/components/Paging/Paging/Paging.js +1 -1
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js +1 -1
- package/components/Paging/Paging.styles/Paging.styles.js.map +1 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +8 -4
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +3 -2
- package/components/PasswordInput/PasswordInput.md +19 -0
- package/components/PasswordInput/PasswordInput.styles/PasswordInput.styles.js +4 -1
- package/components/PasswordInput/PasswordInput.styles/PasswordInput.styles.js.map +1 -1
- package/components/PasswordInput/PasswordInput.styles.d.ts +1 -0
- package/components/PasswordInput/locale/index/index.js +8 -0
- package/components/PasswordInput/locale/index/index.js.map +1 -0
- package/components/PasswordInput/locale/index/package.json +6 -0
- package/components/PasswordInput/locale/index.d.ts +4 -0
- package/components/PasswordInput/locale/locales/en/en.js +4 -0
- package/components/PasswordInput/locale/locales/en/en.js.map +1 -0
- package/components/PasswordInput/locale/locales/en/package.json +6 -0
- package/components/PasswordInput/locale/locales/en.d.ts +2 -0
- package/components/PasswordInput/locale/locales/ru/package.json +6 -0
- package/components/PasswordInput/locale/locales/ru/ru.js +4 -0
- package/components/PasswordInput/locale/locales/ru/ru.js.map +1 -0
- package/components/PasswordInput/locale/locales/ru.d.ts +2 -0
- package/components/PasswordInput/locale/package.json +6 -0
- package/components/PasswordInput/locale/types/package.json +6 -0
- package/components/PasswordInput/locale/types/types.js +1 -0
- package/components/PasswordInput/locale/types/types.js.map +1 -0
- package/components/PasswordInput/locale/types.d.ts +4 -0
- package/components/Radio/Radio/Radio.js +54 -6
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +15 -3
- package/components/Radio/Radio.md +18 -0
- package/components/Radio/Radio.mixins/Radio.mixins.js +28 -0
- package/components/Radio/Radio.mixins/Radio.mixins.js.map +1 -0
- package/components/Radio/Radio.mixins/package.json +6 -0
- package/components/Radio/Radio.mixins.d.ts +5 -0
- package/components/Radio/Radio.styles/Radio.styles.js +44 -29
- package/components/Radio/Radio.styles/Radio.styles.js.map +1 -1
- package/components/Radio/Radio.styles.d.ts +9 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +3 -2
- package/components/Select/Select/Select.js +34 -9
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +12 -10
- package/components/Select/Select.md +17 -0
- package/components/Select/Select.styles/Select.styles.js +1 -1
- package/components/Select/Select.styles/Select.styles.js.map +1 -1
- package/components/Select/selectTheme/selectTheme.js +3 -1
- package/components/Select/selectTheme/selectTheme.js.map +1 -1
- package/components/SidePage/SidePage/SidePage.js +4 -4
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.md +16 -0
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +42 -0
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -0
- package/components/SidePage/SidePageCloseButton/package.json +6 -0
- package/components/SidePage/SidePageCloseButton.d.ts +1 -0
- package/components/SidePage/SidePageHeader/SidePageHeader.js +4 -38
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +0 -4
- package/components/SidePage/locale/index/index.js +8 -0
- package/components/SidePage/locale/index/index.js.map +1 -0
- package/components/SidePage/locale/index/package.json +6 -0
- package/components/SidePage/locale/index.d.ts +4 -0
- package/components/SidePage/locale/locales/en/en.js +3 -0
- package/components/SidePage/locale/locales/en/en.js.map +1 -0
- package/components/SidePage/locale/locales/en/package.json +6 -0
- package/components/SidePage/locale/locales/en.d.ts +2 -0
- package/components/SidePage/locale/locales/ru/package.json +6 -0
- package/components/SidePage/locale/locales/ru/ru.js +3 -0
- package/components/SidePage/locale/locales/ru/ru.js.map +1 -0
- package/components/SidePage/locale/locales/ru.d.ts +2 -0
- package/components/SidePage/locale/package.json +6 -0
- package/components/SidePage/locale/types/package.json +6 -0
- package/components/SidePage/locale/types/types.js +1 -0
- package/components/SidePage/locale/types/types.js.map +1 -0
- package/components/SidePage/locale/types.d.ts +3 -0
- package/components/Sticky/Sticky/Sticky.js +12 -3
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Switcher/Switcher/Switcher.js +9 -3
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +12 -7
- package/components/Tabs/Tab/Tab.js +12 -18
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +17 -36
- package/components/Tabs/Tab.md +71 -0
- package/components/Tabs/Tab.styles/Tab.styles.js +52 -23
- package/components/Tabs/Tab.styles/Tab.styles.js.map +1 -1
- package/components/Tabs/Tab.styles.d.ts +9 -3
- package/components/Tabs/Tabs/Tabs.js +12 -6
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +16 -15
- package/components/Tabs/Tabs.md +39 -22
- package/components/Tabs/Tabs.styles/Tabs.styles.js +15 -4
- package/components/Tabs/Tabs.styles/Tabs.styles.js.map +1 -1
- package/components/Tabs/Tabs.styles.d.ts +3 -1
- package/components/Tabs/TabsContext/TabsContext.js +1 -0
- package/components/Tabs/TabsContext/TabsContext.js.map +1 -1
- package/components/Tabs/TabsContext.d.ts +2 -0
- package/components/Tabs/helpers/helpers.js +28 -0
- package/components/Tabs/helpers/helpers.js.map +1 -0
- package/components/Tabs/helpers/package.json +6 -0
- package/components/Tabs/helpers.d.ts +6 -0
- package/components/Textarea/Textarea/Textarea.js +39 -4
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +12 -3
- package/components/Textarea/Textarea.md +12 -0
- package/components/Textarea/Textarea.mixins/Textarea.mixins.js +14 -0
- package/components/Textarea/Textarea.mixins/Textarea.mixins.js.map +1 -0
- package/components/Textarea/Textarea.mixins/package.json +6 -0
- package/components/Textarea/Textarea.mixins.d.ts +3 -0
- package/components/Textarea/Textarea.styles/Textarea.styles.js +43 -15
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Textarea/Textarea.styles.d.ts +10 -1
- package/components/Textarea/TextareaCounter/TextareaCounter.js +19 -3
- package/components/Textarea/TextareaCounter/TextareaCounter.js.map +1 -1
- package/components/Textarea/TextareaCounter.d.ts +2 -0
- package/components/Toast/Toast/Toast.js +1 -0
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +3 -2
- package/components/Toast/ToastView/ToastView.js +9 -4
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +6 -6
- package/components/Toast/ToastView.styles/ToastView.styles.js +1 -1
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/locale/index/index.js +8 -0
- package/components/Toast/locale/index/index.js.map +1 -0
- package/components/Toast/locale/index/package.json +6 -0
- package/components/Toast/locale/index.d.ts +4 -0
- package/components/Toast/locale/locales/en/en.js +3 -0
- package/components/Toast/locale/locales/en/en.js.map +1 -0
- package/components/Toast/locale/locales/en/package.json +6 -0
- package/components/Toast/locale/locales/en.d.ts +2 -0
- package/components/Toast/locale/locales/ru/package.json +6 -0
- package/components/Toast/locale/locales/ru/ru.js +3 -0
- package/components/Toast/locale/locales/ru/ru.js.map +1 -0
- package/components/Toast/locale/locales/ru.d.ts +2 -0
- package/components/Toast/locale/package.json +6 -0
- package/components/Toast/locale/types/package.json +6 -0
- package/components/Toast/locale/types/types.js +1 -0
- package/components/Toast/locale/types/types.js.map +1 -0
- package/components/Toast/locale/types.d.ts +3 -0
- package/components/Toggle/Toggle/Toggle.js +119 -10
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +16 -6
- package/components/Toggle/Toggle.md +18 -2
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js +35 -0
- package/components/Toggle/Toggle.mixins/Toggle.mixins.js.map +1 -0
- package/components/Toggle/Toggle.mixins/package.json +6 -0
- package/components/Toggle/Toggle.mixins.d.ts +7 -0
- package/components/Toggle/Toggle.styles/Toggle.styles.js +85 -31
- package/components/Toggle/Toggle.styles/Toggle.styles.js.map +1 -1
- package/components/Toggle/Toggle.styles.d.ts +21 -1
- package/components/Token/Token/Token.js +8 -3
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +2 -5
- package/components/Token/locale/index/index.js +8 -0
- package/components/Token/locale/index/index.js.map +1 -0
- package/components/Token/locale/index/package.json +6 -0
- package/components/Token/locale/index.d.ts +4 -0
- package/components/Token/locale/locales/en/en.js +3 -0
- package/components/Token/locale/locales/en/en.js.map +1 -0
- package/components/Token/locale/locales/en/package.json +6 -0
- package/components/Token/locale/locales/en.d.ts +2 -0
- package/components/Token/locale/locales/ru/package.json +6 -0
- package/components/Token/locale/locales/ru/ru.js +3 -0
- package/components/Token/locale/locales/ru/ru.js.map +1 -0
- package/components/Token/locale/locales/ru.d.ts +2 -0
- package/components/Token/locale/package.json +6 -0
- package/components/Token/locale/types/package.json +6 -0
- package/components/Token/locale/types/types.js +1 -0
- package/components/Token/locale/types/types.js.map +1 -0
- package/components/Token/locale/types.d.ts +3 -0
- package/components/TokenInput/TokenInput/TokenInput.js +12 -4
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +3 -5
- package/components/TokenInput/TokenInput.md +26 -35
- 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 +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +7 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +8 -2
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +2 -2
- package/components/TooltipMenu/TooltipMenu.md +28 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.d.ts +2 -2
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js +1 -1
- package/internal/CloseButtonIcon/CloseButtonIcon.styles/CloseButtonIcon.styles.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +33 -10
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu.d.ts +9 -3
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +40 -40
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +14 -13
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +19 -10
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +10 -7
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +4 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +2 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +32 -16
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +6 -3
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +3 -0
- package/internal/DateSelect/locale/index/index.js +8 -0
- package/internal/DateSelect/locale/index/index.js.map +1 -0
- package/internal/DateSelect/locale/index/package.json +6 -0
- package/internal/DateSelect/locale/index.d.ts +4 -0
- package/internal/DateSelect/locale/locales/en/en.js +5 -0
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -0
- package/internal/DateSelect/locale/locales/en/package.json +6 -0
- package/internal/DateSelect/locale/locales/en.d.ts +2 -0
- package/internal/DateSelect/locale/locales/ru/package.json +6 -0
- package/internal/DateSelect/locale/locales/ru/ru.js +5 -0
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -0
- package/internal/DateSelect/locale/locales/ru.d.ts +2 -0
- package/internal/DateSelect/locale/package.json +6 -0
- package/internal/DateSelect/locale/types/package.json +6 -0
- package/internal/DateSelect/locale/types/types.js +1 -0
- package/internal/DateSelect/locale/types/types.js.map +1 -0
- package/internal/DateSelect/locale/types.d.ts +5 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js +2 -0
- package/internal/DropdownContainer/DropdownContainer/DropdownContainer.js.map +1 -1
- package/internal/DropdownContainer/DropdownContainer.d.ts +3 -2
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js +6 -5
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFile.d.ts +3 -6
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon/FileUploaderFileStatusIcon.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFile/FileUploaderFileStatusIcon.d.ts +2 -2
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList/FileUploaderFileList.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderFileList/FileUploaderFileList.d.ts +2 -2
- package/internal/FileUploaderControl/hooks/useFileUploaderSize/useFileUploaderSize.js.map +1 -1
- package/internal/FileUploaderControl/hooks/useFileUploaderSize.d.ts +2 -2
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +20 -8
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +1 -0
- package/internal/InternalMenu/InternalMenu/InternalMenu.js +11 -6
- package/internal/InternalMenu/InternalMenu/InternalMenu.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.d.ts +13 -4
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js +10 -7
- package/internal/InternalMenu/InternalMenu.styles/InternalMenu.styles.js.map +1 -1
- package/internal/InternalMenu/InternalMenu.styles.d.ts +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled/isIconPaddingEnabled.js.map +1 -0
- package/internal/InternalMenu/isIconPaddingEnabled/package.json +6 -0
- package/internal/InternalMenu/isIconPaddingEnabled.d.ts +2 -0
- package/internal/Menu/Menu/Menu.js +197 -42
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/Menu.d.ts +42 -8
- package/internal/Menu/Menu.styles/Menu.styles.js +20 -5
- package/internal/Menu/Menu.styles/Menu.styles.js.map +1 -1
- package/internal/Menu/Menu.styles.d.ts +6 -1
- package/internal/MenuMessage/MenuMessage/MenuMessage.js +19 -2
- package/internal/MenuMessage/MenuMessage/MenuMessage.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.d.ts +2 -0
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js +11 -2
- package/internal/MenuMessage/MenuMessage.styles/MenuMessage.styles.js.map +1 -1
- package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +1 -0
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +2 -2
- package/internal/Popup/Popup/Popup.js +9 -3
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +7 -2
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +28 -5
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +5 -2
- package/internal/ThemePlayground/SizesGroup/SizesGroup.js.map +1 -1
- package/internal/ThemePlayground/SizesGroup.d.ts +2 -1
- package/internal/ThemePlayground/darkTheme/darkTheme.js +1 -1
- package/internal/ThemePlayground/darkTheme/darkTheme.js.map +1 -1
- package/internal/ThemePlayground/darkTheme.d.ts +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DarkTheme/DarkTheme.js +13 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +750 -106
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +280 -19
- package/internal/themes/Theme2022/Theme2022.js +79 -56
- package/internal/themes/Theme2022/Theme2022.js.map +1 -1
- package/internal/themes/Theme2022.d.ts +28 -4
- package/internal/themes/Theme2022Dark/Theme2022Dark.js +11 -26
- package/internal/themes/Theme2022Dark/Theme2022Dark.js.map +1 -1
- package/internal/themes/Theme2022Dark.d.ts +5 -7
- package/lib/locale/types/types.js.map +1 -1
- package/lib/locale/types.d.ts +6 -0
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js +4 -3
- package/lib/rootNode/rootNodeDecorator/rootNodeDecorator.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +5 -1
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js +2 -2
- package/lib/styles/getLabGrotesqueBaselineCompensation/getLabGrotesqueBaselineCompensation.js.map +1 -1
- package/lib/styles/getLabGrotesqueBaselineCompensation.d.ts +1 -1
- package/lib/types/props/package.json +6 -0
- package/lib/types/props/props.js +1 -0
- package/lib/types/props/props.js.map +1 -0
- package/lib/types/props.d.ts +1 -0
- package/package.json +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","MAX_SAFE_DIGITS","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","MAX_ALLOWED_CHARS","isSafari","SPACE","THIN_SPACE","MINUS_SIGN"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n\n return CurrencyHelper.formatString(value.toString(), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = ''] = match;\n return { sign, integer, delimiter, fraction };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["CurrencyHelper.tsx"],"names":["CurrencyHelper","getOptions","options","defaultOptions","getInfo","value","raw","unformatString","formatted","formatString","cursorMap","getCursorMap","formattingOptions","regexp","RegExp","thousandsDelimiter","index","length","cursor","skip","ignoredSymbol","exec","format","toDecimalString","parse","cleaned","destructed","destructString","result","sign","integer","delimiter","fraction","parseFloat","replace","formatForClipboard","unformattedValue","fractionDigits","hideTrailingZeros","parts","blockSize","start","i","push","substring","Math","max","join","padEnd","min","MAX_SAFE_DIGITS","minusSign","isValidString","unsigned","integerDigits","extractValid","match","token","substr","MAX_ALLOWED_CHARS","exponent","isSafari","SPACE","THIN_SPACE","MINUS_SIGN","number","toString","includes","toExponential","intExponent","parseInt","repeat"],"mappings":"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","sourcesContent":["import { isNonNullable, isNullable } from '../../lib/utils';\nimport { Nullable } from '../../typings/utility-types';\nimport { isSafari } from '../../lib/client';\n\nimport { DecimalOptions } from './CurrencyInputHelper';\nimport { CursorMap } from './CursorHelper';\nimport { MAX_ALLOWED_CHARS, MAX_SAFE_DIGITS, MINUS_SIGN, SPACE, THIN_SPACE } from './constants';\n\nexport interface DecimalFormattingOptions {\n fractionDigits?: Nullable<number>;\n hideTrailingZeros?: boolean;\n thousandsDelimiter?: string;\n minusSign?: string;\n}\n\ntype DecimalFormattingOptionsInternal = Required<DecimalFormattingOptions>;\n\nexport interface FormattingInfo {\n raw: string;\n formatted: string;\n cursorMap: CursorMap;\n}\n\nexport class CurrencyHelper {\n public static defaultOptions: DecimalFormattingOptionsInternal = {\n fractionDigits: null,\n hideTrailingZeros: false,\n thousandsDelimiter: isSafari ? SPACE : THIN_SPACE,\n minusSign: MINUS_SIGN,\n };\n\n public static getOptions(options?: Nullable<DecimalFormattingOptions>): DecimalFormattingOptionsInternal {\n return { ...CurrencyHelper.defaultOptions, ...options };\n }\n\n public static getInfo(value: string, options?: Nullable<DecimalFormattingOptions>): FormattingInfo {\n const raw = CurrencyHelper.unformatString(value);\n const formatted = CurrencyHelper.formatString(value, options);\n const cursorMap = CurrencyHelper.getCursorMap(formatted, options);\n\n return { raw, formatted, cursorMap };\n }\n\n public static getCursorMap(formatted: string, formattingOptions?: Nullable<DecimalFormattingOptions>): CursorMap {\n const options = CurrencyHelper.getOptions(formattingOptions);\n const regexp = new RegExp(options.thousandsDelimiter);\n const cursorMap: CursorMap = [];\n\n let index = formatted.length;\n let cursor = formatted.length;\n let skip = 0;\n\n while (index >= 0) {\n cursorMap[index] = cursor;\n\n const ignoredSymbol = regexp.exec(formatted[index - 1]);\n if (ignoredSymbol) {\n ++skip;\n } else {\n cursor = cursor - skip - 1;\n skip = 0;\n }\n --index;\n }\n return cursorMap;\n }\n\n public static format(value: Nullable<number>, options?: Nullable<DecimalFormattingOptions>): string {\n if (isNullable(value)) {\n return '';\n }\n return CurrencyHelper.formatString(this.toDecimalString(value), options);\n }\n\n public static parse(value: string): Nullable<number> {\n const cleaned = CurrencyHelper.unformatString(value);\n if (!cleaned) {\n return null;\n }\n\n const destructed = CurrencyHelper.destructString(cleaned);\n if (!destructed) {\n return null;\n }\n\n const result =\n destructed.sign + (destructed.integer || '0') + (destructed.delimiter || '.') + (destructed.fraction || '0');\n\n return parseFloat(result);\n }\n\n public static unformatString(value: string): string {\n return value\n .replace(/\\s/g, '')\n .replace(',', '.')\n .replace(/[\\u2212\\u002D\\uFE63\\uFF0D\\u2012\\u2013\\u2014\\u2015]/g, '-');\n }\n\n public static formatForClipboard(value: string): string {\n return CurrencyHelper.unformatString(value).replace('.', ',');\n }\n\n public static formatString(value: string, formattingOptions?: Nullable<DecimalFormattingOptions>): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue) || {\n sign: '',\n integer: '',\n delimiter: '',\n fraction: '',\n };\n\n const { sign, integer, delimiter } = destructed;\n let fraction = destructed.fraction;\n let fractionDigits = fraction.length;\n\n const options = CurrencyHelper.getOptions(formattingOptions);\n if (options.hideTrailingZeros) {\n fraction = fraction.replace(/0+$/, '');\n fractionDigits = fraction.length;\n } else if (options.fractionDigits !== null) {\n fractionDigits = options.fractionDigits;\n }\n\n const parts = [];\n\n const blockSize = 3;\n const start = ((integer.length - 1) % blockSize) - blockSize + 1;\n for (let i = start; i < integer.length; i += blockSize) {\n parts.push(integer.substring(Math.max(i, 0), i + blockSize));\n }\n\n let result = parts.join(options.thousandsDelimiter);\n\n if (delimiter || fractionDigits) {\n result += ',';\n result += fraction.padEnd(Math.min(fractionDigits, MAX_SAFE_DIGITS), '0');\n }\n\n if (sign) {\n result = options.minusSign + result;\n }\n\n return result;\n }\n\n public static isValidString(value: string, options: DecimalOptions) {\n const unformattedValue = CurrencyHelper.unformatString(value);\n const destructed = CurrencyHelper.destructString(unformattedValue);\n\n if (!destructed) {\n return false;\n }\n\n const { sign, integer, delimiter, fraction } = destructed;\n\n if (options.unsigned && sign) {\n return false;\n }\n\n if (options.fractionDigits === 0 && delimiter) {\n return false;\n }\n\n const integerDigits = integer === '0' ? 0 : integer.length;\n const fractionDigits = fraction.length;\n\n if (isNonNullable(options.integerDigits) && integerDigits > options.integerDigits) {\n return false;\n }\n\n if (isNullable(options.integerDigits) && integerDigits > MAX_SAFE_DIGITS - (options.fractionDigits || 0)) {\n return false;\n }\n\n if (isNonNullable(options.fractionDigits) && fractionDigits > options.fractionDigits) {\n return false;\n }\n\n return integerDigits + fractionDigits <= MAX_SAFE_DIGITS;\n }\n\n public static extractValid(value: string, options: DecimalOptions): string {\n const unformattedValue = CurrencyHelper.unformatString(value);\n\n const match = /[-.\\d]+/.exec(unformattedValue);\n\n if (!match) {\n return '';\n }\n\n const token = match[0].substr(0, MAX_ALLOWED_CHARS);\n\n for (let i = token.length; i >= 0; --i) {\n const result = token.substr(0, i);\n if (CurrencyHelper.isValidString(result, options)) {\n return result;\n }\n }\n\n return '';\n }\n\n public static destructString(value: string) {\n const match = /^(-)?(\\d*)?(\\.)?(\\d*)?(e)?([-+]?\\d+)?$/.exec(value);\n if (!match) {\n return null;\n }\n const [, sign = '', integer = '', delimiter = '', fraction = '', , exponent = ''] = match;\n return { sign, integer, delimiter, fraction, exponent };\n }\n\n private static toDecimalString = (number: number) => {\n if (!number.toString().includes('e')) {\n return number.toString();\n }\n const destructed = this.destructString(number.toExponential());\n if (destructed === null) {\n return '';\n }\n const { sign = '', integer, fraction, exponent } = destructed;\n const intExponent = parseInt(exponent || '0');\n if (intExponent > 0) {\n return [sign, integer, fraction, '0'.repeat(intExponent - fraction.length)].join('');\n }\n return [sign, '0.', ' 0'.repeat(-intExponent - 1), integer, fraction].join('');\n };\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { AriaAttributes } from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { InputProps } from '../Input';
|
|
4
4
|
import { Nullable, Override } from '../../typings/utility-types';
|
|
5
5
|
import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
|
|
6
6
|
import { Selection } from './SelectionHelper';
|
|
7
|
-
export interface CurrencyInputProps extends CommonProps, Override<InputProps, {
|
|
7
|
+
export interface CurrencyInputProps extends Pick<AriaAttributes, 'aria-label'>, CommonProps, Override<InputProps, {
|
|
8
8
|
/** Значение */
|
|
9
9
|
value?: Nullable<number>;
|
|
10
10
|
/** Убрать лишние нули после запятой */
|
|
@@ -48,6 +48,7 @@ var _CurrencyInputKeyboardActions = require("./CurrencyInputKeyboardActions");va
|
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
|
|
51
|
+
|
|
51
52
|
|
|
52
53
|
|
|
53
54
|
var CurrencyInputDataTids = {
|
|
@@ -175,6 +176,7 @@ CurrencyInput = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
|
|
|
175
176
|
onPaste: _this.handlePaste,
|
|
176
177
|
onCopy: _this.handleCopy,
|
|
177
178
|
onCut: _this.handleCut,
|
|
179
|
+
"aria-label": _this.props['aria-label'],
|
|
178
180
|
onMouseEnter: _this.props.onMouseEnter,
|
|
179
181
|
onMouseLeave: _this.props.onMouseLeave,
|
|
180
182
|
onMouseOver: _this.props.onMouseOver,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInputDataTids","root","CurrencyInput","rootNode","getProps","defaultProps","state","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","align","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","CurrencyHelper","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","isValidNumber","isNumeric","Number","setSelectionRange","render","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","placeholder","string","size","warning","width","oneOfType","func","isRequired","inputMode","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value?: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Кол-во цифр после запятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>\n>;\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: (props: CurrencyInputProps) => {\n warning(isValidNumber(props.value), '[CurrencyInput]: Prop `value` is not a valid number');\n },\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n private getProps = createPropsGetter(CurrencyInput.defaultProps);\n\n public state: CurrencyInputState = {\n ...this.getState(this.getProps().value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n const { maxLength, integerDigits } = this.props;\n const fractionDigits = this.getProps().fractionDigits;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.getProps();\n if (\n (isValidNumber(value) && isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (isNonNullable(prevProps.value) && isNullable(value)) {\n this.setState({ formatted: '' });\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n\n return (\n <Input\n data-tid={CurrencyInputDataTids.root}\n {...rest}\n align={this.getProps().align}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : getPlaceholder(props)}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Comma: {\n this.inputValue(selection.start, selection.end, ',');\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.getProps().fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (isNonNullable(delta) && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart ?? 0,\n end: input.selectionEnd ?? 0,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nfunction isValidNumber(value: unknown): boolean {\n return !isNaN(Number(value));\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["CurrencyInput.tsx"],"names":["CurrencyInputDataTids","root","CurrencyInput","rootNode","getProps","defaultProps","state","getState","value","fractionDigits","hideTrailingZeros","focused","tempSelectionForOnChange","SelectionHelper","fromPosition","renderMain","props","signed","onSubmit","integerDigits","rest","align","formatted","handleBlur","handleFocus","handleMouseUp","handleKeyDown","handleValueChange","handlePaste","handleCopy","handleCut","onMouseEnter","onMouseLeave","onMouseOver","refInput","getPlaceholder","focus","input","blur","debouncedSetSelectionFromEvent","setSelectionFromEvent","event","isIE11","persist","selection","getSelection","target","onKeyDown","defaultPrevented","action","CURRENCY_INPUT_ACTIONS","Ignore","Unknown","preventDefault","Submit","Backspace","inputValue","CurrencyInputHelper","moveCursor","end","Delete","start","MoveCursorLeft","MoveCursorRight","Home","setState","End","length","ExtendSelectionLeft","extendSelection","ExtendSelectionRight","FullSelection","forward","ExtendSelectionToStart","backward","ExtendSelectionToEnd","inputEnd","Comma","scrollInput","node","getNode","scrollWidth","clientWidth","PAD","SHIFT","selected","position","direction","charsCount","charWidth","frame","Math","ceil","frameStart","scrollLeft","frameEnd","getInputSelectionFromEvent","step","extended","result","safeInsert","unsigned","parsedValue","CurrencyHelper","parse","onValueChange","blink","getOnChangeDelta","oldValue","substring","substr","delta","data","clipboardData","getData","formatForClipboard","setData","selectionStart","selectionEnd","selectionDirection","valueLength","onFocus","onBlur","element","componentDidMount","maxLength","undefined","MAX_SAFE_DIGITS","componentDidUpdate","prevProps","prevState","isValidNumber","isNumeric","Number","setSelectionRange","render","setRootNode","format","normilized","normalizeSelection","React","PureComponent","__KONTUR_REACT_UI__","propTypes","PropTypes","oneOf","autoFocus","bool","borderless","disabled","error","number","leftIcon","placeholder","string","size","warning","width","oneOfType","func","isRequired","inputMode","HTMLInputElement","Error","isNaN","parseFloat","isFinite"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\nimport debounce from 'lodash.debounce';\n\nimport { isNonNullable, isNullable } from '../../lib/utils';\nimport { isIE11 } from '../../lib/client';\nimport { Input, InputProps } from '../Input';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { MAX_SAFE_DIGITS } from './constants';\nimport { Selection, SelectionDirection, SelectionHelper } from './SelectionHelper';\nimport { CurrencyHelper } from './CurrencyHelper';\nimport { CurrencyInputHelper } from './CurrencyInputHelper';\nimport { CURRENCY_INPUT_ACTIONS, extractAction } from './CurrencyInputKeyboardActions';\n\nexport interface CurrencyInputProps\n extends Pick<AriaAttributes, 'aria-label'>,\n CommonProps,\n Override<\n InputProps,\n {\n /** Значение */\n value?: Nullable<number>;\n /** Убрать лишние нули после запятой */\n hideTrailingZeros?: boolean;\n /** Кол-во цифр после запятой */\n fractionDigits?: Nullable<number>;\n /** Отрицательные значения */\n signed?: boolean;\n /**\n * Допустимое кол-во цифр целой части.\n * Если передан **0**, или `fractionDigits=15`, то и в целой части допускается только **0**.\n */\n integerDigits?: Nullable<number>;\n /** Вызывается при изменении `value` */\n onValueChange: (value: Nullable<number>) => void;\n /** onSubmit */\n onSubmit?: () => void;\n }\n > {}\n\nexport interface CurrencyInputState {\n formatted: string;\n selection: Selection;\n focused: boolean;\n}\n\nexport const CurrencyInputDataTids = {\n root: 'CurrencyInput__root',\n} as const;\n\ntype DefaultProps = Required<\n Pick<CurrencyInputProps, 'align' | 'fractionDigits' | 'hideTrailingZeros' | 'value' | 'inputMode'>\n>;\n\n/**\n * Поле для денежных сумм (и других числовых значений).\n * Принимает любые свойства `Input`.\n *\n * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).\n * <br/>\n * Если `fractionDigits=15`, то в целой части допускается **0**.\n */\n@rootNode\nexport class CurrencyInput extends React.PureComponent<CurrencyInputProps, CurrencyInputState> {\n public static __KONTUR_REACT_UI__ = 'CurrencyInput';\n\n public static propTypes = {\n align: PropTypes.oneOf(['left', 'center', 'right']),\n autoFocus: PropTypes.bool,\n borderless: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n fractionDigits: PropTypes.number,\n hideTrailingZeros: PropTypes.bool,\n leftIcon: PropTypes.element,\n placeholder: PropTypes.string,\n signed: PropTypes.bool,\n size: PropTypes.oneOf(['small', 'medium', 'large']),\n value: (props: CurrencyInputProps) => {\n warning(isValidNumber(props.value), '[CurrencyInput]: Prop `value` is not a valid number');\n },\n warning: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n onBlur: PropTypes.func,\n onValueChange: PropTypes.func.isRequired,\n onFocus: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onSubmit: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n align: 'right',\n fractionDigits: 2,\n hideTrailingZeros: false,\n value: null,\n inputMode: 'decimal',\n };\n\n private getProps = createPropsGetter(CurrencyInput.defaultProps);\n\n public state: CurrencyInputState = {\n ...this.getState(this.getProps().value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n };\n\n private input: Nullable<Input>;\n private tempSelectionForOnChange: Selection = SelectionHelper.fromPosition(0);\n private setRootNode!: TSetRootNode;\n\n public componentDidMount(): void {\n const { maxLength, integerDigits } = this.props;\n const fractionDigits = this.getProps().fractionDigits;\n warning(\n maxLength === undefined,\n `[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'`,\n );\n warning(\n (integerDigits || 0) + (fractionDigits || 0) <= MAX_SAFE_DIGITS,\n `[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds ${MAX_SAFE_DIGITS}.` +\n `\\nSee https://tech.skbkontur.ru/react-ui/#/CurrencyInput?id=why15`,\n );\n }\n\n public componentDidUpdate(prevProps: CurrencyInputProps, prevState: CurrencyInputState) {\n const { value, fractionDigits, hideTrailingZeros } = this.getProps();\n if (\n (isValidNumber(value) && isNumeric(value) && Number(value) !== CurrencyHelper.parse(prevState.formatted)) ||\n prevProps.fractionDigits !== fractionDigits\n ) {\n this.setState(this.getState(value, fractionDigits, hideTrailingZeros));\n }\n if (isNonNullable(prevProps.value) && isNullable(value)) {\n this.setState({ formatted: '' });\n }\n if (this.state.focused && this.input) {\n const { start, end } = this.state.selection;\n\n this.input.setSelectionRange(start, end);\n }\n if (prevState.selection !== this.state.selection) {\n this.scrollInput();\n }\n }\n\n public render() {\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<CurrencyInputProps>) => {\n const { fractionDigits, signed, onSubmit, integerDigits, hideTrailingZeros, ...rest } = props;\n\n return (\n <Input\n data-tid={CurrencyInputDataTids.root}\n {...rest}\n align={this.getProps().align}\n value={this.state.formatted}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onMouseUp={this.handleMouseUp}\n onKeyDown={this.handleKeyDown}\n onValueChange={this.handleValueChange}\n onPaste={this.handlePaste}\n onCopy={this.handleCopy}\n onCut={this.handleCut}\n aria-label={this.props['aria-label']}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n ref={this.refInput}\n placeholder={this.state.focused ? '' : getPlaceholder(props)}\n />\n );\n };\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n this.input.focus();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.input) {\n this.input.blur();\n }\n };\n\n private getState(value: Nullable<number>, fractionDigits: Nullable<number>, hideTrailingZeros: boolean) {\n return {\n formatted: CurrencyHelper.format(value, { fractionDigits, hideTrailingZeros }),\n selection: SelectionHelper.fromPosition(0),\n };\n }\n\n private setSelectionFromEvent(event: React.MouseEvent<HTMLInputElement>) {\n const selection = getInputSelectionFromEvent(event.target);\n const normilized = CurrencyInputHelper.normalizeSelection(this.state.formatted, selection);\n this.setState({ selection: normilized });\n }\n\n // for IE11\n private readonly debouncedSetSelectionFromEvent = debounce(this.setSelectionFromEvent, 300);\n\n private handleMouseUp = (event: React.MouseEvent<HTMLInputElement>) => {\n if (isIE11) {\n event.persist();\n this.debouncedSetSelectionFromEvent(event);\n } else {\n this.setSelectionFromEvent(event);\n }\n };\n\n private handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n this.tempSelectionForOnChange = selection;\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n const action = extractAction(event);\n\n if (action === CURRENCY_INPUT_ACTIONS.Ignore) {\n return;\n }\n\n if (action !== CURRENCY_INPUT_ACTIONS.Unknown) {\n event.preventDefault();\n }\n\n switch (action) {\n case CURRENCY_INPUT_ACTIONS.Submit: {\n if (this.props.onSubmit) {\n this.props.onSubmit();\n }\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Backspace: {\n this.inputValue(CurrencyInputHelper.moveCursor(this.state.formatted, selection, -1), selection.end, '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Delete: {\n this.inputValue(selection.start, CurrencyInputHelper.moveCursor(this.state.formatted, selection, +1), '');\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorLeft: {\n this.moveCursor(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.MoveCursorRight: {\n this.moveCursor(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Home: {\n this.setState({ selection: SelectionHelper.fromPosition(0) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.End: {\n const end = this.state.formatted.length;\n this.setState({ selection: SelectionHelper.fromPosition(end) });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionLeft: {\n this.extendSelection(selection, -1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionRight: {\n this.extendSelection(selection, +1);\n return;\n }\n case CURRENCY_INPUT_ACTIONS.FullSelection: {\n this.setState({\n selection: SelectionHelper.forward(0, this.state.formatted.length),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToStart: {\n this.setState({\n selection: SelectionHelper.backward(0, selection.start),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.ExtendSelectionToEnd: {\n const inputEnd = this.state.formatted.length;\n this.setState({\n selection: SelectionHelper.forward(selection.start, inputEnd),\n });\n return;\n }\n case CURRENCY_INPUT_ACTIONS.Comma: {\n this.inputValue(selection.start, selection.end, ',');\n return;\n }\n }\n };\n\n private scrollInput = () => {\n const node = this.input?.getNode();\n if (!node || node.scrollWidth === node.clientWidth) {\n return;\n }\n const PAD = 1;\n const SHIFT = 3;\n\n const selection = this.state.selection;\n const selected = selection.start !== selection.end;\n const position = selected && selection.direction === 'forward' ? selection.end : selection.start;\n const charsCount = this.state.formatted.length;\n const charWidth = node.scrollWidth / charsCount;\n const frame = Math.ceil(node.clientWidth / charWidth);\n const frameStart = Math.ceil(node.scrollLeft / charWidth);\n const frameEnd = frameStart + frame;\n\n if (position < frameStart + PAD) {\n node.scrollLeft = (position - SHIFT) * charWidth;\n }\n if (position > frameEnd - PAD) {\n node.scrollLeft = (position - frame + SHIFT) * charWidth;\n }\n };\n\n private getSelection = (input: EventTarget): Selection => {\n const selection = getInputSelectionFromEvent(input);\n return {\n start: selection.start,\n end: selection.end,\n direction: this.state.selection.direction,\n };\n };\n\n private moveCursor = (selection: Selection, step: number) => {\n const position = CurrencyInputHelper.moveCursor(this.state.formatted, selection, step);\n this.setState({ selection: SelectionHelper.fromPosition(position) });\n };\n\n private extendSelection = (selection: Selection, step: number) => {\n const extended = CurrencyInputHelper.extendSelection(this.state.formatted, selection, step);\n this.setState({ selection: extended });\n };\n\n private inputValue = (start: number, end: number, value: string) => {\n const result = CurrencyInputHelper.safeInsert(this.state.formatted, start, end, value, {\n integerDigits: this.props.integerDigits,\n fractionDigits: this.getProps().fractionDigits,\n unsigned: !this.props.signed,\n });\n if (result) {\n const formatted = result.value;\n const selection = SelectionHelper.fromPosition(result.position);\n this.setState({ formatted, selection }, () => {\n const parsedValue = CurrencyHelper.parse(formatted);\n if (this.props.value !== parsedValue) {\n this.props.onValueChange(parsedValue);\n }\n });\n return true;\n }\n\n if (this.input) {\n this.input.blink();\n }\n return false;\n };\n\n private getOnChangeDelta = (value: string) => {\n const selection = this.tempSelectionForOnChange;\n const oldValue = this.state.formatted;\n if (selection.start !== selection.end) {\n return value.substring(selection.start, value.length - (oldValue.length - selection.end));\n } else if (value.length > oldValue.length) {\n return value.substr(selection.start, value.length - oldValue.length);\n }\n return null;\n };\n\n private handleValueChange = (value: string): void => {\n const selection = this.tempSelectionForOnChange;\n const delta = this.getOnChangeDelta(value);\n if (isNonNullable(delta) && !this.inputValue(selection.start, selection.end, delta)) {\n this.setState({ selection });\n }\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const data = event.clipboardData.getData('text');\n const selection = this.getSelection(event.target);\n this.inputValue(selection.start, selection.end, data);\n event.preventDefault();\n };\n\n private handleCopy = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n }\n event.preventDefault();\n };\n\n private handleCut = (event: React.ClipboardEvent<HTMLInputElement>) => {\n const selection = this.getSelection(event.target);\n if (selection.start !== selection.end) {\n const substring = this.state.formatted.substring(selection.start, selection.end);\n const data = CurrencyHelper.formatForClipboard(substring);\n event.clipboardData.setData('text', data);\n this.inputValue(selection.start, selection.end, '');\n }\n event.preventDefault();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n const { selectionStart, selectionEnd, selectionDirection } = event.target;\n const valueLength = event.target.value.length;\n\n const selection = {\n start: selectionStart !== selectionEnd ? selectionStart || 0 : selectionStart || valueLength,\n end: selectionEnd !== selectionStart ? selectionEnd || 0 : selectionEnd || valueLength,\n direction: (selectionDirection as SelectionDirection) || 'none',\n };\n\n this.setState({\n focused: true,\n selection,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const value = CurrencyHelper.parse(this.state.formatted);\n\n this.setState({\n ...this.getState(value, this.getProps().fractionDigits, this.getProps().hideTrailingZeros),\n focused: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private refInput = (element: Nullable<Input>) => {\n this.input = element;\n };\n}\n\nfunction getInputSelectionFromEvent(input: EventTarget): Selection {\n if (!(input instanceof HTMLInputElement)) {\n throw new Error('input is not HTMLInputElement');\n }\n\n return {\n start: input.selectionStart ?? 0,\n end: input.selectionEnd ?? 0,\n direction: input.selectionDirection as SelectionDirection,\n };\n}\n\nfunction isNumeric(value: unknown): value is number | string {\n return !isNaN(parseFloat(value as string)) && isFinite(value as number);\n}\n\nfunction isValidNumber(value: unknown): boolean {\n return !isNaN(Number(value));\n}\n\nconst getPlaceholder = (props: CurrencyInputProps) => {\n if (isNullable(props.placeholder)) {\n return CurrencyHelper.format(0, {\n fractionDigits: props.fractionDigits,\n hideTrailingZeros: props.hideTrailingZeros,\n });\n }\n\n return props.placeholder;\n};\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { InternalDateComponentType } from '../../lib/date/types';
|
|
3
3
|
import { CommonProps } from '../../internal/CommonWrapper';
|
|
4
|
+
import { SizeProp } from '../../lib/types/props';
|
|
4
5
|
export interface DateInputState {
|
|
5
6
|
selected: InternalDateComponentType | null;
|
|
6
7
|
valueFormatted: string;
|
|
@@ -8,6 +9,9 @@ export interface DateInputState {
|
|
|
8
9
|
focused: boolean;
|
|
9
10
|
dragged: boolean;
|
|
10
11
|
}
|
|
12
|
+
export declare const DateInputDataTids: {
|
|
13
|
+
readonly icon: "DateInput__icon";
|
|
14
|
+
};
|
|
11
15
|
export interface DateInputProps extends CommonProps {
|
|
12
16
|
autoFocus?: boolean;
|
|
13
17
|
value?: string;
|
|
@@ -40,7 +44,7 @@ export interface DateInputProps extends CommonProps {
|
|
|
40
44
|
* Размер поля
|
|
41
45
|
* @default 'small'
|
|
42
46
|
*/
|
|
43
|
-
size?:
|
|
47
|
+
size?: SizeProp;
|
|
44
48
|
onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;
|
|
45
49
|
onClick?: (x0: React.MouseEvent<HTMLElement>) => void;
|
|
46
50
|
onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.DateInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.DateInputDataTids = exports.DateInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _react = _interopRequireDefault(require("react"));
|
|
2
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
2
3
|
|
|
3
4
|
var _ConditionalHandler = require("../../lib/ConditionalHandler");
|
|
4
5
|
var _constants = require("../../lib/date/constants");
|
|
@@ -15,11 +16,13 @@ var _rootNode = require("../../lib/rootNode");
|
|
|
15
16
|
var _createPropsGetter = require("../../lib/createPropsGetter");
|
|
16
17
|
var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
|
|
17
18
|
|
|
19
|
+
|
|
18
20
|
var _CalendarIcon = require("./CalendarIcon");
|
|
19
21
|
var _DateFragmentsView = require("./DateFragmentsView");
|
|
20
22
|
var _DateInput = require("./DateInput.styles");
|
|
21
23
|
var _DateInputKeyboardActions = require("./helpers/DateInputKeyboardActions");
|
|
22
|
-
var _InternalDateMediator = require("./helpers/InternalDateMediator");var _dec, _class, _class2, _temp;
|
|
24
|
+
var _InternalDateMediator = require("./helpers/InternalDateMediator");var _dec, _class, _class2, _temp;
|
|
25
|
+
|
|
23
26
|
|
|
24
27
|
|
|
25
28
|
|
|
@@ -28,6 +31,9 @@ var _InternalDateMediator = require("./helpers/InternalDateMediator");var _dec,
|
|
|
28
31
|
|
|
29
32
|
|
|
30
33
|
|
|
34
|
+
var DateInputDataTids = {
|
|
35
|
+
icon: 'DateInput__icon' };exports.DateInputDataTids = DateInputDataTids;var
|
|
36
|
+
|
|
31
37
|
|
|
32
38
|
|
|
33
39
|
|
|
@@ -249,7 +255,11 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
|
|
|
249
255
|
_DateInput.styles.iconLarge(theme)] = size === 'large', _cx[
|
|
250
256
|
_DateInput.styles.iconDisabled(theme)] = disabled, _cx));
|
|
251
257
|
|
|
252
|
-
return /*#__PURE__*/
|
|
258
|
+
return /*#__PURE__*/(
|
|
259
|
+
_react.default.createElement("span", { className: iconStyles, "data-tid": DateInputDataTids.icon },
|
|
260
|
+
icon));
|
|
261
|
+
|
|
262
|
+
|
|
253
263
|
}
|
|
254
264
|
return null;
|
|
255
265
|
};_this.
|
|
@@ -344,16 +354,22 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
|
|
|
344
354
|
_this.setState({ selected: selected, inputMode: false });
|
|
345
355
|
};_this.
|
|
346
356
|
|
|
347
|
-
updateValue = function (state) {if (state === void 0) {state = {};}
|
|
357
|
+
updateValue = function (state, sync) {if (state === void 0) {state = {};}if (sync === void 0) {sync = true;}
|
|
348
358
|
var valueFormatted = _this.iDateMediator.getString();
|
|
349
359
|
|
|
350
|
-
_this.setState((0, _extends2.default)({}, state, { valueFormatted: valueFormatted }), _this.emitChange);
|
|
360
|
+
var update = function update() {return _this.setState((0, _extends2.default)({}, state, { valueFormatted: valueFormatted }), _this.emitChange);};
|
|
361
|
+
|
|
362
|
+
if (sync && _react.default.version.search('18') === 0) {
|
|
363
|
+
_reactDom.default.flushSync(update);
|
|
364
|
+
} else {
|
|
365
|
+
update();
|
|
366
|
+
}
|
|
351
367
|
};_this.
|
|
352
368
|
|
|
353
|
-
updateFromProps = function () {
|
|
369
|
+
updateFromProps = function (sync) {
|
|
354
370
|
_this.iDateMediator.update(_this.props, _this.locale);
|
|
355
371
|
|
|
356
|
-
_this.updateValue();
|
|
372
|
+
_this.updateValue({}, sync);
|
|
357
373
|
};_this.
|
|
358
374
|
|
|
359
375
|
fullSelection = function () {
|
|
@@ -450,4 +466,4 @@ DateInput = (_dec = (0, _decorators.locale)('DatePicker', _locale.DatePickerLoca
|
|
|
450
466
|
_this.shiftSelection(1);
|
|
451
467
|
}
|
|
452
468
|
_this.updateValue({ inputMode: inputMode });
|
|
453
|
-
};_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),value = _this$getProps.value,minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps();}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps();if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);var _this$getProps2 = this.getProps(),width = _this$getProps2.width,size = _this$getProps2.size;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: width, ref: this.inputLikeTextRef, size: size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput.styles.value(), (_cx2 = {}, _cx2[_DateInput.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode }))));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class) || _class);exports.DateInput = DateInput;
|
|
469
|
+
};_this.state = { valueFormatted: '', selected: null, inputMode: false, focused: false, dragged: false };return _this;}var _proto = DateInput.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$getProps = this.getProps(),value = _this$getProps.value,minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;if (prevProps.value !== value || prevProps.minDate !== minDate || prevProps.maxDate !== maxDate || this.iDateMediator.isChangedLocale(this.locale)) {this.updateFromProps(false);}this.selectNode();};_proto.componentDidMount = function componentDidMount() {this.updateFromProps(false);if (this.props.autoFocus) {this.focus();}};_proto.blur = function blur() {if (this.inputLikeText) {this.inputLikeText.blur();}};_proto.focus = function focus() {if (this.inputLikeText) {this.inputLikeText.focus();}};_proto.blink = function blink() {if (this.inputLikeText) {this.inputLikeText.blink();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.renderMain = function renderMain() {var _cx2;var _this$state2 = this.state,focused = _this$state2.focused,selected = _this$state2.selected,inputMode = _this$state2.inputMode,valueFormatted = _this$state2.valueFormatted;var showValue = Boolean(focused || valueFormatted);var _this$getProps2 = this.getProps(),width = _this$getProps2.width,size = _this$getProps2.size;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement(_InputLikeText.InputLikeText, { width: width, ref: this.inputLikeTextRef, size: size, disabled: this.props.disabled, error: this.props.error, warning: this.props.warning, onBlur: this.handleBlur, onFocus: this.handleFocus, onClick: this.props.onClick, onKeyDown: this.handleKeyDown, onMouseDownCapture: this.handleMouseDownCapture, onPaste: this.handlePaste, rightIcon: this.renderIcon(), onDoubleClickCapture: this.handleDoubleClick, onMouseDragStart: this.handleMouseDragStart, onMouseDragEnd: this.handleMouseDragEnd, value: this.iDateMediator.getInternalString(), inputMode: 'numeric', takeContentWidth: true }, /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_DateInput.styles.value(), (_cx2 = {}, _cx2[_DateInput.styles.valueVisible()] = showValue, _cx2)) }, /*#__PURE__*/_react.default.createElement(_DateFragmentsView.DateFragmentsView, { ref: this.dateFragmentsViewRef, fragments: this.iDateMediator.getFragments(), onSelectDateComponent: this.handleSelectDateComponent, selected: selected, inputMode: inputMode }))));};return DateInput;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'DateInput', _class2.defaultProps = { value: '', minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE, size: 'small', width: 125 }, _temp)) || _class) || _class);exports.DateInput = DateInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DateInput.tsx"],"names":["DateInput","DatePickerLocaleHelper","rootNode","props","getProps","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","disabled","size","theme","icon","iconStyles","styles","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","valueFormatted","getString","emitChange","updateFromProps","update","locale","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","setRootNode","error","warning","onClick","valueVisible","getFragments","React","Component","__KONTUR_REACT_UI__","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\n\nimport { CalendarIcon as CalendarIcon2022 } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: 'small' | 'large' | 'medium';\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps();\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps();\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = isTheme2022(theme) ? <CalendarIcon2022 size={size} /> : <CalendarIcon />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return <span className={iconStyles}>{icon}</span>;\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n };\n\n private updateFromProps = (): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue();\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DateInput.tsx"],"names":["DateInputDataTids","icon","DateInput","DatePickerLocaleHelper","rootNode","props","getProps","defaultProps","iDateMediator","InternalDateMediator","inputLikeText","dateFragmentsView","isMouseDown","isMouseFocus","ignoringDelimiter","blurEvent","conditionalHandler","ConditionalHandler","add","Actions","MoveSelectionLeft","shiftSelection","MoveSelectionRight","Separator","pressDelimiter","MoveSelectionFirst","selectDateComponent","getLeftmostType","MoveSelectionLast","getRightmostType","Increment","shiftDateComponent","Decrement","Digit","e","inputValue","ClearSelection","clearSelected","ClearOneChar","clearOneChar","FullSelection","fullSelection","WrongInput","blink","build","selectNode","type","state","selected","getRootNode","InternalDateComponentType","All","selectInnerNode","index","getTypesOrder","indexOf","renderIcon","withIcon","disabled","size","theme","iconStyles","styles","iconSmall","iconMedium","iconLarge","iconDisabled","handleFocus","setState","prevState","focused","onFocus","handleBlur","restored","restore","updateValue","inputMode","onBlur","persist","handleMouseDownCapture","isFragment","target","preventDefault","handleSelectDateComponent","isEmpty","handleMouseDragStart","dragged","handleMouseDragEnd","selection","getSelection","toString","length","LENGTH_FULLDATE","handleKeyDown","onKeyDown","handlePaste","pasted","clipboardData","getData","trim","validateString","paste","handleDoubleClick","inputLikeTextRef","el","dateFragmentsViewRef","sync","valueFormatted","getString","update","emitChange","React","version","search","ReactDOM","flushSync","updateFromProps","locale","value","get","getInternalString","onValueChange","clear","nextType","isNull","deleteOneCharRight","step","changed","getShiftedType","event","inputKey","key","componentDidUpdate","prevProps","minDate","maxDate","isChangedLocale","componentDidMount","autoFocus","focus","blur","render","renderMain","showValue","Boolean","width","setRootNode","error","warning","onClick","valueVisible","getFragments","Component","__KONTUR_REACT_UI__","MIN_FULLDATE","MAX_FULLDATE"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { ConditionalHandler } from '../../lib/ConditionalHandler';\nimport { LENGTH_FULLDATE, MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateComponentType } from '../../lib/date/types';\nimport { Theme } from '../../lib/theming/Theme';\nimport { DatePickerLocale, DatePickerLocaleHelper } from '../DatePicker/locale';\nimport { InputLikeText } from '../../internal/InputLikeText';\nimport { locale } from '../../lib/locale/decorators';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CalendarIcon } from '../../internal/icons/16px';\nimport { CommonWrapper, CommonProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { CalendarIcon as CalendarIcon2022 } from './CalendarIcon';\nimport { DateFragmentsView } from './DateFragmentsView';\nimport { styles } from './DateInput.styles';\nimport { Actions, extractAction } from './helpers/DateInputKeyboardActions';\nimport { InternalDateMediator } from './helpers/InternalDateMediator';\n\nexport interface DateInputState {\n selected: InternalDateComponentType | null;\n valueFormatted: string;\n inputMode: boolean;\n focused: boolean;\n dragged: boolean;\n}\n\nexport const DateInputDataTids = {\n icon: 'DateInput__icon',\n} as const;\n\nexport interface DateInputProps extends CommonProps {\n autoFocus?: boolean;\n value?: string;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n /**\n * Минимальная дата.\n * @default '01.01.1900'\n */\n minDate?: string;\n /**\n * Максимальная дата\n * @default '31.12.2099'\n */\n maxDate?: string;\n /**\n * Ширина поля\n * @default 125\n */\n width?: string | number;\n withIcon?: boolean;\n /**\n * Размер поля\n * @default 'small'\n */\n size?: SizeProp;\n onBlur?: (x0: React.FocusEvent<HTMLElement>) => void;\n onClick?: (x0: React.MouseEvent<HTMLElement>) => void;\n onFocus?: (x0: React.FocusEvent<HTMLElement>) => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange?: (value: string) => void;\n onKeyDown?: (x0: React.KeyboardEvent<HTMLElement>) => void;\n}\n\ntype DefaultProps = Required<Pick<DateInputProps, 'value' | 'minDate' | 'maxDate' | 'size' | 'width'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DateInput extends React.Component<DateInputProps, DateInputState> {\n public static __KONTUR_REACT_UI__ = 'DateInput';\n\n public static defaultProps: DefaultProps = {\n value: '',\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n size: 'small',\n width: 125,\n };\n\n private getProps = createPropsGetter(DateInput.defaultProps);\n\n private iDateMediator: InternalDateMediator = new InternalDateMediator();\n private inputLikeText: InputLikeText | null = null;\n private dateFragmentsView: DateFragmentsView | null = null;\n private isMouseDown = false;\n private isMouseFocus = false;\n private ignoringDelimiter = false;\n private locale!: DatePickerLocale;\n private blurEvent: React.FocusEvent<HTMLElement> | null = null;\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\n private conditionalHandler = new ConditionalHandler<Actions, [React.KeyboardEvent<HTMLElement>]>()\n .add(Actions.MoveSelectionLeft, () => this.shiftSelection(-1))\n .add(Actions.MoveSelectionRight, () => this.shiftSelection(1))\n .add(Actions.Separator, () => this.pressDelimiter())\n .add(Actions.MoveSelectionFirst, () => this.selectDateComponent(this.iDateMediator.getLeftmostType()))\n .add(Actions.MoveSelectionLast, () => this.selectDateComponent(this.iDateMediator.getRightmostType()))\n .add(Actions.Increment, () => this.shiftDateComponent(1))\n .add(Actions.Decrement, () => this.shiftDateComponent(-1))\n .add(Actions.Digit, (e) => this.inputValue(e))\n .add(Actions.ClearSelection, () => this.clearSelected())\n .add(Actions.ClearOneChar, () => this.clearOneChar())\n .add(Actions.FullSelection, () => this.fullSelection())\n .add(Actions.WrongInput, () => this.blink())\n .build();\n\n constructor(props: DateInputProps) {\n super(props);\n\n this.state = {\n valueFormatted: '',\n selected: null,\n inputMode: false,\n focused: false,\n dragged: false,\n };\n }\n\n public componentDidUpdate(prevProps: DateInputProps) {\n const { value, minDate, maxDate } = this.getProps();\n if (\n prevProps.value !== value ||\n prevProps.minDate !== minDate ||\n prevProps.maxDate !== maxDate ||\n this.iDateMediator.isChangedLocale(this.locale)\n ) {\n this.updateFromProps(false);\n }\n this.selectNode();\n }\n\n public selectNode = () => {\n const type = this.state.selected;\n const dateFragmentsView = this.dateFragmentsView && this.dateFragmentsView.getRootNode();\n if (type === null || !this.inputLikeText || !dateFragmentsView) {\n return;\n }\n if (type === InternalDateComponentType.All) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, 0, 5);\n return;\n }\n const index = this.iDateMediator.getTypesOrder().indexOf(type);\n if (index > -1) {\n this.inputLikeText.selectInnerNode(dateFragmentsView, index * 2, index * 2 + 1);\n }\n };\n\n public componentDidMount(): void {\n this.updateFromProps(false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public blur() {\n if (this.inputLikeText) {\n this.inputLikeText.blur();\n }\n }\n\n public focus() {\n if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n }\n\n public blink() {\n if (this.inputLikeText) {\n this.inputLikeText.blink();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { focused, selected, inputMode, valueFormatted } = this.state;\n const showValue = Boolean(focused || valueFormatted);\n const { width, size } = this.getProps();\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <InputLikeText\n width={width}\n ref={this.inputLikeTextRef}\n size={size}\n disabled={this.props.disabled}\n error={this.props.error}\n warning={this.props.warning}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onClick={this.props.onClick}\n onKeyDown={this.handleKeyDown}\n onMouseDownCapture={this.handleMouseDownCapture}\n onPaste={this.handlePaste}\n rightIcon={this.renderIcon()}\n onDoubleClickCapture={this.handleDoubleClick}\n onMouseDragStart={this.handleMouseDragStart}\n onMouseDragEnd={this.handleMouseDragEnd}\n value={this.iDateMediator.getInternalString()}\n inputMode={'numeric'}\n takeContentWidth\n >\n <span className={cx(styles.value(), { [styles.valueVisible()]: showValue })}>\n <DateFragmentsView\n ref={this.dateFragmentsViewRef}\n fragments={this.iDateMediator.getFragments()}\n onSelectDateComponent={this.handleSelectDateComponent}\n selected={selected}\n inputMode={inputMode}\n />\n </span>\n </InputLikeText>\n </CommonWrapper>\n );\n }\n\n private renderIcon = () => {\n const { withIcon, disabled = false } = this.props;\n const size = this.getProps().size;\n\n if (withIcon) {\n const theme = this.theme;\n const icon = isTheme2022(theme) ? <CalendarIcon2022 size={size} /> : <CalendarIcon />;\n const iconStyles = cx({\n [styles.icon(theme)]: true,\n [styles.iconSmall(theme)]: size === 'small',\n [styles.iconMedium(theme)]: size === 'medium',\n [styles.iconLarge(theme)]: size === 'large',\n [styles.iconDisabled(theme)]: disabled,\n });\n return (\n <span className={iconStyles} data-tid={DateInputDataTids.icon}>\n {icon}\n </span>\n );\n }\n return null;\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n this.setState((prevState) => ({\n focused: true,\n selected: this.isMouseDown && !prevState.focused ? prevState.selected : this.iDateMediator.getLeftmostType(),\n }));\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n const restored = this.iDateMediator.restore();\n this.updateValue({ focused: false, selected: null, inputMode: false });\n\n if (this.props.onBlur) {\n if (restored) {\n e.persist();\n this.blurEvent = e;\n } else {\n this.props.onBlur(e);\n }\n }\n };\n\n private handleMouseDownCapture = (e: React.MouseEvent<HTMLSpanElement>) => {\n const isFragment = this.dateFragmentsView ? this.dateFragmentsView.isFragment(e.target) : false;\n if (this.state.focused && !isFragment) {\n e.preventDefault();\n }\n this.isMouseFocus = !this.state.focused;\n this.isMouseDown = isFragment;\n };\n\n private handleSelectDateComponent = (type: InternalDateComponentType) => {\n if (!(this.isMouseFocus && this.iDateMediator.isEmpty())) {\n this.selectDateComponent(type);\n }\n this.isMouseFocus = false;\n this.isMouseDown = false;\n };\n\n private handleMouseDragStart = () => {\n this.setState({ dragged: true, selected: null });\n };\n\n private handleMouseDragEnd = () => {\n const selection = getSelection();\n if (\n selection &&\n selection.toString().length === LENGTH_FULLDATE &&\n this.state.selected !== InternalDateComponentType.All\n ) {\n this.selectDateComponent(InternalDateComponentType.All);\n }\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.conditionalHandler(extractAction(e), e)) {\n e.preventDefault();\n }\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handlePaste = (e: React.ClipboardEvent<HTMLElement>) => {\n const pasted = e && e.clipboardData.getData('text').trim();\n if (pasted && this.iDateMediator.validateString(pasted)) {\n this.iDateMediator.paste(pasted);\n this.updateValue();\n }\n };\n\n private handleDoubleClick = () => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private inputLikeTextRef = (el: InputLikeText | null) => {\n this.inputLikeText = el;\n };\n\n private dateFragmentsViewRef = (el: DateFragmentsView | null) => {\n this.dateFragmentsView = el;\n };\n\n private selectDateComponent = (selected: InternalDateComponentType | null): void => {\n this.setState({ selected, inputMode: false });\n };\n\n private updateValue = (state: Partial<DateInputState> = {}, sync = true): void => {\n const valueFormatted = this.iDateMediator.getString();\n\n const update = () => this.setState({ ...state, valueFormatted } as DateInputState, this.emitChange);\n\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(update);\n } else {\n update();\n }\n };\n\n private updateFromProps = (sync: boolean): void => {\n this.iDateMediator.update(this.props, this.locale);\n\n this.updateValue({}, sync);\n };\n\n private fullSelection = (): void => {\n this.selectDateComponent(InternalDateComponentType.All);\n };\n\n private pressDelimiter = (): void => {\n const value = this.iDateMediator.get(this.state.selected);\n if (value !== null && value !== '') {\n if (!this.ignoringDelimiter) {\n this.shiftSelection(1);\n }\n this.ignoringDelimiter = false;\n }\n };\n\n private emitChange = (): void => {\n const value = this.iDateMediator.getInternalString();\n if (this.props.value === value) {\n return;\n }\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n if (this.blurEvent && this.props.onBlur) {\n this.props.onBlur(this.blurEvent);\n this.blurEvent = null;\n }\n };\n\n private clearSelected = (): void => {\n const selected = this.state.selected === null ? this.iDateMediator.getLeftmostType() : this.state.selected;\n this.iDateMediator.clear(selected);\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private clearOneChar = (): void => {\n const { selected, inputMode } = this.state;\n const nextType = selected === null ? this.iDateMediator.getRightmostType() : selected;\n if (this.iDateMediator.isNull(nextType)) {\n this.shiftSelection(-1);\n return;\n }\n if (selected === InternalDateComponentType.All) {\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.updateValue({ selected: this.iDateMediator.getLeftmostType() });\n return;\n }\n this.iDateMediator.deleteOneCharRight(nextType, inputMode);\n this.updateValue({\n inputMode: this.iDateMediator.get(nextType) !== null,\n selected: nextType,\n });\n };\n\n private shiftDateComponent = (step: number): void => {\n const { selected } = this.state;\n const changed = this.iDateMediator.shiftDateComponent(selected, step);\n if (!changed) {\n this.blink();\n return;\n }\n this.updateValue({\n inputMode: false,\n selected: selected === InternalDateComponentType.All ? this.iDateMediator.getLeftmostType() : selected,\n });\n };\n\n private shiftSelection = (step: number): void => {\n const selected = this.iDateMediator.getShiftedType(this.state.selected, step);\n if (selected !== this.state.selected) {\n this.setState({ selected, inputMode: false });\n }\n };\n\n private inputValue = (event: React.KeyboardEvent<HTMLElement>): void => {\n let selected = this.state.selected;\n if (selected === InternalDateComponentType.All) {\n selected = this.iDateMediator.getLeftmostType();\n this.iDateMediator.clear(InternalDateComponentType.All);\n this.setState({ selected });\n }\n const { inputMode, changed } = this.iDateMediator.inputKey(event.key, selected, this.state.inputMode);\n if (!changed) {\n this.blink();\n return;\n }\n\n if (!inputMode) {\n this.ignoringDelimiter = true;\n this.shiftSelection(1);\n }\n this.updateValue({ inputMode });\n };\n}\n"]}
|
|
@@ -4,6 +4,7 @@ import { Nullable } from '../../typings/utility-types';
|
|
|
4
4
|
import { DropdownContainerProps } from '../../internal/DropdownContainer';
|
|
5
5
|
import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';
|
|
6
6
|
import { CalendarDateShape, CalendarProps } from '../Calendar';
|
|
7
|
+
import { SizeProp } from '../../lib/types/props';
|
|
7
8
|
export declare const MIN_WIDTH = 120;
|
|
8
9
|
export interface DatePickerProps extends Pick<DropdownContainerProps, 'menuPos'>, Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>, CommonProps {
|
|
9
10
|
autoFocus?: boolean;
|
|
@@ -17,7 +18,7 @@ export interface DatePickerProps extends Pick<DropdownContainerProps, 'menuPos'>
|
|
|
17
18
|
*/
|
|
18
19
|
error?: boolean;
|
|
19
20
|
menuAlign?: 'left' | 'right';
|
|
20
|
-
size?:
|
|
21
|
+
size?: SizeProp;
|
|
21
22
|
value?: string | null;
|
|
22
23
|
/**
|
|
23
24
|
* Состояние валидации при предупреждении.
|
|
@@ -27,6 +27,7 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
|
27
27
|
var _Button = require("../Button");
|
|
28
28
|
var _CalendarUtils = require("../Calendar/CalendarUtils");
|
|
29
29
|
|
|
30
|
+
|
|
30
31
|
var _DatePicker = require("./DatePicker.styles");
|
|
31
32
|
var _locale2 = require("./locale");var _dec, _class, _class2, _temp;
|
|
32
33
|
|
|
@@ -272,7 +273,15 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
272
273
|
picker = /*#__PURE__*/
|
|
273
274
|
_react.default.createElement(_locale.LocaleContext.Provider, {
|
|
274
275
|
value: {
|
|
275
|
-
locale: {
|
|
276
|
+
locale: {
|
|
277
|
+
Calendar: {
|
|
278
|
+
months: _this.locale.months,
|
|
279
|
+
dayCellChooseDateAriaLabel: _this.locale.dayCellChooseDateAriaLabel,
|
|
280
|
+
selectMonthAriaLabel: _this.locale.selectMonthAriaLabel,
|
|
281
|
+
selectYearAriaLabel: _this.locale.selectYearAriaLabel,
|
|
282
|
+
selectChosenAriaLabel: _this.locale.selectChosenAriaLabel } } } }, /*#__PURE__*/
|
|
283
|
+
|
|
284
|
+
|
|
276
285
|
|
|
277
286
|
|
|
278
287
|
_react.default.createElement(_DropdownContainer.DropdownContainer, {
|
|
@@ -383,6 +392,8 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
383
392
|
|
|
384
393
|
|
|
385
394
|
|
|
395
|
+
|
|
396
|
+
|
|
386
397
|
|
|
387
398
|
|
|
388
399
|
|
|
@@ -455,7 +466,7 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
455
466
|
*/;_proto.focus = function focus() {if (this.props.disabled) {return;}if (this.input) {this.input.focus();}this.handleFocus();} /**
|
|
456
467
|
* Закрывает выпадашку выбора дня
|
|
457
468
|
* @public
|
|
458
|
-
*/;_proto.close = function close() {this.setState({ opened: false });};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme) }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain));});};_proto.parseValueToDate = function parseValueToDate(value) {if (value === undefined || value === null) {return undefined;}var date = new _InternalDate.InternalDate({ value: value });if (date.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Native] })) {return date.toString({ withPad: true });}return undefined;};_proto.renderTodayLink = function renderTodayLink() {var _cx;var _this$locale = this.locale,order = _this$locale.order,separator = _this$locale.separator;var today = new _InternalDate.InternalDate({ order: order, separator: separator }).setComponents(_InternalDateGetter.InternalDateGetter.getTodayComponents()).toString({ withPad: true, withSeparator: true });if ((0, _ThemeHelpers.isTheme2022)(this.theme)) {return /*#__PURE__*/_react.default.createElement("div", { style: { margin: 8 } }, /*#__PURE__*/_react.default.createElement(_Button.Button, { "data-tid": DatePickerDataTids.pickerTodayWrapper, width: "100%", onClick: this.handleSelectToday(today), icon: /*#__PURE__*/_react.default.createElement(_ArrowAUp16Light.ArrowAUpIcon16Light, null) }, this.locale.today));}return /*#__PURE__*/_react.default.createElement("button", { "data-tid": DatePickerDataTids.pickerTodayWrapper, className: (0, _Emotion.cx)((_cx = {}, _cx[_DatePicker.styles.todayLinkWrapper(this.theme)] = true, _cx)), onClick: this.handleSelectToday(today), tabIndex: -1 }, this.locale.today + " " + today);};return DatePicker;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'DatePicker', _class2.propTypes = { autoFocus: _propTypes.default.bool, disabled: _propTypes.default.bool, /**
|
|
469
|
+
*/;_proto.close = function close() {this.setState({ opened: false });};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _ThemeFactory.ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme) }, /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.props), _this2.renderMain));});};_proto.parseValueToDate = function parseValueToDate(value) {if (value === undefined || value === null) {return undefined;}var date = new _InternalDate.InternalDate({ value: value });if (date.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Native] })) {return date.toString({ withPad: true });}return undefined;};_proto.renderTodayLink = function renderTodayLink() {var _cx;var _this$locale = this.locale,order = _this$locale.order,separator = _this$locale.separator;var today = new _InternalDate.InternalDate({ order: order, separator: separator }).setComponents(_InternalDateGetter.InternalDateGetter.getTodayComponents()).toString({ withPad: true, withSeparator: true });if ((0, _ThemeHelpers.isTheme2022)(this.theme)) {return /*#__PURE__*/_react.default.createElement("div", { style: { margin: 8 } }, /*#__PURE__*/_react.default.createElement(_Button.Button, { "aria-label": this.locale.todayAriaLabel, "data-tid": DatePickerDataTids.pickerTodayWrapper, width: "100%", onClick: this.handleSelectToday(today), icon: /*#__PURE__*/_react.default.createElement(_ArrowAUp16Light.ArrowAUpIcon16Light, null) }, this.locale.today));}return /*#__PURE__*/_react.default.createElement("button", { "aria-label": this.locale.todayAriaLabel, "data-tid": DatePickerDataTids.pickerTodayWrapper, className: (0, _Emotion.cx)((_cx = {}, _cx[_DatePicker.styles.todayLinkWrapper(this.theme)] = true, _cx)), onClick: this.handleSelectToday(today), tabIndex: -1 }, this.locale.today + " " + today);};return DatePicker;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'DatePicker', _class2.propTypes = { autoFocus: _propTypes.default.bool, disabled: _propTypes.default.bool, /**
|
|
459
470
|
* Включает кнопку сегодня в календаре
|
|
460
471
|
*/enableTodayLink: _propTypes.default.bool, error: _propTypes.default.bool, /**
|
|
461
472
|
* Максимальная дата в календаре.
|