@skbkontur/react-ui 5.4.7-7ccf0.0 → 5.4.7-a27a4.0
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/Button/Button.d.ts +1 -0
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.d.ts +1 -1
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/cjs/components/DateInput/DateFragmentsView.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/cjs/components/DateRangePicker/DateRangePickerContext.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +4 -4
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js +3 -1
- package/cjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -1
- package/cjs/components/FileUploader/FileUploaderFile.js.map +1 -1
- package/cjs/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/cjs/components/GlobalLoader/GlobalLoaderView.js +49 -50
- package/cjs/components/GlobalLoader/GlobalLoaderView.js.map +1 -1
- package/cjs/components/Input/Input.d.ts +2 -2
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/cjs/components/Input/InputLayout/InputLayout.js +2 -1
- package/cjs/components/Input/InputLayout/InputLayout.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +6 -4
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/components/Kebab/Kebab.d.ts +1 -1
- package/cjs/components/Kebab/Kebab.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +1 -1
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +1 -1
- package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js +3 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +2 -2
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -1
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +4 -1
- package/cjs/components/Modal/Modal.js +8 -3
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +2 -2
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Paging/Paging.d.ts +2 -2
- package/cjs/components/Paging/Paging.js.map +1 -1
- package/cjs/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/ResponsiveLayout/decorator.d.ts +0 -3
- package/cjs/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/cjs/components/ScrollContainer/ScrollContainer.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +1 -1
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -2
- package/cjs/components/SidePage/SidePage.js +9 -3
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.d.ts +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.d.ts +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.d.ts +1 -1
- package/cjs/components/Sticky/Sticky.js +6 -2
- package/cjs/components/Sticky/Sticky.js.map +1 -1
- package/cjs/components/Tabs/Tabs.d.ts +1 -1
- package/cjs/components/Tabs/Tabs.js.map +1 -1
- package/cjs/components/Token/TokenView.d.ts +2 -1
- package/cjs/components/Token/TokenView.js +4 -4
- package/cjs/components/Token/TokenView.js.map +1 -1
- package/cjs/components/TokenInput/TextWidthHelper.js +3 -1
- package/cjs/components/TokenInput/TextWidthHelper.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +14 -7
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +4 -4
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/hooks/useDrop.js +1 -1
- package/cjs/hooks/useDrop.js.map +1 -1
- package/cjs/internal/CommonWrapper/CommonWrapper.js +3 -2
- package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js +84 -83
- package/cjs/internal/FileUploaderControl/FileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js +11 -12
- package/cjs/internal/FileUploaderControl/withFileUploaderControlProvider.js.map +1 -1
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +28 -23
- package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/cjs/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Menu/Menu.js +6 -2
- package/cjs/internal/Menu/Menu.js.map +1 -1
- package/cjs/internal/Menu/MenuNavigation.d.ts +1 -1
- package/cjs/internal/Menu/MenuNavigation.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +9 -1
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/Popup/Popup.js +2 -4
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +9 -3
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/cjs/internal/RenderLayer/RenderLayer.js.map +1 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js +3 -1
- package/cjs/internal/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/cjs/internal/ThemePlayground/FxInputPlayground.js.map +1 -1
- package/cjs/lib/dom/getDOMRect.d.ts +1 -1
- package/cjs/lib/dom/getDOMRect.js +3 -1
- package/cjs/lib/dom/getDOMRect.js.map +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/cjs/lib/events/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +3 -2
- package/cjs/lib/forwardRefAndName.js +2 -1
- package/cjs/lib/forwardRefAndName.js.map +1 -1
- package/cjs/lib/getElementRef.d.ts +5 -0
- package/cjs/lib/getElementRef.js +16 -0
- package/cjs/lib/getElementRef.js.map +1 -0
- package/cjs/lib/locale/decorators.d.ts +0 -3
- package/cjs/lib/mergeRefs.d.ts +2 -3
- package/cjs/lib/mergeRefs.js +1 -1
- package/cjs/lib/mergeRefs.js.map +1 -1
- package/cjs/lib/reactGetTextContent.js +6 -1
- package/cjs/lib/reactGetTextContent.js.map +1 -1
- package/cjs/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/cjs/lib/rootNode/getRootNode.js +1 -24
- package/cjs/lib/rootNode/getRootNode.js.map +1 -1
- package/cjs/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/cjs/lib/size/SizeDecorator.d.ts +0 -3
- package/cjs/lib/types/polymorphic-component.d.ts +2 -1
- package/cjs/lib/types/polymorphic-component.js.map +1 -1
- package/cjs/lib/utils.d.ts +4 -3
- package/cjs/lib/utils.js +4 -3
- package/cjs/lib/utils.js.map +1 -1
- package/cjs/lib/withClassWrapper.d.ts +3 -8
- package/components/Button/Button/Button.js +1 -1
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +1 -0
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +1 -1
- package/components/DateInput/DateFragmentsView/DateFragmentsView.js.map +1 -1
- package/components/DateInput/DateFragmentsView.d.ts +2 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +2 -2
- package/components/DateRangePicker/DateRangePickerContext/DateRangePickerContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePickerContext.d.ts +3 -3
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +4 -4
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js +1 -1
- package/components/DropdownMenu/DropdownMenu/DropdownMenu.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js +1 -1
- package/components/FileUploader/FileUploaderFile/FileUploaderFile.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js +5 -4
- package/components/GlobalLoader/GlobalLoaderView/GlobalLoaderView.js.map +1 -1
- package/components/GlobalLoader/GlobalLoaderView.d.ts +3 -2
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +2 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js +4 -2
- package/components/Input/InputLayout/InputLayout/InputLayout.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.d.ts +3 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +2 -2
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/components/Kebab/Kebab/Kebab.js.map +1 -1
- package/components/Kebab/Kebab.d.ts +1 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
- package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput/MaskedInput.js +2 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -1
- package/components/Modal/Modal/Modal.js +7 -3
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +4 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +2 -2
- package/components/Paging/Paging/Paging.js.map +1 -1
- package/components/Paging/Paging.d.ts +2 -2
- package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
- package/components/PasswordInput/PasswordInput.d.ts +1 -1
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/ResponsiveLayout/decorator.d.ts +0 -3
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js +1 -1
- package/components/ScrollContainer/ScrollContainer/ScrollContainer.js.map +1 -1
- package/components/ScrollContainer/ScrollContainer.d.ts +1 -1
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +1 -1
- package/components/SidePage/SidePage/SidePage.js +7 -3
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageFooter.d.ts +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/SidePage/SidePageHeader.d.ts +1 -1
- package/components/SingleToast/SingleToast.d.ts +1 -1
- package/components/Sticky/Sticky/Sticky.js +2 -2
- package/components/Sticky/Sticky/Sticky.js.map +1 -1
- package/components/Tabs/Tabs/Tabs.js.map +1 -1
- package/components/Tabs/Tabs.d.ts +1 -1
- package/components/Token/TokenView/TokenView.js +6 -4
- package/components/Token/TokenView/TokenView.js.map +1 -1
- package/components/Token/TokenView.d.ts +2 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js +1 -1
- package/components/TokenInput/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +5 -5
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +4 -4
- package/hooks/useDrop/useDrop.js +1 -1
- package/hooks/useDrop/useDrop.js.map +1 -1
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +3 -2
- package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js +2 -2
- package/internal/FileUploaderControl/FileUploaderControlProvider/FileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/FileUploaderControlProvider.d.ts +3 -6
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js +2 -3
- package/internal/FileUploaderControl/withFileUploaderControlProvider/withFileUploaderControlProvider.js.map +1 -1
- package/internal/FileUploaderControl/withFileUploaderControlProvider.d.ts +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +7 -4
- package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -1
- package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +5 -6
- package/internal/IgnoreLayerClick/IgnoreLayerClick.d.ts +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/InputLikeText/InputLikeText.d.ts +2 -2
- package/internal/Menu/Menu/Menu.js +2 -2
- package/internal/Menu/Menu/Menu.js.map +1 -1
- package/internal/Menu/MenuNavigation/MenuNavigation.js.map +1 -1
- package/internal/Menu/MenuNavigation.d.ts +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +5 -2
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +1 -0
- package/internal/Popup/Popup/Popup.js +2 -2
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +3 -3
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +1 -1
- package/internal/RenderLayer/RenderLayer/RenderLayer.js.map +1 -1
- package/internal/RenderLayer/RenderLayer.d.ts +2 -2
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js +1 -1
- package/internal/TextWidthHelper/TextWidthHelper/TextWidthHelper.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground/FxInputPlayground.js.map +1 -1
- package/internal/ThemePlayground/FxInputPlayground.d.ts +1 -1
- package/lib/dom/getDOMRect/getDOMRect.js.map +1 -1
- package/lib/dom/getDOMRect.d.ts +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel/fixFirefoxModifiedClickOnLabel.js.map +1 -1
- package/lib/events/fixFirefoxModifiedClickOnLabel.d.ts +1 -1
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -1
- package/lib/forwardRefAndName.d.ts +3 -2
- package/lib/getElementRef/getElementRef.js +11 -0
- package/lib/getElementRef/getElementRef.js.map +1 -0
- package/lib/getElementRef/package.json +6 -0
- package/lib/getElementRef.d.ts +5 -0
- package/lib/locale/decorators.d.ts +0 -3
- package/lib/mergeRefs/mergeRefs.js.map +1 -1
- package/lib/mergeRefs.d.ts +2 -3
- package/lib/reactGetTextContent/reactGetTextContent.js +1 -1
- package/lib/reactGetTextContent/reactGetTextContent.js.map +1 -1
- package/lib/renderEnvironment/RenderEnvironmentDecorator.d.ts +0 -3
- package/lib/rootNode/getRootNode/getRootNode.js +0 -15
- package/lib/rootNode/getRootNode/getRootNode.js.map +1 -1
- package/lib/rootNode/rootNodeDecorator.d.ts +0 -3
- package/lib/size/SizeDecorator.d.ts +0 -3
- package/lib/types/polymorphic-component/polymorphic-component.js.map +1 -1
- package/lib/types/polymorphic-component.d.ts +2 -1
- package/lib/utils/utils.js +2 -2
- package/lib/utils/utils.js.map +1 -1
- package/lib/utils.d.ts +4 -3
- package/lib/withClassWrapper.d.ts +3 -8
- package/package.json +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_CommonWrapper","_ThemeContext","_Token","_excluded","TokenView","props","_cx","_props$size","size","children","closeButton","hideCloseButton","className","rest","_objectWithoutPropertiesLoose2","default","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","theme","useContext","ThemeContext","getSizeClassName","tokenLarge","tokenMedium","tokenSmall","closeButtonNode","createElement","removeIcon","globalClasses","CommonWrapper","_extends2","token"],"sources":["TokenView.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { useContext } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport type { TokenSize } from './Token';\nimport { globalClasses, getStyles } from './Token.styles';\n\nexport interface TokenViewProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Задает размер контрола. */\n size?: TokenSize;\n /** Задает компонент крестика для удаления токена. */\n closeButton?: ReactNode;\n /** Определяет, скрывать ли крестик для удаления токена. */\n hideCloseButton?: boolean;\n}\n\nexport
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_renderEnvironment","_CommonWrapper","_ThemeContext","_Token","_excluded","TokenView","exports","forwardRef","props","ref","_cx","_props$size","size","children","closeButton","hideCloseButton","className","rest","_objectWithoutPropertiesLoose2","default","_useEmotion","useEmotion","cx","styles","useStyles","getStyles","theme","useContext","ThemeContext","getSizeClassName","tokenLarge","tokenMedium","tokenSmall","closeButtonNode","createElement","removeIcon","globalClasses","CommonWrapper","_extends2","token"],"sources":["TokenView.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport React, { forwardRef, useContext } from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment';\nimport { type CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport type { TokenSize } from './Token';\nimport { globalClasses, getStyles } from './Token.styles';\n\nexport interface TokenViewProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Задает размер контрола. */\n size?: TokenSize;\n /** Задает компонент крестика для удаления токена. */\n closeButton?: ReactNode;\n /** Определяет, скрывать ли крестик для удаления токена. */\n hideCloseButton?: boolean;\n}\n\nexport const TokenView = forwardRef((props: TokenViewProps, ref: React.Ref<CommonWrapper<CommonProps>>) => {\n const { size = 'small', children, closeButton, hideCloseButton, className, ...rest } = props;\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const theme = useContext(ThemeContext);\n const getSizeClassName = (size: TokenSize) => {\n switch (size) {\n case 'large':\n return styles.tokenLarge(theme);\n case 'medium':\n return styles.tokenMedium(theme);\n case 'small':\n default:\n return styles.tokenSmall(theme);\n }\n };\n const closeButtonNode = hideCloseButton ? null : (\n <span className={cx(styles.removeIcon(theme), globalClasses.removeIcon)}>{closeButton}</span>\n );\n\n return (\n <CommonWrapper {...props} ref={ref}>\n <div\n {...rest}\n className={cx(getSizeClassName(size), {\n [styles.token(theme)]: true,\n })}\n >\n {children}\n {closeButtonNode}\n </div>\n </CommonWrapper>\n );\n});\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;AAEA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;;;AAGA,IAAAI,MAAA,GAAAJ,OAAA,mBAA0D,IAAAK,SAAA;;;;;;;;;;;AAWnD,IAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAG,IAAAE,iBAAU,EAAC,UAACC,KAAqB,EAAEC,GAA0C,EAAK,KAAAC,GAAA;EACzG,IAAAC,WAAA,GAAuFH,KAAK,CAApFI,IAAI,CAAJA,IAAI,GAAAD,WAAA,cAAG,OAAO,GAAAA,WAAA,CAAEE,QAAQ,GAAuDL,KAAK,CAApEK,QAAQ,CAAEC,WAAW,GAA0CN,KAAK,CAA1DM,WAAW,CAAEC,eAAe,GAAyBP,KAAK,CAA7CO,eAAe,CAAEC,SAAS,GAAcR,KAAK,CAA5BQ,SAAS,CAAKC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EAAKX,KAAK,EAAAJ,SAAA;EAC5F,IAAAgB,WAAA,GAAe,IAAAC,6BAAU,EAAC,CAAC,CAAnBC,EAAE,GAAAF,WAAA,CAAFE,EAAE;EACV,IAAMC,MAAM,GAAG,IAAAC,4BAAS,EAACC,gBAAS,CAAC;EACnC,IAAMC,KAAK,GAAG,IAAAC,iBAAU,EAACC,0BAAY,CAAC;EACtC,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIjB,IAAe,EAAK;IAC5C,QAAQA,IAAI;MACV,KAAK,OAAO;QACV,OAAOW,MAAM,CAACO,UAAU,CAACJ,KAAK,CAAC;MACjC,KAAK,QAAQ;QACX,OAAOH,MAAM,CAACQ,WAAW,CAACL,KAAK,CAAC;MAClC,KAAK,OAAO;MACZ;QACE,OAAOH,MAAM,CAACS,UAAU,CAACN,KAAK,CAAC;IACnC;EACF,CAAC;EACD,IAAMO,eAAe,GAAGlB,eAAe,GAAG,IAAI;EAC5ClB,MAAA,CAAAsB,OAAA,CAAAe,aAAA,WAAMlB,SAAS,EAAEM,EAAE,CAACC,MAAM,CAACY,UAAU,CAACT,KAAK,CAAC,EAAEU,oBAAa,CAACD,UAAU,CAAE,IAAErB,WAAkB,CAC7F;;;EAED;IACEjB,MAAA,CAAAsB,OAAA,CAAAe,aAAA,CAACjC,cAAA,CAAAoC,aAAa,MAAAC,SAAA,CAAAnB,OAAA,MAAKX,KAAK,IAAEC,GAAG,EAAEA,GAAI;IACjCZ,MAAA,CAAAsB,OAAA,CAAAe,aAAA,YAAAI,SAAA,CAAAnB,OAAA;IACMF,IAAI;MACRD,SAAS,EAAEM,EAAE,CAACO,gBAAgB,CAACjB,IAAI,CAAC,GAAAF,GAAA,OAAAA,GAAA;MACjCa,MAAM,CAACgB,KAAK,CAACb,KAAK,CAAC,IAAG,IAAI,EAAAhB,GAAA;MAC5B,CAAE;;IAEFG,QAAQ;IACRoB;IACE;IACQ,CAAC;;AAEpB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -68,4 +68,6 @@ TextWidthHelper = exports.TextWidthHelper = (0, _renderEnvironment.withRenderEnv
|
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
|
|
71
|
-
elementRef = function (node) {
|
|
71
|
+
elementRef = function (node) {
|
|
72
|
+
_this.element = node;
|
|
73
|
+
};return _this;}(0, _inheritsLoose2.default)(TextWidthHelper, _React$Component);var _proto = TextWidthHelper.prototype;_proto.getSizeClassName = function getSizeClassName(size) {switch (size) {case 'large':return this.styles.helperContainerLarge(this.props.theme);case 'medium':return this.styles.helperContainerMedium(this.props.theme);case 'small':default:return this.styles.helperContainerSmall(this.props.theme);}};_proto.render = function render() {this.styles = (0, _Token.getStyles)(this.emotion);return /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.props.size, className: this.cx(this.styles.helperContainer(), this.getSizeClassName(this.props.size)) }, /*#__PURE__*/_react.default.createElement("div", { className: this.styles.helperText(), ref: this.elementRef }, this.props.text || THIN_SPACE));};_proto.getTextWidth = function getTextWidth() {return (0, _getDOMRect.getDOMRect)(this.element).width;};_proto.getTextHeight = function getTextHeight() {return (0, _getDOMRect.getDOMRect)(this.element).height;};return TextWidthHelper;}(_react.default.Component)) || _class;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_getDOMRect","_TokenView","_Token","_renderEnvironment","_class","THIN_SPACE","TextWidthHelper","exports","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","element","elementRef","node","_inheritsLoose2","default","_proto","prototype","getSizeClassName","size","styles","helperContainerLarge","props","theme","helperContainerMedium","helperContainerSmall","render","getStyles","emotion","createElement","TokenView","className","cx","helperContainer","helperText","ref","text","getTextWidth","getDOMRect","width","getTextHeight","height","React","Component"],"sources":["TextWidthHelper.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { TokenView } from '../Token/TokenView';\nimport type { TokenSize } from '../Token';\nimport { getStyles } from '../Token/Token.styles';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\n// a thin character to preserve some space\n// for the caret visibillity in the input\nconst THIN_SPACE = '\\u2009';\n\nexport interface TextWidthHelperProps {\n /** Задает текст в поле ввода, еще не ставший токеном. */\n text?: string;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme: Theme;\n\n /** Задает размер контрола. */\n size: TokenSize;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n * для последующего выставления размеров input\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n\n private getSizeClassName(size: TokenSize) {\n switch (size) {\n case 'large':\n return this.styles.helperContainerLarge(this.props.theme);\n case 'medium':\n return this.styles.helperContainerMedium(this.props.theme);\n case 'small':\n default:\n return this.styles.helperContainerSmall(this.props.theme);\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <TokenView\n size={this.props.size}\n className={this.cx(this.styles.helperContainer(), this.getSizeClassName(this.props.size))}\n >\n <div className={this.styles.helperText()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </TokenView>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) =>
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_getDOMRect","_TokenView","_Token","_renderEnvironment","_class","THIN_SPACE","TextWidthHelper","exports","withRenderEnvironment","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","element","elementRef","node","_inheritsLoose2","default","_proto","prototype","getSizeClassName","size","styles","helperContainerLarge","props","theme","helperContainerMedium","helperContainerSmall","render","getStyles","emotion","createElement","TokenView","className","cx","helperContainer","helperText","ref","text","getTextWidth","getDOMRect","width","getTextHeight","height","React","Component"],"sources":["TextWidthHelper.tsx"],"sourcesContent":["import React from 'react';\nimport type { Emotion } from '@emotion/css/types/create-instance';\n\nimport type { Theme } from '../../lib/theming/Theme';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport { TokenView } from '../Token/TokenView';\nimport type { TokenSize } from '../Token';\nimport { getStyles } from '../Token/Token.styles';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\n\n// a thin character to preserve some space\n// for the caret visibillity in the input\nconst THIN_SPACE = '\\u2009';\n\nexport interface TextWidthHelperProps {\n /** Задает текст в поле ввода, еще не ставший токеном. */\n text?: string;\n\n /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */\n theme: Theme;\n\n /** Задает размер контрола. */\n size: TokenSize;\n}\n/**\n * Херпер позволяет вычислить размеры блока с текстом\n * для последующего выставления размеров input\n */\n@withRenderEnvironment\nexport class TextWidthHelper extends React.Component<TextWidthHelperProps> {\n private element: HTMLDivElement | null = null;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n\n private getSizeClassName(size: TokenSize) {\n switch (size) {\n case 'large':\n return this.styles.helperContainerLarge(this.props.theme);\n case 'medium':\n return this.styles.helperContainerMedium(this.props.theme);\n case 'small':\n default:\n return this.styles.helperContainerSmall(this.props.theme);\n }\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n return (\n <TokenView\n size={this.props.size}\n className={this.cx(this.styles.helperContainer(), this.getSizeClassName(this.props.size))}\n >\n <div className={this.styles.helperText()} ref={this.elementRef}>\n {this.props.text || THIN_SPACE}\n </div>\n </TokenView>\n );\n }\n\n public getTextWidth(): number {\n return getDOMRect(this.element).width;\n }\n\n public getTextHeight(): number {\n return getDOMRect(this.element).height;\n }\n\n private elementRef = (node: HTMLDivElement) => {\n this.element = node;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -265,9 +265,8 @@ var defaultToKey = function defaultToKey(item) {return item.toString();};
|
|
|
265
265
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint
|
|
266
266
|
var identity = function identity(item) {return item;};
|
|
267
267
|
var defaultRenderToken = function defaultRenderToken(
|
|
268
|
-
item, _ref
|
|
269
|
-
|
|
270
|
-
index) {var isActive = _ref.isActive,onClick = _ref.onClick,onDoubleClick = _ref.onDoubleClick,onRemove = _ref.onRemove,disabled = _ref.disabled,size = _ref.size;return /*#__PURE__*/(
|
|
268
|
+
item, _ref) {var
|
|
269
|
+
isActive = _ref.isActive,onClick = _ref.onClick,onDoubleClick = _ref.onDoubleClick,onRemove = _ref.onRemove,disabled = _ref.disabled,size = _ref.size;return /*#__PURE__*/(
|
|
271
270
|
|
|
272
271
|
_react.default.createElement(_Token.Token, {
|
|
273
272
|
key: item.toString(),
|
|
@@ -657,10 +656,18 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
|
|
|
657
656
|
|
|
658
657
|
|
|
659
658
|
|
|
660
|
-
inputRef = function (node) {
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
659
|
+
inputRef = function (node) {
|
|
660
|
+
_this.input = node;
|
|
661
|
+
};_this.
|
|
662
|
+
tokensInputMenuRef = function (node) {
|
|
663
|
+
_this.tokensInputMenu = node;
|
|
664
|
+
};_this.
|
|
665
|
+
textHelperRef = function (node) {
|
|
666
|
+
_this.textHelper = node;
|
|
667
|
+
};_this.
|
|
668
|
+
wrapperRef = function (node) {
|
|
669
|
+
_this.wrapper = node;
|
|
670
|
+
};_this.
|
|
664
671
|
|
|
665
672
|
dispatch = function (action, cb) {
|
|
666
673
|
_this.setState(function (prevState) {return (0, _TokenInputReducer.tokenInputReducer)(prevState, action);}, cb);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_warning","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_SizeDecorator","_renderEnvironment","_blink2","_ScrollContainer","_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","index","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","withRenderEnvironment","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","React","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","lodashIsEqual","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","isKeyDelete","indexOfActiveToken","itemsNew","_this$input7","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","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","_this$locale","addButtonComment","addButtonTitle","MenuItem","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps10","step","availableIndex","_inheritsLoose2","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","createPropsGetter","defaultProps","propsWithOldDelimiters","_extends2","componentDidMount","_this$globalObject$do","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_this$globalObject$do2","removeEventListener","_this$input9","_this$input10","blink","el","blinkColor","theme","inputBlinkColor","render","_this2","styles","getStyles","emotion","ThemeContext","Consumer","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_this$cx","_this$cx2","_this$cx3","logWarning","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps11","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","onPaste","inner","Fragment","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","ScrollContainer","scrollRef","showScrollBar","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport logWarning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\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 type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { getStyles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { 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 /** Задает HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<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?: (value: string) => T;\n\n /** @deprecated Используйте `itemToId` вместо `toKey`. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToId?: (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>, index: number) => 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 /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\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 | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\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 index: number,\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@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\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 itemToId: identity,\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 };\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 globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\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 scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.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 this.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 /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\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.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n logWarning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\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 maxHeight,\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 (this.isInputValueChanged || !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 = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.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.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.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 const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\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 anchorElementForCursor={this.input}\n anchorElementRoot={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.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n const container = maxHeight ? (\n <ScrollContainer scrollRef={this.scrollContainerRef} maxHeight={maxHeight} showScrollBar=\"always\">\n {inner}\n </ScrollContainer>\n ) : (\n inner\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 // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\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 isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.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 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.isInputValueChanged) {\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 && (this.isInputValueChanged || 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({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\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 && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.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 = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\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.isInputValueChanged || !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 && this.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 this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\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 this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\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 const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && 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 = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\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) => !this.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((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\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) => !this.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({ preventScroll: true });\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.isInputValueChanged) {\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, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [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 // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\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 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.isInputValueChanged && 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, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = 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(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\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], 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","_warning","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_SizeDecorator","_renderEnvironment","_blink2","_ScrollContainer","_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","withRenderEnvironment","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","React","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","lodashIsEqual","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","isKeyDelete","indexOfActiveToken","itemsNew","_this$input7","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","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","_this$locale","addButtonComment","addButtonTitle","MenuItem","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps10","step","availableIndex","_inheritsLoose2","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","createPropsGetter","defaultProps","propsWithOldDelimiters","_extends2","componentDidMount","_this$globalObject$do","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_this$globalObject$do2","removeEventListener","_this$input9","_this$input10","blink","el","blinkColor","theme","inputBlinkColor","render","_this2","styles","getStyles","emotion","ThemeContext","Consumer","renderMain","getLabelSizeClassName","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_this$cx","_this$cx2","_this$cx3","logWarning","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps11","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","onPaste","inner","Fragment","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","ScrollContainer","scrollRef","showScrollBar","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport type { Emotion } from '@emotion/css/types/create-instance';\nimport logWarning from 'warning';\n\nimport type { GlobalObject } from '../../lib/globalObject';\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 type { Menu } from '../../internal/Menu';\nimport type { TokenProps, TokenSize } from '../Token';\nimport { Token } from '../Token';\nimport type { MenuItemState } from '../MenuItem';\nimport { MenuItem } from '../MenuItem';\nimport type { AnyObject } from '../../lib/utils';\nimport { emptyHandler, getRandomID } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { locale } from '../../lib/locale/decorators';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { getUid } from '../../lib/uidUtils';\nimport { TokenView } from '../Token/TokenView';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { getStyles } from './TokenInput.styles';\nimport type { TokenInputAction } from './TokenInputReducer';\nimport { 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 /** Задает HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<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?: (value: string) => T;\n\n /** @deprecated Используйте `itemToId` вместо `toKey`. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToId?: (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>, index: number) => 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 /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\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 | 'itemToId'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\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@withRenderEnvironment\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\n@withSize\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 itemToId: identity,\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 };\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 globalObject!: GlobalObject;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private styles!: ReturnType<typeof getStyles>;\n private theme!: Theme;\n private size!: SizeProp;\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 scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n this.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 this.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 /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n this.styles = getStyles(this.emotion);\n\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.size) {\n case 'large':\n return this.styles.labelLarge(this.theme);\n case 'medium':\n return this.styles.labelMedium(this.theme);\n case 'small':\n default:\n return this.styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return this.styles.inputLarge(this.theme);\n case 'medium':\n return this.styles.inputMedium(this.theme);\n case 'small':\n default:\n return this.styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n logWarning(false, `getItems is required for \"Combined\" and \"WithReference\" modes.`);\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 maxHeight,\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 (this.isInputValueChanged || !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 = this.cx(this.styles.label(theme), this.getLabelSizeClassName(), {\n [this.styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [this.styles.labelDisabled(theme)]: !!disabled,\n [this.styles.labelFocused(theme)]: !!inFocus,\n [this.styles.error(theme)]: !!error,\n [this.styles.warning(theme)]: !!warning,\n });\n const inputClassName = this.cx(this.styles.input(theme), this.getInputSizeClassName(), {\n [this.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.size}\n className={this.cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [this.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 const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\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 anchorElementForCursor={this.input}\n anchorElementRoot={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.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={this.styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n const container = maxHeight ? (\n <ScrollContainer scrollRef={this.scrollContainerRef} maxHeight={maxHeight} showScrollBar=\"always\">\n {inner}\n </ScrollContainer>\n ) : (\n inner\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 // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\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 isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.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 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.isInputValueChanged) {\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 && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => {\n this.input = node;\n };\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => {\n this.tokensInputMenu = node;\n };\n private textHelperRef = (node: TextWidthHelper) => {\n this.textHelper = node;\n };\n private wrapperRef = (node: HTMLLabelElement) => {\n this.wrapper = node;\n };\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({ preventScroll: true });\n // в firefox не работает без второго focus\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\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 && this.globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || this.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 = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\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.isInputValueChanged || !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 && this.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 this.isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.isInputValueChanged) {\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 this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\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 const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && 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 = (options?: FocusOptions) => {\n this.globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\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) => !this.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((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\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) => !this.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({ preventScroll: true });\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.isInputValueChanged) {\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, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [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 // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (this.type === TokenInputType.WithoutReference) {\n this.handleAddItem();\n }\n\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 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.isInputValueChanged && 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, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = 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(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\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], 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":[]}
|