@skbkontur/react-ui 5.0.12 → 5.1.0-next.1
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/cjs/components/Autocomplete/Autocomplete.d.ts +16 -17
- package/cjs/components/Autocomplete/Autocomplete.js +13 -2
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/Autocomplete.md +9 -7
- package/cjs/components/Autocomplete/__docs__/Autocomplete.mdx +26 -0
- package/cjs/components/Autocomplete/locale/types.js +1 -1
- package/cjs/components/Button/Button.d.ts +20 -62
- package/cjs/components/Button/Button.js +0 -42
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +40 -26
- package/cjs/components/Button/__docs__/Button.mdx +28 -0
- package/cjs/components/Calendar/Calendar.d.ts +22 -45
- package/cjs/components/Calendar/Calendar.js +1 -15
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +12 -12
- package/cjs/components/Calendar/CalendarDay.d.ts +7 -0
- package/cjs/components/Calendar/CalendarDay.js +11 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.md +32 -32
- package/cjs/components/Calendar/__docs__/Calendar.mdx +28 -0
- package/cjs/components/Calendar/__docs__/CalendarDay.mdx +24 -0
- package/cjs/components/Calendar/locale/types.js +1 -1
- package/cjs/components/Center/Center.d.ts +4 -6
- package/cjs/components/Center/Center.js +3 -5
- package/cjs/components/Center/Center.js.map +1 -1
- package/cjs/components/Center/Center.md +1 -1
- package/cjs/components/Center/__docs__/Center.mdx +24 -0
- package/cjs/components/Checkbox/Checkbox.d.ts +20 -28
- package/cjs/components/Checkbox/Checkbox.js +7 -6
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +6 -5
- package/cjs/components/Checkbox/__docs__/Checkbox.mdx +28 -0
- package/cjs/components/ComboBox/ComboBox.d.ts +67 -86
- package/cjs/components/ComboBox/ComboBox.js +12 -28
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/ComboBox/ComboBox.md +41 -40
- package/cjs/components/ComboBox/__docs__/ComboBox.mdx +28 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.d.ts +4 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js +7 -0
- package/cjs/components/CurrencyInput/CurrencyHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.d.ts +12 -12
- package/cjs/components/CurrencyInput/CurrencyInput.js +8 -2
- package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
- package/cjs/components/CurrencyInput/CurrencyInput.md +3 -1
- package/cjs/components/CurrencyInput/CurrencyInputHelper.d.ts +3 -0
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js +5 -0
- package/cjs/components/CurrencyInput/CurrencyInputHelper.js.map +1 -1
- package/cjs/components/CurrencyInput/__docs__/CurrencyInput.mdx +28 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.d.ts +8 -5
- package/cjs/components/CurrencyLabel/CurrencyLabel.js +6 -0
- package/cjs/components/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/cjs/components/CurrencyLabel/CurrencyLabel.md +5 -5
- package/cjs/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +24 -0
- package/cjs/components/DateInput/DateInput.d.ts +21 -29
- package/cjs/components/DateInput/DateInput.js +14 -2
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DateInput/DateInput.md +7 -2
- package/cjs/components/DateInput/__docs__/DateInput.mdx +26 -0
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js +1 -1
- package/cjs/components/DateInput/helpers/DateInputKeyboardActions.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +33 -23
- package/cjs/components/DatePicker/DatePicker.js +53 -4
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +2 -2
- package/cjs/components/DatePicker/__docs__/DatePicker.mdx +28 -0
- package/cjs/components/DatePicker/locale/types.js +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +25 -30
- package/cjs/components/Dropdown/Dropdown.js +8 -1
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.md +2 -1
- package/cjs/components/Dropdown/__docs__/Dropdown.mdx +28 -0
- package/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.md +12 -10
- package/cjs/components/DropdownMenu/__docs__/DropdownMenu.mdx +28 -0
- package/cjs/components/FileUploader/FileUploader.d.ts +16 -20
- package/cjs/components/FileUploader/FileUploader.js +5 -3
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.md +9 -9
- package/cjs/components/FileUploader/__docs__/FileUploader.mdx +28 -0
- package/cjs/components/FileUploader/locale/types.js +1 -1
- package/cjs/components/FxInput/FxInput.d.ts +15 -9
- package/cjs/components/FxInput/FxInput.js +14 -1
- package/cjs/components/FxInput/FxInput.js.map +1 -1
- package/cjs/components/FxInput/FxInput.md +2 -0
- package/cjs/components/FxInput/__docs__/FxInput.mdx +28 -0
- package/cjs/components/Gapped/Gapped.d.ts +6 -17
- package/cjs/components/Gapped/Gapped.js +1 -8
- package/cjs/components/Gapped/Gapped.js.map +1 -1
- package/cjs/components/Gapped/Gapped.md +3 -2
- package/cjs/components/Gapped/__docs__/Gapped.mdx +24 -0
- package/cjs/components/GlobalLoader/GlobalLoader.d.ts +22 -32
- package/cjs/components/GlobalLoader/GlobalLoader.js +14 -14
- package/cjs/components/GlobalLoader/GlobalLoader.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoader.md +4 -5
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +4 -0
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +7 -0
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/GlobalLoader/__docs__/GlobalLoader.mdx +28 -0
- package/cjs/components/Group/Group.d.ts +6 -0
- package/cjs/components/Group/Group.js +7 -1
- package/cjs/components/Group/Group.js.map +1 -1
- package/cjs/components/Group/Group.md +1 -0
- package/cjs/components/Group/__docs__/Group.mdx +24 -0
- package/cjs/components/Hint/Hint.d.ts +18 -40
- package/cjs/components/Hint/Hint.js +4 -16
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +9 -8
- package/cjs/components/Hint/__docs__/Hint.mdx +29 -0
- package/cjs/components/Input/Input.d.ts +46 -68
- package/cjs/components/Input/Input.js +10 -9
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.md +11 -2
- package/cjs/components/Input/Input.typings.js +1 -1
- package/cjs/components/Input/__docs__/Input.mdx +28 -0
- package/cjs/components/Kebab/Kebab.d.ts +12 -16
- package/cjs/components/Kebab/Kebab.js +4 -2
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Kebab/Kebab.md +9 -9
- package/cjs/components/Kebab/__docs__/Kebab.mdx +28 -0
- package/cjs/components/Link/Link.d.ts +13 -37
- package/cjs/components/Link/Link.js +0 -13
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.md +12 -11
- package/cjs/components/Link/__docs__/Link.mdx +28 -0
- package/cjs/components/Loader/Loader.d.ts +13 -25
- package/cjs/components/Loader/Loader.js +2 -8
- package/cjs/components/Loader/Loader.js.map +1 -1
- package/cjs/components/Loader/Loader.md +1 -0
- package/cjs/components/Loader/__docs__/Loader.mdx +26 -0
- package/cjs/components/MaskedInput/MaskedInput.d.ts +13 -33
- package/cjs/components/MaskedInput/MaskedInput.js +0 -13
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.md +7 -5
- package/cjs/components/MaskedInput/__docs__/MaskedInput.mdx +28 -0
- package/cjs/components/MenuFooter/MenuFooter.d.ts +6 -4
- package/cjs/components/MenuFooter/MenuFooter.js +7 -3
- package/cjs/components/MenuFooter/MenuFooter.js.map +1 -1
- package/cjs/components/MenuFooter/MenuFooter.md +2 -2
- package/cjs/components/MenuFooter/__docs__/MenuFooter.mdx +24 -0
- package/cjs/components/MenuHeader/MenuHeader.d.ts +6 -4
- package/cjs/components/MenuHeader/MenuHeader.js +7 -3
- package/cjs/components/MenuHeader/MenuHeader.js.map +1 -1
- package/cjs/components/MenuHeader/MenuHeader.md +2 -2
- package/cjs/components/MenuHeader/__docs__/MenuHeader.mdx +24 -0
- package/cjs/components/MenuItem/MenuItem.d.ts +22 -55
- package/cjs/components/MenuItem/MenuItem.js +1 -18
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.md +34 -30
- package/cjs/components/MenuItem/__docs__/MenuItem.mdx +24 -0
- package/cjs/components/MenuSeparator/MenuSeparator.d.ts +2 -2
- package/cjs/components/MenuSeparator/MenuSeparator.js +3 -2
- package/cjs/components/MenuSeparator/MenuSeparator.js.map +1 -1
- package/cjs/components/MenuSeparator/MenuSeparator.md +1 -1
- package/cjs/components/MenuSeparator/__docs__/MenuSeparator.mdx +24 -0
- package/cjs/components/MiniModal/MiniModal.d.ts +6 -0
- package/cjs/components/MiniModal/MiniModal.js +6 -0
- package/cjs/components/MiniModal/MiniModal.js.map +1 -1
- package/cjs/components/MiniModal/MiniModal.md +1 -3
- package/cjs/components/MiniModal/MiniModalFooter.d.ts +2 -7
- package/cjs/components/MiniModal/MiniModalFooter.js +0 -5
- package/cjs/components/MiniModal/MiniModalFooter.js.map +1 -1
- package/cjs/components/MiniModal/MiniModalHeader.d.ts +2 -5
- package/cjs/components/MiniModal/MiniModalHeader.js +0 -3
- package/cjs/components/MiniModal/MiniModalHeader.js.map +1 -1
- package/cjs/components/MiniModal/__docs__/MiniModal.mdx +28 -0
- package/cjs/components/MiniModal/__docs__/MiniModalBody.mdx +17 -0
- package/cjs/components/MiniModal/__docs__/MiniModalFooter.mdx +17 -0
- package/cjs/components/MiniModal/__docs__/MiniModalHeader.mdx +18 -0
- package/cjs/components/MiniModal/__docs__/MiniModalIndent.mdx +11 -0
- package/cjs/components/MiniModal/getMiniModalTheme.d.ts +1 -1
- package/cjs/components/Modal/Modal.d.ts +12 -33
- package/cjs/components/Modal/Modal.js +4 -24
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/Modal.md +3 -1
- package/cjs/components/Modal/Modal.styles.d.ts +4 -1
- package/cjs/components/Modal/Modal.styles.js +68 -31
- package/cjs/components/Modal/Modal.styles.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -4
- package/cjs/components/Modal/ModalBody.js +1 -3
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalClose.js +7 -2
- package/cjs/components/Modal/ModalClose.js.map +1 -1
- package/cjs/components/Modal/ModalContext.d.ts +2 -0
- package/cjs/components/Modal/ModalContext.js +3 -0
- package/cjs/components/Modal/ModalContext.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +5 -15
- package/cjs/components/Modal/ModalFooter.js +0 -7
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -1
- package/cjs/components/Modal/ModalHeader.js +4 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Modal/ModalSeparator.d.ts +1 -0
- package/cjs/components/Modal/ModalSeparator.js +1 -0
- package/cjs/components/Modal/ModalSeparator.js.map +1 -1
- package/cjs/components/Modal/__creevey__/Modal.creevey.mts +15 -1
- package/cjs/components/Modal/__docs__/Modal.mdx +28 -0
- package/cjs/components/Modal/__docs__/ModalBody.mdx +15 -0
- package/cjs/components/Modal/__docs__/ModalFooter.mdx +15 -0
- package/cjs/components/Modal/__docs__/ModalHeader.mdx +15 -0
- package/cjs/components/Modal/__docs__/ModalSeparator.mdx +15 -0
- package/cjs/components/Modal/locale/types.js +1 -1
- package/cjs/components/Paging/Paging.d.ts +20 -15
- package/cjs/components/Paging/Paging.js +17 -1
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/Paging/Paging.md +3 -2
- package/cjs/components/Paging/PagingDefaultComponent.d.ts +2 -0
- package/cjs/components/Paging/PagingDefaultComponent.js +3 -0
- package/cjs/components/Paging/PagingDefaultComponent.js.map +1 -1
- package/cjs/components/Paging/__docs__/Paging.mdx +28 -0
- package/cjs/components/Paging/locale/types.js +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +10 -3
- package/cjs/components/PasswordInput/PasswordInput.js +35 -9
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.md +3 -2
- package/cjs/components/PasswordInput/__docs__/PasswordInput.mdx +28 -0
- package/cjs/components/PasswordInput/locale/types.js +1 -1
- package/cjs/components/Radio/Radio.d.ts +13 -28
- package/cjs/components/Radio/Radio.js +1 -8
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.md +3 -2
- package/cjs/components/Radio/__docs__/Radio.mdx +28 -0
- package/cjs/components/RadioGroup/RadioGroup.d.ts +28 -54
- package/cjs/components/RadioGroup/RadioGroup.js +4 -15
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.md +1 -0
- package/cjs/components/RadioGroup/__docs__/RadioGroup.mdx +28 -0
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js +6 -2
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/cjs/components/ResponsiveLayout/ResponsiveLayout.md +4 -3
- package/cjs/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +97 -0
- package/cjs/components/ResponsiveLayout/types.js +1 -1
- package/cjs/components/ScrollContainer/ScrollBar.d.ts +7 -0
- package/cjs/components/ScrollContainer/ScrollBar.js +13 -0
- package/cjs/components/ScrollContainer/ScrollBar.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +23 -29
- package/cjs/components/ScrollContainer/ScrollContainer.js +8 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.md +5 -3
- package/cjs/components/ScrollContainer/__docs__/ScrollContainer.mdx +24 -0
- package/cjs/components/Select/Item.d.ts +2 -0
- package/cjs/components/Select/Item.js +3 -0
- package/cjs/components/Select/Item.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +54 -38
- package/cjs/components/Select/Select.js +57 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.md +7 -6
- package/cjs/components/Select/__docs__/Select.mdx +28 -0
- package/cjs/components/Select/locale/types.js +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +17 -38
- package/cjs/components/SidePage/SidePage.js +15 -28
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.md +2 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +8 -1
- package/cjs/components/SidePage/SidePage.styles.js +83 -26
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageCloseButton.d.ts +6 -1
- package/cjs/components/SidePage/SidePageCloseButton.js +14 -2
- package/cjs/components/SidePage/SidePageCloseButton.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +4 -9
- package/cjs/components/SidePage/SidePageFooter.js +0 -2
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +2 -1
- package/cjs/components/SidePage/SidePageHeader.js +14 -7
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SidePage/__creevey__/SidePage.creevey.mts +103 -1
- package/cjs/components/SidePage/__docs__/SidePage.mdx +28 -0
- package/cjs/components/SidePage/__docs__/SidePageBody.mdx +15 -0
- package/cjs/components/SidePage/__docs__/SidePageContainer.mdx +15 -0
- package/cjs/components/SidePage/__docs__/SidePageFooter.mdx +15 -0
- package/cjs/components/SidePage/__docs__/SidePageHeader.mdx +15 -0
- package/cjs/components/SidePage/locale/types.js +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +5 -1
- package/cjs/components/SingleToast/SingleToast.js +5 -1
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.md +2 -1
- package/cjs/components/SingleToast/__docs__/SingleToast.mdx +28 -0
- package/cjs/components/Spinner/Spinner.d.ts +15 -20
- package/cjs/components/Spinner/Spinner.js +6 -7
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.md +2 -1
- package/cjs/components/Spinner/__docs__/Spinner.mdx +28 -0
- package/cjs/components/Sticky/Sticky.d.ts +9 -4
- package/cjs/components/Sticky/Sticky.js +9 -1
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Sticky/Sticky.md +1 -0
- package/cjs/components/Sticky/__docs__/Sticky.mdx +24 -0
- package/cjs/components/Switcher/Switcher.d.ts +18 -7
- package/cjs/components/Switcher/Switcher.js +14 -3
- package/cjs/components/Switcher/Switcher.js.map +1 -1
- package/cjs/components/Switcher/Switcher.md +6 -2
- package/cjs/components/Switcher/Switcher.styles.d.ts +1 -0
- package/cjs/components/Switcher/Switcher.styles.js +20 -1
- package/cjs/components/Switcher/Switcher.styles.js.map +1 -1
- package/cjs/components/Switcher/__docs__/Switcher.mdx +28 -0
- package/cjs/components/Tabs/Tab.d.ts +12 -31
- package/cjs/components/Tabs/Tab.js +1 -20
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Tabs/Tab.md +2 -0
- package/cjs/components/Tabs/Tabs.d.ts +14 -25
- package/cjs/components/Tabs/Tabs.js +6 -17
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Tabs/Tabs.md +3 -2
- package/cjs/components/Tabs/__docs__/Tab.mdx +28 -0
- package/cjs/components/Tabs/__docs__/Tabs.mdx +28 -0
- package/cjs/components/Textarea/Textarea.d.ts +26 -52
- package/cjs/components/Textarea/Textarea.js +3 -23
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.md +4 -2
- package/cjs/components/Textarea/__docs__/Textarea.mdx +28 -0
- package/cjs/components/Toast/Toast.d.ts +12 -9
- package/cjs/components/Toast/Toast.js +13 -5
- package/cjs/components/Toast/Toast.js.map +1 -1
- package/cjs/components/Toast/Toast.md +4 -4
- package/cjs/components/Toast/ToastStatic.d.ts +2 -2
- package/cjs/components/Toast/ToastStatic.js +15 -5
- package/cjs/components/Toast/ToastStatic.js.map +1 -1
- package/cjs/components/Toast/ToastView.d.ts +3 -6
- package/cjs/components/Toast/ToastView.js +3 -5
- package/cjs/components/Toast/ToastView.js.map +1 -1
- package/cjs/components/Toast/ToastView.styles.js +4 -4
- package/cjs/components/Toast/ToastView.styles.js.map +1 -1
- package/cjs/components/Toast/__creevey__/Toast.creevey.mts +23 -0
- package/cjs/components/Toast/__docs__/Toast.mdx +28 -0
- package/cjs/components/Toast/locale/types.js +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +25 -48
- package/cjs/components/Toggle/Toggle.js +4 -12
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Toggle/Toggle.md +9 -9
- package/cjs/components/Toggle/__docs__/Toggle.mdx +28 -0
- package/cjs/components/Token/Token.d.ts +17 -9
- package/cjs/components/Token/Token.js +9 -1
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/Token/Token.md +86 -3
- package/cjs/components/Token/TokenView.d.ts +3 -0
- package/cjs/components/Token/TokenView.js +3 -0
- package/cjs/components/Token/TokenView.js.map +1 -1
- package/cjs/components/Token/__docs__/Token.mdx +28 -0
- package/cjs/components/Token/locale/types.js +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.d.ts +3 -0
- package/cjs/components/TokenInput/TextWidthHelper.js +5 -0
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +54 -97
- package/cjs/components/TokenInput/TokenInput.js +7 -18
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.md +12 -10
- package/cjs/components/TokenInput/TokenInputMenu.d.ts +5 -5
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TokenInput/__docs__/TokenInput.mdx +28 -0
- package/cjs/components/TokenInput/locale/types.js +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +28 -68
- package/cjs/components/Tooltip/Tooltip.js +9 -63
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.md +5 -0
- package/cjs/components/Tooltip/__docs__/Tooltip.mdx +28 -0
- package/cjs/components/TooltipMenu/TooltipMenu.d.ts +13 -28
- package/cjs/components/TooltipMenu/TooltipMenu.js +1 -16
- package/cjs/components/TooltipMenu/TooltipMenu.js.map +1 -1
- package/cjs/components/TooltipMenu/TooltipMenu.md +13 -10
- package/cjs/components/TooltipMenu/__docs__/TooltipMenu.mdx +24 -0
- package/cjs/index.d.ts +1 -2
- package/cjs/index.js +1 -2
- package/cjs/index.js.map +1 -1
- package/cjs/internal/CommonWrapper/types.js +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +4 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +12 -2
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxTypes.js +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxTypes.js.map +1 -1
- package/cjs/internal/CustomComboBox/locale/types.js +1 -1
- package/cjs/internal/DateSelect/locale/types.js +1 -1
- package/cjs/internal/FileUploaderControl/fileUtils.js +1 -1
- package/cjs/internal/FileUploaderControl/fileUtils.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +12 -11
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Popup/types.js +1 -1
- package/cjs/internal/RenderContainer/RenderContainerTypes.js +1 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js +2 -1
- package/cjs/internal/ThemePlayground/Playground.styles.js.map +1 -1
- package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
- package/cjs/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
- package/cjs/internal/ThemePlayground/constants.js +1 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.js +0 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.js.map +1 -1
- package/cjs/internal/themes/BasicLightTheme.d.ts +5 -1198
- package/cjs/internal/themes/BasicLightTheme.js +2 -2512
- package/cjs/internal/themes/BasicLightTheme.js.map +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +1217 -0
- package/cjs/internal/themes/BasicTheme.js +2536 -0
- package/cjs/internal/themes/BasicTheme.js.map +1 -0
- package/cjs/internal/themes/DarkTheme5_0.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_0.js +556 -0
- package/cjs/internal/themes/DarkTheme5_0.js.map +1 -0
- package/cjs/internal/themes/DarkTheme5_1.d.ts +1 -0
- package/cjs/internal/themes/DarkTheme5_1.js +41 -0
- package/cjs/internal/themes/DarkTheme5_1.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_0.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_0.js +9 -0
- package/cjs/internal/themes/LightTheme5_0.js.map +1 -0
- package/cjs/internal/themes/LightTheme5_1.d.ts +1 -0
- package/cjs/internal/themes/LightTheme5_1.js +41 -0
- package/cjs/internal/themes/LightTheme5_1.js.map +1 -0
- package/cjs/lib/ModalStack.d.ts +1 -0
- package/cjs/lib/ModalStack.js +6 -4
- package/cjs/lib/ModalStack.js.map +1 -1
- package/cjs/lib/date/types.js +6 -6
- package/cjs/lib/date/types.js.map +1 -1
- package/cjs/lib/events/MouseDrag.js +1 -1
- package/cjs/lib/events/MouseDrag.js.map +1 -1
- package/cjs/lib/events/keyboard/KeyboardEventCodes.js +1 -1
- package/cjs/lib/events/keyboard/KeyboardEventCodes.js.map +1 -1
- package/cjs/lib/locale/types.js +1 -1
- package/cjs/lib/locale/types.js.map +1 -1
- package/cjs/lib/theming/Theme.d.ts +4 -3
- package/cjs/lib/theming/Theme.js +1 -1
- package/cjs/lib/theming/Theme.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.d.ts +1 -1
- package/cjs/lib/theming/ThemeContext.js +2 -2
- package/cjs/lib/theming/ThemeContext.js.map +1 -1
- package/cjs/lib/theming/ThemeFactory.d.ts +9 -0
- package/cjs/lib/theming/ThemeFactory.js +28 -9
- package/cjs/lib/theming/ThemeFactory.js.map +1 -1
- package/cjs/lib/theming/ThemeHelpers.d.ts +55 -8
- package/cjs/lib/theming/ThemeHelpers.js +94 -22
- package/cjs/lib/theming/ThemeHelpers.js.map +1 -1
- package/cjs/lib/theming/ThemeVersions.d.ts +25 -0
- package/cjs/lib/theming/ThemeVersions.js +58 -0
- package/cjs/lib/theming/ThemeVersions.js.map +1 -0
- package/cjs/lib/theming/themes/DarkTheme.d.ts +3 -1
- package/cjs/lib/theming/themes/DarkTheme.js +6 -4
- package/cjs/lib/theming/themes/DarkTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightTheme.d.ts +3 -1
- package/cjs/lib/theming/themes/LightTheme.js +6 -4
- package/cjs/lib/theming/themes/LightTheme.js.map +1 -1
- package/cjs/lib/theming/themes/LightThemeMobile.d.ts +1 -1
- package/cjs/lib/theming/useTheme.d.ts +1 -1
- package/cjs/lib/types/button-link.js +1 -1
- package/cjs/lib/types/polymorphic-component.js +1 -1
- package/cjs/lib/types/props.js +1 -1
- package/components/Autocomplete/Autocomplete/Autocomplete.js +3 -2
- package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
- package/components/Autocomplete/Autocomplete.d.ts +16 -17
- package/components/Autocomplete/Autocomplete.md +9 -7
- package/components/Autocomplete/__docs__/Autocomplete.mdx +26 -0
- package/components/Autocomplete/locale/types/types.js +0 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +20 -62
- package/components/Button/Button.md +40 -26
- package/components/Button/__docs__/Button.mdx +28 -0
- package/components/Calendar/Calendar/Calendar.js +1 -1
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +22 -45
- package/components/Calendar/Calendar.md +12 -12
- package/components/Calendar/CalendarDay/CalendarDay.js +2 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -1
- package/components/Calendar/CalendarDay.d.ts +7 -0
- package/components/Calendar/CalendarDay.md +32 -32
- package/components/Calendar/__docs__/Calendar.mdx +28 -0
- package/components/Calendar/__docs__/CalendarDay.mdx +24 -0
- package/components/Calendar/locale/types/types.js +0 -1
- package/components/Center/Center/Center.js +3 -1
- package/components/Center/Center/Center.js.map +1 -1
- package/components/Center/Center.d.ts +4 -6
- package/components/Center/Center.md +1 -1
- package/components/Center/__docs__/Center.mdx +24 -0
- package/components/Checkbox/Checkbox/Checkbox.js +7 -0
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +20 -28
- package/components/Checkbox/Checkbox.md +6 -5
- package/components/Checkbox/__docs__/Checkbox.mdx +28 -0
- package/components/ComboBox/ComboBox/ComboBox.js +13 -2
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +67 -86
- package/components/ComboBox/ComboBox.md +41 -40
- package/components/ComboBox/__docs__/ComboBox.mdx +28 -0
- package/components/CurrencyInput/CurrencyHelper/CurrencyHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyHelper.d.ts +4 -0
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +5 -2
- package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
- package/components/CurrencyInput/CurrencyInput.d.ts +12 -12
- package/components/CurrencyInput/CurrencyInput.md +3 -1
- package/components/CurrencyInput/CurrencyInputHelper/CurrencyInputHelper.js.map +1 -1
- package/components/CurrencyInput/CurrencyInputHelper.d.ts +3 -0
- package/components/CurrencyInput/__docs__/CurrencyInput.mdx +28 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js +4 -0
- package/components/CurrencyLabel/CurrencyLabel/CurrencyLabel.js.map +1 -1
- package/components/CurrencyLabel/CurrencyLabel.d.ts +8 -5
- package/components/CurrencyLabel/CurrencyLabel.md +5 -5
- package/components/CurrencyLabel/__docs__/CurrencyLabel.mdx +24 -0
- package/components/DateInput/DateInput/DateInput.js +8 -1
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +21 -29
- package/components/DateInput/DateInput.md +7 -2
- package/components/DateInput/__docs__/DateInput.mdx +26 -0
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js +3 -3
- package/components/DateInput/helpers/DateInputKeyboardActions/DateInputKeyboardActions.js.map +1 -1
- package/components/DatePicker/DatePicker/DatePicker.js +33 -5
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +33 -23
- package/components/DatePicker/DatePicker.md +2 -2
- package/components/DatePicker/__docs__/DatePicker.mdx +28 -0
- package/components/DatePicker/locale/types/types.js +0 -1
- package/components/Dropdown/Dropdown/Dropdown.js +7 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +25 -30
- package/components/Dropdown/Dropdown.md +2 -1
- package/components/Dropdown/__docs__/Dropdown.mdx +28 -0
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/DropdownMenu/DropdownMenu.d.ts +1 -1
- package/components/DropdownMenu/DropdownMenu.md +12 -10
- package/components/DropdownMenu/__docs__/DropdownMenu.mdx +28 -0
- package/components/FileUploader/FileUploader/FileUploader.js +6 -0
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +16 -20
- package/components/FileUploader/FileUploader.md +9 -9
- package/components/FileUploader/__docs__/FileUploader.mdx +28 -0
- package/components/FileUploader/locale/types/types.js +0 -1
- package/components/FxInput/FxInput/FxInput.js +7 -1
- package/components/FxInput/FxInput/FxInput.js.map +1 -1
- package/components/FxInput/FxInput.d.ts +15 -9
- package/components/FxInput/FxInput.md +2 -0
- package/components/FxInput/__docs__/FxInput.mdx +28 -0
- package/components/Gapped/Gapped/Gapped.js +1 -1
- package/components/Gapped/Gapped/Gapped.js.map +1 -1
- package/components/Gapped/Gapped.d.ts +6 -17
- package/components/Gapped/Gapped.md +3 -2
- package/components/Gapped/__docs__/Gapped.mdx +24 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js +13 -0
- package/components/GlobalLoader/GlobalLoader/GlobalLoader.js.map +1 -1
- package/components/GlobalLoader/GlobalLoader.d.ts +22 -32
- package/components/GlobalLoader/GlobalLoader.md +4 -5
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +4 -0
- package/components/GlobalLoader/__docs__/GlobalLoader.mdx +28 -0
- package/components/Group/Group/Group.js +6 -0
- package/components/Group/Group/Group.js.map +1 -1
- package/components/Group/Group.d.ts +6 -0
- package/components/Group/Group.md +1 -0
- package/components/Group/__docs__/Group.mdx +24 -0
- package/components/Hint/Hint/Hint.js +4 -1
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +18 -40
- package/components/Hint/Hint.md +9 -8
- package/components/Hint/__docs__/Hint.mdx +29 -0
- package/components/Input/Input/Input.js +10 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +46 -68
- package/components/Input/Input.md +11 -2
- package/components/Input/Input.typings/Input.typings.js +0 -1
- package/components/Input/__docs__/Input.mdx +28 -0
- package/components/Kebab/Kebab/Kebab.js +4 -0
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +12 -16
- package/components/Kebab/Kebab.md +9 -9
- package/components/Kebab/__docs__/Kebab.mdx +28 -0
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +13 -37
- package/components/Link/Link.md +12 -11
- package/components/Link/__docs__/Link.mdx +28 -0
- package/components/Loader/Loader/Loader.js +2 -2
- package/components/Loader/Loader/Loader.js.map +1 -1
- package/components/Loader/Loader.d.ts +13 -25
- package/components/Loader/Loader.md +1 -0
- package/components/Loader/__docs__/Loader.mdx +26 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +13 -33
- package/components/MaskedInput/MaskedInput.md +7 -5
- package/components/MaskedInput/__docs__/MaskedInput.mdx +28 -0
- package/components/MenuFooter/MenuFooter/MenuFooter.js +3 -3
- package/components/MenuFooter/MenuFooter/MenuFooter.js.map +1 -1
- package/components/MenuFooter/MenuFooter.d.ts +6 -4
- package/components/MenuFooter/MenuFooter.md +2 -2
- package/components/MenuFooter/__docs__/MenuFooter.mdx +24 -0
- package/components/MenuHeader/MenuHeader/MenuHeader.js +3 -3
- package/components/MenuHeader/MenuHeader/MenuHeader.js.map +1 -1
- package/components/MenuHeader/MenuHeader.d.ts +6 -4
- package/components/MenuHeader/MenuHeader.md +2 -2
- package/components/MenuHeader/__docs__/MenuHeader.mdx +24 -0
- package/components/MenuItem/MenuItem/MenuItem.js +1 -2
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +22 -55
- package/components/MenuItem/MenuItem.md +34 -30
- package/components/MenuItem/__docs__/MenuItem.mdx +24 -0
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js +3 -2
- package/components/MenuSeparator/MenuSeparator/MenuSeparator.js.map +1 -1
- package/components/MenuSeparator/MenuSeparator.d.ts +2 -2
- package/components/MenuSeparator/MenuSeparator.md +1 -1
- package/components/MenuSeparator/__docs__/MenuSeparator.mdx +24 -0
- package/components/MiniModal/MiniModal/MiniModal.js +7 -0
- package/components/MiniModal/MiniModal/MiniModal.js.map +1 -1
- package/components/MiniModal/MiniModal.d.ts +6 -0
- package/components/MiniModal/MiniModal.md +1 -3
- package/components/MiniModal/MiniModalFooter/MiniModalFooter.js.map +1 -1
- package/components/MiniModal/MiniModalFooter.d.ts +2 -7
- package/components/MiniModal/MiniModalHeader/MiniModalHeader.js.map +1 -1
- package/components/MiniModal/MiniModalHeader.d.ts +2 -5
- package/components/MiniModal/__docs__/MiniModal.mdx +28 -0
- package/components/MiniModal/__docs__/MiniModalBody.mdx +17 -0
- package/components/MiniModal/__docs__/MiniModalFooter.mdx +17 -0
- package/components/MiniModal/__docs__/MiniModalHeader.mdx +18 -0
- package/components/MiniModal/__docs__/MiniModalIndent.mdx +11 -0
- package/components/MiniModal/getMiniModalTheme.d.ts +1 -1
- package/components/Modal/Modal/Modal.js +4 -9
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +12 -33
- package/components/Modal/Modal.md +3 -1
- package/components/Modal/Modal.styles/Modal.styles.js +40 -31
- package/components/Modal/Modal.styles/Modal.styles.js.map +1 -1
- package/components/Modal/Modal.styles.d.ts +4 -1
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -4
- package/components/Modal/ModalClose/ModalClose.js +3 -1
- package/components/Modal/ModalClose/ModalClose.js.map +1 -1
- package/components/Modal/ModalContext/ModalContext.js.map +1 -1
- package/components/Modal/ModalContext.d.ts +2 -0
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +5 -15
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -1
- package/components/Modal/ModalSeparator/ModalSeparator.js.map +1 -1
- package/components/Modal/ModalSeparator.d.ts +1 -0
- package/components/Modal/__creevey__/Modal.creevey.mts +15 -1
- package/components/Modal/__docs__/Modal.mdx +28 -0
- package/components/Modal/__docs__/ModalBody.mdx +15 -0
- package/components/Modal/__docs__/ModalFooter.mdx +15 -0
- package/components/Modal/__docs__/ModalHeader.mdx +15 -0
- package/components/Modal/__docs__/ModalSeparator.mdx +15 -0
- package/components/Modal/locale/types/types.js +0 -1
- package/components/Paging/Paging/Paging.js +4 -0
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +20 -15
- package/components/Paging/Paging.md +3 -2
- package/components/Paging/PagingDefaultComponent/PagingDefaultComponent.js.map +1 -1
- package/components/Paging/PagingDefaultComponent.d.ts +2 -0
- package/components/Paging/__docs__/Paging.mdx +28 -0
- package/components/Paging/locale/types/types.js +0 -1
- package/components/PasswordInput/PasswordInput/PasswordInput.js +32 -10
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +10 -3
- package/components/PasswordInput/PasswordInput.md +3 -2
- package/components/PasswordInput/__docs__/PasswordInput.mdx +28 -0
- package/components/PasswordInput/locale/types/types.js +0 -1
- package/components/Radio/Radio/Radio.js +1 -1
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +13 -28
- package/components/Radio/Radio.md +3 -2
- package/components/Radio/__docs__/Radio.mdx +28 -0
- package/components/RadioGroup/RadioGroup/RadioGroup.js +4 -5
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +28 -54
- package/components/RadioGroup/RadioGroup.md +1 -0
- package/components/RadioGroup/__docs__/RadioGroup.mdx +28 -0
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js +1 -2
- package/components/ResponsiveLayout/ResponsiveLayout/ResponsiveLayout.js.map +1 -1
- package/components/ResponsiveLayout/ResponsiveLayout.d.ts +4 -1
- package/components/ResponsiveLayout/ResponsiveLayout.md +4 -3
- package/components/ResponsiveLayout/__docs__/ResponsiveLayout.mdx +97 -0
- package/components/ResponsiveLayout/types/types.js +0 -1
- package/components/ScrollContainer/ScrollBar/ScrollBar.js.map +1 -1
- package/components/ScrollContainer/ScrollBar.d.ts +7 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +4 -0
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +23 -29
- package/components/ScrollContainer/ScrollContainer.md +5 -3
- package/components/ScrollContainer/__docs__/ScrollContainer.mdx +24 -0
- package/components/Select/Item/Item.js.map +1 -1
- package/components/Select/Item.d.ts +2 -0
- package/components/Select/Select/Select.js +11 -0
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +54 -38
- package/components/Select/Select.md +7 -6
- package/components/Select/__docs__/Select.mdx +28 -0
- package/components/Select/locale/types/types.js +0 -1
- package/components/SidePage/SidePage/SidePage.js +28 -16
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +17 -38
- package/components/SidePage/SidePage.md +2 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js +48 -26
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +8 -1
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js +6 -2
- package/components/SidePage/SidePageCloseButton/SidePageCloseButton.js.map +1 -1
- package/components/SidePage/SidePageCloseButton.d.ts +6 -1
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +4 -9
- package/components/SidePage/SidePageHeader/SidePageHeader.js +13 -5
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +2 -1
- package/components/SidePage/__creevey__/SidePage.creevey.mts +103 -1
- package/components/SidePage/__docs__/SidePage.mdx +28 -0
- package/components/SidePage/__docs__/SidePageBody.mdx +15 -0
- package/components/SidePage/__docs__/SidePageContainer.mdx +15 -0
- package/components/SidePage/__docs__/SidePageFooter.mdx +15 -0
- package/components/SidePage/__docs__/SidePageHeader.mdx +15 -0
- package/components/SidePage/locale/types/types.js +0 -1
- package/components/SingleToast/SingleToast/SingleToast.js +5 -1
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/SingleToast/SingleToast.d.ts +5 -1
- package/components/SingleToast/SingleToast.md +2 -1
- package/components/SingleToast/__docs__/SingleToast.mdx +28 -0
- package/components/Spinner/Spinner/Spinner.js +6 -2
- package/components/Spinner/Spinner/Spinner.js.map +1 -1
- package/components/Spinner/Spinner.d.ts +15 -20
- package/components/Spinner/Spinner.md +2 -1
- package/components/Spinner/__docs__/Spinner.mdx +28 -0
- package/components/Sticky/Sticky/Sticky.js +5 -0
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Sticky/Sticky.d.ts +9 -4
- package/components/Sticky/Sticky.md +1 -0
- package/components/Sticky/__docs__/Sticky.mdx +24 -0
- package/components/Switcher/Switcher/Switcher.js +16 -6
- package/components/Switcher/Switcher/Switcher.js.map +1 -1
- package/components/Switcher/Switcher.d.ts +18 -7
- package/components/Switcher/Switcher.md +6 -2
- package/components/Switcher/Switcher.styles/Switcher.styles.js +4 -1
- package/components/Switcher/Switcher.styles/Switcher.styles.js.map +1 -1
- package/components/Switcher/Switcher.styles.d.ts +1 -0
- package/components/Switcher/__docs__/Switcher.mdx +28 -0
- package/components/Tabs/Tab/Tab.js +1 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +12 -31
- package/components/Tabs/Tab.md +2 -0
- package/components/Tabs/Tabs/Tabs.js +6 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +14 -25
- package/components/Tabs/Tabs.md +3 -2
- package/components/Tabs/__docs__/Tab.mdx +28 -0
- package/components/Tabs/__docs__/Tabs.mdx +28 -0
- package/components/Textarea/Textarea/Textarea.js +3 -4
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +26 -52
- package/components/Textarea/Textarea.md +4 -2
- package/components/Textarea/__docs__/Textarea.mdx +28 -0
- package/components/Toast/Toast/Toast.js +17 -12
- package/components/Toast/Toast/Toast.js.map +1 -1
- package/components/Toast/Toast.d.ts +12 -9
- package/components/Toast/Toast.md +4 -4
- package/components/Toast/ToastStatic/ToastStatic.js +5 -5
- package/components/Toast/ToastStatic/ToastStatic.js.map +1 -1
- package/components/Toast/ToastStatic.d.ts +2 -2
- package/components/Toast/ToastView/ToastView.js +2 -1
- package/components/Toast/ToastView/ToastView.js.map +1 -1
- package/components/Toast/ToastView.d.ts +3 -6
- package/components/Toast/ToastView.styles/ToastView.styles.js +2 -2
- package/components/Toast/ToastView.styles/ToastView.styles.js.map +1 -1
- package/components/Toast/__creevey__/Toast.creevey.mts +23 -0
- package/components/Toast/__docs__/Toast.mdx +28 -0
- package/components/Toast/locale/types/types.js +0 -1
- package/components/Toggle/Toggle/Toggle.js +4 -1
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +25 -48
- package/components/Toggle/Toggle.md +9 -9
- package/components/Toggle/__docs__/Toggle.mdx +28 -0
- package/components/Token/Token/Token.js +6 -0
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +17 -9
- package/components/Token/Token.md +86 -3
- package/components/Token/TokenView/TokenView.js.map +1 -1
- package/components/Token/TokenView.d.ts +3 -0
- package/components/Token/__docs__/Token.mdx +28 -0
- package/components/Token/locale/types/types.js +0 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TextWidthHelper.d.ts +3 -0
- package/components/TokenInput/TokenInput/TokenInput.js +9 -3
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +54 -97
- package/components/TokenInput/TokenInput.md +12 -10
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/TokenInputMenu.d.ts +5 -5
- package/components/TokenInput/__docs__/TokenInput.mdx +28 -0
- package/components/TokenInput/locale/types/types.js +0 -1
- package/components/Tooltip/Tooltip/Tooltip.js +9 -0
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +28 -68
- package/components/Tooltip/Tooltip.md +5 -0
- package/components/Tooltip/__docs__/Tooltip.mdx +28 -0
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js +1 -1
- package/components/TooltipMenu/TooltipMenu/TooltipMenu.js.map +1 -1
- package/components/TooltipMenu/TooltipMenu.d.ts +13 -28
- package/components/TooltipMenu/TooltipMenu.md +13 -10
- package/components/TooltipMenu/__docs__/TooltipMenu.mdx +24 -0
- package/index.d.ts +1 -2
- package/index.js +1 -2
- package/index.js.map +1 -1
- package/internal/CommonWrapper/index/index.js +1 -2
- package/internal/CommonWrapper/index/index.js.map +1 -1
- package/internal/CommonWrapper/types/types.js +0 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +10 -2
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +4 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer.d.ts +1 -0
- package/internal/CustomComboBox/CustomComboBoxTypes/CustomComboBoxTypes.js +3 -3
- package/internal/CustomComboBox/CustomComboBoxTypes/CustomComboBoxTypes.js.map +1 -1
- package/internal/CustomComboBox/locale/types/types.js +0 -1
- package/internal/DateSelect/locale/types/types.js +0 -1
- package/internal/FileUploaderControl/fileUtils/fileUtils.js +3 -3
- package/internal/FileUploaderControl/fileUtils/fileUtils.js.map +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +12 -6
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/Popup/types/types.js +0 -1
- package/internal/RenderContainer/RenderContainerTypes/RenderContainerTypes.js +0 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js +1 -1
- package/internal/ThemePlayground/Playground.styles/Playground.styles.js.map +1 -1
- package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.d.mts +1 -0
- package/internal/ThemePlayground/__creevey__/Theme5_0.creevey.mts +36 -0
- package/internal/ThemePlayground/__creevey__/Theme5_0.stories.d.ts +4 -0
- package/internal/ThemePlayground/constants/constants.js +3 -3
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector/VariablesCollector.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/ZIndex/index/index.js +1 -2
- package/internal/ZIndex/index/index.js.map +1 -1
- package/internal/themes/BasicLightTheme/BasicLightTheme.js +5 -3338
- package/internal/themes/BasicLightTheme/BasicLightTheme.js.map +1 -1
- package/internal/themes/BasicLightTheme.d.ts +5 -1198
- package/internal/themes/BasicTheme/BasicTheme.js +3360 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -0
- package/internal/themes/BasicTheme/package.json +6 -0
- package/internal/themes/BasicTheme.d.ts +1217 -0
- package/internal/themes/DarkTheme5_0/DarkTheme5_0.js +409 -0
- package/internal/themes/DarkTheme5_0/DarkTheme5_0.js.map +1 -0
- package/internal/themes/DarkTheme5_0/package.json +6 -0
- package/internal/themes/DarkTheme5_0.d.ts +1 -0
- package/internal/themes/DarkTheme5_1/DarkTheme5_1.js +52 -0
- package/internal/themes/DarkTheme5_1/DarkTheme5_1.js.map +1 -0
- package/internal/themes/DarkTheme5_1/package.json +6 -0
- package/internal/themes/DarkTheme5_1.d.ts +1 -0
- package/internal/themes/LightTheme5_0/LightTheme5_0.js +14 -0
- package/internal/themes/LightTheme5_0/LightTheme5_0.js.map +1 -0
- package/internal/themes/LightTheme5_0/package.json +6 -0
- package/internal/themes/LightTheme5_0.d.ts +1 -0
- package/internal/themes/LightTheme5_1/LightTheme5_1.js +52 -0
- package/internal/themes/LightTheme5_1/LightTheme5_1.js.map +1 -0
- package/internal/themes/LightTheme5_1/package.json +6 -0
- package/internal/themes/LightTheme5_1.d.ts +1 -0
- package/lib/ModalStack/ModalStack.js +8 -8
- package/lib/ModalStack/ModalStack.js.map +1 -1
- package/lib/ModalStack.d.ts +1 -0
- package/lib/date/types/types.js +18 -18
- package/lib/date/types/types.js.map +1 -1
- package/lib/events/MouseDrag/MouseDrag.js +3 -3
- package/lib/events/MouseDrag/MouseDrag.js.map +1 -1
- package/lib/events/keyboard/KeyboardEventCodes/KeyboardEventCodes.js +3 -3
- package/lib/events/keyboard/KeyboardEventCodes/KeyboardEventCodes.js.map +1 -1
- package/lib/locale/types/types.js +3 -3
- package/lib/locale/types/types.js.map +1 -1
- package/lib/theming/Theme/Theme.js +2 -1
- package/lib/theming/Theme/Theme.js.map +1 -1
- package/lib/theming/Theme.d.ts +4 -3
- package/lib/theming/ThemeContext/ThemeContext.js +2 -2
- package/lib/theming/ThemeContext/ThemeContext.js.map +1 -1
- package/lib/theming/ThemeContext.d.ts +1 -1
- package/lib/theming/ThemeFactory/ThemeFactory.js +21 -7
- package/lib/theming/ThemeFactory/ThemeFactory.js.map +1 -1
- package/lib/theming/ThemeFactory.d.ts +9 -0
- package/lib/theming/ThemeHelpers/ThemeHelpers.js +85 -18
- package/lib/theming/ThemeHelpers/ThemeHelpers.js.map +1 -1
- package/lib/theming/ThemeHelpers.d.ts +55 -8
- package/lib/theming/ThemeVersions/ThemeVersions.js +50 -0
- package/lib/theming/ThemeVersions/ThemeVersions.js.map +1 -0
- package/lib/theming/ThemeVersions/package.json +6 -0
- package/lib/theming/ThemeVersions.d.ts +25 -0
- package/lib/theming/themes/DarkTheme/DarkTheme.js +5 -4
- package/lib/theming/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/lib/theming/themes/DarkTheme.d.ts +3 -1
- package/lib/theming/themes/LightTheme/LightTheme.js +5 -4
- package/lib/theming/themes/LightTheme/LightTheme.js.map +1 -1
- package/lib/theming/themes/LightTheme.d.ts +3 -1
- package/lib/theming/themes/LightThemeMobile.d.ts +1 -1
- package/lib/theming/useTheme.d.ts +1 -1
- package/lib/types/button-link/button-link.js +0 -1
- package/lib/types/polymorphic-component/polymorphic-component.js +0 -1
- package/lib/types/props/props.js +0 -1
- package/package.json +9 -5
- package/cjs/internal/themes/BasicDarkTheme.d.ts +0 -289
- package/cjs/internal/themes/BasicDarkTheme.js +0 -597
- package/cjs/internal/themes/BasicDarkTheme.js.map +0 -1
- package/cjs/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
- package/cjs/lib/theming/themes/DarkTheme2022_0.js +0 -5
- package/cjs/lib/theming/themes/DarkTheme2022_0.js.map +0 -1
- package/cjs/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
- package/cjs/lib/theming/themes/LightTheme2022_0.js +0 -5
- package/cjs/lib/theming/themes/LightTheme2022_0.js.map +0 -1
- package/internal/themes/BasicDarkTheme/BasicDarkTheme.js +0 -641
- package/internal/themes/BasicDarkTheme/BasicDarkTheme.js.map +0 -1
- package/internal/themes/BasicDarkTheme/package.json +0 -6
- package/internal/themes/BasicDarkTheme.d.ts +0 -289
- package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js +0 -3
- package/lib/theming/themes/DarkTheme2022_0/DarkTheme2022_0.js.map +0 -1
- package/lib/theming/themes/DarkTheme2022_0/package.json +0 -6
- package/lib/theming/themes/DarkTheme2022_0.d.ts +0 -1
- package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js +0 -3
- package/lib/theming/themes/LightTheme2022_0/LightTheme2022_0.js.map +0 -1
- package/lib/theming/themes/LightTheme2022_0/package.json +0 -6
- package/lib/theming/themes/LightTheme2022_0.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","memoizedTokens","Map","hasValueInItems","items","value","includes","some","isEqual","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","getProps","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","valueToString","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","handleCopy","isCursorVisible","_this$getProps","selectedItems","delimiters","tokens","map","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps2","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps3","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","props","getItems","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$input3","_this$input4","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps4","isKeyDelete","indexOfActiveToken","itemsNew","_this$input6","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps5","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps6","_this$state2","editedItem","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","showAddItemHint","_this$locale","addButtonComment","addButtonTitle","MenuItem","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps7","step","availableIndex","_inheritsLoose2","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","createPropsGetter","defaultProps","propsWithOldDelimiters","_extends2","componentDidMount","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","ThemeContext","Consumer","theme","renderMain","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps8","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","cx","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","TokenView","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onKeyDown","onPaste","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElement","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","isInputValueChanged","_this$state4","_this$getProps9","React","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler"],"sources":["TokenInput.tsx"],"sourcesContent":["import React, {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Menu } from '../../internal/Menu';\nimport { Token, TokenProps, TokenSize } from '../Token';\nimport { MenuItemState, MenuItem } from '../MenuItem';\nimport { AnyObject, emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\n\nimport { TokenInputLocale, TokenInputLocaleHelper } from './locale';\nimport { styles } from './TokenInput.styles';\nimport { TokenInputAction, tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /**\n * Выбранные токены, которые будут отображаться в поле ввода\n */\n selectedItems?: T[];\n /**\n * Вызывается при добавлении нового токена\n */\n onValueChange?: (items: T[]) => void;\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n autoFocus?: boolean;\n /** Размер */\n size?: TokenSize;\n /**\n * Тип инпута. Возможные значения:\n *\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые)\n *\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать)\n *\n * `TokenInputType.Combined` (можно и выбирать, и добавлять)\n */\n type?: TokenInputType;\n /**\n * Ширина выпадающего меню может быть указана как 'auto'\n * а также в пикселях, процентах (от ширины инпута)\n * или других конкретных единицах\n *\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto'\n * (по ширине текста)\n */\n menuWidth?: React.CSSProperties['width'];\n /**\n * Определяет выравнивание меню. Принимает значения `left` и `cursor`\n */\n menuAlign?: TokenInputMenuAlign;\n /**\n * Функция поиска элементов, должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются строки.\n *\n * Элементы могут быть любого типа. В этом случае необходимо определить\n * свойства `renderItem`, `valueToString`\n */\n getItems?: (query: string) => Promise<T[]>;\n /**\n * Скрывает меню при пустом вводе\n */\n hideMenuIfEmptyInputValue?: boolean;\n /**\n * Позволяет настроить отображение элемента списка\n */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n /**\n * Позволяет настроить отображение выбранного значения\n */\n renderValue?: (item: T) => React.ReactNode;\n /**\n * Функция должна возвращать строковое представление токена\n * @default item => item\n */\n valueToString?: (item: T) => string;\n /**\n * Функция отображающая сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`.\n */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n /**\n * Общее количество элементов.\n * Необходим для работы `renderTotalCount`\n */\n totalCount?: number;\n /**\n * Отображает заданное содержимое, если ничего не найдено. Работает если не рендерится `AddButton`\n */\n renderNotFound?: () => React.ReactNode;\n /**\n * Преобразует значение в элемент списка\n */\n valueToItem?: (item: string) => T;\n /**\n * Определяет уникальный ключ по элементу\n */\n toKey?: (item: T) => string | number | undefined;\n placeholder?: string;\n /**\n * Символы, которые разделяют введённый текст на токены\n */\n delimiters?: string[];\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n /**\n * Позволяет настроить отображение токена, предоставляя возможность кастомизации внешнего вида и поведения токена\n */\n renderToken?: (item: T, props: Partial<TokenProps>) => ReactNode;\n /**\n * Вызывается при изменении текста в поле ввода,\n */\n onInputValueChange?: (value: string) => void;\n /**\n * Функция отрисовки кнопки добавления в выпадающем списке.\n * Работает только когда тип инпута = `TokenInputType.Combined`\n */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n /**\n * Функция для обработки ситуации, когда была введена\n * строка в инпут и был потерян фокус с компонента\n *\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один\n * элемент и результат `valueToString` с этим элементом будет\n * совпадать со значение в текстовом поле, то\n * сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение,\n * неравное `undefined`, с которым будет вызван `onValueChange`.\n * Если возвращаемое значение будет равно `null`,\n * то сработает очистка текущего значения инпута,\n * а в режиме редактирования токен будет удален\n */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n | 'size'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n size: 'small',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private theme!: Theme;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\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 getLabelSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (inputValue !== '' || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.getProps().size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper\n ref={this.textHelperRef}\n text={inputValue}\n theme={this.theme}\n size={this.getProps().size}\n />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElement={menuAlign === 'cursor' ? this.input : this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.getProps().size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.props.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private hasValueInItems = (items: T[], value: T) => {\n if (typeof value === 'string') {\n return items.includes(value);\n }\n // todo: как то не очень\n return items.some((item) => isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.state.inputValue !== '') {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.state.inputValue !== '' || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.state.inputValue !== '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n switch (true) {\n case isKeyEnter(e):\n if (this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput();\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput();\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.state.inputValue !== '') {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const selectedItems = this.getProps().selectedItems;\n const { editingTokenIndex, inputValue, reservedInputValue } = this.state;\n const editedItem = this.getProps().valueToItem(inputValue);\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(inputValue !== '' ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n if (onUnexpectedInput) {\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput(inputValue);\n\n if (returnedValue === undefined) {\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.state.inputValue !== '' && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T) => {\n const { renderToken = defaultRenderToken, disabled, size } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(item as T & AnyObject, {\n size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","memoizedTokens","Map","hasValueInItems","items","value","includes","some","isEqual","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","getProps","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","valueToString","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","handleCopy","isCursorVisible","_this$getProps","selectedItems","delimiters","tokens","map","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps2","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps3","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","props","getItems","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$input3","_this$input4","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps4","isKeyDelete","indexOfActiveToken","itemsNew","_this$input6","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps5","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps6","_this$state2","editedItem","splice","onUnexpectedInput","returnedValue","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","showAddItemHint","_this$locale","addButtonComment","addButtonTitle","MenuItem","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps7","step","availableIndex","_inheritsLoose2","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","createPropsGetter","defaultProps","propsWithOldDelimiters","_extends2","componentDidMount","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","ThemeContext","Consumer","theme","renderMain","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps8","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","cx","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","TokenView","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onKeyDown","onPaste","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElement","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","isInputValueChanged","_this$state4","_this$getProps9","React","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler"],"sources":["TokenInput.tsx"],"sourcesContent":["import React, {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Menu } from '../../internal/Menu';\nimport { Token, TokenProps, TokenSize } from '../Token';\nimport { MenuItemState, MenuItem } from '../MenuItem';\nimport { AnyObject, emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\n\nimport { TokenInputLocale, TokenInputLocaleHelper } from './locale';\nimport { styles } from './TokenInput.styles';\nimport { TokenInputAction, tokenInputReducer } from './TokenInputReducer';\nimport { TokenInputMenu } from './TokenInputMenu';\nimport { TextWidthHelper } from './TextWidthHelper';\n\nconst TEMP_FAKE_FLAG = 'TEMP_FAKE_FLAG';\n\nexport enum TokenInputType {\n WithReference,\n WithoutReference,\n Combined,\n}\n\nexport type TokenInputMenuAlign = 'left' | 'cursor';\n\nexport interface TokenInputProps<T>\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'> {\n /** Задает выбранные токены, которые будут отображаться в поле ввода. */\n selectedItems?: T[];\n\n /** Задает функцию, которая вызывается при добавлении нового токена. */\n onValueChange?: (items: T[]) => void;\n\n /** Задает HTML-событие `onmouseenter`.\n * @ignore */\n onMouseEnter?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onmouseleave`.\n * @ignore */\n onMouseLeave?: MouseEventHandler<HTMLDivElement>;\n\n /** Задает HTML-событие `onfocus`.\n * @ignore */\n onFocus?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Задает HTML-событие `onblur`.\n * @ignore */\n onBlur?: FocusEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (item: string) => T;\n\n /** Определяет уникальный ключ по элементу. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значение в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n | 'size'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\nexport class TokenInput<T = string> extends React.PureComponent<TokenInputProps<T>, TokenInputState<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInput';\n public static displayName = 'TokenInput';\n\n public static defaultProps: DefaultProps<any> = {\n selectedItems: [],\n // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.\n delimiters: [',', TEMP_FAKE_FLAG],\n renderItem: identity,\n renderValue: identity,\n valueToString: identity,\n valueToItem: (item: string) => item,\n toKey: defaultToKey,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n size: 'small',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private theme!: Theme;\n private input: HTMLTextAreaElement | null = null;\n private tokensInputMenu: TokenInputMenu<T> | null = null;\n private textHelper: TextWidthHelper | null = null;\n private wrapper: HTMLLabelElement | null = null;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\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 getLabelSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (inputValue !== '' || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.getProps().size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper\n ref={this.textHelperRef}\n text={inputValue}\n theme={this.theme}\n size={this.getProps().size}\n />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElement={menuAlign === 'cursor' ? this.input : this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.getProps().size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.props.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private hasValueInItems = (items: T[], value: T) => {\n if (typeof value === 'string') {\n return items.includes(value);\n }\n // todo: как то не очень\n return items.some((item) => isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.state.inputValue !== '') {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.state.inputValue !== '' || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.state.inputValue !== '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, () => {\n LayoutEvents.emit();\n this.highlightMenuItem();\n });\n }\n const selectItemIndex = autocompleteItemsUnique.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n switch (true) {\n case isKeyEnter(e):\n if (this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput();\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput();\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.state.inputValue !== '') {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const selectedItems = this.getProps().selectedItems;\n const { editingTokenIndex, inputValue, reservedInputValue } = this.state;\n const editedItem = this.getProps().valueToItem(inputValue);\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(inputValue !== '' ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n if (onUnexpectedInput) {\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput(inputValue);\n\n if (returnedValue === undefined) {\n return;\n }\n\n if (returnedValue === null) {\n this.dispatch({ type: 'CLEAR_INPUT' }, () => {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n });\n\n return;\n }\n\n if (returnedValue) {\n this.selectItem(returnedValue);\n }\n }\n };\n\n private handleChangeInputValue = (event: ChangeEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n let query = event.target.value.trimLeft();\n\n if (query.endsWith(' ')) {\n query = query.trimRight() + ' ';\n }\n if (this.state.inputValue !== '' && query === '') {\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: query }, () => {\n this.tryGetItems(query);\n });\n if (this.props.onInputValueChange) {\n this.props.onInputValueChange(query);\n }\n };\n\n private highlightMenuItem = () => {\n if (\n this.menuRef &&\n this.state.autocompleteItems &&\n this.state.autocompleteItems.length > 0 &&\n this.type !== TokenInputType.Combined\n ) {\n this.menuRef.highlightItem(0);\n }\n };\n\n private renderTokensStart = () => {\n const { editingTokenIndex } = this.state;\n const selectedItems = this.getProps().selectedItems;\n const delimiter = editingTokenIndex >= 0 ? editingTokenIndex : selectedItems.length;\n return selectedItems.slice(0, delimiter).map(this.renderToken);\n };\n\n private renderTokensEnd = () => {\n if (this.state.editingTokenIndex >= 0) {\n return this.getProps()\n .selectedItems.slice(this.state.editingTokenIndex + 1)\n .map(this.renderToken);\n }\n };\n\n private renderToken = (item: T) => {\n const { renderToken = defaultRenderToken, disabled, size } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(item as T & AnyObject, {\n size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
### Базовый пример
|
|
1
2
|
```jsx harmony
|
|
2
3
|
import { Token } from '@skbkontur/react-ui';
|
|
3
4
|
import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
|
|
@@ -59,7 +60,7 @@ const tokenColors = {
|
|
|
59
60
|
</div>;
|
|
60
61
|
```
|
|
61
62
|
|
|
62
|
-
|
|
63
|
+
### Размер
|
|
63
64
|
|
|
64
65
|
```jsx harmony
|
|
65
66
|
import { Token } from '@skbkontur/react-ui';
|
|
@@ -98,7 +99,7 @@ const getItems = q =>
|
|
|
98
99
|
</div>;
|
|
99
100
|
```
|
|
100
101
|
|
|
101
|
-
Заблокированный TokenInput с кастомными Token
|
|
102
|
+
### Заблокированный TokenInput с кастомными Token
|
|
102
103
|
|
|
103
104
|
```jsx harmony
|
|
104
105
|
import { Token } from '@skbkontur/react-ui';
|
|
@@ -124,15 +125,15 @@ async function getItems(query) {
|
|
|
124
125
|
/>
|
|
125
126
|
```
|
|
126
127
|
|
|
127
|
-
Ограничение количества токенов в выпадающем списке
|
|
128
|
+
### Ограничение количества токенов в выпадающем списке
|
|
128
129
|
|
|
129
130
|
```jsx harmony
|
|
130
|
-
import { Token
|
|
131
|
+
import { Token } from '@skbkontur/react-ui';
|
|
131
132
|
import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
|
|
132
|
-
|
|
133
|
+
|
|
133
134
|
|
|
134
135
|
const delay = time => args => new Promise(resolve => setTimeout(resolve, time, args));
|
|
135
|
-
const cities = require('../ComboBox/__mocks__
|
|
136
|
+
const { cities } = require('../ComboBox/__mocks__/cities');
|
|
136
137
|
|
|
137
138
|
const maxItems = 5;
|
|
138
139
|
|
|
@@ -168,7 +169,7 @@ const renderTotalCount = (foundCount, totalCount) => (
|
|
|
168
169
|
</div>
|
|
169
170
|
```
|
|
170
171
|
|
|
171
|
-
|
|
172
|
+
### Кастомный тип элементов меню
|
|
172
173
|
```jsx harmony
|
|
173
174
|
import { Token } from '@skbkontur/react-ui';
|
|
174
175
|
import { TokenInputType } from '@skbkontur/react-ui/components/TokenInput';
|
|
@@ -215,7 +216,7 @@ const getModelItems = async (query) => {
|
|
|
215
216
|
</div>;
|
|
216
217
|
```
|
|
217
218
|
|
|
218
|
-
|
|
219
|
+
### Дебаунс функции getItems
|
|
219
220
|
|
|
220
221
|
Функция debounce из lodash некорректно работает с async/promise, поэтому лучше использовать кастомную функцию, как в примере ниже.
|
|
221
222
|
|
|
@@ -260,7 +261,8 @@ const getItems = async (query) => {
|
|
|
260
261
|
placeholder="Начните вводить название"
|
|
261
262
|
/>
|
|
262
263
|
```
|
|
263
|
-
|
|
264
|
+
|
|
265
|
+
### Типизированная версия функции
|
|
264
266
|
|
|
265
267
|
```typescript static
|
|
266
268
|
function debounceAsync<T, Callback extends (...args: any[]) => Promise<T>>(
|
|
@@ -286,7 +288,7 @@ function debounceAsync<T, Callback extends (...args: any[]) => Promise<T>>(
|
|
|
286
288
|
}
|
|
287
289
|
```
|
|
288
290
|
|
|
289
|
-
|
|
291
|
+
### Локали по умолчанию
|
|
290
292
|
|
|
291
293
|
```typescript static
|
|
292
294
|
interface TokenInputLocale {
|
|
@@ -6,14 +6,14 @@ import { TokenSize } from '../Token';
|
|
|
6
6
|
import { TokenInputMenuAlign, TokenInputProps } from './TokenInput';
|
|
7
7
|
export interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {
|
|
8
8
|
anchorElement: PopupProps['anchorElement'];
|
|
9
|
+
/** Задает шинину выпадающего меню. */
|
|
9
10
|
menuWidth: TokenInputProps<string>['menuWidth'];
|
|
11
|
+
/** Задает выравнивание выпадающего меню. */
|
|
10
12
|
menuAlign: TokenInputMenuAlign;
|
|
11
|
-
/**
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* Это может пригодиться при реализации a11y. Например, для того, чтобы связать `aria-controls` с выпадающим меню.
|
|
15
|
-
*/
|
|
13
|
+
/** Задает id выпадающему меню.
|
|
14
|
+
Полезно при реализации a11y. Например, помогает связать aria-controls с выпадающим меню. */
|
|
16
15
|
popupMenuId?: HTMLProps['id'];
|
|
16
|
+
/** Задает размер контрола. */
|
|
17
17
|
size?: TokenSize;
|
|
18
18
|
}
|
|
19
19
|
export declare class TokenInputMenu<T = string> extends React.Component<TokenInputMenuProps<T>> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeFactory","_Popup","_CustomComboBox","_ThemeContext","_TokenInput","TokenInputMenu","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","menu","getMenuRef","getPopupMargin","paddingY","parseInt","theme","tokenInputPaddingYSmall","outlineWidth","controlOutlineWidth","marginY","tokenMarginYSmall","menuRef","node","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","popupBackground","tokenInputMenuPopupBg","renderMain","getPopupMarginSize","t","props","size","tokenInputPopupMarginLarge","tokenInputPopupMarginMedium","tokenInputPopupMarginSmall","_this$props","loading","maxMenuHeight","renderTotalCount","totalCount","opened","items","renderNotFound","renderItem","onValueChange","renderAddButton","anchorElement","menuWidth","menuAlign","Popup","id","popupMenuId","TokenInputDataTids","tokenInputMenu","positions","popupOffset","tokenInputPopupOffset","margin","hasShadow","width","withoutMobile","ComboBoxMenu","hasMargin","refMenu","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["TokenInputMenu.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HTMLProps } from '../../typings/html';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup, PopupProps } from '../../internal/Popup';\nimport { ComboBoxMenu, ComboBoxMenuProps } from '../../internal/CustomComboBox';\nimport { Menu } from '../../internal/Menu';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { TokenSize } from '../Token';\n\nimport { TokenInputDataTids, TokenInputMenuAlign, TokenInputProps } from './TokenInput';\n\nexport interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {\n anchorElement: PopupProps['anchorElement'];\n menuWidth: TokenInputProps<string>['menuWidth'];\n menuAlign: TokenInputMenuAlign;\n
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ThemeFactory","_Popup","_CustomComboBox","_ThemeContext","_TokenInput","TokenInputMenu","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","menu","getMenuRef","getPopupMargin","paddingY","parseInt","theme","tokenInputPaddingYSmall","outlineWidth","controlOutlineWidth","marginY","tokenMarginYSmall","menuRef","node","_inheritsLoose2","default","_proto","prototype","render","_this2","createElement","ThemeContext","Consumer","Provider","value","ThemeFactory","create","popupMargin","popupBackground","tokenInputMenuPopupBg","renderMain","getPopupMarginSize","t","props","size","tokenInputPopupMarginLarge","tokenInputPopupMarginMedium","tokenInputPopupMarginSmall","_this$props","loading","maxMenuHeight","renderTotalCount","totalCount","opened","items","renderNotFound","renderItem","onValueChange","renderAddButton","anchorElement","menuWidth","menuAlign","Popup","id","popupMenuId","TokenInputDataTids","tokenInputMenu","positions","popupOffset","tokenInputPopupOffset","margin","hasShadow","width","withoutMobile","ComboBoxMenu","hasMargin","refMenu","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["TokenInputMenu.tsx"],"sourcesContent":["import React from 'react';\n\nimport { HTMLProps } from '../../typings/html';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { Popup, PopupProps } from '../../internal/Popup';\nimport { ComboBoxMenu, ComboBoxMenuProps } from '../../internal/CustomComboBox';\nimport { Menu } from '../../internal/Menu';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { TokenSize } from '../Token';\n\nimport { TokenInputDataTids, TokenInputMenuAlign, TokenInputProps } from './TokenInput';\n\nexport interface TokenInputMenuProps<T> extends ComboBoxMenuProps<T> {\n anchorElement: PopupProps['anchorElement'];\n /** Задает шинину выпадающего меню. */\n menuWidth: TokenInputProps<string>['menuWidth'];\n /** Задает выравнивание выпадающего меню. */\n menuAlign: TokenInputMenuAlign;\n /** Задает id выпадающему меню.\n Полезно при реализации a11y. Например, помогает связать aria-controls с выпадающим меню. */\n popupMenuId?: HTMLProps['id'];\n /** Задает размер контрола. */\n size?: TokenSize;\n}\n\nexport class TokenInputMenu<T = string> extends React.Component<TokenInputMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'TokenInputMenu';\n public static displayName = 'TokenInputMenu';\n\n private theme!: Theme;\n\n private menu: Menu | null = null;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <ThemeContext.Provider\n value={ThemeFactory.create(\n {\n popupMargin: this.getPopupMargin() + 'px',\n popupBackground: this.theme.tokenInputMenuPopupBg,\n },\n theme,\n )}\n >\n {this.renderMain()}\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public getMenuRef = (): any | null => this.menu;\n\n private getPopupMarginSize(t: Theme) {\n switch (this.props.size) {\n case 'large':\n return t.tokenInputPopupMarginLarge;\n case 'medium':\n return t.tokenInputPopupMarginMedium;\n case 'small':\n default:\n return t.tokenInputPopupMarginSmall;\n }\n }\n\n private renderMain() {\n const {\n loading,\n maxMenuHeight,\n renderTotalCount,\n totalCount,\n opened,\n items,\n renderNotFound,\n renderItem,\n onValueChange,\n renderAddButton,\n anchorElement,\n menuWidth,\n menuAlign,\n } = this.props;\n\n return (\n <Popup\n id={this.props.popupMenuId}\n data-tid={TokenInputDataTids.tokenInputMenu}\n opened={!!opened}\n positions={['bottom left', 'top left']}\n anchorElement={anchorElement}\n popupOffset={\n menuAlign === 'left'\n ? parseInt(this.theme.tokenInputPopupOffset)\n : 8 + parseInt(this.theme.tokenInputPopupOffset)\n }\n margin={menuAlign === 'left' ? 1 : parseInt(this.getPopupMarginSize(this.theme))}\n hasShadow\n width={menuAlign === 'cursor' ? 'auto' : menuWidth}\n withoutMobile\n >\n <ComboBoxMenu\n size={this.props.size}\n items={items}\n loading={loading}\n hasMargin={false}\n maxMenuHeight={maxMenuHeight}\n onValueChange={onValueChange}\n opened={opened}\n refMenu={this.menuRef}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n totalCount={totalCount}\n renderAddButton={renderAddButton}\n />\n </Popup>\n );\n }\n\n private getPopupMargin = (): number => {\n const paddingY = parseInt(this.theme.tokenInputPaddingYSmall, 10) || 0;\n const outlineWidth = parseInt(this.theme.controlOutlineWidth, 10) || 0;\n const marginY = parseInt(this.theme.tokenMarginYSmall, 10) || 0;\n\n return paddingY + outlineWidth + marginY;\n };\n\n private menuRef = (node: any) => (this.menu = node);\n}\n"],"mappings":"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","ignoreList":[]}
|