@skbkontur/react-ui 5.6.10 → 5.6.12
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 +23 -0
- package/cjs/components/Textarea/Textarea.styles.js +1 -2
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +3 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.styles.d.ts +1 -0
- package/cjs/components/TokenInput/TokenInput.styles.js +13 -2
- package/cjs/components/TokenInput/TokenInput.styles.js.map +1 -1
- package/cjs/internal/themes/DarkTheme5_6.js +1 -1
- package/cjs/internal/themes/DarkTheme5_6.js.map +1 -1
- package/cjs/internal/themes/LightTheme5_6.js +1 -1
- package/cjs/internal/themes/LightTheme5_6.js.map +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js +1 -1
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +1 -0
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js +6 -2
- package/components/TokenInput/TokenInput.styles/TokenInput.styles.js.map +1 -1
- package/components/TokenInput/TokenInput.styles.d.ts +1 -0
- package/internal/themes/DarkTheme5_6/DarkTheme5_6.js +1 -1
- package/internal/themes/DarkTheme5_6/DarkTheme5_6.js.map +1 -1
- package/internal/themes/LightTheme5_6/LightTheme5_6.js +1 -1
- package/internal/themes/LightTheme5_6/LightTheme5_6.js.map +1 -1
- package/package.json +2 -2
|
@@ -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","_blink2","_ScrollContainer","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","index","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","React","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","lodashIsEqual","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","allItems","filter","isSimpleItem","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","autocompleteItemsUniqueSimple","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","isKeyDelete","indexOfActiveToken","itemsNew","_this$input7","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","splice","onUnexpectedInput","returnedValue","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$input9","_this$input10","blink","el","blinkColor","theme","inputBlinkColor","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","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","onPaste","inner","Fragment","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","ScrollContainer","scrollRef","showScrollBar","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state$autocompl3","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler","isFunction","isValidElement"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport { 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 { isFunction, 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';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\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 /** HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на поле с токенами после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Размер поля с токенами. */\n size?: TokenSize;\n\n /** Тип инпута.\n * Возможные значения:\n * - `TokenInputType.Combined` — в поле можно выбирать значения из справочника и добавлять свои значения.\n * - `TokenInputType.WithReference` — можно только выбрать значения из справочника, но нельзя добавлять свои.\n * - `TokenInputType.WithoutReference` — можно добавлять любые значения, но подсказок из справочника нет. */\n type?: TokenInputType;\n\n /** Ширина выпадающего списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задаёт функцию поиска значений, которая должна возвращать Promise с массивом значений. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<Array<TokenInputExtendedItem<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 /** Возвращает строковое представление `value`. Необходимо при фокусировке.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Отрисовывает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им оборачиваются элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Отрисовывает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\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 /** Меняет визуальное отображение токена на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение токена на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Блокирует поле с токенами. */\n disabled?: boolean;\n\n /** Ширина поля с токенами. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Отрисовывает токен и даёт возможность кастомизировать внешний вид и поведение токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Событие изменения текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Отрисовывает кнопку добавления нового токена в выпадающем списке. */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Событие обработки ввода строки в поле ввода и последующая потеря фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задаёт типы вводимых данных. Передаёт браузеру информацию о том, какой набор символов показать при вводе данных в конкретное поле на устройствах с экранной клавиатурой. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: Array<TokenInputExtendedItem<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 type TokenInputExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n index: number,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/** Поле с токенами — это поле ввода со списком подсказок. Значения в поле отображаются в виде отдельных токенов — компонент [Token](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-tokeninput-token--docs).\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: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private 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 private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n 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 * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n 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 maxHeight,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (this.isInputValueChanged || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = 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 const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n const container = maxHeight ? (\n <ScrollContainer\n scrollRef={this.scrollContainerRef}\n maxHeight={maxHeight}\n showScrollBar=\"always\"\n style={{ width: '100%' }}\n >\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введённое пользователем значение.\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems?.filter(isSimpleItem);\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems: allItems } = this.state;\n const autocompleteItems = allItems?.filter(isSimpleItem);\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 = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) =>\n isSimpleItem(item) ? !isSelectedItem(item) || isEditingItem(item) : true,\n );\n const autocompleteItemsUniqueSimple = autocompleteItemsUnique.filter(isSimpleItem);\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(autocompleteItemsUniqueSimple, 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 = autocompleteItemsUniqueSimple.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems: allItems, valueToString } = this.getProps();\n const selectedItems = allItems.filter(isSimpleItem);\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (\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, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\n );\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n\nfunction isSimpleItem<T>(item: TokenInputExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\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","_blink2","_ScrollContainer","_locale","_TokenInput2","_TokenInputReducer","_TokenInputMenu","_TextWidthHelper","_dec","_class","_TokenInput","TEMP_FAKE_FLAG","TokenInputType","exports","DefaultState","inputValue","reservedInputValue","undefined","autocompleteItems","activeTokens","editingTokenIndex","inFocus","loading","preventBlur","inputValueWidth","inputValueHeight","TokenInputDataTids","root","tokenInputMenu","label","defaultToKey","item","toString","identity","defaultRenderToken","_ref","index","isActive","onClick","onDoubleClick","onRemove","disabled","size","default","createElement","Token","key","TokenInput","locale","TokenInputLocaleHelper","rootNode","withSize","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","_textareaId","getUid","rootId","PopupIds","getRandomID","input","tokensInputMenu","textHelper","wrapper","scrollContainerRef","React","createRef","memoizedTokens","Map","isEqual","itemA","itemB","_this$getProps","getProps","itemToId","lodashIsEqual","hasValueInItems","items","value","_this$getProps2","valueToString","map","includes","some","inputRef","node","tokensInputMenuRef","textHelperRef","wrapperRef","dispatch","action","cb","setState","prevState","tokenInputReducer","handleInputFocus","event","type","onFocus","handleInputBlur","isBlurToMenu","handleOutsideBlur","_this$input","preventDefault","focus","preventScroll","globalObject","requestAnimationFrame","_this$input2","payload","onBlur","_this$state","allItems","filter","isSimpleItem","isEditingMode","finishTokenEdit","isTokenValueChanged","selectItem","isInputChanged","checkForUnexpectedInput","menuRef","document","_this$tokensInputMenu","menu","getRootNode","getMenuRef","relatedTarget","activeElement","contains","handleWrapperMouseDown","_this$wrapper","target","isClickOnToken","handleWrapperMouseUp","e","props","maxHeight","current","_this$input3","focusInput","scrollIntoView","behavior","block","handleCopy","isCursorVisible","_this$getProps3","selectedItems","delimiters","tokens","token","indexOf","sort","clipboardData","setData","join","handleInputPaste","WithReference","paste","getData","_this$getProps4","valueToItem","onValueChange","delimiter","stopPropagation","trim","split","RegExp","Boolean","newItems","tryGetItems","_ref2","_asyncToGenerator2","_regenerator","mark","_callee","query","_this$getProps5","isSelectedItem","isEditingItem","autocompleteItemsUnique","autocompleteItemsUniqueSimple","editingItem","selectItemIndex","wrap","_callee$","_context","prev","next","getItems","isInputValueChanged","hideMenuIfEmptyInputValue","sent","unshift","emit","highlightMenuItem","findIndex","toLowerCase","setTimeout","_this$menuRef","highlightItem","stop","_x","handleKeyDown","onKeyDown","defaultPrevented","handleInputKeyDown","handleWrapperKeyDown","_this$state$autocompl","_this$state$autocompl2","_this$input4","_this$input5","isKeyComma","isKeyEnter","WithoutReference","newValue","handleAddItem","isRightmostTokenNotDisabled","isTokenDisabled","canSetValueToInput","showAddItemHint","enter","isKeyArrowVertical","isKeyArrowUp","up","down","isKeyEscape","blur","isKeyBackspace","moveFocusToLastToken","isKeyArrowLeft","selectionStart","getAvailableTokenIndex","itemNew","options","_this$input6","selectInputText","setSelectionRange","_this$wrapper2","_this$getProps6","isKeyDelete","indexOfActiveToken","itemsNew","_this$input7","isKeyArrowHorizontal","handleWrapperArrows","handleTokenEdit","isShortcutSelectAll","activeItemIndex","newItemIndex","isLeftEdge","isRightEdge","isKeyArrowRight","shiftKey","handleWrapperArrowsWithoutShift","handleWrapperArrowsWithShift","_this$input8","handleValueChange","_this$getProps7","handleRemoveToken","_","filteredActiveTokens","handleTokenClick","ctrlKey","_this$getProps8","_autocompleteItems$fi","_this$getProps9","_this$state2","editedItem","find","splice","onUnexpectedInput","returnedValue","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$input9","_this$input10","blink","el","blinkColor","theme","inputBlinkColor","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","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","onPaste","inner","Fragment","TextWidthHelper","text","TokenInputMenu","popupMenuId","opened","anchorElementForCursor","anchorElementRoot","reservedInput","container","ScrollContainer","inputPlaceholderScrollWrapper","scrollRef","showScrollBar","CommonWrapper","rootNodeRef","setRootNode","onMouseDown","onMouseUp","htmlFor","reset","parseFloat","getTextWidth","toFixed","getTextHeight","_createClass2","_this$props$id","_this$state$autocompl3","_this$state4","_this$getProps12","PureComponent","__KONTUR_REACT_UI__","displayName","renderValue","toKey","emptyHandler","isFunction","isValidElement"],"sources":["TokenInput.tsx"],"sourcesContent":["import type {\n AriaAttributes,\n ChangeEvent,\n FocusEvent,\n FocusEventHandler,\n HTMLAttributes,\n KeyboardEvent,\n KeyboardEventHandler,\n MouseEventHandler,\n ReactNode,\n} from 'react';\nimport React from 'react';\nimport lodashIsEqual from 'lodash.isequal';\nimport { 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 { isFunction, 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';\nimport { blink } from '../../lib/blink';\nimport { ScrollContainer } from '../ScrollContainer';\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 /** HTML-событие `onkeydown`. */\n onKeyDown?: KeyboardEventHandler<HTMLTextAreaElement>;\n\n /** Устанавливает фокус на поле с токенами после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Размер поля с токенами. */\n size?: TokenSize;\n\n /** Тип инпута.\n * Возможные значения:\n * - `TokenInputType.Combined` — в поле можно выбирать значения из справочника и добавлять свои значения.\n * - `TokenInputType.WithReference` — можно только выбрать значения из справочника, но нельзя добавлять свои.\n * - `TokenInputType.WithoutReference` — можно добавлять любые значения, но подсказок из справочника нет. */\n type?: TokenInputType;\n\n /** Ширина выпадающего списка. */\n menuWidth?: React.CSSProperties['width'];\n\n /** Выравнивание выпадающего списка. */\n menuAlign?: TokenInputMenuAlign;\n\n /** Задаёт функцию поиска значений, которая должна возвращать Promise с массивом значений. По умолчанию ожидаются строки.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `renderItem`, `valueToString`. */\n getItems?: (query: string) => Promise<Array<TokenInputExtendedItem<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 /** Возвращает строковое представление `value`. Необходимо при фокусировке.\n * @default item => item */\n valueToString?: (item: T) => string;\n\n /** Отрисовывает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им оборачиваются элементы, возвращаемые `getItems()`.\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы `renderTotalCount`. */\n totalCount?: number;\n\n /** Отрисовывает сообщение о пустом результате поиска. При `renderAddButton` не работает. */\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 /** Меняет визуальное отображение токена на состояние «ошибка». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n error?: boolean;\n\n /** Меняет визуальное отображение токена на состояние «предупреждение». Может быть полезен при разработке собственной валидации, если вы не используете пакет [React UI Validations](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui-validations_displaying-getting-started--docs). */\n warning?: boolean;\n\n /** Блокирует поле с токенами. */\n disabled?: boolean;\n\n /** Ширина поля с токенами. */\n width?: string | number;\n\n /** Максимальная высота выпадающего списка. */\n maxMenuHeight?: number | string;\n\n /** Отрисовывает токен и даёт возможность кастомизировать внешний вид и поведение токена. */\n renderToken?: (item: T, props: Partial<TokenProps>, index: number) => ReactNode;\n\n /** Событие изменения текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => void;\n\n /** Отрисовывает кнопку добавления нового токена в выпадающем списке. */\n renderAddButton?: (query?: string, onAddItem?: () => void) => ReactNode;\n\n /** Событие обработки ввода строки в поле ввода и последующая потеря фокуса компонентом.\n * Функция срабатывает с аргументом поля строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат `valueToString` с этим элементом будет совпадать со значением в текстовом поле, то сработает `onValueChange` со значением данного элемента.\n * Сама функция также может вернуть значение, не равное undefined, с которым будет вызван `onValueChange`. Если возвращаемое значение будет равно null, то сработает очистка текущего значения поля, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | undefined | T;\n\n /** Задаёт типы вводимых данных. Передаёт браузеру информацию о том, какой набор символов показать при вводе данных в конкретное поле на устройствах с экранной клавиатурой. */\n inputMode?: React.HTMLAttributes<HTMLTextAreaElement>['inputMode'];\n\n /**\n * Максимальная высота компонента. При её достижении появится скроллбар\n */\n maxHeight?: number;\n}\n\nexport interface TokenInputState<T> {\n autocompleteItems?: Array<TokenInputExtendedItem<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 type TokenInputExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\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 // eslint-disable-next-line @typescript-eslint/no-unused-vars\n index: number,\n) => (\n <Token\n key={item.toString()}\n isActive={isActive}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onRemove={onRemove}\n disabled={disabled}\n size={size}\n >\n {item.toString()}\n </Token>\n);\n\n/** Поле с токенами — это поле ввода со списком подсказок. Значения в поле отображаются в виде отдельных токенов — компонент [Token](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_input-data-tokeninput-token--docs).\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: identity,\n onValueChange: () => void 0,\n width: 250 as string | number,\n onBlur: emptyHandler,\n onFocus: emptyHandler,\n onMouseEnter: emptyHandler,\n onMouseLeave: emptyHandler,\n menuWidth: 'auto',\n menuAlign: 'cursor',\n };\n\n private getDelimiters(): string[] {\n const delimiters = this.props.delimiters ?? [];\n if (delimiters.every((delimiter) => delimiter !== TEMP_FAKE_FLAG)) {\n return delimiters;\n }\n return delimiters.filter((delimiter) => delimiter !== TEMP_FAKE_FLAG);\n }\n\n private getProps() {\n const propsGetter = createPropsGetter(TokenInput.defaultProps);\n const propsWithOldDelimiters = propsGetter.apply(this);\n return { ...propsWithOldDelimiters, delimiters: this.getDelimiters() };\n }\n\n private get textareaId() {\n return this.props.id ?? this._textareaId;\n }\n\n public state: TokenInputState<T> = DefaultState;\n\n private readonly _textareaId: string = getUid();\n private rootId = PopupIds.root + getRandomID();\n private readonly locale!: TokenInputLocale;\n private 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 private scrollContainerRef = React.createRef<HTMLDivElement>();\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private memoizedTokens = new Map();\n\n public componentDidMount() {\n this.updateInputTextWidth();\n 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 * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.\n * @public\n */\n public focus() {\n this.input?.focus();\n }\n\n /** Программно снимает фокус с поля.\n * @public\n */\n public blur() {\n this.input?.blur();\n }\n\n /** Кратковременно визуально подсвечивает поле ввода, чтобы привлечь внимание пользователя.\n * @public\n */\n public blink() {\n blink({ el: this.wrapper, blinkColor: this.theme.inputBlinkColor });\n }\n\n public render() {\n 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 maxHeight,\n } = this.props;\n\n const { selectedItems, width, onMouseEnter, onMouseLeave, menuWidth, menuAlign, renderItem } = this.getProps();\n\n const {\n activeTokens,\n inFocus,\n inputValueWidth,\n inputValueHeight,\n inputValue,\n reservedInputValue,\n autocompleteItems,\n loading,\n } = this.state;\n\n const showMenu =\n this.type !== TokenInputType.WithoutReference &&\n this.isCursorVisible &&\n activeTokens.length === 0 &&\n (this.isInputValueChanged || !hideMenuIfEmptyInputValue);\n\n const theme = this.theme;\n\n const inputInlineStyles: React.CSSProperties = {\n // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости\n width: inputValueWidth,\n height: inputValueHeight,\n // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее\n caretColor: this.isCursorVisible ? undefined : 'transparent',\n };\n\n const labelClassName = 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 const inner = (\n <>\n <TextWidthHelper ref={this.textHelperRef} text={inputValue} theme={this.theme} size={this.size} />\n {this.renderTokensStart()}\n {inputNode}\n {showMenu && (\n <TokenInputMenu\n popupMenuId={this.rootId}\n ref={this.tokensInputMenuRef}\n items={autocompleteItems}\n loading={loading}\n opened={showMenu}\n maxMenuHeight={maxMenuHeight}\n anchorElementForCursor={this.input}\n anchorElementRoot={this.wrapper}\n renderNotFound={renderNotFound}\n renderItem={renderItem}\n onValueChange={this.selectItem}\n renderAddButton={this.renderAddButton}\n menuWidth={menuWidth}\n menuAlign={menuAlign}\n renderTotalCount={renderTotalCount}\n totalCount={totalCount}\n size={this.size}\n />\n )}\n {this.renderTokensEnd()}\n {this.isEditingMode ? (\n <TokenView size={this.size}>\n <span className={styles.reservedInput(theme)}>{reservedInputValue}</span>\n </TokenView>\n ) : null}\n </>\n );\n\n const container = maxHeight ? (\n <ScrollContainer\n className={styles.inputPlaceholderScrollWrapper()}\n scrollRef={this.scrollContainerRef}\n maxHeight={maxHeight}\n showScrollBar=\"always\"\n style={{ width: '100%' }}\n >\n {inner}\n </ScrollContainer>\n ) : (\n inner\n );\n\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n <div data-tid={TokenInputDataTids.root} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <label\n ref={this.wrapperRef}\n style={{ width }}\n className={labelClassName}\n onMouseDown={this.handleWrapperMouseDown}\n onMouseUp={this.handleWrapperMouseUp}\n // Для корректной работы скролла приходится ломать связь label с полем ввода\n // Иначе любой клик внутри label вызывает фокус и автоскроллинг к полю ввода\n htmlFor={maxHeight ? 'fake-id' : this.textareaId}\n aria-controls={this.rootId}\n data-tid={TokenInputDataTids.label}\n >\n {container}\n </label>\n </div>\n </CommonWrapper>\n );\n }\n\n /**\n * Сбрасывает введённое пользователем значение.\n * @public\n */\n public reset() {\n this.dispatch({ type: 'RESET' });\n }\n\n private isEqual = (itemA: T, itemB: T) => {\n const { itemToId } = this.getProps();\n return lodashIsEqual(itemToId(itemA), itemToId(itemB));\n };\n\n private hasValueInItems = (items: T[], value: string | T) => {\n const { valueToString } = this.getProps();\n if (typeof value === 'string') {\n return items.map((item) => valueToString(item)).includes(value);\n }\n\n return items.some((item) => this.isEqual(item, value));\n };\n\n private get showAddItemHint() {\n const items = this.state.autocompleteItems?.filter(isSimpleItem);\n const value = this.getProps().valueToItem(this.state.inputValue);\n if (items && this.hasValueInItems(items, value)) {\n return false;\n }\n\n const selectedItems = this.getProps().selectedItems;\n if (selectedItems && this.hasValueInItems(selectedItems, value)) {\n return false;\n }\n\n if (this.type === TokenInputType.Combined && this.isInputValueChanged) {\n return true;\n }\n }\n\n private get type() {\n return this.props.type ? this.props.type : TokenInputType.WithReference;\n }\n\n private get menuRef(): Menu | null {\n return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();\n }\n\n private get isCursorVisible() {\n return this.isCursorVisibleForState(this.state);\n }\n\n private get isEditingMode() {\n return this.state.editingTokenIndex > -1;\n }\n\n private isCursorVisibleForState(state: TokenInputState<T>) {\n return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);\n }\n\n private inputRef = (node: HTMLTextAreaElement) => (this.input = node);\n private tokensInputMenuRef = (node: TokenInputMenu<T>) => (this.tokensInputMenu = node);\n private textHelperRef = (node: TextWidthHelper) => (this.textHelper = node);\n private wrapperRef = (node: HTMLLabelElement) => (this.wrapper = node);\n\n private dispatch = (action: TokenInputAction, cb?: () => void) => {\n this.setState((prevState) => tokenInputReducer(prevState, action), cb);\n };\n\n private updateInputTextWidth() {\n if (this.textHelper) {\n // в IE текст иногда не помещается в input\n // из-за округления, поэтому округляем явно\n const inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));\n const inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));\n\n this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);\n this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);\n }\n }\n\n private handleInputFocus = (event: FocusEvent<HTMLTextAreaElement>) => {\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.getProps().onFocus(event);\n };\n\n private handleInputBlur = (event: FocusEvent<HTMLTextAreaElement>) => {\n const isBlurToMenu = this.isBlurToMenu(event);\n\n if (!isBlurToMenu) {\n this.handleOutsideBlur();\n }\n\n if (isBlurToMenu || this.state.preventBlur) {\n event.preventDefault();\n // первый focus нужен для предотвращения/уменьшения моргания в других браузерах\n this.input?.focus({ preventScroll: true });\n // в firefox не работает без второго focus\n globalObject.requestAnimationFrame?.(() => this.input?.focus({ preventScroll: true }));\n\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n } else {\n this.dispatch({ type: 'BLUR' });\n this.getProps().onBlur(event);\n }\n };\n\n private handleOutsideBlur = () => {\n const { inputValue, autocompleteItems: allItems } = this.state;\n const autocompleteItems = allItems?.filter(isSimpleItem);\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 = (e: React.MouseEvent<HTMLElement>) => {\n // Имитируем поведение label, когда задан maxHeight.\n if (\n this.props.maxHeight &&\n e.target === this.scrollContainerRef.current &&\n (this.state.activeTokens.length !== 0 || !this.state.inFocus)\n ) {\n this.dispatch({ type: 'BLUR' });\n this.dispatch({ type: 'SET_FOCUS_IN' });\n this.focusInput();\n this.input?.scrollIntoView({ behavior: 'auto', block: 'center' });\n }\n this.dispatch({ type: 'SET_PREVENT_BLUR', payload: false });\n };\n\n private handleCopy = (event: any) => {\n if (!this.state.inFocus || this.state.activeTokens.length === 0 || this.isCursorVisible) {\n return;\n }\n event.preventDefault();\n const { selectedItems, valueToString, delimiters } = this.getProps();\n // упорядочивание токенов по индексу\n const tokens = this.state.activeTokens\n .map((token) => selectedItems.indexOf(token))\n .sort()\n .map((index) => selectedItems[index])\n .map((item) => valueToString(item));\n event.clipboardData.setData('text/plain', tokens.join(delimiters[0]));\n };\n\n private handleInputPaste = (event: React.ClipboardEvent<HTMLElement>) => {\n if (this.type === TokenInputType.WithReference || !event.clipboardData) {\n return;\n }\n const paste = event.clipboardData.getData('text');\n const { delimiters, selectedItems, valueToItem, onValueChange } = this.getProps();\n if (delimiters.some((delimiter) => paste.includes(delimiter))) {\n event.preventDefault();\n event.stopPropagation();\n const tokens = paste.trim().split(new RegExp(`[${delimiters.join('')}]+`));\n const items = tokens\n .filter(Boolean)\n .map((token) => valueToItem(token))\n .filter((item) => item && !this.hasValueInItems(selectedItems, item));\n const newItems = selectedItems.concat(items);\n onValueChange(newItems);\n\n this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });\n this.tryGetItems();\n }\n };\n\n private tryGetItems = async (query = '') => {\n if (this.props.getItems && (this.isInputValueChanged || !this.props.hideMenuIfEmptyInputValue)) {\n this.dispatch({ type: 'SET_LOADING', payload: true });\n const autocompleteItems = await this.props.getItems(query);\n this.dispatch({ type: 'SET_LOADING', payload: false });\n\n const { selectedItems, valueToItem, valueToString } = this.getProps();\n const isSelectedItem = (item: T) => this.hasValueInItems(selectedItems, item);\n const isEditingItem = (item: T) => {\n const editingItem = selectedItems[this.state.editingTokenIndex];\n return !!editingItem && this.isEqual(item, editingItem);\n };\n\n const autocompleteItemsUnique = autocompleteItems.filter((item) =>\n isSimpleItem(item) ? !isSelectedItem(item) || isEditingItem(item) : true,\n );\n const autocompleteItemsUniqueSimple = autocompleteItemsUnique.filter(isSimpleItem);\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(autocompleteItemsUniqueSimple, 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 = autocompleteItemsUniqueSimple.findIndex(\n (item) => valueToString(item).toLowerCase() === this.state.inputValue.toLowerCase(),\n );\n setTimeout(() => this.menuRef?.highlightItem(selectItemIndex < 0 ? 0 : selectItemIndex), 0);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent<HTMLTextAreaElement>) => {\n this.props.onKeyDown?.(event);\n\n if (event.defaultPrevented) {\n return;\n }\n\n if (this.isCursorVisible) {\n this.handleInputKeyDown(event);\n } else {\n this.handleWrapperKeyDown(event);\n }\n };\n\n private handleInputKeyDown = (e: KeyboardEvent<HTMLTextAreaElement>) => {\n e.stopPropagation();\n\n if (\n (this.type !== TokenInputType.WithReference &&\n this.getProps().delimiters.some((key) => key === e.key || (key === ',' && isKeyComma(e)))) ||\n (isKeyEnter(e) && this.type === TokenInputType.WithoutReference)\n ) {\n e.preventDefault();\n const newValue = this.state.inputValue;\n if (newValue !== '') {\n if (this.isEditingMode) {\n this.finishTokenEdit();\n } else {\n this.handleAddItem();\n }\n }\n }\n const isRightmostTokenNotDisabled = !this.isTokenDisabled(this.getProps().selectedItems.length - 1);\n const canSetValueToInput = this.showAddItemHint || (this.state.autocompleteItems?.length ?? 0) > 0;\n\n switch (true) {\n case isKeyEnter(e):\n if (canSetValueToInput && this.menuRef) {\n this.menuRef.enter(e);\n }\n // don't allow textarea\n // became multiline\n e.preventDefault();\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n if (this.menuRef) {\n if (isKeyArrowUp(e)) {\n this.menuRef.up();\n } else {\n this.menuRef.down();\n }\n }\n break;\n case isKeyEscape(e):\n this.input?.blur();\n break;\n case isKeyBackspace(e):\n if (!this.isEditingMode && isRightmostTokenNotDisabled) {\n this.moveFocusToLastToken();\n }\n break;\n case isKeyArrowLeft(e):\n if (this.input?.selectionStart === 0) {\n const index = this.getAvailableTokenIndex(this.getProps().selectedItems.length);\n const itemNew = this.getProps().selectedItems[index];\n if (itemNew) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n }\n break;\n }\n };\n\n private moveFocusToLastToken() {\n const items = this.getProps().selectedItems;\n if (this.state.inputValue === '' && items && items.length > 0) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });\n }\n }\n\n private focusInput = (options?: FocusOptions) => {\n globalObject.requestAnimationFrame?.(() => this.input?.focus(options));\n };\n\n private selectInputText = () => {\n if (this.input) {\n this.input.setSelectionRange(0, this.state.inputValue.length);\n }\n };\n\n private handleWrapperKeyDown = (e: KeyboardEvent<HTMLElement>) => {\n const { selectedItems, onValueChange } = this.getProps();\n switch (true) {\n case isKeyBackspace(e):\n case isKeyDelete(e): {\n const indexOfActiveToken = this.getProps().selectedItems.indexOf(\n this.state.activeTokens[this.state.activeTokens.length - 1],\n );\n if (!this.isEditingMode && !this.isTokenDisabled(indexOfActiveToken)) {\n const itemsNew = selectedItems.filter((item) => !this.hasValueInItems(this.state.activeTokens, item));\n onValueChange(itemsNew);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => {\n LayoutEvents.emit();\n this.input?.focus();\n });\n }\n break;\n }\n case isKeyArrowHorizontal(e):\n this.handleWrapperArrows(e);\n break;\n case isKeyEscape(e):\n this.wrapper?.blur();\n break;\n case isKeyEnter(e):\n e.preventDefault();\n if (this.state.activeTokens.length === 1) {\n this.handleTokenEdit(this.state.activeTokens[0]);\n }\n break;\n case isShortcutSelectAll(e):\n e.preventDefault();\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: selectedItems.filter((item) => !this.isTokenDisabled(selectedItems.indexOf(item))),\n });\n break;\n }\n };\n\n private handleWrapperArrows = (e: KeyboardEvent<HTMLElement>) => {\n e.preventDefault();\n const selectedItems = this.getProps().selectedItems;\n const activeTokens = this.state.activeTokens;\n const activeItemIndex = selectedItems.indexOf(activeTokens[0]);\n const newItemIndex = this.getAvailableTokenIndex(activeItemIndex, isKeyArrowLeft(e));\n const isLeftEdge = activeItemIndex === 0 && isKeyArrowLeft(e);\n const isRightEdge = newItemIndex === selectedItems.length && isKeyArrowRight(e);\n if (!e.shiftKey && activeTokens.length === 1) {\n this.handleWrapperArrowsWithoutShift(isLeftEdge, isRightEdge, newItemIndex);\n } else {\n this.handleWrapperArrowsWithShift(isLeftEdge, isRightEdge, newItemIndex);\n }\n };\n\n private handleWrapperArrowsWithoutShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (isRightEdge) {\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' }, () => this.input?.focus());\n } else if (!isLeftEdge) {\n this.dispatch({\n type: 'SET_ACTIVE_TOKENS',\n payload: [this.getProps().selectedItems[newItemIndex]],\n });\n }\n };\n\n private handleWrapperArrowsWithShift = (isLeftEdge: boolean, isRightEdge: boolean, newItemIndex: number) => {\n if (!isLeftEdge && !isRightEdge) {\n const itemNew = this.getProps().selectedItems[newItemIndex];\n const itemsNew = [itemNew, ...this.state.activeTokens.filter((item) => !this.isEqual(item, itemNew))];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: itemsNew });\n }\n };\n\n private handleValueChange = (items: T[]) => {\n this.getProps().onValueChange(items);\n };\n\n private handleAddItem = () => {\n const item = this.getProps().valueToItem(this.state.inputValue);\n if (item) {\n this.selectItem(item);\n }\n };\n\n private selectItem = (item: T) => {\n const { selectedItems: allItems, valueToString } = this.getProps();\n const selectedItems = allItems.filter(isSimpleItem);\n if (this.isEditingMode) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(item) }, this.finishTokenEdit);\n } else if (!this.hasValueInItems(selectedItems, item)) {\n this.handleValueChange(selectedItems.concat([item]));\n this.dispatch({ type: 'CLEAR_INPUT' });\n this.tryGetItems();\n }\n };\n\n private handleRemoveToken = (item: T) => {\n this.props.onValueChange?.(this.getProps().selectedItems.filter((_) => !this.isEqual(_, item)));\n const filteredActiveTokens = this.state.activeTokens.filter((_) => !this.isEqual(_, item));\n\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: filteredActiveTokens });\n if (filteredActiveTokens.length === 0) {\n this.focusInput({ preventScroll: true });\n }\n\n this.tryGetItems();\n };\n\n private handleTokenClick = (event: React.MouseEvent<HTMLElement>, itemNew: T) => {\n const items = this.state.activeTokens;\n if (event.ctrlKey) {\n const newItems = this.hasValueInItems(this.state.activeTokens, itemNew)\n ? items.filter((item) => !this.isEqual(item, itemNew))\n : [...items, itemNew];\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: newItems });\n } else {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [itemNew] });\n }\n this.focusInput({ preventScroll: true });\n };\n\n private handleTokenEdit = (itemNew: T) => {\n const { selectedItems, valueToString } = this.getProps();\n const editingTokenIndex = selectedItems.findIndex((item) => item === itemNew);\n this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });\n\n if (this.isInputValueChanged) {\n if (this.state.reservedInputValue === undefined) {\n this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: this.state.inputValue });\n }\n }\n this.dispatch({ type: 'UPDATE_QUERY', payload: valueToString(itemNew) }, this.selectInputText);\n this.dispatch({ type: 'REMOVE_ALL_ACTIVE_TOKENS' });\n\n this.tryGetItems();\n };\n\n private finishTokenEdit = () => {\n const { selectedItems, valueToString } = this.getProps();\n const { editingTokenIndex, inputValue, reservedInputValue, autocompleteItems } = this.state;\n\n const editedItem =\n autocompleteItems?.find((item) => valueToString(item) === inputValue) ?? this.getProps().valueToItem(inputValue);\n\n const newItems = selectedItems.concat([]);\n\n if (!this.hasValueInItems(selectedItems, editedItem)) {\n newItems.splice(editingTokenIndex, 1, ...(this.isInputValueChanged ? [editedItem] : []));\n this.handleValueChange(newItems);\n }\n\n this.dispatch({ type: 'REMOVE_EDITING_TOKEN_INDEX' });\n\n if (reservedInputValue) {\n this.dispatch({ type: 'UPDATE_QUERY', payload: reservedInputValue });\n this.dispatch({ type: 'REMOVE_TEMPORARY_QUERY' });\n } else {\n this.dispatch({ type: 'CLEAR_INPUT' });\n }\n\n if (newItems.length === selectedItems.length) {\n this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: [newItems[editingTokenIndex]] });\n }\n };\n\n private checkForUnexpectedInput = () => {\n const { inputValue } = this.state;\n const { onUnexpectedInput } = this.props;\n\n // чекаем не возвращает ли что-нибудь обработчик\n const returnedValue = onUnexpectedInput?.(inputValue);\n\n if (returnedValue === undefined) {\n if (\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, index: number) => {\n const { renderToken = defaultRenderToken, disabled } = this.props;\n\n const isActive = this.state.activeTokens.includes(item);\n\n // TODO useCallback\n const handleIconClick: React.MouseEventHandler<HTMLElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleRemoveToken(item);\n }\n };\n\n // TODO useCallback\n const handleTokenClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode) {\n this.handleTokenClick(event, item);\n }\n };\n\n const handleTokenDoubleClick: React.MouseEventHandler<HTMLDivElement> = (event) => {\n event.stopPropagation();\n if (!this.isEditingMode && !disabled) {\n this.handleTokenEdit(item);\n }\n };\n\n const renderedToken = renderToken(\n item as T & AnyObject,\n {\n size: this.size,\n isActive,\n onClick: handleTokenClick,\n onDoubleClick: handleTokenDoubleClick,\n onRemove: handleIconClick,\n disabled,\n },\n index,\n );\n\n this.memoizedTokens.set(this.props.selectedItems?.indexOf(item), renderedToken);\n return renderedToken;\n };\n\n private renderAddButton = (value = this.state.inputValue): React.ReactNode | undefined => {\n if (!this.showAddItemHint) {\n return;\n }\n\n if (this.props.renderAddButton) {\n return this.props.renderAddButton(value, this.handleAddItem);\n }\n\n const { addButtonComment, addButtonTitle } = this.locale;\n\n return (\n <MenuItem onClick={this.handleAddItem} comment={addButtonComment} key=\"renderAddButton\">\n {addButtonTitle} {value}\n </MenuItem>\n );\n };\n\n private isTokenDisabled = (itemIndex: number) => {\n let renderedToken;\n if (this.memoizedTokens.has(itemIndex)) {\n renderedToken = this.memoizedTokens.get(itemIndex);\n } else if (itemIndex < 0 || itemIndex > this.getProps().selectedItems.length - 1) {\n return false;\n } else {\n renderedToken = this.renderToken(this.getProps().selectedItems[itemIndex], itemIndex) as React.ReactElement<\n TokenInputProps<unknown>\n >;\n }\n return renderedToken.props.disabled;\n };\n\n private getAvailableTokenIndex = (startIndex: number, isDirectionLeft = true) => {\n const { selectedItems } = this.getProps();\n const step = isDirectionLeft ? -1 : +1;\n let availableIndex = startIndex + step;\n\n while (this.isTokenDisabled(availableIndex)) {\n availableIndex += step;\n if (availableIndex === selectedItems.length) {\n return availableIndex;\n } else if (availableIndex === -1) {\n return startIndex;\n }\n }\n\n return availableIndex;\n };\n}\n\nfunction isSimpleItem<T>(item: TokenInputExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"],"mappings":";;;;;;;;;;;AAWA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;AAEA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;;;;;;;;;;;;;AAaA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;;;AAGA,IAAAO,MAAA,GAAAP,OAAA;;AAEA,IAAAQ,SAAA,GAAAR,OAAA;;AAEA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;;AAEA,IAAAW,WAAA,GAAAX,OAAA;;AAEA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;;AAEA,IAAAc,SAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;AACA,IAAAgB,SAAA,GAAAhB,OAAA;AACA,IAAAiB,UAAA,GAAAjB,OAAA;;AAEA,IAAAkB,oBAAA,GAAAlB,OAAA;AACA,IAAAmB,cAAA,GAAAnB,OAAA;;AAEA,IAAAoB,OAAA,GAAApB,OAAA;AACA,IAAAqB,gBAAA,GAAArB,OAAA;;;AAGA,IAAAsB,OAAA,GAAAtB,OAAA;AACA,IAAAuB,YAAA,GAAAvB,OAAA;;AAEA,IAAAwB,kBAAA,GAAAxB,OAAA;AACA,IAAAyB,eAAA,GAAAzB,OAAA;AACA,IAAA0B,gBAAA,GAAA1B,OAAA,sBAAoD,IAAA2B,IAAA,EAAAC,MAAA,EAAAC,WAAA;;AAEpD,IAAMC,cAAc,GAAG,gBAAgB,CAAC;;AAE5BC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc,GAAdA,cAAc,CAAdA,cAAc,yCAAdA,cAAc,CAAdA,cAAc,+CAAdA,cAAc,CAAdA,cAAc,sCAAdA,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2JnB,IAAME,YAAY,GAAAD,OAAA,CAAAC,YAAA,GAAG;EAC1BC,UAAU,EAAE,EAAE;EACdC,kBAAkB,EAAEC,SAAS;EAC7BC,iBAAiB,EAAED,SAAS;EAC5BE,YAAY,EAAE,EAAE;EAChBC,iBAAiB,EAAE,CAAC,CAAC;EACrBC,OAAO,EAAE,KAAK;EACdC,OAAO,EAAE,KAAK;EACdC,WAAW,EAAE,KAAK;EAClBC,eAAe,EAAE,CAAC;EAClBC,gBAAgB,EAAE;AACpB,CAAC;;AAEM,IAAMC,kBAAkB,GAAAb,OAAA,CAAAa,kBAAA,GAAG;EAChCC,IAAI,EAAE,kBAAkB;EACxBC,cAAc,EAAE,sBAAsB;EACtCC,KAAK,EAAE;AACT,CAAU;;;;;;;;;;;;;;;;;;;;;;;;AAwBV,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAyBC,IAAO,UAAaA,IAAI,CAACC,QAAQ,CAAC,CAAC;AAC9E;AACA,IAAMC,QAAQ,GAAG,SAAXA,QAAQA,CAAuBF,IAAO,UAAQA,IAAI;AACxD,IAAMG,kBAAkB,GAAG,SAArBA,kBAAkBA;AACtBH,IAAO,EAAAI,IAAA;;;AAGPC,KAAa,OAFXC,QAAQ,GAAAF,IAAA,CAARE,QAAQ,CAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO,CAAEC,aAAa,GAAAJ,IAAA,CAAbI,aAAa,CAAEC,QAAQ,GAAAL,IAAA,CAARK,QAAQ,CAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ,CAAEC,IAAI,GAAAP,IAAA,CAAJO,IAAI;;IAI5D/D,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACxD,MAAA,CAAAyD,KAAK;MACJC,GAAG,EAAEf,IAAI,CAACC,QAAQ,CAAC,CAAE;MACrBK,QAAQ,EAAEA,QAAS;MACnBC,OAAO,EAAEA,OAAQ;MACjBC,aAAa,EAAEA,aAAc;MAC7BC,QAAQ,EAAEA,QAAS;MACnBC,QAAQ,EAAEA,QAAS;MACnBC,IAAI,EAAEA,IAAK;;IAEVX,IAAI,CAACC,QAAQ,CAAC;IACV,CAAC,GACT;;;AAED;AACA,GADA;;;;AAKae,UAAU,GAAAlC,OAAA,CAAAkC,UAAA,IAAAvC,IAAA,GAFtB,IAAAwC,kBAAM,EAAC,YAAY,EAAEC,8BAAsB,CAAC,MAD5CC,kBAAQ,EAAAzC,MAAA,GAAAD,IAAA,CAAAC,MAAA,OAER0C,uBAAQ,EAAA1C,MAAA,IAAAC,WAAA,0BAAA0C,oBAAA,YAAAL,WAAA,OAAAM,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,oBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,oBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2CAU,KAAK,GAAuBjD,YAAY,CAAAuC,KAAA;;IAE9BW,WAAW,GAAW,IAAAC,gBAAM,EAAC,CAAC,CAAAZ,KAAA;IACvCa,MAAM,GAAGC,eAAQ,CAACxC,IAAI,GAAG,IAAAyC,kBAAW,EAAC,CAAC,CAAAf,KAAA;;;;;IAKtCgB,KAAK,GAA+B,IAAI,CAAAhB,KAAA;IACxCiB,eAAe,GAA6B,IAAI,CAAAjB,KAAA;IAChDkB,UAAU,GAA2B,IAAI,CAAAlB,KAAA;IACzCmB,OAAO,GAA4B,IAAI,CAAAnB,KAAA;IACvCoB,kBAAkB,gBAAGC,cAAK,CAACC,SAAS,CAAiB,CAAC,CAAAtB,KAAA;;;IAGtDuB,cAAc,GAAG,IAAIC,GAAG,CAAC,CAAC,CAAAxB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4Q1ByB,OAAO,GAAG,UAACC,KAAQ,EAAEC,KAAQ,EAAK;MACxC,IAAAC,cAAA,GAAqB5B,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAA5BC,QAAQ,GAAAF,cAAA,CAARE,QAAQ;MAChB,OAAO,IAAAC,eAAa,EAACD,QAAQ,CAACJ,KAAK,CAAC,EAAEI,QAAQ,CAACH,KAAK,CAAC,CAAC;IACxD,CAAC,CAAA3B,KAAA;;IAEOgC,eAAe,GAAG,UAACC,KAAU,EAAEC,KAAiB,EAAK;MAC3D,IAAAC,eAAA,GAA0BnC,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAjCO,aAAa,GAAAD,eAAA,CAAbC,aAAa;MACrB,IAAI,OAAOF,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAOD,KAAK,CAACI,GAAG,CAAC,UAAC3D,IAAI,UAAK0D,aAAa,CAAC1D,IAAI,CAAC,GAAC,CAAC4D,QAAQ,CAACJ,KAAK,CAAC;MACjE;;MAEA,OAAOD,KAAK,CAACM,IAAI,CAAC,UAAC7D,IAAI,UAAKsB,KAAA,CAAKyB,OAAO,CAAC/C,IAAI,EAAEwD,KAAK,CAAC,GAAC;IACxD,CAAC,CAAAlC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuCOwC,QAAQ,GAAG,UAACC,IAAyB,UAAMzC,KAAA,CAAKgB,KAAK,GAAGyB,IAAI,EAAC,CAAAzC,KAAA;IAC7D0C,kBAAkB,GAAG,UAACD,IAAuB,UAAMzC,KAAA,CAAKiB,eAAe,GAAGwB,IAAI,EAAC,CAAAzC,KAAA;IAC/E2C,aAAa,GAAG,UAACF,IAAqB,UAAMzC,KAAA,CAAKkB,UAAU,GAAGuB,IAAI,EAAC,CAAAzC,KAAA;IACnE4C,UAAU,GAAG,UAACH,IAAsB,UAAMzC,KAAA,CAAKmB,OAAO,GAAGsB,IAAI,EAAC,CAAAzC,KAAA;;IAE9D6C,QAAQ,GAAG,UAACC,MAAwB,EAAEC,EAAe,EAAK;MAChE/C,KAAA,CAAKgD,QAAQ,CAAC,UAACC,SAAS,UAAK,IAAAC,oCAAiB,EAACD,SAAS,EAAEH,MAAM,CAAC,IAAEC,EAAE,CAAC;IACxE,CAAC,CAAA/C,KAAA;;;;;;;;;;;;;;IAcOmD,gBAAgB,GAAG,UAACC,KAAsC,EAAK;MACrEpD,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;MACvCrD,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACyB,OAAO,CAACF,KAAK,CAAC;IAChC,CAAC,CAAApD,KAAA;;IAEOuD,eAAe,GAAG,UAACH,KAAsC,EAAK;MACpE,IAAMI,YAAY,GAAGxD,KAAA,CAAKwD,YAAY,CAACJ,KAAK,CAAC;;MAE7C,IAAI,CAACI,YAAY,EAAE;QACjBxD,KAAA,CAAKyD,iBAAiB,CAAC,CAAC;MAC1B;;MAEA,IAAID,YAAY,IAAIxD,KAAA,CAAKU,KAAK,CAACxC,WAAW,EAAE,KAAAwF,WAAA;QAC1CN,KAAK,CAACO,cAAc,CAAC,CAAC;QACtB;QACA,CAAAD,WAAA,GAAA1D,KAAA,CAAKgB,KAAK,aAAV0C,WAAA,CAAYE,KAAK,CAAC,EAAEC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;QAC1C;QACAC,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,iBAAAC,YAAA,SAAAA,YAAA,GAAMhE,KAAA,CAAKgB,KAAK,qBAAVgD,YAAA,CAAYJ,KAAK,CAAC,EAAEC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,GAAC;;QAEtF7D,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,kBAAkB,EAAEY,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;MAC7D,CAAC,MAAM;QACLjE,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/BrD,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACqC,MAAM,CAACd,KAAK,CAAC;MAC/B;IACF,CAAC,CAAApD,KAAA;;IAEOyD,iBAAiB,GAAG,YAAM;MAChC,IAAAU,WAAA,GAAoDnE,KAAA,CAAKU,KAAK,CAAtDhD,UAAU,GAAAyG,WAAA,CAAVzG,UAAU,CAAqB0G,QAAQ,GAAAD,WAAA,CAA3BtG,iBAAiB;MACrC,IAAMA,iBAAiB,GAAGuG,QAAQ,oBAARA,QAAQ,CAAEC,MAAM,CAACC,YAAY,CAAC;;MAExD,IAAI5G,UAAU,KAAK,EAAE,EAAE;QACrB;QACA,IAAIsC,KAAA,CAAKuE,aAAa,EAAE;UACtBvE,KAAA,CAAKwE,eAAe,CAAC,CAAC;QACxB;QACA;MACF;;MAEA;MACA,IAAIxE,KAAA,CAAKuE,aAAa,IAAI,CAACvE,KAAA,CAAKyE,mBAAmB,EAAE;QACnDzE,KAAA,CAAKwE,eAAe,CAAC,CAAC;QACtB;MACF;;MAEA;MACA,IAAI3G,iBAAiB,IAAIA,iBAAiB,CAACsC,MAAM,KAAK,CAAC,EAAE;QACvD,IAAMzB,IAAI,GAAGb,iBAAiB,CAAC,CAAC,CAAC;;QAEjC,IAAImC,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACO,aAAa,CAAC1D,IAAI,CAAC,KAAKhB,UAAU,EAAE;UACtDsC,KAAA,CAAKuE,aAAa,GAAGvE,KAAA,CAAKwE,eAAe,CAAC,CAAC,GAAGxE,KAAA,CAAK0E,UAAU,CAAChG,IAAI,CAAC;;UAEnE;QACF;MACF;;MAEA,IAAIsB,KAAA,CAAK2E,cAAc,EAAE;QACvB3E,KAAA,CAAK4E,uBAAuB,CAAC,CAAC;MAChC;IACF,CAAC,CAAA5E,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2BOwD,YAAY,GAAG,UAACJ,KAA8B,EAAK;MACzD,IAAIpD,KAAA,CAAK6E,OAAO,IAAIf,0BAAY,CAACgB,QAAQ,EAAE,KAAAC,qBAAA;QACzC,IAAMC,IAAI,GAAG,IAAAC,qBAAW,GAAAF,qBAAA,GAAC/E,KAAA,CAAKiB,eAAe,qBAApB8D,qBAAA,CAAsBG,UAAU,CAAC,CAAC,CAAC;QAC5D,IAAMC,aAAa,GAAG/B,KAAK,CAAC+B,aAAa,IAAIrB,0BAAY,CAACgB,QAAQ,CAACM,aAAa;;QAEhF,IAAIJ,IAAI,IAAIA,IAAI,CAACK,QAAQ,CAACF,aAAa,CAAC,EAAE;UACxC,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IACd,CAAC,CAAAnF,KAAA;;IAEOsF,sBAAsB,GAAG,UAAClC,KAAoC,EAAK,KAAAmC,aAAA;MACzEvF,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,kBAAkB,EAAEY,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;MAC1D,IAAMuB,MAAM,GAAGpC,KAAK,CAACoC,MAAqB;MAC1C,IAAMC,cAAc,GAAGD,MAAM,MAAAD,aAAA,GAAIvF,KAAA,CAAKmB,OAAO,qBAAZoE,aAAA,CAAcF,QAAQ,CAACG,MAAM,CAAC,KAAIA,MAAM,KAAKxF,KAAA,CAAKmB,OAAO,IAAIqE,MAAM,KAAKxF,KAAA,CAAKgB,KAAK;MACnH,IAAI,CAACyE,cAAc,EAAE;QACnBzF,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC;MACrD;IACF,CAAC,CAAArD,KAAA;;IAEO0F,oBAAoB,GAAG,UAACC,CAAgC,EAAK;MACnE;MACA;MACE3F,KAAA,CAAK4F,KAAK,CAACC,SAAS;MACpBF,CAAC,CAACH,MAAM,KAAKxF,KAAA,CAAKoB,kBAAkB,CAAC0E,OAAO;MAC3C9F,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACqC,MAAM,KAAK,CAAC,IAAI,CAACH,KAAA,CAAKU,KAAK,CAAC1C,OAAO,CAAC;MAC7D,KAAA+H,YAAA;QACA/F,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/BrD,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;QACvCrD,KAAA,CAAKgG,UAAU,CAAC,CAAC;QACjB,CAAAD,YAAA,GAAA/F,KAAA,CAAKgB,KAAK,aAAV+E,YAAA,CAAYE,cAAc,CAAC,EAAEC,QAAQ,EAAE,MAAM,EAAEC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;MACnE;MACAnG,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,kBAAkB,EAAEY,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAAjE,KAAA;;IAEOoG,UAAU,GAAG,UAAChD,KAAU,EAAK;MACnC,IAAI,CAACpD,KAAA,CAAKU,KAAK,CAAC1C,OAAO,IAAIgC,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACqC,MAAM,KAAK,CAAC,IAAIH,KAAA,CAAKqG,eAAe,EAAE;QACvF;MACF;MACAjD,KAAK,CAACO,cAAc,CAAC,CAAC;MACtB,IAAA2C,eAAA,GAAqDtG,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAA5D0E,aAAa,GAAAD,eAAA,CAAbC,aAAa,CAAEnE,aAAa,GAAAkE,eAAA,CAAblE,aAAa,CAAEoE,UAAU,GAAAF,eAAA,CAAVE,UAAU;MAChD;MACA,IAAMC,MAAM,GAAGzG,KAAA,CAAKU,KAAK,CAAC5C,YAAY;MACnCuE,GAAG,CAAC,UAACqE,KAAK,UAAKH,aAAa,CAACI,OAAO,CAACD,KAAK,CAAC,GAAC;MAC5CE,IAAI,CAAC,CAAC;MACNvE,GAAG,CAAC,UAACtD,KAAK,UAAKwH,aAAa,CAACxH,KAAK,CAAC,GAAC;MACpCsD,GAAG,CAAC,UAAC3D,IAAI,UAAK0D,aAAa,CAAC1D,IAAI,CAAC,GAAC;MACrC0E,KAAK,CAACyD,aAAa,CAACC,OAAO,CAAC,YAAY,EAAEL,MAAM,CAACM,IAAI,CAACP,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,CAAAxG,KAAA;;IAEOgH,gBAAgB,GAAG,UAAC5D,KAAwC,EAAK;MACvE,IAAIpD,KAAA,CAAKqD,IAAI,KAAK9F,cAAc,CAAC0J,aAAa,IAAI,CAAC7D,KAAK,CAACyD,aAAa,EAAE;QACtE;MACF;MACA,IAAMK,KAAK,GAAG9D,KAAK,CAACyD,aAAa,CAACM,OAAO,CAAC,MAAM,CAAC;MACjD,IAAAC,eAAA,GAAkEpH,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAzE2E,UAAU,GAAAY,eAAA,CAAVZ,UAAU,CAAED,aAAa,GAAAa,eAAA,CAAbb,aAAa,CAAEc,WAAW,GAAAD,eAAA,CAAXC,WAAW,CAAEC,aAAa,GAAAF,eAAA,CAAbE,aAAa;MAC7D,IAAId,UAAU,CAACjE,IAAI,CAAC,UAACgF,SAAS,UAAKL,KAAK,CAAC5E,QAAQ,CAACiF,SAAS,CAAC,GAAC,EAAE;QAC7DnE,KAAK,CAACO,cAAc,CAAC,CAAC;QACtBP,KAAK,CAACoE,eAAe,CAAC,CAAC;QACvB,IAAMf,MAAM,GAAGS,KAAK,CAACO,IAAI,CAAC,CAAC,CAACC,KAAK,CAAC,IAAIC,MAAM,OAAKnB,UAAU,CAACO,IAAI,CAAC,EAAE,CAAC,OAAI,CAAC,CAAC;QAC1E,IAAM9E,KAAK,GAAGwE,MAAM;QACjBpC,MAAM,CAACuD,OAAO,CAAC;QACfvF,GAAG,CAAC,UAACqE,KAAK,UAAKW,WAAW,CAACX,KAAK,CAAC,GAAC;QAClCrC,MAAM,CAAC,UAAC3F,IAAI,UAAKA,IAAI,IAAI,CAACsB,KAAA,CAAKgC,eAAe,CAACuE,aAAa,EAAE7H,IAAI,CAAC,GAAC;QACvE,IAAMmJ,QAAQ,GAAGtB,aAAa,CAAC9F,MAAM,CAACwB,KAAK,CAAC;QAC5CqF,aAAa,CAACO,QAAQ,CAAC;;QAEvB7H,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,wBAAwB,EAAEY,OAAO,EAAErG,SAAS,CAAC,CAAC,CAAC;QACrEoC,KAAA,CAAK8H,WAAW,CAAC,CAAC;MACpB;IACF,CAAC,CAAA9H,KAAA;;IAEO8H,WAAW,iCAAAC,KAAA,OAAAC,kBAAA,CAAA1I,OAAA,gBAAA2I,YAAA,CAAA3I,OAAA,CAAA4I,IAAA,CAAG,SAAAC,QAAOC,KAAK,OAAAvK,iBAAA,EAAAwK,eAAA,EAAA9B,aAAA,EAAAc,WAAA,EAAAjF,aAAA,EAAAkG,cAAA,EAAAC,aAAA,EAAAC,uBAAA,EAAAC,6BAAA,EAAAC,WAAA,EAAAC,eAAA,QAAAV,YAAA,CAAA3I,OAAA,CAAAsJ,IAAA,UAAAC,SAAAC,QAAA,qBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA,cAALZ,KAAK,cAALA,KAAK,GAAG,EAAE;cACjCpI,KAAA,CAAK4F,KAAK,CAACqD,QAAQ,KAAKjJ,KAAA,CAAKkJ,mBAAmB,IAAI,CAAClJ,KAAA,CAAK4F,KAAK,CAACuD,yBAAyB,CAAC,IAAAL,QAAA,CAAAE,IAAA;cAC5FhJ,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,aAAa,EAAEY,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC6E,QAAA,CAAAE,IAAA;gBACtBhJ,KAAA,CAAK4F,KAAK,CAACqD,QAAQ,CAACb,KAAK,CAAC,SAApDvK,iBAAiB,GAAAiL,QAAA,CAAAM,IAAA;cACvBpJ,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,aAAa,EAAEY,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAACoE,eAAA;;cAEDrI,KAAA,CAAK6B,QAAQ,CAAC,CAAC,EAA7D0E,aAAa,GAAA8B,eAAA,CAAb9B,aAAa,EAAEc,WAAW,GAAAgB,eAAA,CAAXhB,WAAW,EAAEjF,aAAa,GAAAiG,eAAA,CAAbjG,aAAa;cAC3CkG,cAAc,GAAG,SAAjBA,cAAcA,CAAI5J,IAAO,UAAKsB,KAAA,CAAKgC,eAAe,CAACuE,aAAa,EAAE7H,IAAI,CAAC;cACvE6J,aAAa,GAAG,SAAhBA,aAAaA,CAAI7J,IAAO,EAAK;gBACjC,IAAMgK,WAAW,GAAGnC,aAAa,CAACvG,KAAA,CAAKU,KAAK,CAAC3C,iBAAiB,CAAC;gBAC/D,OAAO,CAAC,CAAC2K,WAAW,IAAI1I,KAAA,CAAKyB,OAAO,CAAC/C,IAAI,EAAEgK,WAAW,CAAC;cACzD,CAAC;;cAEKF,uBAAuB,GAAG3K,iBAAiB,CAACwG,MAAM,CAAC,UAAC3F,IAAI;kBAC5D4F,YAAY,CAAC5F,IAAI,CAAC,GAAG,CAAC4J,cAAc,CAAC5J,IAAI,CAAC,IAAI6J,aAAa,CAAC7J,IAAI,CAAC,GAAG,IAAI;cAC1E,CAAC;cACK+J,6BAA6B,GAAGD,uBAAuB,CAACnE,MAAM,CAACC,YAAY,CAAC;;cAElF,IAAItE,KAAA,CAAKuE,aAAa,EAAE;gBAChBmE,WAAW,GAAGnC,aAAa,CAACvG,KAAA,CAAKU,KAAK,CAAC3C,iBAAiB,CAAC;gBAC/D;gBACEiC,KAAA,CAAKyB,OAAO,CAACiH,WAAW,EAAErB,WAAW,CAACrH,KAAA,CAAKU,KAAK,CAAChD,UAAU,CAAC,CAAC;gBAC7D,CAACsC,KAAA,CAAKgC,eAAe,CAACyG,6BAA6B,EAAEC,WAAW,CAAC;gBACjE;kBACAF,uBAAuB,CAACa,OAAO,CAACX,WAAW,CAAC;gBAC9C;cACF;;cAEA,IAAIN,KAAK,KAAK,EAAE,IAAIpI,KAAA,CAAKkJ,mBAAmB,EAAE;gBAC5ClJ,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,wBAAwB,EAAEY,OAAO,EAAEuE,uBAAuB,CAAC,CAAC,EAAE,YAAM;kBACxF3M,YAAY,CAACyN,IAAI,CAAC,CAAC;kBACnBtJ,KAAA,CAAKuJ,iBAAiB,CAAC,CAAC;gBAC1B,CAAC,CAAC;cACJ;cACMZ,eAAe,GAAGF,6BAA6B,CAACe,SAAS;gBAC7D,UAAC9K,IAAI,UAAK0D,aAAa,CAAC1D,IAAI,CAAC,CAAC+K,WAAW,CAAC,CAAC,KAAKzJ,KAAA,CAAKU,KAAK,CAAChD,UAAU,CAAC+L,WAAW,CAAC,CAAC;cACrF,CAAC;cACDC,UAAU,CAAC,iBAAAC,aAAA,SAAAA,aAAA,GAAM3J,KAAA,CAAK6E,OAAO,qBAAZ8E,aAAA,CAAcC,aAAa,CAACjB,eAAe,GAAG,CAAC,GAAG,CAAC,GAAGA,eAAe,CAAC,IAAE,CAAC,CAAC,CAAC,0BAAAG,QAAA,CAAAe,IAAA,OAAA1B,OAAA,GAE/F,oBAAA2B,EAAA,UAAA/B,KAAA,CAAAvH,KAAA,OAAAN,SAAA,QAAAF,KAAA;;;;IAEO+J,aAAa,GAAG,UAAC3G,KAAyC,EAAK;MACrEpD,KAAA,CAAK4F,KAAK,CAACoE,SAAS,YAApBhK,KAAA,CAAK4F,KAAK,CAACoE,SAAS,CAAG5G,KAAK,CAAC;;MAE7B,IAAIA,KAAK,CAAC6G,gBAAgB,EAAE;QAC1B;MACF;;MAEA,IAAIjK,KAAA,CAAKqG,eAAe,EAAE;QACxBrG,KAAA,CAAKkK,kBAAkB,CAAC9G,KAAK,CAAC;MAChC,CAAC,MAAM;QACLpD,KAAA,CAAKmK,oBAAoB,CAAC/G,KAAK,CAAC;MAClC;IACF,CAAC,CAAApD,KAAA;;IAEOkK,kBAAkB,GAAG,UAACvE,CAAqC,EAAK,KAAAyE,qBAAA,EAAAC,sBAAA,EAAAC,YAAA,EAAAC,YAAA;MACtE5E,CAAC,CAAC6B,eAAe,CAAC,CAAC;;MAEnB;MACGxH,KAAA,CAAKqD,IAAI,KAAK9F,cAAc,CAAC0J,aAAa;MACzCjH,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC2E,UAAU,CAACjE,IAAI,CAAC,UAAC9C,GAAG,UAAKA,GAAG,KAAKkG,CAAC,CAAClG,GAAG,IAAKA,GAAG,KAAK,GAAG,IAAI,IAAA+K,uBAAU,EAAC7E,CAAC,CAAE,GAAC;MAC1F,IAAA8E,uBAAU,EAAC9E,CAAC,CAAC,IAAI3F,KAAA,CAAKqD,IAAI,KAAK9F,cAAc,CAACmN,gBAAiB;MAChE;QACA/E,CAAC,CAAChC,cAAc,CAAC,CAAC;QAClB,IAAMgH,QAAQ,GAAG3K,KAAA,CAAKU,KAAK,CAAChD,UAAU;QACtC,IAAIiN,QAAQ,KAAK,EAAE,EAAE;UACnB,IAAI3K,KAAA,CAAKuE,aAAa,EAAE;YACtBvE,KAAA,CAAKwE,eAAe,CAAC,CAAC;UACxB,CAAC,MAAM;YACLxE,KAAA,CAAK4K,aAAa,CAAC,CAAC;UACtB;QACF;MACF;MACA,IAAMC,2BAA2B,GAAG,CAAC7K,KAAA,CAAK8K,eAAe,CAAC9K,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACpG,MAAM,GAAG,CAAC,CAAC;MACnG,IAAM4K,kBAAkB,GAAG/K,KAAA,CAAKgL,eAAe,IAAI,EAAAZ,qBAAA,IAAAC,sBAAA,GAACrK,KAAA,CAAKU,KAAK,CAAC7C,iBAAiB,qBAA5BwM,sBAAA,CAA8BlK,MAAM,YAAAiK,qBAAA,GAAI,CAAC,IAAI,CAAC;;MAElG,QAAQ,IAAI;QACV,KAAK,IAAAK,uBAAU,EAAC9E,CAAC,CAAC;UAChB,IAAIoF,kBAAkB,IAAI/K,KAAA,CAAK6E,OAAO,EAAE;YACtC7E,KAAA,CAAK6E,OAAO,CAACoG,KAAK,CAACtF,CAAC,CAAC;UACvB;UACA;UACA;UACAA,CAAC,CAAChC,cAAc,CAAC,CAAC;UAClB;QACF,KAAK,IAAAuH,+BAAkB,EAACvF,CAAC,CAAC;UACxBA,CAAC,CAAChC,cAAc,CAAC,CAAC;UAClB,IAAI3D,KAAA,CAAK6E,OAAO,EAAE;YAChB,IAAI,IAAAsG,yBAAY,EAACxF,CAAC,CAAC,EAAE;cACnB3F,KAAA,CAAK6E,OAAO,CAACuG,EAAE,CAAC,CAAC;YACnB,CAAC,MAAM;cACLpL,KAAA,CAAK6E,OAAO,CAACwG,IAAI,CAAC,CAAC;YACrB;UACF;UACA;QACF,KAAK,IAAAC,wBAAW,EAAC3F,CAAC,CAAC;UACjB,CAAA2E,YAAA,GAAAtK,KAAA,CAAKgB,KAAK,aAAVsJ,YAAA,CAAYiB,IAAI,CAAC,CAAC;UAClB;QACF,KAAK,IAAAC,2BAAc,EAAC7F,CAAC,CAAC;UACpB,IAAI,CAAC3F,KAAA,CAAKuE,aAAa,IAAIsG,2BAA2B,EAAE;YACtD7K,KAAA,CAAKyL,oBAAoB,CAAC,CAAC;UAC7B;UACA;QACF,KAAK,IAAAC,2BAAc,EAAC/F,CAAC,CAAC;UACpB,IAAI,EAAA4E,YAAA,GAAAvK,KAAA,CAAKgB,KAAK,qBAAVuJ,YAAA,CAAYoB,cAAc,MAAK,CAAC,EAAE;YACpC,IAAM5M,KAAK,GAAGiB,KAAA,CAAK4L,sBAAsB,CAAC5L,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACpG,MAAM,CAAC;YAC/E,IAAM0L,OAAO,GAAG7L,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACxH,KAAK,CAAC;YACpD,IAAI8M,OAAO,EAAE;cACX7L,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAE,CAAC4H,OAAO,CAAC,CAAC,CAAC,CAAC;YAClE;UACF;UACA;MACJ;IACF,CAAC,CAAA7L,KAAA;;;;;;;;;IASOgG,UAAU,GAAG,UAAC8F,OAAsB,EAAK;MAC/ChI,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,iBAAAgI,YAAA,SAAAA,YAAA,GAAM/L,KAAA,CAAKgB,KAAK,qBAAV+K,YAAA,CAAYnI,KAAK,CAACkI,OAAO,CAAC,GAAC;IACxE,CAAC,CAAA9L,KAAA;;IAEOgM,eAAe,GAAG,YAAM;MAC9B,IAAIhM,KAAA,CAAKgB,KAAK,EAAE;QACdhB,KAAA,CAAKgB,KAAK,CAACiL,iBAAiB,CAAC,CAAC,EAAEjM,KAAA,CAAKU,KAAK,CAAChD,UAAU,CAACyC,MAAM,CAAC;MAC/D;IACF,CAAC,CAAAH,KAAA;;IAEOmK,oBAAoB,GAAG,UAACxE,CAA6B,EAAK,KAAAuG,cAAA;MAChE,IAAAC,eAAA,GAAyCnM,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAhD0E,aAAa,GAAA4F,eAAA,CAAb5F,aAAa,CAAEe,aAAa,GAAA6E,eAAA,CAAb7E,aAAa;MACpC,QAAQ,IAAI;QACV,KAAK,IAAAkE,2BAAc,EAAC7F,CAAC,CAAC;QACtB,KAAK,IAAAyG,wBAAW,EAACzG,CAAC,CAAC,CAAE;YACnB,IAAM0G,kBAAkB,GAAGrM,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACI,OAAO;cAC9D3G,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACkC,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACqC,MAAM,GAAG,CAAC;YAC5D,CAAC;YACD,IAAI,CAACH,KAAA,CAAKuE,aAAa,IAAI,CAACvE,KAAA,CAAK8K,eAAe,CAACuB,kBAAkB,CAAC,EAAE;cACpE,IAAMC,QAAQ,GAAG/F,aAAa,CAAClC,MAAM,CAAC,UAAC3F,IAAI,UAAK,CAACsB,KAAA,CAAKgC,eAAe,CAAChC,KAAA,CAAKU,KAAK,CAAC5C,YAAY,EAAEY,IAAI,CAAC,GAAC;cACrG4I,aAAa,CAACgF,QAAQ,CAAC;cACvBtM,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,0BAA0B,CAAC,CAAC,EAAE,YAAM,KAAAkJ,YAAA;gBACxD1Q,YAAY,CAACyN,IAAI,CAAC,CAAC;gBACnB,CAAAiD,YAAA,GAAAvM,KAAA,CAAKgB,KAAK,aAAVuL,YAAA,CAAY3I,KAAK,CAAC,CAAC;cACrB,CAAC,CAAC;YACJ;YACA;UACF;QACA,KAAK,IAAA4I,iCAAoB,EAAC7G,CAAC,CAAC;UAC1B3F,KAAA,CAAKyM,mBAAmB,CAAC9G,CAAC,CAAC;UAC3B;QACF,KAAK,IAAA2F,wBAAW,EAAC3F,CAAC,CAAC;UACjB,CAAAuG,cAAA,GAAAlM,KAAA,CAAKmB,OAAO,aAAZ+K,cAAA,CAAcX,IAAI,CAAC,CAAC;UACpB;QACF,KAAK,IAAAd,uBAAU,EAAC9E,CAAC,CAAC;UAChBA,CAAC,CAAChC,cAAc,CAAC,CAAC;UAClB,IAAI3D,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACqC,MAAM,KAAK,CAAC,EAAE;YACxCH,KAAA,CAAK0M,eAAe,CAAC1M,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAAC,CAAC,CAAC,CAAC;UAClD;UACA;QACF,KAAK,IAAA6O,gCAAmB,EAAChH,CAAC,CAAC;UACzBA,CAAC,CAAChC,cAAc,CAAC,CAAC;UAClB3D,KAAA,CAAK6C,QAAQ,CAAC;YACZQ,IAAI,EAAE,mBAAmB;YACzBY,OAAO,EAAEsC,aAAa,CAAClC,MAAM,CAAC,UAAC3F,IAAI,UAAK,CAACsB,KAAA,CAAK8K,eAAe,CAACvE,aAAa,CAACI,OAAO,CAACjI,IAAI,CAAC,CAAC;UAC5F,CAAC,CAAC;UACF;MACJ;IACF,CAAC,CAAAsB,KAAA;;IAEOyM,mBAAmB,GAAG,UAAC9G,CAA6B,EAAK;MAC/DA,CAAC,CAAChC,cAAc,CAAC,CAAC;MAClB,IAAM4C,aAAa,GAAGvG,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa;MACnD,IAAMzI,YAAY,GAAGkC,KAAA,CAAKU,KAAK,CAAC5C,YAAY;MAC5C,IAAM8O,eAAe,GAAGrG,aAAa,CAACI,OAAO,CAAC7I,YAAY,CAAC,CAAC,CAAC,CAAC;MAC9D,IAAM+O,YAAY,GAAG7M,KAAA,CAAK4L,sBAAsB,CAACgB,eAAe,EAAE,IAAAlB,2BAAc,EAAC/F,CAAC,CAAC,CAAC;MACpF,IAAMmH,UAAU,GAAGF,eAAe,KAAK,CAAC,IAAI,IAAAlB,2BAAc,EAAC/F,CAAC,CAAC;MAC7D,IAAMoH,WAAW,GAAGF,YAAY,KAAKtG,aAAa,CAACpG,MAAM,IAAI,IAAA6M,4BAAe,EAACrH,CAAC,CAAC;MAC/E,IAAI,CAACA,CAAC,CAACsH,QAAQ,IAAInP,YAAY,CAACqC,MAAM,KAAK,CAAC,EAAE;QAC5CH,KAAA,CAAKkN,+BAA+B,CAACJ,UAAU,EAAEC,WAAW,EAAEF,YAAY,CAAC;MAC7E,CAAC,MAAM;QACL7M,KAAA,CAAKmN,4BAA4B,CAACL,UAAU,EAAEC,WAAW,EAAEF,YAAY,CAAC;MAC1E;IACF,CAAC,CAAA7M,KAAA;;IAEOkN,+BAA+B,GAAG,UAACJ,UAAmB,EAAEC,WAAoB,EAAEF,YAAoB,EAAK;MAC7G,IAAIE,WAAW,EAAE;QACf/M,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,0BAA0B,CAAC,CAAC,EAAE,iBAAA+J,YAAA,SAAAA,YAAA,GAAMpN,KAAA,CAAKgB,KAAK,qBAAVoM,YAAA,CAAYxJ,KAAK,CAAC,CAAC,GAAC;MAChF,CAAC,MAAM,IAAI,CAACkJ,UAAU,EAAE;QACtB9M,KAAA,CAAK6C,QAAQ,CAAC;UACZQ,IAAI,EAAE,mBAAmB;UACzBY,OAAO,EAAE,CAACjE,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACsG,YAAY,CAAC;QACvD,CAAC,CAAC;MACJ;IACF,CAAC,CAAA7M,KAAA;;IAEOmN,4BAA4B,GAAG,UAACL,UAAmB,EAAEC,WAAoB,EAAEF,YAAoB,EAAK;MAC1G,IAAI,CAACC,UAAU,IAAI,CAACC,WAAW,EAAE;QAC/B,IAAMlB,OAAO,GAAG7L,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACsG,YAAY,CAAC;QAC3D,IAAMP,QAAQ,IAAIT,OAAO,EAAApL,MAAA,CAAKT,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACuG,MAAM,CAAC,UAAC3F,IAAI,UAAK,CAACsB,KAAA,CAAKyB,OAAO,CAAC/C,IAAI,EAAEmN,OAAO,CAAC,GAAC,CAAC;QACrG7L,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAEqI,QAAQ,CAAC,CAAC,CAAC;MACjE;IACF,CAAC,CAAAtM,KAAA;;IAEOqN,iBAAiB,GAAG,UAACpL,KAAU,EAAK;MAC1CjC,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACyF,aAAa,CAACrF,KAAK,CAAC;IACtC,CAAC,CAAAjC,KAAA;;IAEO4K,aAAa,GAAG,YAAM;MAC5B,IAAMlM,IAAI,GAAGsB,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACwF,WAAW,CAACrH,KAAA,CAAKU,KAAK,CAAChD,UAAU,CAAC;MAC/D,IAAIgB,IAAI,EAAE;QACRsB,KAAA,CAAK0E,UAAU,CAAChG,IAAI,CAAC;MACvB;IACF,CAAC,CAAAsB,KAAA;;IAEO0E,UAAU,GAAG,UAAChG,IAAO,EAAK;MAChC,IAAA4O,eAAA,GAAmDtN,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAA3CuC,QAAQ,GAAAkJ,eAAA,CAAvB/G,aAAa,CAAYnE,aAAa,GAAAkL,eAAA,CAAblL,aAAa;MAC9C,IAAMmE,aAAa,GAAGnC,QAAQ,CAACC,MAAM,CAACC,YAAY,CAAC;MACnD,IAAItE,KAAA,CAAKuE,aAAa,EAAE;QACtBvE,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,EAAEY,OAAO,EAAE7B,aAAa,CAAC1D,IAAI,CAAC,CAAC,CAAC,EAAEsB,KAAA,CAAKwE,eAAe,CAAC;MAC7F,CAAC,MAAM,IAAI,CAACxE,KAAA,CAAKgC,eAAe,CAACuE,aAAa,EAAE7H,IAAI,CAAC,EAAE;QACrDsB,KAAA,CAAKqN,iBAAiB,CAAC9G,aAAa,CAAC9F,MAAM,CAAC,CAAC/B,IAAI,CAAC,CAAC,CAAC;QACpDsB,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QACtCrD,KAAA,CAAK8H,WAAW,CAAC,CAAC;MACpB;IACF,CAAC,CAAA9H,KAAA;;IAEOuN,iBAAiB,GAAG,UAAC7O,IAAO,EAAK;MACvCsB,KAAA,CAAK4F,KAAK,CAAC0B,aAAa,YAAxBtH,KAAA,CAAK4F,KAAK,CAAC0B,aAAa,CAAGtH,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAAClC,MAAM,CAAC,UAACmJ,CAAC,UAAK,CAACxN,KAAA,CAAKyB,OAAO,CAAC+L,CAAC,EAAE9O,IAAI,CAAC,GAAC,CAAC;MAC/F,IAAM+O,oBAAoB,GAAGzN,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACuG,MAAM,CAAC,UAACmJ,CAAC,UAAK,CAACxN,KAAA,CAAKyB,OAAO,CAAC+L,CAAC,EAAE9O,IAAI,CAAC,GAAC;;MAE1FsB,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAEwJ,oBAAoB,CAAC,CAAC,CAAC;MAC3E,IAAIA,oBAAoB,CAACtN,MAAM,KAAK,CAAC,EAAE;QACrCH,KAAA,CAAKgG,UAAU,CAAC,EAAEnC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;MAC1C;;MAEA7D,KAAA,CAAK8H,WAAW,CAAC,CAAC;IACpB,CAAC,CAAA9H,KAAA;;IAEO0N,gBAAgB,GAAG,UAACtK,KAAoC,EAAEyI,OAAU,EAAK;MAC/E,IAAM5J,KAAK,GAAGjC,KAAA,CAAKU,KAAK,CAAC5C,YAAY;MACrC,IAAIsF,KAAK,CAACuK,OAAO,EAAE;QACjB,IAAM9F,QAAQ,GAAG7H,KAAA,CAAKgC,eAAe,CAAChC,KAAA,CAAKU,KAAK,CAAC5C,YAAY,EAAE+N,OAAO,CAAC;QACnE5J,KAAK,CAACoC,MAAM,CAAC,UAAC3F,IAAI,UAAK,CAACsB,KAAA,CAAKyB,OAAO,CAAC/C,IAAI,EAAEmN,OAAO,CAAC,GAAC,MAAApL,MAAA;UAChDwB,KAAK,GAAE4J,OAAO,EAAC;QACvB7L,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAE4D,QAAQ,CAAC,CAAC,CAAC;MACjE,CAAC,MAAM;QACL7H,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAE,CAAC4H,OAAO,CAAC,CAAC,CAAC,CAAC;MAClE;MACA7L,KAAA,CAAKgG,UAAU,CAAC,EAAEnC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAA7D,KAAA;;IAEO0M,eAAe,GAAG,UAACb,OAAU,EAAK;MACxC,IAAA+B,eAAA,GAAyC5N,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAhD0E,aAAa,GAAAqH,eAAA,CAAbrH,aAAa,CAAEnE,aAAa,GAAAwL,eAAA,CAAbxL,aAAa;MACpC,IAAMrE,iBAAiB,GAAGwI,aAAa,CAACiD,SAAS,CAAC,UAAC9K,IAAI,UAAKA,IAAI,KAAKmN,OAAO,GAAC;MAC7E7L,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,yBAAyB,EAAEY,OAAO,EAAElG,iBAAiB,CAAC,CAAC,CAAC;;MAE9E,IAAIiC,KAAA,CAAKkJ,mBAAmB,EAAE;QAC5B,IAAIlJ,KAAA,CAAKU,KAAK,CAAC/C,kBAAkB,KAAKC,SAAS,EAAE;UAC/CoC,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,qBAAqB,EAAEY,OAAO,EAAEjE,KAAA,CAAKU,KAAK,CAAChD,UAAU,CAAC,CAAC,CAAC;QAChF;MACF;MACAsC,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,EAAEY,OAAO,EAAE7B,aAAa,CAACyJ,OAAO,CAAC,CAAC,CAAC,EAAE7L,KAAA,CAAKgM,eAAe,CAAC;MAC9FhM,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC;;MAEnDrD,KAAA,CAAK8H,WAAW,CAAC,CAAC;IACpB,CAAC,CAAA9H,KAAA;;IAEOwE,eAAe,GAAG,YAAM,KAAAqJ,qBAAA;MAC9B,IAAAC,eAAA,GAAyC9N,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAhD0E,aAAa,GAAAuH,eAAA,CAAbvH,aAAa,CAAEnE,aAAa,GAAA0L,eAAA,CAAb1L,aAAa;MACpC,IAAA2L,YAAA,GAAiF/N,KAAA,CAAKU,KAAK,CAAnF3C,iBAAiB,GAAAgQ,YAAA,CAAjBhQ,iBAAiB,CAAEL,UAAU,GAAAqQ,YAAA,CAAVrQ,UAAU,CAAEC,kBAAkB,GAAAoQ,YAAA,CAAlBpQ,kBAAkB,CAAEE,iBAAiB,GAAAkQ,YAAA,CAAjBlQ,iBAAiB;;MAE5E,IAAMmQ,UAAU,IAAAH,qBAAA;MACdhQ,iBAAiB,oBAAjBA,iBAAiB,CAAEoQ,IAAI,CAAC,UAACvP,IAAI,UAAK0D,aAAa,CAAC1D,IAAI,CAAC,KAAKhB,UAAU,GAAC,YAAAmQ,qBAAA,GAAI7N,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAACwF,WAAW,CAAC3J,UAAU,CAAC;;MAElH,IAAMmK,QAAQ,GAAGtB,aAAa,CAAC9F,MAAM,CAAC,EAAE,CAAC;;MAEzC,IAAI,CAACT,KAAA,CAAKgC,eAAe,CAACuE,aAAa,EAAEyH,UAAU,CAAC,EAAE;QACpDnG,QAAQ,CAACqG,MAAM,CAAA1N,KAAA,CAAfqH,QAAQ,GAAQ9J,iBAAiB,EAAE,CAAC,EAAA0C,MAAA,CAAMT,KAAA,CAAKkJ,mBAAmB,GAAG,CAAC8E,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACxFhO,KAAA,CAAKqN,iBAAiB,CAACxF,QAAQ,CAAC;MAClC;;MAEA7H,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,4BAA4B,CAAC,CAAC,CAAC;;MAErD,IAAI1F,kBAAkB,EAAE;QACtBqC,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,EAAEY,OAAO,EAAEtG,kBAAkB,CAAC,CAAC,CAAC;QACpEqC,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,wBAAwB,CAAC,CAAC,CAAC;MACnD,CAAC,MAAM;QACLrD,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;MACxC;;MAEA,IAAIwE,QAAQ,CAAC1H,MAAM,KAAKoG,aAAa,CAACpG,MAAM,EAAE;QAC5CH,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAE,CAAC4D,QAAQ,CAAC9J,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;MACtF;IACF,CAAC,CAAAiC,KAAA;;IAEO4E,uBAAuB,GAAG,YAAM;MACtC,IAAQlH,UAAU,GAAKsC,KAAA,CAAKU,KAAK,CAAzBhD,UAAU;MAClB,IAAQyQ,iBAAiB,GAAKnO,KAAA,CAAK4F,KAAK,CAAhCuI,iBAAiB;;MAEzB;MACA,IAAMC,aAAa,GAAGD,iBAAiB,oBAAjBA,iBAAiB,CAAGzQ,UAAU,CAAC;;MAErD,IAAI0Q,aAAa,KAAKxQ,SAAS,EAAE;QAC/B;QACEoC,KAAA,CAAKqO,YAAY,CAACC,iDAAiD;QACnEtO,KAAA,CAAKqD,IAAI,KAAK9F,cAAc,CAACmN,gBAAgB;QAC7C;UACA1K,KAAA,CAAK4K,aAAa,CAAC,CAAC;QACtB;;QAEA;MACF;;MAEA,IAAIwD,aAAa,KAAK,IAAI,EAAE;QAC1BpO,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,aAAa,CAAC,CAAC,EAAE,YAAM;UAC3C,IAAIrD,KAAA,CAAKuE,aAAa,EAAE;YACtBvE,KAAA,CAAKwE,eAAe,CAAC,CAAC;UACxB;QACF,CAAC,CAAC;;QAEF;MACF;;MAEA,IAAI4J,aAAa,EAAE;QACjBpO,KAAA,CAAK0E,UAAU,CAAC0J,aAAa,CAAC;MAChC;IACF,CAAC,CAAApO,KAAA;;IAEOuO,sBAAsB,GAAG,UAACnL,KAAuC,EAAK;MAC5EpD,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,0BAA0B,CAAC,CAAC,CAAC;MACnD,IAAI+E,KAAK,GAAGhF,KAAK,CAACoC,MAAM,CAACtD,KAAK,CAACsM,QAAQ,CAAC,CAAC;;MAEzC,IAAIpG,KAAK,CAACqG,QAAQ,CAAC,GAAG,CAAC,EAAE;QACvBrG,KAAK,GAAGA,KAAK,CAACsG,SAAS,CAAC,CAAC,GAAG,GAAG;MACjC;MACA,IAAI1O,KAAA,CAAKkJ,mBAAmB,IAAId,KAAK,KAAK,EAAE,EAAE;QAC5CpI,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,wBAAwB,EAAEY,OAAO,EAAErG,SAAS,CAAC,CAAC,CAAC;MACvE;MACAoC,KAAA,CAAK6C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,cAAc,EAAEY,OAAO,EAAEmE,KAAK,CAAC,CAAC,EAAE,YAAM;QAC5DpI,KAAA,CAAK8H,WAAW,CAACM,KAAK,CAAC;MACzB,CAAC,CAAC;MACF,IAAIpI,KAAA,CAAK4F,KAAK,CAAC+I,kBAAkB,EAAE;QACjC3O,KAAA,CAAK4F,KAAK,CAAC+I,kBAAkB,CAACvG,KAAK,CAAC;MACtC;IACF,CAAC,CAAApI,KAAA;;IAEOuJ,iBAAiB,GAAG,YAAM;MAChC;MACEvJ,KAAA,CAAK6E,OAAO;MACZ7E,KAAA,CAAKU,KAAK,CAAC7C,iBAAiB;MAC5BmC,KAAA,CAAKU,KAAK,CAAC7C,iBAAiB,CAACsC,MAAM,GAAG,CAAC;MACvCH,KAAA,CAAKqD,IAAI,KAAK9F,cAAc,CAACqR,QAAQ;MACrC;QACA5O,KAAA,CAAK6E,OAAO,CAAC+E,aAAa,CAAC,CAAC,CAAC;MAC/B;IACF,CAAC,CAAA5J,KAAA;;IAEO6O,iBAAiB,GAAG,YAAM;MAChC,IAAQ9Q,iBAAiB,GAAKiC,KAAA,CAAKU,KAAK,CAAhC3C,iBAAiB;MACzB,IAAMwI,aAAa,GAAGvG,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa;MACnD,IAAMgB,SAAS,GAAGxJ,iBAAiB,IAAI,CAAC,GAAGA,iBAAiB,GAAGwI,aAAa,CAACpG,MAAM;MACnF,OAAOoG,aAAa,CAACuI,KAAK,CAAC,CAAC,EAAEvH,SAAS,CAAC,CAAClF,GAAG,CAACrC,KAAA,CAAK+O,WAAW,CAAC;IAChE,CAAC,CAAA/O,KAAA;;IAEOgP,eAAe,GAAG,YAAM;MAC9B,IAAIhP,KAAA,CAAKU,KAAK,CAAC3C,iBAAiB,IAAI,CAAC,EAAE;QACrC,OAAOiC,KAAA,CAAK6B,QAAQ,CAAC,CAAC;QACnB0E,aAAa,CAACuI,KAAK,CAAC9O,KAAA,CAAKU,KAAK,CAAC3C,iBAAiB,GAAG,CAAC,CAAC;QACrDsE,GAAG,CAACrC,KAAA,CAAK+O,WAAW,CAAC;MAC1B;IACF,CAAC,CAAA/O,KAAA;;IAEO+O,WAAW,GAAG,UAACrQ,IAAO,EAAEK,KAAa,EAAK,KAAAkQ,qBAAA;MAChD,IAAAC,WAAA,GAAuDlP,KAAA,CAAK4F,KAAK,CAAAuJ,qBAAA,GAAAD,WAAA,CAAzDH,WAAW,CAAXA,WAAW,GAAAI,qBAAA,cAAGtQ,kBAAkB,GAAAsQ,qBAAA,CAAE/P,QAAQ,GAAA8P,WAAA,CAAR9P,QAAQ;;MAElD,IAAMJ,QAAQ,GAAGgB,KAAA,CAAKU,KAAK,CAAC5C,YAAY,CAACwE,QAAQ,CAAC5D,IAAI,CAAC;;MAEvD;MACA,IAAM0Q,eAAqD,GAAG,SAAxDA,eAAqDA,CAAIhM,KAAK,EAAK;QACvEA,KAAK,CAACoE,eAAe,CAAC,CAAC;QACvB,IAAI,CAACxH,KAAA,CAAKuE,aAAa,EAAE;UACvBvE,KAAA,CAAKuN,iBAAiB,CAAC7O,IAAI,CAAC;QAC9B;MACF,CAAC;;MAED;MACA,IAAMgP,gBAAyD,GAAG,SAA5DA,gBAAyDA,CAAItK,KAAK,EAAK;QAC3EA,KAAK,CAACoE,eAAe,CAAC,CAAC;QACvB,IAAI,CAACxH,KAAA,CAAKuE,aAAa,EAAE;UACvBvE,KAAA,CAAK0N,gBAAgB,CAACtK,KAAK,EAAE1E,IAAI,CAAC;QACpC;MACF,CAAC;;MAED,IAAM2Q,sBAA+D,GAAG,SAAlEA,sBAA+DA,CAAIjM,KAAK,EAAK;QACjFA,KAAK,CAACoE,eAAe,CAAC,CAAC;QACvB,IAAI,CAACxH,KAAA,CAAKuE,aAAa,IAAI,CAACnF,QAAQ,EAAE;UACpCY,KAAA,CAAK0M,eAAe,CAAChO,IAAI,CAAC;QAC5B;MACF,CAAC;;MAED,IAAM4Q,aAAa,GAAGP,WAAW;QAC/BrQ,IAAI;QACJ;UACEW,IAAI,EAAEW,KAAA,CAAKX,IAAI;UACfL,QAAQ,EAARA,QAAQ;UACRC,OAAO,EAAEyO,gBAAgB;UACzBxO,aAAa,EAAEmQ,sBAAsB;UACrClQ,QAAQ,EAAEiQ,eAAe;UACzBhQ,QAAQ,EAARA;QACF,CAAC;QACDL;MACF,CAAC;;MAEDiB,KAAA,CAAKuB,cAAc,CAACgO,GAAG,EAAAN,qBAAA,GAACjP,KAAA,CAAK4F,KAAK,CAACW,aAAa,qBAAxB0I,qBAAA,CAA0BtI,OAAO,CAACjI,IAAI,CAAC,EAAE4Q,aAAa,CAAC;MAC/E,OAAOA,aAAa;IACtB,CAAC,CAAAtP,KAAA;;IAEOwP,eAAe,GAAG,UAACtN,KAAK,EAA0D,KAA/DA,KAAK,cAALA,KAAK,GAAGlC,KAAA,CAAKU,KAAK,CAAChD,UAAU;MACtD,IAAI,CAACsC,KAAA,CAAKgL,eAAe,EAAE;QACzB;MACF;;MAEA,IAAIhL,KAAA,CAAK4F,KAAK,CAAC4J,eAAe,EAAE;QAC9B,OAAOxP,KAAA,CAAK4F,KAAK,CAAC4J,eAAe,CAACtN,KAAK,EAAElC,KAAA,CAAK4K,aAAa,CAAC;MAC9D;;MAEA,IAAA6E,YAAA,GAA6CzP,KAAA,CAAKL,MAAM,CAAhD+P,gBAAgB,GAAAD,YAAA,CAAhBC,gBAAgB,CAAEC,cAAc,GAAAF,YAAA,CAAdE,cAAc;;MAExC;QACErU,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACvD,SAAA,CAAA4T,QAAQ,IAAC3Q,OAAO,EAAEe,KAAA,CAAK4K,aAAc,EAACiF,OAAO,EAAEH,gBAAiB,EAACjQ,GAAG,EAAC,iBAAiB;QACpFkQ,cAAc,EAAC,GAAC,EAACzN;QACV,CAAC;;IAEf,CAAC,CAAAlC,KAAA;;IAEO8K,eAAe,GAAG,UAACgF,SAAiB,EAAK;MAC/C,IAAIR,aAAa;MACjB,IAAItP,KAAA,CAAKuB,cAAc,CAACwO,GAAG,CAACD,SAAS,CAAC,EAAE;QACtCR,aAAa,GAAGtP,KAAA,CAAKuB,cAAc,CAACyO,GAAG,CAACF,SAAS,CAAC;MACpD,CAAC,MAAM,IAAIA,SAAS,GAAG,CAAC,IAAIA,SAAS,GAAG9P,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACpG,MAAM,GAAG,CAAC,EAAE;QAChF,OAAO,KAAK;MACd,CAAC,MAAM;QACLmP,aAAa,GAAGtP,KAAA,CAAK+O,WAAW,CAAC/O,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACuJ,SAAS,CAAC,EAAEA,SAAS,CAEnF;;;MACH;MACA,OAAOR,aAAa,CAAC1J,KAAK,CAACxG,QAAQ;IACrC,CAAC,CAAAY,KAAA;;IAEO4L,sBAAsB,GAAG,UAACqE,UAAkB,EAAEC,eAAe,EAAY,KAA3BA,eAAe,cAAfA,eAAe,GAAG,IAAI;MAC1E,IAAAC,gBAAA,GAA0BnQ,KAAA,CAAK6B,QAAQ,CAAC,CAAC,CAAjC0E,aAAa,GAAA4J,gBAAA,CAAb5J,aAAa;MACrB,IAAM6J,IAAI,GAAGF,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;MACtC,IAAIG,cAAc,GAAGJ,UAAU,GAAGG,IAAI;;MAEtC,OAAOpQ,KAAA,CAAK8K,eAAe,CAACuF,cAAc,CAAC,EAAE;QAC3CA,cAAc,IAAID,IAAI;QACtB,IAAIC,cAAc,KAAK9J,aAAa,CAACpG,MAAM,EAAE;UAC3C,OAAOkQ,cAAc;QACvB,CAAC,MAAM,IAAIA,cAAc,KAAK,CAAC,CAAC,EAAE;UAChC,OAAOJ,UAAU;QACnB;MACF;;MAEA,OAAOI,cAAc;IACvB,CAAC,QAAArQ,KAAA,MAAAsQ,eAAA,CAAAhR,OAAA,EAAAI,UAAA,EAAAK,oBAAA,MAAAwQ,MAAA,GAAA7Q,UAAA,CAAA8Q,SAAA,CAAAD,MAAA,CAt+BOE,aAAa,GAArB,SAAAA,cAAA,EAAkC,KAAAC,qBAAA,CAChC,IAAMlK,UAAU,IAAAkK,qBAAA,GAAG,IAAI,CAAC9K,KAAK,CAACY,UAAU,YAAAkK,qBAAA,GAAI,EAAE,CAC9C,IAAIlK,UAAU,CAACmK,KAAK,CAAC,UAACpJ,SAAS,UAAKA,SAAS,KAAKjK,cAAc,GAAC,EAAE,CACjE,OAAOkJ,UAAU,CACnB,CACA,OAAOA,UAAU,CAACnC,MAAM,CAAC,UAACkD,SAAS,UAAKA,SAAS,KAAKjK,cAAc,GAAC,CACvE,CAAC,CAAAiT,MAAA,CAEO1O,QAAQ,GAAhB,SAAAA,SAAA,EAAmB,CACjB,IAAM+O,WAAW,GAAG,IAAAC,oCAAiB,EAACnR,UAAU,CAACoR,YAAY,CAAC,CAC9D,IAAMC,sBAAsB,GAAGH,WAAW,CAACpQ,KAAK,CAAC,IAAI,CAAC,CACtD,WAAAwQ,SAAA,CAAA1R,OAAA,MAAYyR,sBAAsB,IAAEvK,UAAU,EAAE,IAAI,CAACiK,aAAa,CAAC,CAAC,IACtE,CAAC,CAAAF,MAAA,CAuBMU,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,KAAAC,qBAAA,CACzB,IAAI,CAACC,oBAAoB,CAAC,CAAC,CAC3B,CAAAD,qBAAA,GAAApN,0BAAY,CAACgB,QAAQ,aAArBoM,qBAAA,CAAuBE,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAChL,UAAU,CAAC,CAChE,IAAI,IAAI,CAACR,KAAK,CAACyL,SAAS,EAAE,CACxB,IAAI,CAACrL,UAAU,CAAC,CAAC,CACnB,CACF,CAAC,CAAAuK,MAAA,CAEMe,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAA+C,EAAEtO,SAA6B,EAAE,CACxG,IAAIA,SAAS,CAACvF,UAAU,KAAK,IAAI,CAACgD,KAAK,CAAChD,UAAU,EAAE,CAClD,IAAI,CAACyT,oBAAoB,CAAC,CAAC,CAC7B,CACA,IAAIlO,SAAS,CAACnF,YAAY,CAACqC,MAAM,KAAK,CAAC,IAAI,IAAI,CAACO,KAAK,CAAC5C,YAAY,CAACqC,MAAM,GAAG,CAAC,EAAE,CAC7E,IAAI,CAAC0C,QAAQ,CAAC,EACZQ,IAAI,EAAE,wBAAwB,EAC9BY,OAAO,EAAErG,SAAS,CACpB,CAAC,CAAC,CACJ,CACA,IAAI2T,SAAS,CAAChL,aAAa,CAACpG,MAAM,KAAK,IAAI,CAAC0B,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAACpG,MAAM,EAAE,CAC3EtE,YAAY,CAACyN,IAAI,CAAC,CAAC,CACnB,IAAI,CAAC/H,cAAc,CAACiQ,KAAK,CAAC,CAAC,CAC7B,CACA,IAAI,CAAC,IAAI,CAACC,uBAAuB,CAACxO,SAAS,CAAC,IAAI,IAAI,CAACoD,eAAe,EAAE,CACpE,IAAI,CAACyB,WAAW,CAAC,IAAI,CAACvD,aAAa,GAAG,EAAE,GAAG,IAAI,CAAC7D,KAAK,CAAChD,UAAU,CAAC,CACnE,CACF,CAAC,CAAA6S,MAAA,CAEMmB,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,KAAAC,sBAAA,CAC5B,CAAAA,sBAAA,GAAA7N,0BAAY,CAACgB,QAAQ,aAArB6M,sBAAA,CAAuBC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAACxL,UAAU,CAAC,CACrE,CAAC,CAED;AACF;AACA;AACA,KAHE,CAAAmK,MAAA,CAIO3M,KAAK,GAAZ,SAAAA,MAAA,EAAe,KAAAiO,YAAA,CACb,CAAAA,YAAA,OAAI,CAAC7Q,KAAK,aAAV6Q,YAAA,CAAYjO,KAAK,CAAC,CAAC,CACrB,CAAC,CAED;AACF;AACA,KAFE,CAAA2M,MAAA,CAGOhF,IAAI,GAAX,SAAAA,KAAA,EAAc,KAAAuG,aAAA,CACZ,CAAAA,aAAA,OAAI,CAAC9Q,KAAK,aAAV8Q,aAAA,CAAYvG,IAAI,CAAC,CAAC,CACpB,CAAC,CAED;AACF;AACA,KAFE,CAAAgF,MAAA,CAGOwB,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAAA,aAAK,EAAC,EAAEC,EAAE,EAAE,IAAI,CAAC7Q,OAAO,EAAE8Q,UAAU,EAAE,IAAI,CAACC,KAAK,CAACC,eAAe,CAAC,CAAC,CAAC,CACrE,CAAC,CAAA5B,MAAA,CAEM6B,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACE/W,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAAC7C,oBAAA,CAAA4V,0BAA0B,CAACC,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVH,MAAI,CAAChE,YAAY,GAAG,IAAAoE,+CAA0B,EAACD,KAAK,CAAC,CACrD,oBACElX,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACrD,aAAA,CAAAwW,YAAY,CAACH,QAAQ,QACnB,UAACL,KAAK,EAAK,CACVG,MAAI,CAACH,KAAK,GAAGA,KAAK,CAClB,OAAOG,MAAI,CAACM,UAAU,CAAC,CAAC,CAC1B,CACqB,CAAC,CAE5B,CACmC,CAAC,CAE1C,CAAC,CAAApC,MAAA,CAEOqC,qBAAqB,GAA7B,SAAAA,sBAAA,EAAgC,CAC9B,QAAQ,IAAI,CAACvT,IAAI,GACf,KAAK,OAAO,CACV,OAAOwT,mBAAM,CAACC,UAAU,CAAC,IAAI,CAACZ,KAAK,CAAC,CACtC,KAAK,QAAQ,CACX,OAAOW,mBAAM,CAACE,WAAW,CAAC,IAAI,CAACb,KAAK,CAAC,CACvC,KAAK,OAAO,CACZ,QACE,OAAOW,mBAAM,CAACG,UAAU,CAAC,IAAI,CAACd,KAAK,CAAC,CACxC,CACF,CAAC,CAAA3B,MAAA,CAEO0C,qBAAqB,GAA7B,SAAAA,sBAAA,EAAgC,CAC9B,QAAQ,IAAI,CAAC5T,IAAI,GACf,KAAK,OAAO,CACV,OAAOwT,mBAAM,CAACK,UAAU,CAAC,IAAI,CAAChB,KAAK,CAAC,CACtC,KAAK,QAAQ,CACX,OAAOW,mBAAM,CAACM,WAAW,CAAC,IAAI,CAACjB,KAAK,CAAC,CACvC,KAAK,OAAO,CACZ,QACE,OAAOW,mBAAM,CAACO,UAAU,CAAC,IAAI,CAAClB,KAAK,CAAC,CACxC,CACF,CAAC,CAAA3B,MAAA,CAEOoC,UAAU,GAAlB,SAAAA,WAAA,EAAqB,KAAAU,GAAA,EAAAC,IAAA,EAAAC,IAAA,CACnB,IAAI,IAAI,CAAClQ,IAAI,KAAK9F,cAAc,CAACmN,gBAAgB,IAAI,CAAC,IAAI,CAAC9E,KAAK,CAACqD,QAAQ,EAAE,CACzE,MAAMuK,KAAK,CAAC,2BAA2B,GAAG,IAAI,CAACnQ,IAAI,CAAC,CACtD,CAEA,IAAAoQ,YAAA,GAaI,IAAI,CAAC7N,KAAK,CAZZ8N,aAAa,GAAAD,YAAA,CAAbC,aAAa,CACbC,KAAK,GAAAF,YAAA,CAALE,KAAK,CACLC,OAAO,GAAAH,YAAA,CAAPG,OAAO,CACPxU,QAAQ,GAAAqU,YAAA,CAARrU,QAAQ,CACRyU,cAAc,GAAAJ,YAAA,CAAdI,cAAc,CACd1K,yBAAyB,GAAAsK,YAAA,CAAzBtK,yBAAyB,CACzB2K,SAAS,GAAAL,YAAA,CAATK,SAAS,CACTC,gBAAgB,GAAAN,YAAA,CAAhBM,gBAAgB,CAChBC,UAAU,GAAAP,YAAA,CAAVO,UAAU,CACUC,eAAe,GAAAR,YAAA,CAAnC,kBAAkB,EACJS,SAAS,GAAAT,YAAA,CAAvB,YAAY,EACZ5N,SAAS,GAAA4N,YAAA,CAAT5N,SAAS,CAGX,IAAAsO,gBAAA,GAA+F,IAAI,CAACtS,QAAQ,CAAC,CAAC,CAAtG0E,aAAa,GAAA4N,gBAAA,CAAb5N,aAAa,CAAE6N,KAAK,GAAAD,gBAAA,CAALC,KAAK,CAAEC,YAAY,GAAAF,gBAAA,CAAZE,YAAY,CAAEC,YAAY,GAAAH,gBAAA,CAAZG,YAAY,CAAEC,SAAS,GAAAJ,gBAAA,CAATI,SAAS,CAAEC,SAAS,GAAAL,gBAAA,CAATK,SAAS,CAAEC,UAAU,GAAAN,gBAAA,CAAVM,UAAU,CAE1F,IAAAC,YAAA,GASI,IAAI,CAAChU,KAAK,CARZ5C,YAAY,GAAA4W,YAAA,CAAZ5W,YAAY,CACZE,OAAO,GAAA0W,YAAA,CAAP1W,OAAO,CACPG,eAAe,GAAAuW,YAAA,CAAfvW,eAAe,CACfC,gBAAgB,GAAAsW,YAAA,CAAhBtW,gBAAgB,CAChBV,UAAU,GAAAgX,YAAA,CAAVhX,UAAU,CACVC,kBAAkB,GAAA+W,YAAA,CAAlB/W,kBAAkB,CAClBE,iBAAiB,GAAA6W,YAAA,CAAjB7W,iBAAiB,CACjBI,OAAO,GAAAyW,YAAA,CAAPzW,OAAO,CAGT,IAAM0W,QAAQ,GACZ,IAAI,CAACtR,IAAI,KAAK9F,cAAc,CAACmN,gBAAgB,IAC7C,IAAI,CAACrE,eAAe,IACpBvI,YAAY,CAACqC,MAAM,KAAK,CAAC,KACxB,IAAI,CAAC+I,mBAAmB,IAAI,CAACC,yBAAyB,CAAC,CAE1D,IAAM+I,KAAK,GAAG,IAAI,CAACA,KAAK,CAExB,IAAM0C,iBAAsC,GAAG,EAC7C;MACAR,KAAK,EAAEjW,eAAe,EACtB0W,MAAM,EAAEzW,gBAAgB,EACxB;MACA0W,UAAU,EAAE,IAAI,CAACzO,eAAe,GAAGzI,SAAS,GAAG,aAAa,CAC9D,CAAC,CAED,IAAMmX,cAAc,GAAG,IAAAC,WAAE,EAACnC,mBAAM,CAACrU,KAAK,CAAC0T,KAAK,CAAC,EAAE,IAAI,CAACU,qBAAqB,CAAC,CAAC,GAAAS,GAAA,OAAAA,GAAA,CACxER,mBAAM,CAACoC,QAAQ,CAAC,IAAI,CAAC/C,KAAK,CAAC,IAAG,CAAClU,OAAO,IAAI,CAACoB,QAAQ,IAAI,CAACwU,OAAO,IAAI,CAACD,KAAK,EAAAN,GAAA,CACzER,mBAAM,CAACqC,aAAa,CAAChD,KAAK,CAAC,IAAG,CAAC,CAAC9S,QAAQ,EAAAiU,GAAA,CACxCR,mBAAM,CAACsC,YAAY,CAACjD,KAAK,CAAC,IAAG,CAAC,CAAClU,OAAO,EAAAqV,GAAA,CACtCR,mBAAM,CAACc,KAAK,CAACzB,KAAK,CAAC,IAAG,CAAC,CAACyB,KAAK,EAAAN,GAAA,CAC7BR,mBAAM,CAACe,OAAO,CAAC1B,KAAK,CAAC,IAAG,CAAC,CAAC0B,OAAO,EAAAP,GAAA,CACnC,CAAC,CACF,IAAM+B,cAAc,GAAG,IAAAJ,WAAE,EAACnC,mBAAM,CAAC7R,KAAK,CAACkR,KAAK,CAAC,EAAE,IAAI,CAACe,qBAAqB,CAAC,CAAC,GAAAK,IAAA,OAAAA,IAAA,CACxET,mBAAM,CAACwC,aAAa,CAACnD,KAAK,CAAC,IAAG,CAAC,CAAC9S,QAAQ,EAAAkU,IAAA,CAC1C,CAAC,CAEF,IAAMgC,WAAW,GAAG/O,aAAa,CAACpG,MAAM,KAAK,CAAC,IAAI,CAACzC,UAAU,GAAG,IAAI,CAACkI,KAAK,CAAC0P,WAAW,GAAG,EAAE,CAE3F,IAAMC,SAAS,gBACbja,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAAC9C,UAAA,CAAA+Y,SAAS,IACRnW,IAAI,EAAE,IAAI,CAACA,IAAK,EAChBoW,SAAS,EAAE,IAAAT,WAAE,GAAAzB,IAAA,OAAAA,IAAA,CAEVV,mBAAM,CAAC6C,uBAAuB,CAAC,CAAC,IAAG9N,OAAO,CAAC0N,WAAW,CAAC,EAAA/B,IAAA,CACzD,CAAE,EACHoC,eAAe,EAAE/N,OAAO,CAAC0N,WAAW,CAAE,iBAEtCha,MAAA,CAAAgE,OAAA,CAAAC,aAAA,eACEqW,EAAE,EAAE,IAAI,CAACC,UAAW,EACpBC,GAAG,EAAE,IAAI,CAACtT,QAAS,EACnBN,KAAK,EAAExE,UAAW,EAClBqY,KAAK,EAAEnB,iBAAkB,EACzBoB,UAAU,EAAE,KAAM,EAClB5W,QAAQ,EAAEA,QAAS,EACnBqW,SAAS,EAAEL,cAAe,EAC1BE,WAAW,EAAEA,WAAY,EACzBhS,OAAO,EAAE,IAAI,CAACH,gBAAiB,EAC/Be,MAAM,EAAE,IAAI,CAACX,eAAgB,EAC7B0S,QAAQ,EAAE,IAAI,CAAC1H,sBAAuB,EACtCvE,SAAS,EAAE,IAAI,CAACD,aAAc,EAC9BmM,OAAO,EAAE,IAAI,CAAClP,gBAAiB,EAC/B8M,SAAS,EAAEA,SAAU,EACrB,cAAYI,SAAU,EACtB,oBAAkBD,eAAgB,EACnC,CACQ,CACZ,CAED,IAAMkC,KAAK,gBACT7a,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAAAjE,MAAA,CAAAgE,OAAA,CAAA8W,QAAA,qBACE9a,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACrC,gBAAA,CAAAmZ,eAAe,IAACP,GAAG,EAAE,IAAI,CAACnT,aAAc,EAAC2T,IAAI,EAAE5Y,UAAW,EAACwU,KAAK,EAAE,IAAI,CAACA,KAAM,EAAC7S,IAAI,EAAE,IAAI,CAACA,IAAK,EAAE,CAAC,EACjG,IAAI,CAACwP,iBAAiB,CAAC,CAAC,EACxB0G,SAAS,EACTZ,QAAQ,iBACPrZ,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACtC,eAAA,CAAAsZ,cAAc,IACbC,WAAW,EAAE,IAAI,CAAC3V,MAAO,EACzBiV,GAAG,EAAE,IAAI,CAACpT,kBAAmB,EAC7BT,KAAK,EAAEpE,iBAAkB,EACzBI,OAAO,EAAEA,OAAQ,EACjBwY,MAAM,EAAE9B,QAAS,EACjBjB,aAAa,EAAEA,aAAc,EAC7BgD,sBAAsB,EAAE,IAAI,CAAC1V,KAAM,EACnC2V,iBAAiB,EAAE,IAAI,CAACxV,OAAQ,EAChC0S,cAAc,EAAEA,cAAe,EAC/BY,UAAU,EAAEA,UAAW,EACvBnN,aAAa,EAAE,IAAI,CAAC5C,UAAW,EAC/B8K,eAAe,EAAE,IAAI,CAACA,eAAgB,EACtC+E,SAAS,EAAEA,SAAU,EACrBC,SAAS,EAAEA,SAAU,EACrBT,gBAAgB,EAAEA,gBAAiB,EACnCC,UAAU,EAAEA,UAAW,EACvB3U,IAAI,EAAE,IAAI,CAACA,IAAK,EACjB,CACF,EACA,IAAI,CAAC2P,eAAe,CAAC,CAAC,EACtB,IAAI,CAACzK,aAAa,gBACjBjJ,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAAC9C,UAAA,CAAA+Y,SAAS,IAACnW,IAAI,EAAE,IAAI,CAACA,IAAK,iBACzB/D,MAAA,CAAAgE,OAAA,CAAAC,aAAA,WAAMkW,SAAS,EAAE5C,mBAAM,CAAC+D,aAAa,CAAC1E,KAAK,CAAE,IAAEvU,kBAAyB,CAC/D,CAAC,GACV,IACJ,CACH,CAED,IAAMkZ,SAAS,GAAGhR,SAAS,gBACzBvK,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAAC1C,gBAAA,CAAAia,eAAe,IACdrB,SAAS,EAAE5C,mBAAM,CAACkE,6BAA6B,CAAC,CAAE,EAClDC,SAAS,EAAE,IAAI,CAAC5V,kBAAmB,EACnCyE,SAAS,EAAEA,SAAU,EACrBoR,aAAa,EAAC,QAAQ,EACtBlB,KAAK,EAAE,EAAE3B,KAAK,EAAE,MAAM,CAAC,CAAE,IAExB+B,KACc,CAAC,GAElBA,KACD,CAED,oBACE7a,MAAA,CAAAgE,OAAA,CAAAC,aAAA,CAACnD,cAAA,CAAA8a,aAAa,MAAAlG,SAAA,CAAA1R,OAAA,IAAC6X,WAAW,EAAE,IAAI,CAACC,WAAY,IAAK,IAAI,CAACxR,KAAK,gBAC1DtK,MAAA,CAAAgE,OAAA,CAAAC,aAAA,UAAK,YAAUlB,kBAAkB,CAACC,IAAK,EAAC+V,YAAY,EAAEA,YAAa,EAACC,YAAY,EAAEA,YAAa,iBAC7FhZ,MAAA,CAAAgE,OAAA,CAAAC,aAAA,YACEuW,GAAG,EAAE,IAAI,CAAClT,UAAW,EACrBmT,KAAK,EAAE,EAAE3B,KAAK,EAALA,KAAK,CAAC,CAAE,EACjBqB,SAAS,EAAEV,cAAe,EAC1BsC,WAAW,EAAE,IAAI,CAAC/R,sBAAuB,EACzCgS,SAAS,EAAE,IAAI,CAAC5R,oBAAqB,CACrC;QACA;QAAA,EACA6R,OAAO,EAAE1R,SAAS,GAAG,SAAS,GAAG,IAAI,CAACgQ,UAAW,EACjD,iBAAe,IAAI,CAAChV,MAAO,EAC3B,YAAUxC,kBAAkB,CAACG,KAAM,IAElCqY,SACI,CACJ,CACQ,CAAC,CAEpB,CAAC,CAED;AACF;AACA;AACA,KAHE,CAAAtG,MAAA,CAIOiH,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,CAAC3U,QAAQ,CAAC,EAAEQ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAClC,CAAC,CAAAkN,MAAA,CAiDOkB,uBAAuB,GAA/B,SAAAA,wBAAgC/Q,KAAyB,EAAE,CACzD,OAAOA,KAAK,CAAC1C,OAAO,KAAK,IAAI,CAACkL,mBAAmB,IAAIxI,KAAK,CAAC5C,YAAY,CAACqC,MAAM,KAAK,CAAC,CAAC,CACvF,CAAC,CAAAoQ,MAAA,CAWOY,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,IAAI,IAAI,CAACjQ,UAAU,EAAE,CACnB;MACA;MACA,IAAM/C,eAAe,GAAGsZ,UAAU,CAAC,IAAI,CAACvW,UAAU,CAACwW,YAAY,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC7E,IAAMvZ,gBAAgB,GAAGqZ,UAAU,CAAC,IAAI,CAACvW,UAAU,CAAC0W,aAAa,CAAC,CAAC,CAACD,OAAO,CAAC,CAAC,CAAC,CAAC,CAE/E,IAAI,CAAC9U,QAAQ,CAAC,EAAEQ,IAAI,EAAE,uBAAuB,EAAEY,OAAO,EAAE9F,eAAe,CAAC,CAAC,EAAEtC,YAAY,CAACyN,IAAI,CAAC,CAC7F,IAAI,CAACzG,QAAQ,CAAC,EAAEQ,IAAI,EAAE,wBAAwB,EAAEY,OAAO,EAAE7F,gBAAgB,CAAC,CAAC,EAAEvC,YAAY,CAACyN,IAAI,CAAC,CACjG,CACF,CAAC,CAAAiH,MAAA,CAmRO9E,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,IAAMxJ,KAAK,GAAG,IAAI,CAACJ,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CAC3C,IAAI,IAAI,CAAC7F,KAAK,CAAChD,UAAU,KAAK,EAAE,IAAIuE,KAAK,IAAIA,KAAK,CAAC9B,MAAM,GAAG,CAAC,EAAE,CAC7D,IAAI,CAAC0C,QAAQ,CAAC,EAAEQ,IAAI,EAAE,mBAAmB,EAAEY,OAAO,EAAEhC,KAAK,CAAC6M,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACxE,CACF,CAAC,YAAA+I,aAAA,CAAAvY,OAAA,EAAAI,UAAA,KAAAD,GAAA,gBAAAuQ,GAAA,EA7nBD,SAAAA,IAAA,EAAyB,KAAA8H,cAAA,CACvB,QAAAA,cAAA,GAAO,IAAI,CAAClS,KAAK,CAACgQ,EAAE,YAAAkC,cAAA,GAAI,IAAI,CAACnX,WAAW,CAC1C,CAAC,MAAAlB,GAAA,qBAAAuQ,GAAA,EA2SD,SAAAA,IAAA,EAA8B,KAAA+H,sBAAA,CAC5B,IAAM9V,KAAK,IAAA8V,sBAAA,GAAG,IAAI,CAACrX,KAAK,CAAC7C,iBAAiB,qBAA5Bka,sBAAA,CAA8B1T,MAAM,CAACC,YAAY,CAAC,CAChE,IAAMpC,KAAK,GAAG,IAAI,CAACL,QAAQ,CAAC,CAAC,CAACwF,WAAW,CAAC,IAAI,CAAC3G,KAAK,CAAChD,UAAU,CAAC,CAChE,IAAIuE,KAAK,IAAI,IAAI,CAACD,eAAe,CAACC,KAAK,EAAEC,KAAK,CAAC,EAAE,CAC/C,OAAO,KAAK,CACd,CAEA,IAAMqE,aAAa,GAAG,IAAI,CAAC1E,QAAQ,CAAC,CAAC,CAAC0E,aAAa,CACnD,IAAIA,aAAa,IAAI,IAAI,CAACvE,eAAe,CAACuE,aAAa,EAAErE,KAAK,CAAC,EAAE,CAC/D,OAAO,KAAK,CACd,CAEA,IAAI,IAAI,CAACmB,IAAI,KAAK9F,cAAc,CAACqR,QAAQ,IAAI,IAAI,CAAC1F,mBAAmB,EAAE,CACrE,OAAO,IAAI,CACb,CACF,CAAC,MAAAzJ,GAAA,UAAAuQ,GAAA,EAED,SAAAA,IAAA,EAAmB,CACjB,OAAO,IAAI,CAACpK,KAAK,CAACvC,IAAI,GAAG,IAAI,CAACuC,KAAK,CAACvC,IAAI,GAAG9F,cAAc,CAAC0J,aAAa,CACzE,CAAC,MAAAxH,GAAA,aAAAuQ,GAAA,EAED,SAAAA,IAAA,EAAmC,CACjC,OAAO,IAAI,CAAC/O,eAAe,IAAI,IAAI,CAACA,eAAe,CAACiE,UAAU,CAAC,CAAC,CAClE,CAAC,MAAAzF,GAAA,qBAAAuQ,GAAA,EAED,SAAAA,IAAA,EAA8B,CAC5B,OAAO,IAAI,CAACyB,uBAAuB,CAAC,IAAI,CAAC/Q,KAAK,CAAC,CACjD,CAAC,MAAAjB,GAAA,mBAAAuQ,GAAA,EAED,SAAAA,IAAA,EAA4B,CAC1B,OAAO,IAAI,CAACtP,KAAK,CAAC3C,iBAAiB,GAAG,CAAC,CAAC,CAC1C,CAAC,MAAA0B,GAAA,oBAAAuQ,GAAA,EAuFD,SAAAA,IAAA,EAA6B,CAC3B,IAAI,IAAI,CAACzL,aAAa,EAAE,CACtB,OAAO,IAAI,CAACE,mBAAmB,CACjC,CAEA,OAAO,IAAI,CAACyE,mBAAmB,CACjC,CAAC,MAAAzJ,GAAA,yBAAAuQ,GAAA,EAED,SAAAA,IAAA,EAAkC,CAChC,IAAQtS,UAAU,GAAK,IAAI,CAACgD,KAAK,CAAzBhD,UAAU,CAElB,OAAOA,UAAU,KAAK,EAAE,CAC1B,CAAC,MAAA+B,GAAA,yBAAAuQ,GAAA,EAED,SAAAA,IAAA,EAAkC,CAChC,IAAAgI,YAAA,GAA0C,IAAI,CAACtX,KAAK,CAA5ChD,UAAU,GAAAsa,YAAA,CAAVta,UAAU,CAAEK,iBAAiB,GAAAia,YAAA,CAAjBja,iBAAiB,CACrC,IAAAka,gBAAA,GAAyC,IAAI,CAACpW,QAAQ,CAAC,CAAC,CAAhDO,aAAa,GAAA6V,gBAAA,CAAb7V,aAAa,CAAEmE,aAAa,GAAA0R,gBAAA,CAAb1R,aAAa,CAEpC,IAAI,IAAI,CAAChC,aAAa,EAAE,CACtB,OAAOnC,aAAa,CAACmE,aAAa,CAACxI,iBAAiB,CAAC,CAAC,KAAKL,UAAU,CACvE,CAEA,OAAO,KAAK,CACd,CAAC,OAheyC2D,cAAK,CAAC6W,aAAa,GAAA7a,WAAA,CAC/C8a,mBAAmB,GAAG,YAAY,EAAA9a,WAAA,CAClC+a,WAAW,GAAG,YAAY,EAAA/a,WAAA,CAE1ByT,YAAY,GAAsB,EAC9CvK,aAAa,EAAE,EAAE,EACjB;EACAC,UAAU,EAAE,CAAC,GAAG,EAAElJ,cAAc,CAAC,EACjCmX,UAAU,EAAE7V,QAAQ,EACpByZ,WAAW,EAAEzZ,QAAQ,EACrBwD,aAAa,EAAExD,QAAQ,EACvByI,WAAW,EAAE,SAAAA,YAAC3I,IAAY,UAAKA,IAAI,IACnC4Z,KAAK,EAAE7Z,YAAY,EACnBqD,QAAQ,EAAElD,QAAQ,EAClB0I,aAAa,EAAE,SAAAA,cAAA,UAAM,KAAK,CAAC,IAC3B8M,KAAK,EAAE,GAAsB,EAC7BlQ,MAAM,EAAEqU,mBAAY,EACpBjV,OAAO,EAAEiV,mBAAY,EACrBlE,YAAY,EAAEkE,mBAAY,EAC1BjE,YAAY,EAAEiE,mBAAY,EAC1BhE,SAAS,EAAE,MAAM,EACjBC,SAAS,EAAE,QAAQ,CACrB,CAAC,EAAAnX,WAAA,MAAAD,MAAA,KAAAA,MAAA,KAAAA,MAAA,EA2+BH,SAASkH,YAAYA,CAAI5F,IAA+B,EAAa,CACnE,OAAO,CAAC,IAAA8Z,iBAAU,EAAC9Z,IAAI,CAAC,IAAI,eAAC2C,cAAK,CAACoX,cAAc,CAAC/Z,IAAI,CAAC,CACzD","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
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");
|
|
2
2
|
|
|
3
|
+
var _ScrollContainer = require("../ScrollContainer/ScrollContainer.styles");
|
|
3
4
|
|
|
4
|
-
var _TokenInput = require("./TokenInput.mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16;
|
|
5
|
+
var _TokenInput = require("./TokenInput.mixins");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17;
|
|
5
6
|
|
|
6
7
|
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
7
8
|
label: function label(t) {
|
|
@@ -149,10 +150,20 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
149
150
|
return (0, _Emotion.css)(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteralLoose2.default)(["\n flex: 1 1 100%;\n "])));
|
|
150
151
|
|
|
151
152
|
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
inputPlaceholderScrollWrapper: function inputPlaceholderScrollWrapper() {
|
|
156
|
+
return (0, _Emotion.css)(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n & .", " {\n display: inherit;\n flex-wrap: wrap;\n }\n "])),
|
|
157
|
+
|
|
158
|
+
_ScrollContainer.globalClasses.inner);
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
|
|
152
163
|
},
|
|
153
164
|
|
|
154
165
|
reservedInput: function reservedInput(t) {
|
|
155
|
-
return (0, _Emotion.css)(
|
|
166
|
+
return (0, _Emotion.css)(_templateObject17 || (_templateObject17 = (0, _taggedTemplateLiteralLoose2.default)(["\n min-width: 2px;\n color: ", ";\n word-break: break-all;\n "])),
|
|
156
167
|
|
|
157
168
|
t.tokenInputTextColorDisabled);
|
|
158
169
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Emotion","require","_TokenInput","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","styles","exports","memoizeStyle","label","t","css","_taggedTemplateLiteralLoose2","default","tokenInputBg","tokenInputShadow","tokenInputBorderWidth","tokenInputBorderColor","tokenInputBorderTopColor","transitionDuration","transitionTimingFunction","tokenInputBorderRadius","labelSmall","labelSizeMixin","tokenInputPaddingYSmall","tokenInputPaddingXSmall","labelMedium","tokenInputPaddingYMedium","tokenInputPaddingXMedium","labelLarge","tokenInputPaddingYLarge","tokenInputPaddingXLarge","hovering","tokenInputBorderColorHover","warning","tokenInputBorderColorWarning","tokenInputOutlineWidth","error","tokenInputBorderColorError","labelFocused","tokenInputBorderColorFocus","labelDisabled","tokenInputDisabledBg","inputDisabledBackgroundClip","tokenInputDisabledBorderColor","input","tokenInputTextColor","tokenInputPlaceholderColor","tokenInputPlaceholderColorDisabled","tokenInputPlaceholderColorLight","inputSmall","inputSizeMixin","tokenFontSizeSmall","tokenInputLineHeightSmall","inputMedium","tokenFontSizeMedium","tokenInputLineHeightMedium","inputLarge","tokenFontSizeLarge","tokenInputLineHeightLarge","inputDisabled","tokenInputTextColorDisabled","inputPlaceholderWrapper","reservedInput"],"sources":["TokenInput.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\n\nimport { labelSizeMixin, inputSizeMixin } from './TokenInput.mixins';\n\nexport const styles = memoizeStyle({\n label(t: Theme) {\n return css`\n background-color: ${t.tokenInputBg};\n box-shadow: ${t.tokenInputShadow};\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColor};\n border-top-color: ${t.tokenInputBorderTopColor};\n transition: border-color ${t.transitionDuration} ${t.transitionTimingFunction};\n box-sizing: border-box;\n cursor: text;\n display: flex;\n flex-wrap: wrap;\n align-items: start;\n outline: none;\n position: relative;\n border-radius: ${t.tokenInputBorderRadius};\n `;\n },\n labelSmall(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYSmall, t.tokenInputPaddingXSmall)}\n `;\n },\n labelMedium(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYMedium, t.tokenInputPaddingXMedium)}\n `;\n },\n labelLarge(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYLarge, t.tokenInputPaddingXLarge)}\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:hover {\n border-color: ${t.tokenInputBorderColorHover};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorWarning};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorError};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorError};\n `;\n },\n\n labelFocused(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorFocus};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorFocus};\n `;\n },\n\n labelDisabled(t: Theme) {\n return css`\n background: ${t.tokenInputDisabledBg};\n background-clip: ${t.inputDisabledBackgroundClip};\n border-color: ${t.tokenInputDisabledBorderColor};\n box-shadow: none;\n cursor: default;\n `;\n },\n\n input(t: Theme) {\n return css`\n background: transparent;\n border: none;\n box-shadow: none;\n outline: none;\n font-family: inherit;\n overflow: hidden;\n resize: none;\n -webkit-appearance: none;\n text-overflow: clip;\n background-clip: padding-box;\n transition: background-color 0.15s ease-in;\n color: ${t.tokenInputTextColor};\n box-sizing: border-box;\n word-break: break-all;\n padding: 0;\n margin: 0;\n flex: 1 1 100%;\n\n &::-ms-clear {\n display: none;\n }\n &::placeholder {\n color: ${t.tokenInputPlaceholderColor};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColor};\n }\n &:disabled::placeholder {\n color: ${t.tokenInputPlaceholderColorDisabled};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorDisabled};\n }\n &:focus::placeholder {\n color: ${t.tokenInputPlaceholderColorLight};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorLight};\n }\n /* fix firefox placeholder opacity */\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n `;\n },\n inputSmall(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeSmall, t.tokenInputLineHeightSmall)};\n `;\n },\n inputMedium(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeMedium, t.tokenInputLineHeightMedium)};\n `;\n },\n inputLarge(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeLarge, t.tokenInputLineHeightLarge)};\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n pointer-events: none;\n /* fix text color in safari */\n -webkit-text-fill-color: currentcolor;\n color: ${t.tokenInputTextColorDisabled};\n `;\n },\n\n inputPlaceholderWrapper() {\n return css`\n flex: 1 1 100%;\n `;\n },\n\n reservedInput(t: Theme) {\n return css`\n min-width: 2px;\n color: ${t.tokenInputTextColorDisabled};\n word-break: break-all;\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_ScrollContainer","_TokenInput","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","styles","exports","memoizeStyle","label","t","css","_taggedTemplateLiteralLoose2","default","tokenInputBg","tokenInputShadow","tokenInputBorderWidth","tokenInputBorderColor","tokenInputBorderTopColor","transitionDuration","transitionTimingFunction","tokenInputBorderRadius","labelSmall","labelSizeMixin","tokenInputPaddingYSmall","tokenInputPaddingXSmall","labelMedium","tokenInputPaddingYMedium","tokenInputPaddingXMedium","labelLarge","tokenInputPaddingYLarge","tokenInputPaddingXLarge","hovering","tokenInputBorderColorHover","warning","tokenInputBorderColorWarning","tokenInputOutlineWidth","error","tokenInputBorderColorError","labelFocused","tokenInputBorderColorFocus","labelDisabled","tokenInputDisabledBg","inputDisabledBackgroundClip","tokenInputDisabledBorderColor","input","tokenInputTextColor","tokenInputPlaceholderColor","tokenInputPlaceholderColorDisabled","tokenInputPlaceholderColorLight","inputSmall","inputSizeMixin","tokenFontSizeSmall","tokenInputLineHeightSmall","inputMedium","tokenFontSizeMedium","tokenInputLineHeightMedium","inputLarge","tokenFontSizeLarge","tokenInputLineHeightLarge","inputDisabled","tokenInputTextColorDisabled","inputPlaceholderWrapper","inputPlaceholderScrollWrapper","globalClasses","inner","reservedInput"],"sources":["TokenInput.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { globalClasses } from '../ScrollContainer/ScrollContainer.styles';\n\nimport { labelSizeMixin, inputSizeMixin } from './TokenInput.mixins';\n\nexport const styles = memoizeStyle({\n label(t: Theme) {\n return css`\n background-color: ${t.tokenInputBg};\n box-shadow: ${t.tokenInputShadow};\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColor};\n border-top-color: ${t.tokenInputBorderTopColor};\n transition: border-color ${t.transitionDuration} ${t.transitionTimingFunction};\n box-sizing: border-box;\n cursor: text;\n display: flex;\n flex-wrap: wrap;\n align-items: start;\n outline: none;\n position: relative;\n border-radius: ${t.tokenInputBorderRadius};\n `;\n },\n labelSmall(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYSmall, t.tokenInputPaddingXSmall)}\n `;\n },\n labelMedium(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYMedium, t.tokenInputPaddingXMedium)}\n `;\n },\n labelLarge(t: Theme) {\n return css`\n ${labelSizeMixin(t.tokenInputPaddingYLarge, t.tokenInputPaddingXLarge)}\n `;\n },\n\n hovering(t: Theme) {\n return css`\n &:hover {\n border-color: ${t.tokenInputBorderColorHover};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorWarning};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorWarning};\n `;\n },\n\n error(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorError};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorError};\n `;\n },\n\n labelFocused(t: Theme) {\n return css`\n border: ${t.tokenInputBorderWidth} solid ${t.tokenInputBorderColorFocus};\n box-shadow: 0 0 0 ${t.tokenInputOutlineWidth} ${t.tokenInputBorderColorFocus};\n `;\n },\n\n labelDisabled(t: Theme) {\n return css`\n background: ${t.tokenInputDisabledBg};\n background-clip: ${t.inputDisabledBackgroundClip};\n border-color: ${t.tokenInputDisabledBorderColor};\n box-shadow: none;\n cursor: default;\n `;\n },\n\n input(t: Theme) {\n return css`\n background: transparent;\n border: none;\n box-shadow: none;\n outline: none;\n font-family: inherit;\n overflow: hidden;\n resize: none;\n -webkit-appearance: none;\n text-overflow: clip;\n background-clip: padding-box;\n transition: background-color 0.15s ease-in;\n color: ${t.tokenInputTextColor};\n box-sizing: border-box;\n word-break: break-all;\n padding: 0;\n margin: 0;\n flex: 1 1 100%;\n\n &::-ms-clear {\n display: none;\n }\n &::placeholder {\n color: ${t.tokenInputPlaceholderColor};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColor};\n }\n &:disabled::placeholder {\n color: ${t.tokenInputPlaceholderColorDisabled};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorDisabled};\n }\n &:focus::placeholder {\n color: ${t.tokenInputPlaceholderColorLight};\n -webkit-text-fill-color: ${t.tokenInputPlaceholderColorLight};\n }\n /* fix firefox placeholder opacity */\n &:-moz-placeholder {\n opacity: 1;\n }\n &::-moz-placeholder {\n opacity: 1;\n }\n `;\n },\n inputSmall(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeSmall, t.tokenInputLineHeightSmall)};\n `;\n },\n inputMedium(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeMedium, t.tokenInputLineHeightMedium)};\n `;\n },\n inputLarge(t: Theme) {\n return css`\n ${inputSizeMixin(t.tokenFontSizeLarge, t.tokenInputLineHeightLarge)};\n `;\n },\n\n inputDisabled(t: Theme) {\n return css`\n pointer-events: none;\n /* fix text color in safari */\n -webkit-text-fill-color: currentcolor;\n color: ${t.tokenInputTextColorDisabled};\n `;\n },\n\n inputPlaceholderWrapper() {\n return css`\n flex: 1 1 100%;\n `;\n },\n\n inputPlaceholderScrollWrapper() {\n return css`\n display: flex;\n & .${globalClasses.inner} {\n display: inherit;\n flex-wrap: wrap;\n }\n `;\n },\n\n reservedInput(t: Theme) {\n return css`\n min-width: 2px;\n color: ${t.tokenInputTextColorDisabled};\n word-break: break-all;\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|