@skbkontur/react-ui 5.4.2 → 5.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +6 -0
- package/cjs/components/DateRangePicker/DateRangePicker.js +24 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -2
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.js +14 -2
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +6 -3
- package/cjs/components/TokenInput/TokenInput.js +43 -28
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.js +8 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +7 -1
- package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
- package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
- package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +14 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +6 -0
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -2
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/Textarea/Textarea/Textarea.js +12 -6
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js +64 -48
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +6 -3
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +1 -1
- package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
- package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js +4 -1
- package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js.map +1 -1
- package/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
- package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
- package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
- package/package.json +6 -4
- package/cjs/lib/__stories__/Blink.creevey.mts +0 -90
- package/lib/__stories__/Blink.creevey.mts +0 -90
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_featureFlagsContext","_SizeDecorator","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","memoizedTokens","Map","hasValueInItems","items","value","includes","some","isEqual","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","getProps","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","isEditingMode","finishTokenEdit","isTokenValueChanged","valueToString","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","handleCopy","isCursorVisible","_this$getProps","selectedItems","delimiters","tokens","map","token","indexOf","sort","index","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps2","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","filter","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps3","isSelectedItem","isEditingItem","autocompleteItemsUnique","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","props","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$input3","_this$input4","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps4","isKeyDelete","indexOfActiveToken","itemsNew","_this$input6","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps5","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps6","_this$state2","editedItem","splice","onUnexpectedInput","returnedValue","featureFlags","tokenInputCreateTokenOnBlurInWithoutReferenceMode","handleChangeInputValue","trimLeft","endsWith","trimRight","onInputValueChange","Combined","renderTokensStart","slice","renderToken","renderTokensEnd","_this$props$selectedI","_this$props","_this$props$renderTok","handleIconClick","handleTokenDoubleClick","renderedToken","set","renderAddButton","showAddItemHint","_this$locale","addButtonComment","addButtonTitle","MenuItem","comment","itemIndex","has","get","startIndex","isDirectionLeft","_this$getProps7","step","availableIndex","_inheritsLoose2","_proto","prototype","getDelimiters","_this$props$delimiter","every","propsGetter","createPropsGetter","defaultProps","propsWithOldDelimiters","_extends2","componentDidMount","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","theme","renderMain","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$getProps8","width","onMouseEnter","onMouseLeave","menuWidth","menuAlign","renderItem","_this$state3","showMenu","inputInlineStyles","height","caretColor","labelClassName","cx","hovering","labelDisabled","labelFocused","inputClassName","inputDisabled","placeholder","inputNode","TokenView","className","inputPlaceholderWrapper","hideCloseButton","id","textareaId","ref","style","spellCheck","onChange","onKeyDown","onPaste","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state4","_this$getProps9","React","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 MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport 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 { cx } from '../../lib/theming/Emotion';\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 type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { styles } 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 /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Задает размер контрола. */\n size?: TokenSize;\n\n /** Задает тип инпута.\n * Возможные значения:\n * `TokenInputType.WithReference` (можно выбирать токены только из предложенных, нельзя добавить новые).\n * `TokenInputType.WithoutReference` (можно добавлять токены, но нельзя выбирать).\n * `TokenInputType.Combined` (можно и выбирать, и добавлять). */\n type?: TokenInputType;\n\n /** Задает ширину выпадающего меню. Может быть 'auto', в пикселях, процентах (от ширины инпута) и других конкретных единицах.\n * Если menuAlign = 'cursor', то ширина выпадающего меню всегда будет равна 'auto' (по ширине текста). */\n menuWidth?: React.CSSProperties['width'];\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задает функцию поиска элементов, должна возвращать Promise с массивом элементов. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В таком случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<T[]>;\n\n /** Скрывает меню при пустом вводе. */\n hideMenuIfEmptyInputValue?: boolean;\n\n /** Задает функцию, которая отображает элемент списка. */\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode | null;\n\n /** Задает функцию, которая отображает выбранное значение. */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию, которая возвращает строковое представление токена.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * `found` учитывает только компонент `MenuItem`. Им \"оборачиваются\" элементы, возвращаемые `getItems()`. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Задает функцию, которая отображает заданное содержимое при пустом результате поиска. Не работает, если рендерится `AddButton`. */\n renderNotFound?: () => React.ReactNode;\n\n /** Преобразует значение в элемент списка. */\n valueToItem?: (item: string) => T;\n\n /** Определяет уникальный ключ по элементу. */\n toKey?: (item: T) => string | number | undefined;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает символы, которые разделяют введённый текст на токены. */\n delimiters?: string[];\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает ширину токен-инпута. */\n width?: string | number;\n\n /** Задает максимальную высоту выпадающего меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая отображает токен и предоставляет возможность кастомизации внешнего вида и поведения токена. */\n renderToken?: (item: T, props: Partial<TokenProps>) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | 'onValueChange'\n | 'width'\n | 'onBlur'\n | 'onFocus'\n | 'onMouseEnter'\n | 'onMouseLeave'\n | 'menuWidth'\n | 'menuAlign'\n >\n>;\n\nconst defaultToKey = <T extends AnyObject>(item: T): string => item.toString();\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-constraint\nconst identity = <T extends unknown>(item: T): T => item;\nconst defaultRenderToken = <T extends AnyObject>(\n item: T,\n { isActive, onClick, onDoubleClick, onRemove, disabled, size }: Partial<TokenProps>,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/**\n * Поле с токенами `TokenInput` — это поле ввода со списком подсказок.\n *\n * Поле с токенами используют для выбора нескольких значений из справочника и для добавления своих значений.\n */\n@rootNode\n@locale('TokenInput', TokenInputLocaleHelper)\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 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 theme!: Theme;\n private size!: SizeProp;\n public featureFlags!: ReactUIFeatureFlags;\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 public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (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 = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper 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={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private hasValueInItems = (items: T[], value: T) => {\n if (typeof value === 'string') {\n return items.includes(value);\n }\n // todo: как то не очень\n return items.some((item) => isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems;\n const value = this.getProps().valueToItem(this.state.inputValue);\n\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.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();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.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 && isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) => !isSelectedItem(item) || isEditingItem(item));\n\n if (this.isEditingMode) {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n if (\n isEqual(editingItem, valueToItem(this.state.inputValue)) &&\n !this.hasValueInItems(autocompleteItemsUnique, editingItem)\n ) {\n autocompleteItemsUnique.unshift(editingItem);\n }\n }\n\n if (query === '' || this.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 if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n switch (true) {\n case isKeyEnter(e):\n if (this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems, valueToString } = this.getProps();\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput();\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput();\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.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 = this.getProps().selectedItems;\n const { editingTokenIndex, inputValue, reservedInputValue } = this.state;\n const editedItem = this.getProps().valueToItem(inputValue);\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(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 (\n this.featureFlags.tokenInputCreateTokenOnBlurInWithoutReferenceMode &&\n this.type === TokenInputType.WithoutReference\n ) {\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) => {\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(item as T & AnyObject, {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_Popup","_identifiers","LayoutEvents","_interopRequireWildcard","_Token","_MenuItem","_utils","_ThemeContext","_decorators","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_uidUtils","_TokenView","_featureFlagsContext","_SizeDecorator","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","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","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","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","props","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","handleInputKeyDown","handleWrapperKeyDown","e","_this$state$autocompl","_this$state$autocompl2","_this$input3","_this$input4","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","focusInput","_this$input5","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","isKeyDelete","indexOfActiveToken","itemsNew","_this$input6","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input7","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","splice","onUnexpectedInput","returnedValue","featureFlags","tokenInputCreateTokenOnBlurInWithoutReferenceMode","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","_globalObject$documen","updateInputTextWidth","addEventListener","autoFocus","componentDidUpdate","prevProps","clear","isCursorVisibleForState","componentWillUnmount","_globalObject$documen2","removeEventListener","_this$input8","_this$input9","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","theme","renderMain","getLabelSizeClassName","styles","labelLarge","labelMedium","labelSmall","getInputSizeClassName","inputLarge","inputMedium","inputSmall","_cx","_cx2","_cx3","Error","_this$props2","maxMenuHeight","error","warning","renderNotFound","inputMode","renderTotalCount","totalCount","ariaDescribedby","ariaLabel","_this$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","onKeyDown","onPaste","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state4","_this$getProps12","React","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 MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { PopupIds } from '../../internal/Popup';\nimport {\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowRight,\n isKeyArrowUp,\n isKeyArrowVertical,\n isKeyBackspace,\n isKeyComma,\n isKeyDelete,\n isKeyEnter,\n isKeyEscape,\n isShortcutSelectAll,\n} from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport 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 { cx } from '../../lib/theming/Emotion';\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 type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { getFullReactUIFlagsContext, ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport type { SizeProp } from '../../lib/types/props';\n\nimport type { TokenInputLocale } from './locale';\nimport { TokenInputLocaleHelper } from './locale';\nimport { styles } 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 /** Устанавливает фокус на контроле после окончания загрузки страницы. */\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>) => ReactNode;\n\n /** Задает функцию, вызывающуюся при изменении текста в поле ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Задает функцию для обработки ввода строки в инпут и последующую потерю фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки\n *\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет\n * совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента\n *\n * Сама функция также может вернуть значение, неравное `undefined`, с которым будет вызван `onValueChange`.\n * При возвращаемом значении `null` будет выполнена очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: T[];\n activeTokens: T[];\n editingTokenIndex: number;\n clickedToken?: T;\n clickedTokenTimeout?: number;\n inFocus?: boolean;\n inputValue: string;\n reservedInputValue: string | undefined;\n inputValueWidth: number;\n inputValueHeight: number;\n preventBlur?: boolean;\n loading?: boolean;\n}\n\nexport const DefaultState = {\n inputValue: '',\n reservedInputValue: undefined,\n autocompleteItems: undefined,\n activeTokens: [],\n editingTokenIndex: -1,\n inFocus: false,\n loading: false,\n preventBlur: false,\n inputValueWidth: 2,\n inputValueHeight: 22,\n};\n\nexport const TokenInputDataTids = {\n root: 'TokenInput__root',\n tokenInputMenu: 'TokenInputMenu__root',\n label: 'TokenInput__label',\n} as const;\n\ntype DefaultProps<T> = Required<\n Pick<\n TokenInputProps<T>,\n | 'selectedItems'\n | 'delimiters'\n | 'renderItem'\n | 'renderValue'\n | 'valueToString'\n | 'valueToItem'\n | 'toKey'\n | '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@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: defaultToKey,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private theme!: Theme;\n private size!: SizeProp;\n public featureFlags!: ReactUIFeatureFlags;\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 public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n globalObject.document?.addEventListener('copy', this.handleCopy);\n if (this.props.autoFocus) {\n this.focusInput();\n }\n }\n\n public componentDidUpdate(prevProps: TokenInputProps<T> & DefaultProps<T>, prevState: TokenInputState<T>) {\n if (prevState.inputValue !== this.state.inputValue) {\n this.updateInputTextWidth();\n }\n if (prevState.activeTokens.length === 0 && this.state.activeTokens.length > 0) {\n this.dispatch({\n type: 'SET_AUTOCOMPLETE_ITEMS',\n payload: undefined,\n });\n }\n if (prevProps.selectedItems.length !== this.getProps().selectedItems.length) {\n LayoutEvents.emit();\n this.memoizedTokens.clear();\n }\n if (!this.isCursorVisibleForState(prevState) && this.isCursorVisible) {\n this.tryGetItems(this.isEditingMode ? '' : this.state.inputValue);\n }\n }\n\n public componentWillUnmount() {\n globalObject.document?.removeEventListener('copy', this.handleCopy);\n }\n\n /**\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n private getLabelSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.labelLarge(this.theme);\n case 'medium':\n return styles.labelMedium(this.theme);\n case 'small':\n default:\n return styles.labelSmall(this.theme);\n }\n }\n\n private getInputSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.inputLarge(this.theme);\n case 'medium':\n return styles.inputMedium(this.theme);\n case 'small':\n default:\n return styles.inputSmall(this.theme);\n }\n }\n\n private renderMain() {\n if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {\n throw Error('Missed getItems for type ' + this.type);\n }\n\n const {\n maxMenuHeight,\n error,\n warning,\n disabled,\n renderNotFound,\n hideMenuIfEmptyInputValue,\n inputMode,\n renderTotalCount,\n totalCount,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (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 = cx(styles.label(theme), this.getLabelSizeClassName(), {\n [styles.hovering(this.theme)]: !inFocus && !disabled && !warning && !error,\n [styles.labelDisabled(theme)]: !!disabled,\n [styles.labelFocused(theme)]: !!inFocus,\n [styles.error(theme)]: !!error,\n [styles.warning(theme)]: !!warning,\n });\n const inputClassName = cx(styles.input(theme), this.getInputSizeClassName(), {\n [styles.inputDisabled(theme)]: !!disabled,\n });\n\n const placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';\n\n const inputNode = (\n <TokenView\n size={this.size}\n className={cx({\n // input растягивается на всю ширину чтобы placeholder не обрезался\n [styles.inputPlaceholderWrapper()]: Boolean(placeholder),\n })}\n hideCloseButton={Boolean(placeholder)}\n >\n <textarea\n id={this.textareaId}\n ref={this.inputRef}\n value={inputValue}\n style={inputInlineStyles}\n spellCheck={false}\n disabled={disabled}\n className={inputClassName}\n placeholder={placeholder}\n onFocus={this.handleInputFocus}\n onBlur={this.handleInputBlur}\n onChange={this.handleChangeInputValue}\n onKeyDown={this.handleKeyDown}\n onPaste={this.handleInputPaste}\n inputMode={inputMode}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n />\n </TokenView>\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n htmlFor={this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n <TextWidthHelper 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={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private 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();\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems } = this.state;\n\n if (inputValue === '') {\n // если стерли содержимое токена в режиме редактирования, то удаляем токен\n if (this.isEditingMode) {\n this.finishTokenEdit();\n }\n return;\n }\n\n // если не изменилось значение токена при редактировании\n if (this.isEditingMode && !this.isTokenValueChanged) {\n this.finishTokenEdit();\n return;\n }\n\n // чекаем автокомплит на совпадение с введенным значением в инпут\n if (autocompleteItems && autocompleteItems.length === 1) {\n const item = autocompleteItems[0];\n\n if (this.getProps().valueToString(item) === inputValue) {\n this.isEditingMode ? this.finishTokenEdit() : this.selectItem(item);\n\n return;\n }\n }\n\n if (this.isInputChanged) {\n this.checkForUnexpectedInput();\n }\n };\n\n private get isInputChanged() {\n if (this.isEditingMode) {\n return this.isTokenValueChanged;\n }\n\n return this.isInputValueChanged;\n }\n\n private get isInputValueChanged() {\n const { inputValue } = this.state;\n\n return inputValue !== '';\n }\n\n private get isTokenValueChanged() {\n const { inputValue, editingTokenIndex } = this.state;\n const { valueToString, selectedItems } = this.getProps();\n\n if (this.isEditingMode) {\n return valueToString(selectedItems[editingTokenIndex]) !== inputValue;\n }\n\n return false;\n }\n\n private isBlurToMenu = (event: FocusEvent<HTMLElement>) => {\n if (this.menuRef && globalObject.document) {\n const menu = getRootNode(this.tokensInputMenu?.getMenuRef());\n const relatedTarget = event.relatedTarget || globalObject.document.activeElement;\n\n if (menu && menu.contains(relatedTarget)) {\n return true;\n }\n }\n return false;\n };\n\n private handleWrapperMouseDown = (event: React.MouseEvent<HTMLElement>) => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: true });\n const target = event.target as HTMLElement;\n const isClickOnToken = target && this.wrapper?.contains(target) && target !== this.wrapper && target !== this.input;\n if (!isClickOnToken) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n }\n };\n\n private handleWrapperMouseUp = () => {\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.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 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 = () => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus());\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !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();\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();\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 (\n this.featureFlags.tokenInputCreateTokenOnBlurInWithoutReferenceMode &&\n this.type === TokenInputType.WithoutReference\n ) {\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) => {\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(item as T & AnyObject, {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n });\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex]) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
export interface ResizeDetectorProps {
|
|
3
3
|
onResize?: (event: UIEvent) => void;
|
|
4
4
|
fullHeight?: boolean;
|
|
5
|
+
alignBaseline?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {
|
|
7
8
|
static __KONTUR_REACT_UI__: string;
|
|
@@ -9,6 +9,7 @@ var _ResizeDetector2 = require("./ResizeDetector.styles");var
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
|
|
12
|
+
|
|
12
13
|
ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Component) {function ResizeDetector() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
|
|
13
14
|
|
|
14
15
|
|
|
@@ -28,6 +29,12 @@ ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Componen
|
|
|
28
29
|
|
|
29
30
|
|
|
30
31
|
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
31
38
|
|
|
32
39
|
|
|
33
40
|
|
|
@@ -42,4 +49,4 @@ ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Componen
|
|
|
42
49
|
if (iframe && iframe.contentWindow) {
|
|
43
50
|
_this.iframeWindow = iframe.contentWindow;
|
|
44
51
|
}
|
|
45
|
-
};return _this;}(0, _inheritsLoose2.default)(ResizeDetector, _React$Component);var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector2.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector2.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector2.styles.content()] = true, _cx[_ResizeDetector2.styles.fullHeight()] = this.props.fullHeight, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';ResizeDetector.displayName = 'ResizeDetector';
|
|
52
|
+
};return _this;}(0, _inheritsLoose2.default)(ResizeDetector, _React$Component);var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector2.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector2.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector2.styles.content()] = true, _cx[_ResizeDetector2.styles.fullHeight()] = this.props.fullHeight, _cx[_ResizeDetector2.styles.flex()] = this.props.alignBaseline, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';ResizeDetector.displayName = 'ResizeDetector';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_Emotion","_ResizeDetector2","ResizeDetector","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","styles","root","title","ref","tabIndex","cx","content","fullHeight","children","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Emotion","_ResizeDetector2","ResizeDetector","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","styles","root","title","ref","tabIndex","cx","content","fullHeight","flex","alignBaseline","children","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n alignBaseline?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div\n className={cx({\n [styles.content()]: true,\n [styles.fullHeight()]: this.props.fullHeight,\n [styles.flex()]: this.props.alignBaseline,\n })}\n >\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"],"mappings":"kQAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,QAAA,GAAAD,OAAA;;AAEA,IAAAE,gBAAA,GAAAF,OAAA,4BAAiD;;;;;;;;AAQpCG,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAAE,gBAAA,YAAAF,eAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;IAIjBU,YAAY,GAAkB,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAyBlCW,YAAY,GAAG,UAACC,KAAc,EAAK;MACzC,IAAIZ,KAAA,CAAKa,KAAK,CAACC,QAAQ,EAAE;QACvBd,KAAA,CAAKa,KAAK,CAACC,QAAQ,CAACF,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOe,SAAS,GAAG,UAACC,MAAyB,EAAK;MACjD,IAAIA,MAAM,IAAIA,MAAM,CAACC,aAAa,EAAE;QAClCjB,KAAA,CAAKU,YAAY,GAAGM,MAAM,CAACC,aAAa;MAC1C;IACF,CAAC,QAAAjB,KAAA,MAAAkB,eAAA,CAAAC,OAAA,EAAAtB,cAAA,EAAAE,gBAAA,MAAAqB,MAAA,GAAAvB,cAAA,CAAAwB,SAAA,CAAAD,MAAA,CAjCME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACZ,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACa,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACZ,YAAY,CAAC,CACjE,CACF,CAAC,CAAAS,MAAA,CAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,GAAA,CACd,oBACEjC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UAAKC,SAAS,EAAEC,uBAAM,CAACC,IAAI,CAAC,CAAE,iBAC5BrC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,aAAQI,KAAK,EAAC,gBAAgB,EAACC,GAAG,EAAE,IAAI,CAAChB,SAAU,EAACY,SAAS,EAAEC,uBAAM,CAACZ,MAAM,CAAC,CAAE,EAACgB,QAAQ,EAAE,CAAC,CAAE,EAAE,CAAC,eAChGxC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UACEC,SAAS,EAAE,IAAAM,WAAE,GAAAR,GAAA,OAAAA,GAAA,CACVG,uBAAM,CAACM,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAT,GAAA,CACvBG,uBAAM,CAACO,UAAU,CAAC,CAAC,IAAG,IAAI,CAACtB,KAAK,CAACsB,UAAU,EAAAV,GAAA,CAC3CG,uBAAM,CAACQ,IAAI,CAAC,CAAC,IAAG,IAAI,CAACvB,KAAK,CAACwB,aAAa,EAAAZ,GAAA,CAC1C,CAAE,IAEF,IAAI,CAACZ,KAAK,CAACyB,QACT,CACF,CAAC,CAEV,CAAC,QAAAzC,cAAA,GA3BiC0C,cAAK,CAACC,SAAS,EAAtC3C,cAAc,CACX4C,mBAAmB,GAAG,gBAAgB,CADzC5C,cAAc,CAEX6C,WAAW,GAAG,gBAAgB","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
|
|
2
2
|
|
|
3
3
|
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
4
4
|
root: function root() {
|
|
@@ -33,5 +33,11 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
33
33
|
return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: 100%;\n "])));
|
|
34
34
|
|
|
35
35
|
|
|
36
|
+
},
|
|
37
|
+
|
|
38
|
+
flex: function flex() {
|
|
39
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n "])));
|
|
40
|
+
|
|
41
|
+
|
|
36
42
|
}
|
|
37
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","iframe","content","fullHeight"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAEvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOC,YAAG,
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","iframe","content","fullHeight","flex"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n\n flex() {\n return css`\n display: flex;\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAEvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOC,YAAG,EAAAT,eAAA,KAAAA,eAAA,OAAAU,4BAAA,CAAAC,OAAA;;;;EAIZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,WAAOH,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;;;;;;;;;;;;EAYZ,CAAC;;EAEDE,OAAO,WAAAA,QAAA,EAAG;IACR,WAAOJ,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDG,UAAU,WAAAA,WAAA,EAAG;IACX,WAAOL,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDI,IAAI,WAAAA,KAAA,EAAG;IACL,WAAON,YAAG,EAAAL,gBAAA,KAAAA,gBAAA,OAAAM,4BAAA,CAAAC,OAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -12,4 +12,5 @@ export declare const getFullReactUIFlagsContext: (flags: ReactUIFeatureFlags) =>
|
|
|
12
12
|
sidePageDisableHeaderShrink?: boolean | undefined;
|
|
13
13
|
sidePageNotCutTitleOnStuckByDefault?: boolean | undefined;
|
|
14
14
|
tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean | undefined;
|
|
15
|
+
textareaBaselineAlign?: boolean | undefined;
|
|
15
16
|
};
|
|
@@ -12,6 +12,7 @@ export interface ReactUIFeatureFlags {
|
|
|
12
12
|
sidePageDisableHeaderShrink?: boolean;
|
|
13
13
|
sidePageNotCutTitleOnStuckByDefault?: boolean;
|
|
14
14
|
tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;
|
|
15
|
+
textareaBaselineAlign?: boolean;
|
|
15
16
|
}
|
|
16
17
|
export declare const reactUIFeatureFlagsDefault: ReactUIFeatureFlags;
|
|
17
18
|
export declare const ReactUIFeatureFlagsContext: React.Context<ReactUIFeatureFlags>;
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
|
|
18
19
|
var reactUIFeatureFlagsDefault = exports.reactUIFeatureFlagsDefault = {
|
|
19
20
|
dateInputFixSameNumberTypingOnRefocus: false,
|
|
20
21
|
dateInputAllowInvalidValuesInDays: false,
|
|
@@ -27,7 +28,8 @@ var reactUIFeatureFlagsDefault = exports.reactUIFeatureFlagsDefault = {
|
|
|
27
28
|
fxInputUseMaskedInput: false,
|
|
28
29
|
sidePageDisableHeaderShrink: false,
|
|
29
30
|
sidePageNotCutTitleOnStuckByDefault: false,
|
|
30
|
-
tokenInputCreateTokenOnBlurInWithoutReferenceMode: false
|
|
31
|
+
tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,
|
|
32
|
+
textareaBaselineAlign: false
|
|
31
33
|
};
|
|
32
34
|
|
|
33
35
|
var ReactUIFeatureFlagsContext = exports.ReactUIFeatureFlagsContext = /*#__PURE__*/_react.default.createContext(reactUIFeatureFlagsDefault);
|