@skbkontur/react-ui 4.15.2 → 4.15.3-fixed

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 CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.15.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.2...@skbkontur/react-ui@4.15.3) (2023-07-21)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **ComboBox,InputLikeText:** use `flushSync` only in React 18 ([#3206](https://github.com/skbkontur/retail-ui/issues/3206)) ([ee55374](https://github.com/skbkontur/retail-ui/commit/ee55374df69f797f1257d99250366770b513a096))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [4.15.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.1...@skbkontur/react-ui@4.15.2) (2023-07-17)
7
18
 
8
19
 
@@ -329,7 +329,7 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
329
329
 
330
330
 
331
331
 
332
- dispatch = function (action, sync) {if (sync === void 0) {sync = true;}
332
+ dispatch = function (action) {
333
333
  var updateState = function updateState(action) {
334
334
  var effects;
335
335
  var nextState;
@@ -348,14 +348,11 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
348
348
 
349
349
  // Auto-batching React@18 creates problems that are fixed with flushSync
350
350
  // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366
351
- var isReact18 = _react.default.version.search('18') === 0;
352
- if (sync && isReact18) {
353
- return _reactDom.default.flushSync(function () {
354
- updateState(action);
355
- });
351
+ if (_react.default.version.search('18') === 0) {
352
+ _reactDom.default.flushSync(function () {return updateState(action);});
353
+ } else {
354
+ updateState(action);
356
355
  }
357
-
358
- return updateState(action);
359
356
  };_this.
360
357
 
361
358
  handleEffect = function (effect) {
@@ -429,6 +426,6 @@ CustomComboBox = (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNod
429
426
  * @public
430
427
  */;_proto.open = function open() {this.dispatch({ type: 'Open' });} /**
431
428
  * @public
432
- */;_proto.close = function close() {this.dispatch({ type: 'Close' });};_proto.render = function render() {var _this3 = this;var viewProps = { align: this.props.align, borderless: this.props.borderless, disabled: this.props.disabled, disablePortal: this.props.disablePortal, editing: this.state.editing, error: this.props.error, items: this.state.items, loading: this.state.loading, menuAlign: this.props.menuAlign, opened: this.state.opened, drawArrow: this.props.drawArrow, menuPos: this.props.menuPos, placeholder: this.props.placeholder, size: this.props.size, textValue: this.state.textValue, totalCount: this.props.totalCount, value: this.props.value, warning: this.props.warning, 'aria-describedby': this.props['aria-describedby'], width: this.props.width, maxLength: this.props.maxLength, maxMenuHeight: this.props.maxMenuHeight, leftIcon: this.props.leftIcon, rightIcon: this.props.rightIcon, inputMode: this.props.inputMode, onValueChange: this.handleValueChange, onClickOutside: this.handleClickOutside, onFocus: this.handleFocus, onFocusOutside: this.handleBlur, onInputBlur: this.handleInputBlur, onInputValueChange: function onInputValueChange(value) {return _this3.dispatch({ type: 'TextChange', value: value });}, onInputFocus: this.handleFocus, onInputClick: this.handleInputClick, onInputKeyDown: function onInputKeyDown(event) {event.persist();_this3.dispatch({ type: 'KeyPress', event: event });}, onMouseEnter: this.props.onMouseEnter, onMouseOver: this.props.onMouseOver, onMouseLeave: this.props.onMouseLeave, renderItem: this.props.renderItem, renderNotFound: this.props.renderNotFound, itemWrapper: this.props.itemWrapper, renderValue: this.props.renderValue, renderTotalCount: this.props.renderTotalCount, renderAddButton: this.props.renderAddButton, repeatRequest: this.state.repeatRequest, requestStatus: this.state.requestStatus, refInput: function refInput(input) {_this3.input = input;}, refMenu: function refMenu(menu) {_this3.menu = menu;}, refInputLikeText: function refInputLikeText(inputLikeText) {_this3.inputLikeText = inputLikeText;} };return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ComboBoxView.ComboBoxView, (0, _extends2.default)({}, viewProps, { ref: this.setRootNode })));};_proto.componentDidMount = function componentDidMount() {this.dispatch({ type: 'Mount' }, false);if (this.props.autoFocus) {this.focus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevState.editing && !this.state.editing) {this.handleBlur();}this.dispatch({ type: 'DidUpdate', prevProps: prevProps, prevState: prevState }, false);} /**
429
+ */;_proto.close = function close() {this.dispatch({ type: 'Close' });};_proto.render = function render() {var _this3 = this;var viewProps = { align: this.props.align, borderless: this.props.borderless, disabled: this.props.disabled, disablePortal: this.props.disablePortal, editing: this.state.editing, error: this.props.error, items: this.state.items, loading: this.state.loading, menuAlign: this.props.menuAlign, opened: this.state.opened, drawArrow: this.props.drawArrow, menuPos: this.props.menuPos, placeholder: this.props.placeholder, size: this.props.size, textValue: this.state.textValue, totalCount: this.props.totalCount, value: this.props.value, warning: this.props.warning, 'aria-describedby': this.props['aria-describedby'], width: this.props.width, maxLength: this.props.maxLength, maxMenuHeight: this.props.maxMenuHeight, leftIcon: this.props.leftIcon, rightIcon: this.props.rightIcon, inputMode: this.props.inputMode, onValueChange: this.handleValueChange, onClickOutside: this.handleClickOutside, onFocus: this.handleFocus, onFocusOutside: this.handleBlur, onInputBlur: this.handleInputBlur, onInputValueChange: function onInputValueChange(value) {return _this3.dispatch({ type: 'TextChange', value: value });}, onInputFocus: this.handleFocus, onInputClick: this.handleInputClick, onInputKeyDown: function onInputKeyDown(event) {event.persist();_this3.dispatch({ type: 'KeyPress', event: event });}, onMouseEnter: this.props.onMouseEnter, onMouseOver: this.props.onMouseOver, onMouseLeave: this.props.onMouseLeave, renderItem: this.props.renderItem, renderNotFound: this.props.renderNotFound, itemWrapper: this.props.itemWrapper, renderValue: this.props.renderValue, renderTotalCount: this.props.renderTotalCount, renderAddButton: this.props.renderAddButton, repeatRequest: this.state.repeatRequest, requestStatus: this.state.requestStatus, refInput: function refInput(input) {_this3.input = input;}, refMenu: function refMenu(menu) {_this3.menu = menu;}, refInputLikeText: function refInputLikeText(inputLikeText) {_this3.inputLikeText = inputLikeText;} };return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, this.props, /*#__PURE__*/_react.default.createElement(_ComboBoxView.ComboBoxView, (0, _extends2.default)({}, viewProps, { ref: this.setRootNode })));};_proto.componentDidMount = function componentDidMount() {this.dispatch({ type: 'Mount' });if (this.props.autoFocus) {this.focus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevState.editing && !this.state.editing) {this.handleBlur();}this.dispatch({ type: 'DidUpdate', prevProps: prevProps, prevState: prevState });} /**
433
430
  * @public
434
431
  */;_proto.reset = function reset() {this.dispatch({ type: 'Reset' });};return CustomComboBox;}(_react.default.PureComponent), _class2.__KONTUR_REACT_UI__ = 'CustomComboBox', _temp)) || _class) || _class;exports.CustomComboBox = CustomComboBox;
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","isReact18","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState }, false);\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n const isReact18 = React.version.search('18') === 0;\n if (sync && isReact18) {\n return ReactDOM.flushSync(() => {\n updateState(action);\n });\n }\n\n return updateState(action);\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBox.tsx"],"names":["DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","responsiveLayout","rootNode","state","requestId","cancelationToken","reducer","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","catch","race","code","cancelSearch","CancelationError","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
@@ -451,9 +451,13 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
451
451
  }
452
452
  }
453
453
 
454
- _reactDom.default.flushSync(function () {
454
+ // Auto-batching React@18 creates problems that are fixed with flushSync
455
+ // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366
456
+ if (_react.default.version.search('18') === 0) {
457
+ _reactDom.default.flushSync(function () {return _this.setState({ focused: true });});
458
+ } else {
455
459
  _this.setState({ focused: true });
456
- });
460
+ }
457
461
 
458
462
  if (_this.props.onFocus) {
459
463
  _this.props.onFocus(e);
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","nativeInput","InputLikeText","rootNode","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","styles","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","ReactDOM","flushSync","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","React","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n ReactDOM.flushSync(() => {\n this.setState({ focused: true });\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","nativeInput","InputLikeText","rootNode","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","isIE11","document","body","setTimeout","focusTimeout","clearInterval","window","isEdge","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","styles","jsInputStyles","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","React","version","search","ReactDOM","flushSync","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","MouseDrag","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__"],"mappings":";;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uD;;;;;;;;;;;;;;AAcO,IAAMA,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B;AAEnCC,EAAAA,KAAK,EAAE,sBAF4B;AAGnCC,EAAAA,WAAW,EAAE,4BAHsB,EAA9B,C;;;;;;AASMC,a,OADZC,kB;;;;;AAMSC,IAAAA,Q,GAAW,0CAAkBF,aAAa,CAACG,YAAhC,C;;AAEZC,IAAAA,K,GAAQ,EAAEC,QAAQ,EAAE,KAAZ,EAAmBC,OAAO,EAAE,KAA5B,E;;;AAGPC,IAAAA,I,GAA2B,I;AAC3BC,IAAAA,W,GAAuC,I;AACvCC,IAAAA,qB,GAA8D,I;AAC9DC,IAAAA,M,GAAS,K;AACTC,IAAAA,U,GAAa,K;AACbC,IAAAA,Q,GAAW,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCZC,IAAAA,e,GAAkB,UAACN,IAAD,EAA2BO,KAA3B,EAAsCC,GAAtC,EAAkD,KAAvBD,KAAuB,cAAvBA,KAAuB,GAAf,CAAe,MAAZC,GAAY,cAAZA,GAAY,GAAN,CAAM;AACzE,UAAI,MAAKH,QAAL,IAAiB,CAACL,IAAtB,EAA4B;AAC1B;AACD;AACD,UAAIS,kBAAU,6CAAoBT,IAApB,EAA0BU,QAAQ,CAACC,IAAnC,CAAd,EAAwD;AACtD;AACA;AACD;AACD,YAAKR,MAAL,GAAc,IAAd;AACA,YAAKC,UAAL,GAAkB,IAAlB;;AAEA,YAAKF,qBAAL,GAA6B,CAACF,IAAD,EAAOO,KAAP,EAAcC,GAAd,CAA7B;AACAI,MAAAA,UAAU,CAAC,oBAAM,0CAAmBZ,IAAnB,EAAyBO,KAAzB,EAAgCC,GAAhC,CAAN,EAAD,EAA6C,CAA7C,CAAV;AACA,UAAI,MAAKK,YAAT,EAAuB;AACrBC,QAAAA,aAAa,CAAC,MAAKD,YAAN,CAAb;AACD;AACD,YAAKA,YAAL,GAAoBE,MAAM,CAACH,UAAP,CAAkB,oBAAM,CAACH,kBAAUO,cAAX,KAAsB,MAAKhB,IAA3B,IAAmC,MAAKA,IAAL,CAAUiB,KAAV,EAAzC,EAAlB,EAA8E,CAA9E,CAApB;AACD,K;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCOC,IAAAA,U,GAAa,UAACC,KAAD,EAAuD;AAC1E;AACEC,MAAAA,QADF;;;;;;;;;;;;;;;;;;;;;AAsBID,MAAAA,KAtBJ,CACEC,QADF,CAEEC,QAFF,GAsBIF,KAtBJ,CAEEE,QAFF,CAGEC,WAHF,GAsBIH,KAtBJ,CAGEG,WAHF,CAIEC,KAJF,GAsBIJ,KAtBJ,CAIEI,KAJF,CAKEC,UALF,GAsBIL,KAtBJ,CAKEK,UALF,CAMEC,KANF,GAsBIN,KAtBJ,CAMEM,KANF,CAOEC,IAPF,GAsBIP,KAtBJ,CAOEO,IAPF,CAQEC,KARF,GAsBIR,KAtBJ,CAQEQ,KARF,CASEC,OATF,GAsBIT,KAtBJ,CASES,OATF,CAUEC,aAVF,GAsBIV,KAtBJ,CAUEU,aAVF,CAWEC,QAXF,GAsBIX,KAtBJ,CAWEW,QAXF,CAYEC,MAZF,GAsBIZ,KAtBJ,CAYEY,MAZF,CAaEC,MAbF,GAsBIb,KAtBJ,CAaEa,MAbF,CAcEC,QAdF,GAsBId,KAtBJ,CAcEc,QAdF,CAeEC,SAfF,GAsBIf,KAtBJ,CAeEe,SAfF,CAgBEC,KAhBF,GAsBIhB,KAtBJ,CAgBEgB,KAhBF,CAiBEC,gBAjBF,GAsBIjB,KAtBJ,CAiBEiB,gBAjBF,CAkBEC,cAlBF,GAsBIlB,KAtBJ,CAkBEkB,cAlBF,CAmBEC,gBAnBF,GAsBInB,KAtBJ,CAmBEmB,gBAnBF,CAoBsBC,eApBtB,GAsBIpB,KAtBJ,CAoBE,kBApBF,EAqBKqB,IArBL,+CAsBIrB,KAtBJ;;AAwBA,wBAA8B,MAAKtB,KAAnC,CAAQE,OAAR,eAAQA,OAAR,CAAiBD,QAAjB,eAAiBA,QAAjB;;AAEA,UAAM2C,QAAQ,GAAG,+BAAY,MAAKC,KAAjB;AACf,mCAAC,kCAAD,IAAkB,IAAI,EAAET,QAAxB,EAAkC,IAAI,EAAEF,MAAxC,EAAgD,IAAI,EAAC,MAArD,GADe;;AAGf,YAAKY,cAAL,EAHF;;AAKA,UAAMC,SAAS,GAAG,+BAAY,MAAKF,KAAjB;AAChB,mCAAC,kCAAD,IAAkB,IAAI,EAAER,SAAxB,EAAmC,IAAI,EAAEF,MAAzC,EAAiD,IAAI,EAAC,OAAtD,GADgB;;AAGhB,YAAKa,eAAL,EAHF;;;AAMA,UAAMC,SAAS,GAAG,iBAAGC,sBAAOzD,IAAP,EAAH,EAAkB0D,cAAc1D,IAAd,CAAmB,MAAKoD,KAAxB,CAAlB,EAAkD,MAAKO,gBAAL,EAAlD;AACfD,oBAAclB,QAAd,CAAuB,MAAKY,KAA5B,CADe,IACsB,CAAC,CAACZ,QADxB;AAEfkB,oBAAcxB,UAAd,EAFe,IAEc,CAAC,CAACA,UAFhB;AAGfwB,oBAAc/B,KAAd,CAAoB,MAAKyB,KAAzB,CAHe,IAGmB3C,OAHnB;AAIfiD,oBAAcE,KAAd,CAAoB,MAAKR,KAAzB,CAJe,IAImB5C,QAJnB;AAKfkD,oBAAcpB,OAAd,CAAsB,MAAKc,KAA3B,CALe,IAKqB,CAAC,CAACd,OALvB;AAMfoB,oBAAcrB,KAAd,CAAoB,MAAKe,KAAzB,CANe,IAMmB,CAAC,CAACf,KANrB;AAOfqB,oBAAcG,aAAd,CAA4B,MAAKT,KAAjC,CAPe,IAO2B3C,OAAO,KAAKU,kBAAUO,cAAf,CAPlC;AAQfgC,oBAAcI,eAAd,CAA8B,MAAKV,KAAnC,CARe,IAQ6B,CAAC,CAACd,OAAF,KAAcnB,kBAAUO,cAAxB,CAR7B;AASfgC,oBAAcK,aAAd,CAA4B,MAAKX,KAAjC,CATe,IAS2B,CAAC,CAACf,KAAF,KAAYlB,kBAAUO,cAAtB,CAT3B;AAUfgC,oBAAcM,kBAAd,EAVe,IAUsBC,gBAVtB,OAAlB;;;AAaA,UAAMC,YAAY,GAAG,iBAAGR,cAAcS,OAAd,EAAH;AAClBV,4BAAOW,iBAAP,EADkB,IACW3D,OADX,QAArB;;;AAIA,UAAM4D,OAAO,GAAGC,6CAAhB;AACAC,MAAAA,MAAM,CAACC,MAAP,CAAcH,OAAd,EAAuB,EAAE7B,QAAQ,EAARA,QAAF,EAAY/B,OAAO,EAAPA,OAAZ,EAAqB2B,IAAI,EAAJA,IAArB,EAAvB;;AAEA;AACE;AACE,sBAAUrC,qBAAqB,CAACC,IADlC;AAEMkD,QAAAA,IAFN;AAGE,UAAA,SAAS,EAAEM,SAHb;AAIE,UAAA,KAAK,EAAE,EAAErB,KAAK,EAALA,KAAF,EAASsC,SAAS,EAAExC,KAApB,EAJT;AAKE,UAAA,QAAQ,EAAEO,QAAQ,GAAGkC,SAAH,GAAe,CALnC;AAME,UAAA,OAAO,EAAE,MAAKC,WANhB;AAOE,UAAA,MAAM,EAAE,MAAKC,UAPf;AAQE,UAAA,GAAG,EAAE,MAAK9C,QARZ;AASE,UAAA,SAAS,EAAE,MAAK+C,aATlB;AAUE,UAAA,WAAW,EAAE,MAAKC,eAVpB;;AAYE,qCAAC,sCAAD,CAAoB,QAApB,IAA6B,KAAK,EAAET,OAApC;AACE;AACE,sBAAUtE,qBAAqB,CAACG,WADlC;AAEE,UAAA,IAAI,EAAC,QAFP;AAGE,UAAA,KAAK,EAAE2C,KAHT;AAIE,UAAA,QAAQ,EAAEL,QAJZ;AAKE,8BAAkBS,eALpB,GADF;;AAQGE,QAAAA,QARH;AASE,+CAAM,SAAS,EAAEe,YAAjB;AACE;AACE,sBAAUnE,qBAAqB,CAACE,KADlC;AAEE,UAAA,SAAS,EAAE,iBAAGyD,cAAczD,KAAd,CAAoB,MAAKmD,KAAzB,CAAH;AACRK,gCAAOsB,QAAP,EADQ,IACY,CAAC/B,gBADb;AAERU,wBAAcsB,UAAd,CAAyB,MAAK5B,KAA9B,CAFQ,IAE+B3C,OAF/B;AAGRiD,wBAAcuB,aAAd,CAA4B,MAAK7B,KAAjC,CAHQ,IAGkCZ,QAHlC,QAFb;;;AAQG,cAAKX,KAAL,CAAWqD,QARd,CADF;;AAWG,cAAKC,iBAAL,EAXH,CATF;;AAsBG7B,QAAAA,SAtBH;AAuBGnC,0BAAUV,OAAV,iBAAqB,6BAAC,wBAAD,IAAa,OAAO,EAAE,MAAK2E,cAA3B,GAvBxB,CAZF,CADF;;;;AAwCD,K;;;;;;;;;;;;;;AAcOC,IAAAA,c,GAAiB,YAAM;AAC7B,aAAO,MAAKC,UAAL,CAAgB,MAAKzD,KAAL,CAAWc,QAA3B,EAAqC,MAAK4C,gBAAL,EAArC,CAAP;AACD,K;;AAEOC,IAAAA,e,GAAkB,YAAM;AAC9B,aAAO,MAAKF,UAAL,CAAgB,MAAKzD,KAAL,CAAWe,SAA3B,EAAsC,MAAK2C,gBAAL,CAAsB,IAAtB,CAAtC,CAAP;AACD,K;;AAEOD,IAAAA,U,GAAa,UAACG,IAAD,EAAsBjC,SAAtB,EAAgE;AACnF,UAAI,CAACiC,IAAL,EAAW;AACT,eAAO,IAAP;AACD;;AAED,UAAQjD,QAAR,GAAqB,MAAKX,KAA1B,CAAQW,QAAR;AACA,UAAMkD,QAAQ,GAAGD,IAAI,YAAYE,QAAhB,GAA2BF,IAAI,EAA/B,GAAoCA,IAArD;;AAEA;AACE;AACE,UAAA,SAAS,EAAE,iBAAG/B,cAAc+B,IAAd,EAAH,EAAyBjC,SAAzB,EAAoCE,cAAckC,eAAd,CAA8B,MAAKxC,KAAnC,CAApC;AACRM,wBAAcmC,YAAd,EADQ,IACuBrD,QADvB,QADb;;;AAKGkD,QAAAA,QALH,CADF;;;AASD,K;;AAEOI,IAAAA,Y,GAAe,YAA0B;AAC/C,wBAA6B,MAAKjE,KAAlC,CAAQY,MAAR,eAAQA,MAAR,CAAgBD,QAAhB,eAAgBA,QAAhB;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGiB,cAAcjB,MAAd,CAAqB,MAAKW,KAA1B,CAAH,mBAAwCM,cAAcqC,cAAd,CAA6B,MAAK3C,KAAlC,CAAxC,IAAmFZ,QAAnF,QAAjB;AACGC,QAAAA,MADH,CADF;;;AAKD,K;;AAEOuD,IAAAA,Y,GAAe,YAA0B;AAC/C,yBAA6B,MAAKnE,KAAlC,CAAQa,MAAR,gBAAQA,MAAR,CAAgBF,QAAhB,gBAAgBA,QAAhB;;AAEA,UAAI,CAACE,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGgB,cAAchB,MAAd,CAAqB,MAAKU,KAA1B,CAAH,mBAAwCM,cAAcuC,cAAd,CAA6B,MAAK7C,KAAlC,CAAxC,IAAmFZ,QAAnF,QAAjB;AACGE,QAAAA,MADH,CADF;;;AAKD,K;;AAEOW,IAAAA,c,GAAiB,YAA0B;AACjD,UAAMV,QAAQ,GAAG,MAAK0C,cAAL,EAAjB;AACA,UAAM5C,MAAM,GAAG,MAAKqD,YAAL,EAAf;;AAEA,UAAI,CAACnD,QAAD,IAAa,CAACF,MAAlB,EAA0B;AACxB,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAEiB,cAAcwC,aAAd,EAAjB;AACGvD,QAAAA,QADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,K;;AAEOc,IAAAA,e,GAAkB,YAA0B;AAClD,UAAMX,SAAS,GAAG,MAAK4C,eAAL,EAAlB;AACA,UAAM9C,MAAM,GAAG,MAAKsD,YAAL,EAAf;;AAEA,UAAI,CAACpD,SAAD,IAAc,CAACF,MAAnB,EAA2B;AACzB,eAAO,IAAP;AACD;;AAED;AACE,+CAAM,SAAS,EAAE,iBAAGgB,cAAcwC,aAAd,EAAH,EAAkCxC,cAAcyC,cAAd,EAAlC,CAAjB;AACGvD,QAAAA,SADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,K;;AAEOyC,IAAAA,iB,GAAoB,YAA0B;AACpD,yBAA4C,MAAKtD,KAAjD,CAAQqD,QAAR,gBAAQA,QAAR,CAAkBlD,WAAlB,gBAAkBA,WAAlB,CAA+BQ,QAA/B,gBAA+BA,QAA/B;AACA,UAAQ/B,OAAR,GAAoB,MAAKF,KAAzB,CAAQE,OAAR;AACA,UAAM2F,QAAQ,GAAG,0BAAclB,QAAd,KAA2BA,QAAQ,KAAK,EAAzD;;AAEA,UAAI,CAACkB,QAAD,IAAapE,WAAjB,EAA8B;AAC5B;AACE;AACE,YAAA,SAAS,EAAE,iBAAG0B,cAAc1B,WAAd,CAA0B,MAAKoB,KAA/B,CAAH;AACRM,0BAAc2C,mBAAd,CAAkC,MAAKjD,KAAvC,CADQ,IACwCZ,QADxC;AAERkB,0BAAc4C,gBAAd,CAA+B,MAAKlD,KAApC,CAFQ,IAEqC3C,OAFrC,QADb;;;AAMGuB,UAAAA,WANH,CADF;;;AAUD;AACD,aAAO,IAAP;AACD,K;;AAEOuE,IAAAA,uB,GAA0B,UAACC,CAAD,EAAmB;AACnD,UAAI,MAAKjG,KAAL,CAAWE,OAAX,IAAsB,MAAKC,IAA3B,IAAmC8F,CAAC,CAACC,MAAF,YAAoBC,IAAvD,IAA+D,CAAC,MAAKhG,IAAL,CAAUiG,QAAV,CAAmBH,CAAC,CAACC,MAArB,CAApE,EAAkG;AAChG,cAAKG,OAAL;AACD;AACF,K;;AAEOC,IAAAA,qB,GAAwB,UAACL,CAAD,EAAsB;AACpD,UAAI,MAAKjG,KAAL,CAAWE,OAAX,IAAsB,2BAAS+F,CAAT,CAA1B,EAAuC;AACrC,cAAKI,OAAL;AACD;AACF,K;;AAEO9B,IAAAA,e,GAAkB,YAAM;AAC9B,YAAKjE,MAAL,GAAc,IAAd;AACD,K;;AAEOgE,IAAAA,a,GAAgB,UAAC2B,CAAD,EAAyC;AAC/D,UAAI,MAAK3E,KAAL,CAAWW,QAAf,EAAyB;AACvB;AACD;;AAED,UAAIrB,kBAAU,kCAAgBqF,CAAhB,CAAV,IAAgC,MAAK7F,WAAzC,EAAsD;AACpD,cAAKE,MAAL,GAAc,IAAd;AACAS,QAAAA,UAAU,CAAC,YAAM;AACf,cAAI,MAAKV,qBAAT,EAAgC;AAC9B,6BAAKI,eAAL,eAAwB,MAAKJ,qBAA7B;AACD;AACD,cAAI,MAAKF,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUiB,KAAV;AACD;AACF,SAPS,EAOP,CAPO,CAAV;;AASA,cAAKhB,WAAL,CAAiBgB,KAAjB;AACD;;AAED,UAAI,MAAKE,KAAL,CAAWiF,SAAf,EAA0B;AACxB,cAAKjF,KAAL,CAAWiF,SAAX,CAAqBN,CAArB;AACD;AACF,K;;AAEOO,IAAAA,oB,GAA8C,UAACP,CAAD,EAAO;AAC3D,YAAKzF,QAAL,GAAgB,IAAhB;AACAK,MAAAA,QAAQ,CAAC4F,eAAT,CAAyBC,SAAzB,CAAmCC,GAAnC,CAAuCzD,sBAAO0D,cAAP,EAAvC;;AAEA,UAAI,MAAKtF,KAAL,CAAWiB,gBAAf,EAAiC;AAC/B,cAAKjB,KAAL,CAAWiB,gBAAX,CAA4B0D,CAA5B;AACD;AACF,K;;AAEOY,IAAAA,kB,GAA4C,UAACZ,CAAD,EAAO;AACzD;AACAlF,MAAAA,UAAU,CAAC,YAAM;AACf,cAAKP,QAAL,GAAgB,KAAhB;;AAEA,YAAI,MAAKc,KAAL,CAAWkB,cAAf,EAA+B;AAC7B,gBAAKlB,KAAL,CAAWkB,cAAX,CAA0ByD,CAA1B;AACD;AACF,OANS,EAMP,CANO,CAAV;;AAQApF,MAAAA,QAAQ,CAAC4F,eAAT,CAAyBC,SAAzB,CAAmCI,MAAnC,CAA0C5D,sBAAO0D,cAAP,EAA1C;AACD,K;;AAEOxC,IAAAA,W,GAAc,UAAC6B,CAAD,EAAsC;AAC1D,UAAIvC,gBAAJ,EAAc;AACZuC,QAAAA,CAAC,CAACC,MAAF,CAASa,YAAT,CAAsB,iBAAtB,EAAyC,MAAzC;AACD;;AAED,UAAI,MAAKzF,KAAL,CAAWW,QAAf,EAAyB;AACvB,YAAIrB,cAAJ,EAAY;AACV,oDAAmBC,QAAQ,CAACC,IAA5B,EAAkC,CAAlC,EAAqC,CAArC;AACD;AACD;AACD;;AAED,UAAI,CAACF,kBAAUO,cAAX,KAAsB,MAAKb,MAA/B,EAAuC;AACrC,cAAKA,MAAL,GAAc,KAAd;AACA,YAAI,MAAKN,KAAL,CAAWE,OAAf,EAAwB;AACtB;AACD;AACF;;AAED;AACA;AACA,UAAI8G,eAAMC,OAAN,CAAcC,MAAd,CAAqB,IAArB,MAA+B,CAAnC,EAAsC;AACpCC,0BAASC,SAAT,CAAmB,oBAAM,MAAKC,QAAL,CAAc,EAAEnH,OAAO,EAAE,IAAX,EAAd,CAAN,EAAnB;AACD,OAFD,MAEO;AACL,cAAKmH,QAAL,CAAc,EAAEnH,OAAO,EAAE,IAAX,EAAd;AACD;;AAED,UAAI,MAAKoB,KAAL,CAAWgG,OAAf,EAAwB;AACtB,cAAKhG,KAAL,CAAWgG,OAAX,CAAmBrB,CAAnB;AACD;AACF,K;;AAEO5B,IAAAA,U,GAAa,UAAC4B,CAAD,EAAsC;AACzD,UAAIvC,gBAAJ,EAAc;AACZuC,QAAAA,CAAC,CAACC,MAAF,CAASqB,eAAT,CAAyB,iBAAzB;AACD;;AAED,UAAI,MAAKjG,KAAL,CAAWW,QAAf,EAAyB;AACvBgE,QAAAA,CAAC,CAACuB,eAAF;AACA;AACD;;AAED,UAAI,CAAC5G,kBAAUO,cAAX,KAAsB,MAAKZ,UAA/B,EAA2C;AACzC,cAAKA,UAAL,GAAkB,KAAlB;AACA;AACD;AACD,UAAI,CAACK,kBAAUO,cAAX,KAAsB,MAAKb,MAA/B,EAAuC;AACrC;AACD;;AAED;;AAEA,YAAK+G,QAAL,CAAc,EAAEnH,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKoB,KAAL,CAAWmG,MAAf,EAAuB;AACrB,cAAKnG,KAAL,CAAWmG,MAAX,CAAkBxB,CAAlB;AACD;AACF,K;;AAEOpB,IAAAA,c,GAAiB,UAAC6C,EAAD,EAAiC;AACxD,YAAKtH,WAAL,GAAmBsH,EAAnB;AACD,K;;AAEOnG,IAAAA,Q,GAAW,UAACmG,EAAD,EAA4B;AAC7C,UAAI,MAAKpG,KAAL,CAAWC,QAAf,EAAyB;AACvB,cAAKD,KAAL,CAAWC,QAAX,CAAoBmG,EAApB;AACD;AACD,YAAKvH,IAAL,GAAYuH,EAAZ;AACD,K;;AAEOrB,IAAAA,O,GAAU,YAAY;AAC5B,YAAK/F,MAAL,GAAc,KAAd;AACA,YAAKC,UAAL,GAAkB,KAAlB;AACD,K;;AAEO6C,IAAAA,gB,GAAmB,YAAM;AAC/B,cAAQ,MAAKtD,QAAL,GAAgB+B,IAAxB;AACE,aAAK,OAAL;AACE,iBAAO;AACJsB,wBAAcwE,SAAd,CAAwB,MAAK9E,KAA7B,CADI,IACkC,IADlC;AAEJM,wBAAcyE,iBAAd,CAAgC,MAAK/E,KAArC,CAFI,IAE0CjC,kBAAUO,cAFpD,QAAP;;AAIF,aAAK,QAAL;AACE,iBAAO;AACJgC,wBAAc0E,UAAd,CAAyB,MAAKhF,KAA9B,CADI,IACmC,IADnC;AAEJM,wBAAc2E,kBAAd,CAAiC,MAAKjF,KAAtC,CAFI,IAE2CjC,kBAAUO,cAFrD,QAAP;;AAIF,aAAK,OAAL;AACA;AACE,iBAAO;AACJgC,wBAAc4E,SAAd,CAAwB,MAAKlF,KAA7B,CADI,IACkC,IADlC;AAEJM,wBAAc6E,iBAAd,CAAgC,MAAKnF,KAArC,CAFI,IAE0CjC,kBAAUO,cAFpD,SAAP,CAbJ;;;AAkBD,K,qDA5cD;AACF;AACA,K,OACSC,K,GAAP,iBAAe,CACb,IAAI,KAAKjB,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUiB,KAAV,GACD,CACF,C,CAED;AACF;AACA,K,QACS6G,I,GAAP,gBAAc,CACZ,IAAI,KAAK9H,IAAT,EAAe,CACb,KAAKA,IAAL,CAAU8H,IAAV,GACD,CACF,C,CAED;AACF;AACA,K,QACS5E,K,GAAP,iBAAe,mBACb,IAAI,KAAK/B,KAAL,CAAWW,QAAf,EAAyB,CACvB,OACD,CACD,KAAKoF,QAAL,CAAc,EAAEpH,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACiI,YAAL,GAAoBhH,MAAM,CAACH,UAAP,CAAkB,oBAAM,MAAI,CAACsG,QAAL,CAAc,EAAEpH,QAAQ,EAAE,KAAZ,EAAd,CAAN,EAAlB,EAA4D,GAA5D,CAApB,CACD,CAFD,EAGD,C,QAEMkI,O,GAAP,mBAAqC,CACnC,OAAO,KAAKhI,IAAZ,CACD,C,QAqBMiI,iB,GAAP,6BAA2B,CACzB,IAAI,KAAKjI,IAAT,EAAe,CACbkI,qBAAUC,MAAV,CAAiB,KAAKnI,IAAtB,EAA4BoC,gBAA5B,CAA6C,KAAKiE,oBAAlD,EAAwEhE,cAAxE,CAAuF,KAAKqE,kBAA5F,EACD,CACDhG,QAAQ,CAAC0H,gBAAT,CAA0B,WAA1B,EAAuC,KAAKvC,uBAA5C,EACAnF,QAAQ,CAAC0H,gBAAT,CAA0B,SAA1B,EAAqC,KAAKjC,qBAA1C,EACD,C,QAEMkC,oB,GAAP,gCAA8B,CAC5B,IAAI,KAAKN,YAAT,EAAuB,CACrBO,YAAY,CAAC,KAAKP,YAAN,CAAZ,CACD,CACDG,qBAAUK,IAAV,CAAe,KAAKvI,IAApB,EACAU,QAAQ,CAAC8H,mBAAT,CAA6B,WAA7B,EAA0C,KAAK3C,uBAA/C,EACAnF,QAAQ,CAAC8H,mBAAT,CAA6B,SAA7B,EAAwC,KAAKrC,qBAA7C,EACD,C,QAEMsC,M,GAAP,kBAAgB,mBACd,oBACE,6BAAC,0BAAD,CAAc,QAAd,QACG,UAAC/F,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,6BAAC,4BAAD,2BAAe,WAAW,EAAE,MAAI,CAACgG,WAAjC,IAAkD,MAAI,CAACvH,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,C,QAsGO2D,gB,GAAR,0BAAyB8D,KAAzB,EAAwC,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EACtC,QAAQ,KAAKhJ,QAAL,GAAgB+B,IAAxB,GACE,KAAK,OAAL,CACE,OAAOiH,KAAK,GAAG3F,cAAc4F,cAAd,CAA6B,KAAKlG,KAAlC,CAAH,GAA8CM,cAAc6F,aAAd,CAA4B,KAAKnG,KAAjC,CAA1D,CACF,KAAK,QAAL,CACE,OAAOiG,KAAK,GAAG3F,cAAc8F,eAAd,CAA8B,KAAKpG,KAAnC,CAAH,GAA+CM,cAAc+F,cAAd,CAA6B,KAAKrG,KAAlC,CAA3D,CACF,KAAK,OAAL,CACA,QACE,OAAOiG,KAAK,GAAG3F,cAAcgG,cAAd,CAA6B,KAAKtG,KAAlC,CAAH,GAA8CM,cAAciG,aAAd,CAA4B,KAAKvG,KAAjC,CAA1D,CAPJ,CASD,C,wBAvNgCmE,eAAMqC,S,WACzBC,mB,GAAsB,e,UAEtBvJ,Y,GAA6B,EAAE8B,IAAI,EAAE,OAAR,E","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
@@ -85,11 +85,7 @@ export var CustomComboBox = responsiveLayout(_class = rootNode(_class = (_temp =
85
85
  _this.handleBlur();
86
86
  };
87
87
 
88
- _this.dispatch = function (action, sync) {
89
- if (sync === void 0) {
90
- sync = true;
91
- }
92
-
88
+ _this.dispatch = function (action) {
93
89
  var updateState = function updateState(action) {
94
90
  var effects;
95
91
  var nextState;
@@ -109,15 +105,13 @@ export var CustomComboBox = responsiveLayout(_class = rootNode(_class = (_temp =
109
105
  // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366
110
106
 
111
107
 
112
- var isReact18 = React.version.search('18') === 0;
113
-
114
- if (sync && isReact18) {
115
- return ReactDOM.flushSync(function () {
116
- updateState(action);
108
+ if (React.version.search('18') === 0) {
109
+ ReactDOM.flushSync(function () {
110
+ return updateState(action);
117
111
  });
112
+ } else {
113
+ updateState(action);
118
114
  }
119
-
120
- return updateState(action);
121
115
  };
122
116
 
123
117
  _this.handleEffect = function (effect) {
@@ -433,7 +427,7 @@ export var CustomComboBox = responsiveLayout(_class = rootNode(_class = (_temp =
433
427
  _proto.componentDidMount = function componentDidMount() {
434
428
  this.dispatch({
435
429
  type: 'Mount'
436
- }, false);
430
+ });
437
431
 
438
432
  if (this.props.autoFocus) {
439
433
  this.focus();
@@ -449,7 +443,7 @@ export var CustomComboBox = responsiveLayout(_class = rootNode(_class = (_temp =
449
443
  type: 'DidUpdate',
450
444
  prevProps: prevProps,
451
445
  prevState: prevState
452
- }, false);
446
+ });
453
447
  }
454
448
  /**
455
449
  * @public
@@ -1 +1 @@
1
- {"version":3,"sources":["CustomComboBox.tsx"],"names":["React","ReactDOM","CancelationError","taskWithDelay","fixClickFocusIE","CommonWrapper","responsiveLayout","rootNode","ComboBoxRequestStatus","reducer","ComboBoxView","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","state","requestId","cancelationToken","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","isReact18","version","search","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","race","code","cancelSearch","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState }, false);\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n const isReact18 = React.version.search('18') === 0;\n if (sync && isReact18) {\n return ReactDOM.flushSync(() => {\n updateState(action);\n });\n }\n\n return updateState(action);\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["CustomComboBox.tsx"],"names":["React","ReactDOM","CancelationError","taskWithDelay","fixClickFocusIE","CommonWrapper","responsiveLayout","rootNode","ComboBoxRequestStatus","reducer","ComboBoxView","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","Unknown","CustomComboBoxDataTids","comboBoxView","CustomComboBox","state","requestId","cancelationToken","cancelLoaderDelay","focus","props","disabled","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","updateState","effects","nextState","setState","stateAndEffect","Array","forEach","handleEffect","version","search","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","handleClickOutside","e","close","setTimeout","handleInputBlur","handleInputClick","query","getItems","cancelPromise","Promise","_","reject","expectingId","loaderShowDelay","resolve","cancelLoader","race","code","cancelSearch","open","render","viewProps","align","borderless","disablePortal","error","menuAlign","drawArrow","menuPos","placeholder","size","totalCount","warning","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","reset","PureComponent","__KONTUR_REACT_UI__"],"mappings":"0XAAA,OAAOA,KAAP,MAAsC,OAAtC;AACA,OAAOC,QAAP,MAAqB,WAArB;;;;;;;AAOA,SAASC,gBAAT,EAA2BC,aAA3B,QAAgD,iBAAhD;AACA,SAASC,eAAT,QAAgC,kCAAhC;AACA,SAAsBC,aAAtB,QAA2C,8BAA3C;AACA,SAASC,gBAAT,QAAiC,6CAAjC;AACA,SAASC,QAAT,QAAuC,oBAAvC;;;AAGA,SAASC,qBAAT,QAAsC,uBAAtC;AACA,SAAqDC,OAArD,QAAoE,yBAApE;AACA,SAASC,YAAT,QAA6B,gBAA7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,OAAO,IAAMC,wBAAwB,GAAG,GAAjC;AACP,OAAO,IAAMC,gBAAgB,GAAG,IAAzB;;AAEP,OAAO,IAAMC,YAAY,GAAG;AAC1BC,EAAAA,YAAY,EAAE,KADY;AAE1BC,EAAAA,OAAO,EAAE,KAFiB;AAG1BC,EAAAA,KAAK,EAAE,IAHmB;AAI1BC,EAAAA,OAAO,EAAE,KAJiB;AAK1BC,EAAAA,MAAM,EAAE,KALkB;AAM1BC,EAAAA,OAAO,EAAE,KANiB;AAO1BC,EAAAA,SAAS,EAAE,EAPe;AAQ1BC,EAAAA,aAAa,EAAE,iCAAMC,SAAN,EARW;AAS1BC,EAAAA,aAAa,EAAEf,qBAAqB,CAACgB,OATX,EAArB;;;AAYP,OAAO,IAAMC,sBAAsB,GAAG;AACpCC,EAAAA,YAAY,EAAE,oBADsB,EAA/B;;;;;AAMP,WAAaC,cAAb,GAFCrB,gBAED,UADCC,QACD;;;AAGSqB,IAAAA,KAHT,GAGyCf,YAHzC;;;;AAOSgB,IAAAA,SAPT,GAOqB,CAPrB;;AASUV,IAAAA,OATV,GASoB,KATpB;AAUUW,IAAAA,gBAVV,GAUiE,IAVjE;;;AAaUrB,IAAAA,OAbV,GAaoBA,OAbpB;AAcSsB,IAAAA,iBAdT,GAcyC,oBAAM,IAAN,EAdzC;;;;;AAmBSC,IAAAA,KAnBT,GAmBiB,YAAM;AACnB,UAAI,MAAKC,KAAL,CAAWC,QAAf,EAAyB;AACvB;AACD;;AAED,UAAI,MAAKC,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAWH,KAAX;AACD,OAFD,MAEO,IAAI,MAAKI,aAAT,EAAwB;AAC7B,cAAKA,aAAL,CAAmBJ,KAAnB;AACD;AACF,KA7BH;;;;;AAkCSK,IAAAA,eAlCT,GAkC2B,YAAM;AAC7B,UAAI,MAAKJ,KAAL,CAAWC,QAAf,EAAyB;AACvB;AACD;AACD,UAAI,MAAKC,KAAT,EAAgB;AACd,cAAKA,KAAL,CAAWG,SAAX;AACD;AACF,KAzCH;;;;;AA8CSC,IAAAA,IA9CT,GA8CgB,YAAM;AAClB,UAAI,MAAKN,KAAL,CAAWC,QAAf,EAAyB;AACvB;AACD;;AAED,YAAKM,UAAL;AACD,KApDH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuOUC,IAAAA,QAvOV,GAuOqB,UAACC,MAAD,EAAqC;AACtD,UAAMC,WAAW,GAAG,SAAdA,WAAc,CAACD,MAAD,EAAqC;AACvD,YAAIE,OAAJ;AACA,YAAIC,SAAJ;;AAEA,cAAKC,QAAL;AACE,kBAAClB,KAAD,EAAW;AACT,cAAMmB,cAAc,GAAG,MAAKtC,OAAL,CAAamB,KAAb,EAAoB,MAAKK,KAAzB,EAAgCS,MAAhC,CAAvB,CADS;AAEcK,UAAAA,cAAc,YAAYC,KAA1B,GAAkCD,cAAlC,GAAmD,CAACA,cAAD,EAAiB,EAAjB,CAFjE,CAERF,SAFQ,WAEGD,OAFH;AAGT,iBAAOC,SAAP;AACD,SALH;AAME,oBAAM;AACJD,UAAAA,OAAO,CAACK,OAAR,CAAgB,MAAKC,YAArB;AACD,SARH;;AAUD,OAdD;;AAgBA;AACA;AACA,UAAIlD,KAAK,CAACmD,OAAN,CAAcC,MAAd,CAAqB,IAArB,MAA+B,CAAnC,EAAsC;AACpCnD,QAAAA,QAAQ,CAACoD,SAAT,CAAmB,oBAAMV,WAAW,CAACD,MAAD,CAAjB,EAAnB;AACD,OAFD,MAEO;AACLC,QAAAA,WAAW,CAACD,MAAD,CAAX;AACD;AACF,KA/PH;;AAiQUQ,IAAAA,YAjQV,GAiQyB,UAACI,MAAD,EAAqC;AAC1DA,MAAAA,MAAM,CAAC,MAAKb,QAAN,EAAgB,MAAKc,QAArB,EAA+B,MAAKC,QAApC,EAA8C,mDAA9C,CAAN;AACD,KAnQH;;AAqQUA,IAAAA,QArQV,GAqQqB,oBAAM,MAAKvB,KAAX,EArQrB;;AAuQUsB,IAAAA,QAvQV,GAuQqB,oBAAM,MAAK3B,KAAX,EAvQrB;;AAyQU6B,IAAAA,iBAzQV,GAyQ8B,UAACC,KAAD,EAAc;AACxC,YAAKjB,QAAL,CAAc;AACZkB,QAAAA,IAAI,EAAE,aADM;AAEZD,QAAAA,KAAK,EAALA,KAFY;AAGZE,QAAAA,SAAS,EAAE,CAAC,MAAKC,cAHL,EAAd;;AAKD,KA/QH;;AAiRUC,IAAAA,WAjRV,GAiRwB,YAAM;AAC1B,UAAI,MAAK3C,OAAT,EAAkB;AAChB;AACD;AACD,YAAKA,OAAL,GAAe,IAAf;AACA,YAAKsB,QAAL,CAAc,EAAEkB,IAAI,EAAE,OAAR,EAAd;AACD,KAvRH;;AAyRUI,IAAAA,kBAzRV,GAyR+B,UAACC,CAAD,EAAc;AACzC5D,MAAAA,eAAe,CAAC4D,CAAD,CAAf;AACA,YAAKxB,UAAL;AACD,KA5RH;;AA8RUA,IAAAA,UA9RV,GA8RuB,YAAM;AACzB,UAAI,CAAC,MAAKrB,OAAV,EAAmB;AACjB,YAAI,MAAKS,KAAL,CAAWV,MAAf,EAAuB;AACrB,gBAAK+C,KAAL;AACD;AACD;AACD;;AAED,YAAK9C,OAAL,GAAe,KAAf;AACA;AACA;AACA;AACA+C,MAAAA,UAAU,CAAC,YAAM;AACf,cAAKzB,QAAL,CAAc,EAAEkB,IAAI,EAAE,MAAR,EAAd;AACD,OAFS,CAAV;AAGD,KA7SH;;AA+SUQ,IAAAA,eA/SV,GA+S4B,YAAM;AAC9B;AACA;AACA;;AAEA;;AAEA,UAAI,MAAKvC,KAAL,CAAWV,MAAf,EAAuB;AACrB;AACD;AACD,YAAKsB,UAAL;AACD,KA1TH;;AA4TU4B,IAAAA,gBA5TV,GA4T6B,YAAM;AAC/B,UAAI,CAAC,MAAKtC,gBAAV,EAA4B;AAC1B,cAAKW,QAAL,CAAc,EAAEkB,IAAI,EAAE,YAAR,EAAd;AACD;AACF,KAhUH,sDAuDE;AACF;AACA,KAzDA,OA0DeP,MA1Df,oGA0DE,iBAAoBiB,KAApB,gMAAoBA,KAApB,cAAoBA,KAApB,GAAoC,KAAKzC,KAAL,CAAWR,SAA/C,EACUkD,QADV,GACuB,KAAKrC,KAD5B,CACUqC,QADV,CAGQC,aAHR,GAGwC,IAAIC,OAAJ,CAAY,UAACC,CAAD,EAAIC,MAAJ,UAAgB,MAAI,CAAC5C,gBAAL,GAAwB4C,MAAxC,EAAZ,CAHxC,CAIE,KAAK7C,SAAL,IAAkB,CAAlB,CACM8C,WALR,GAKsB,KAAK9C,SAL3B,CAOE,IAAI,CAAC,KAAK+C,eAAV,EAA2B,CACzB,KAAKA,eAAL,GAAuB,IAAIJ,OAAJ,CAAkB,UAACK,OAAD,EAAa,CACpD,IAAMC,YAAY,GAAG3E,aAAa,CAAC,YAAM,CACvC,MAAI,CAACsC,QAAL,CAAc,EAAEkB,IAAI,EAAE,cAAR,EAAd,EACAO,UAAU,CAACW,OAAD,EAAUjE,gBAAV,CAAV,CACD,CAHiC,EAG/BD,wBAH+B,CAAlC,CAKA4D,aAAa,SAAb,CAAoB,oBAAMO,YAAY,EAAlB,EAApB,EAEA,MAAI,CAAC/C,iBAAL,GAAyB,YAAM,CAC7B+C,YAAY,GACZD,OAAO,GACR,CAHD,CAID,CAZsB,CAAvB,CAaD,CArBH,2CAwBwBL,OAAO,CAACO,IAAR,CAAa,CAACT,QAAQ,CAACD,KAAD,CAAT,EAAkBE,aAAlB,CAAb,CAxBxB,QAwBUvD,KAxBV,sBAyBQ,KAAKY,KAAL,CAAWX,OAzBnB,uDA0BYuD,OAAO,CAACO,IAAR,CAAa,CAAC,KAAKH,eAAN,EAAuBL,aAAvB,CAAb,CA1BZ,SA4BI,IAAII,WAAW,KAAK,KAAK9C,SAAzB,EAAoC,CAClC,KAAKY,QAAL,CAAc,EACZkB,IAAI,EAAE,cADM,EAEZ3C,KAAK,EAALA,KAFY,EAAd,EAID,CAjCL,uFAmCI,IAAI,eAAS,YAAMgE,IAAN,KAAe,kBAA5B,EAAgD,CAC9C,KAAKvC,QAAL,CAAc,EAAEkB,IAAI,EAAE,eAAR,EAAd,EACD,CAFD,MAEO,IAAIgB,WAAW,KAAK,KAAK9C,SAAzB,EAAoC,CACzC,KAAKY,QAAL,CAAc,EACZkB,IAAI,EAAE,gBADM,EAEZtC,aAAa,EAAE,yBAAM,CACnB,MAAI,CAAC+B,MAAL,CAAYiB,KAAZ,EACA,IAAI,MAAI,CAAClC,KAAT,EAAgB,CACd,MAAI,CAACA,KAAL,CAAWH,KAAX,GACD,CACF,CAPW,EAAd,EASD,CA/CL,2BAiDI,IAAI2C,WAAW,KAAK,KAAK9C,SAAzB,EAAoC,CAClC,IAAI,CAAC,KAAKD,KAAL,CAAWX,OAAhB,EAAyB,CACvB,KAAKc,iBAAL,GACD,CACD,KAAKD,gBAAL,GAAwB,IAAxB,CACA,KAAK8C,eAAL,GAAuB,IAAvB,CACD,CAvDL,6GA1DF,iFAqHE;AACF;AACA,KAvHA,QAwHSK,YAxHT,GAwHE,wBAAsB,CACpB,IAAI,KAAKnD,gBAAT,EAA2B,CACzB,KAAKA,gBAAL,CAAsB,IAAI5B,gBAAJ,EAAtB,EACD,CACF,CA5HH,CA8HE;AACF;AACA,KAhIA,QAiISgF,IAjIT,GAiIE,gBAAc,CACZ,KAAKzC,QAAL,CAAc,EAAEkB,IAAI,EAAE,MAAR,EAAd,EACD,CAnIH,CAqIE;AACF;AACA,KAvIA,QAwISM,KAxIT,GAwIE,iBAAe,CACb,KAAKxB,QAAL,CAAc,EAAEkB,IAAI,EAAE,OAAR,EAAd,EACD,CA1IH,QA4ISwB,MA5IT,GA4IE,kBAAgB,mBACd,IAAMC,SAAS,GAAG,EAChBC,KAAK,EAAE,KAAKpD,KAAL,CAAWoD,KADF,EAEhBC,UAAU,EAAE,KAAKrD,KAAL,CAAWqD,UAFP,EAGhBpD,QAAQ,EAAE,KAAKD,KAAL,CAAWC,QAHL,EAIhBqD,aAAa,EAAE,KAAKtD,KAAL,CAAWsD,aAJV,EAKhBxE,OAAO,EAAE,KAAKa,KAAL,CAAWb,OALJ,EAMhByE,KAAK,EAAE,KAAKvD,KAAL,CAAWuD,KANF,EAOhBxE,KAAK,EAAE,KAAKY,KAAL,CAAWZ,KAPF,EAQhBC,OAAO,EAAE,KAAKW,KAAL,CAAWX,OARJ,EAShBwE,SAAS,EAAE,KAAKxD,KAAL,CAAWwD,SATN,EAUhBvE,MAAM,EAAE,KAAKU,KAAL,CAAWV,MAVH,EAWhBwE,SAAS,EAAE,KAAKzD,KAAL,CAAWyD,SAXN,EAYhBC,OAAO,EAAE,KAAK1D,KAAL,CAAW0D,OAZJ,EAahBC,WAAW,EAAE,KAAK3D,KAAL,CAAW2D,WAbR,EAchBC,IAAI,EAAE,KAAK5D,KAAL,CAAW4D,IAdD,EAehBzE,SAAS,EAAE,KAAKQ,KAAL,CAAWR,SAfN,EAgBhB0E,UAAU,EAAE,KAAK7D,KAAL,CAAW6D,UAhBP,EAiBhBpC,KAAK,EAAE,KAAKzB,KAAL,CAAWyB,KAjBF,EAkBhBqC,OAAO,EAAE,KAAK9D,KAAL,CAAW8D,OAlBJ,EAmBhB,oBAAoB,KAAK9D,KAAL,CAAW,kBAAX,CAnBJ,EAoBhB+D,KAAK,EAAE,KAAK/D,KAAL,CAAW+D,KApBF,EAqBhBC,SAAS,EAAE,KAAKhE,KAAL,CAAWgE,SArBN,EAsBhBC,aAAa,EAAE,KAAKjE,KAAL,CAAWiE,aAtBV,EAuBhBC,QAAQ,EAAE,KAAKlE,KAAL,CAAWkE,QAvBL,EAwBhBC,SAAS,EAAE,KAAKnE,KAAL,CAAWmE,SAxBN,EAyBhBC,SAAS,EAAE,KAAKpE,KAAL,CAAWoE,SAzBN,EA2BhBC,aAAa,EAAE,KAAK7C,iBA3BJ,EA4BhB8C,cAAc,EAAE,KAAKxC,kBA5BL,EA6BhByC,OAAO,EAAE,KAAK1C,WA7BE,EA8BhB2C,cAAc,EAAE,KAAKjE,UA9BL,EA+BhBkE,WAAW,EAAE,KAAKvC,eA/BF,EAgChBwC,kBAAkB,EAAE,4BAACjD,KAAD,UAAmB,MAAI,CAACjB,QAAL,CAAc,EAAEkB,IAAI,EAAE,YAAR,EAAsBD,KAAK,EAALA,KAAtB,EAAd,CAAnB,EAhCJ,EAiChBkD,YAAY,EAAE,KAAK9C,WAjCH,EAkChB+C,YAAY,EAAE,KAAKzC,gBAlCH,EAmChB0C,cAAc,EAAE,wBAACC,KAAD,EAAgC,CAC9CA,KAAK,CAACC,OAAN,GACA,MAAI,CAACvE,QAAL,CAAc,EAAEkB,IAAI,EAAE,UAAR,EAAoBoD,KAAK,EAALA,KAApB,EAAd,EACD,CAtCe,EAuChBE,YAAY,EAAE,KAAKhF,KAAL,CAAWgF,YAvCT,EAwChBC,WAAW,EAAE,KAAKjF,KAAL,CAAWiF,WAxCR,EAyChBC,YAAY,EAAE,KAAKlF,KAAL,CAAWkF,YAzCT,EA0ChBC,UAAU,EAAE,KAAKnF,KAAL,CAAWmF,UA1CP,EA2ChBC,cAAc,EAAE,KAAKpF,KAAL,CAAWoF,cA3CX,EA4ChBC,WAAW,EAAE,KAAKrF,KAAL,CAAWqF,WA5CR,EA6ChBC,WAAW,EAAE,KAAKtF,KAAL,CAAWsF,WA7CR,EA8ChBC,gBAAgB,EAAE,KAAKvF,KAAL,CAAWuF,gBA9Cb,EA+ChBC,eAAe,EAAE,KAAKxF,KAAL,CAAWwF,eA/CZ,EAgDhBpG,aAAa,EAAE,KAAKO,KAAL,CAAWP,aAhDV,EAiDhBE,aAAa,EAAE,KAAKK,KAAL,CAAWL,aAjDV,EAmDhBmG,QAAQ,EAAE,kBAACvF,KAAD,EAA4B,CACpC,MAAI,CAACA,KAAL,GAAaA,KAAb,CACD,CArDe,EAsDhBwF,OAAO,EAAE,iBAACC,IAAD,EAA0B,CACjC,MAAI,CAACA,IAAL,GAAYA,IAAZ,CACD,CAxDe,EAyDhBC,gBAAgB,EAAE,0BAACzF,aAAD,EAA4C,CAC5D,MAAI,CAACA,aAAL,GAAqBA,aAArB,CACD,CA3De,EAAlB,CA8DA,oBACE,oBAAC,aAAD,EAAmB,KAAKH,KAAxB,eACE,oBAAC,YAAD,eAAkBmD,SAAlB,IAA6B,GAAG,EAAE,KAAK0C,WAAvC,IADF,CADF,CAKD,CAhNH,QAkNSC,iBAlNT,GAkNE,6BAA2B,CACzB,KAAKtF,QAAL,CAAc,EAAEkB,IAAI,EAAE,OAAR,EAAd,EACA,IAAI,KAAK1B,KAAL,CAAW+F,SAAf,EAA0B,CACxB,KAAKhG,KAAL,GACD,CACF,CAvNH,QAyNSiG,kBAzNT,GAyNE,4BAA0BC,SAA1B,EAA6DC,SAA7D,EAAgG,CAC9F,IAAIA,SAAS,CAACpH,OAAV,IAAqB,CAAC,KAAKa,KAAL,CAAWb,OAArC,EAA8C,CAC5C,KAAKyB,UAAL,GACD,CACD,KAAKC,QAAL,CAAc,EAAEkB,IAAI,EAAE,WAAR,EAAqBuE,SAAS,EAATA,SAArB,EAAgCC,SAAS,EAATA,SAAhC,EAAd,EACD,CA9NH,CAgOE;AACF;AACA,KAlOA,QAmOSC,KAnOT,GAmOE,iBAAe,CACb,KAAK3F,QAAL,CAAc,EAAEkB,IAAI,EAAE,OAAR,EAAd,EACD,CArOH,yBAAuC3D,KAAK,CAACqI,aAA7C,WACgBC,mBADhB,GACsC,gBADtC","sourcesContent":["import React, { AriaAttributes } from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { Nullable } from '../../typings/utility-types';\nimport { Input, InputIconType } from '../../components/Input';\nimport { Menu } from '../Menu';\nimport { InputLikeText } from '../InputLikeText';\nimport { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { DropdownContainerProps } from '../DropdownContainer';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { CustomComboBoxAction, CustomComboBoxEffect, reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport interface CustomComboBoxProps<T> extends Pick<DropdownContainerProps, 'menuPos'>, CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: 'small' | 'medium' | 'large';\n totalCount?: number;\n value?: Nullable<T>;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n 'aria-describedby'?: AriaAttributes['aria-describedby'];\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item?: T) => React.ComponentType<unknown>;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<T[]>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<T[]>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n};\n\nexport const CustomComboBoxDataTids = {\n comboBoxView: 'ComboBoxView__root',\n} as const;\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = () => {\n if (this.props.disabled) {\n return;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n menuAlign: this.props.menuAlign,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' });\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch({ type: 'DidUpdate', prevProps, prevState });\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.dispatch({ type: 'Focus' });\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n });\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n // TODO: add check for mobile layout, to call `handleBlur`\n\n if (this.state.opened) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"]}
@@ -351,13 +351,21 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
351
351
  if (_this.state.focused) {
352
352
  return;
353
353
  }
354
- }
354
+ } // Auto-batching React@18 creates problems that are fixed with flushSync
355
+ // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366
356
+
355
357
 
356
- ReactDOM.flushSync(function () {
358
+ if (React.version.search('18') === 0) {
359
+ ReactDOM.flushSync(function () {
360
+ return _this.setState({
361
+ focused: true
362
+ });
363
+ });
364
+ } else {
357
365
  _this.setState({
358
366
  focused: true
359
367
  });
360
- });
368
+ }
361
369
 
362
370
  if (_this.props.onFocus) {
363
371
  _this.props.onFocus(e);
@@ -1 +1 @@
1
- {"version":3,"sources":["InputLikeText.tsx"],"names":["React","ReactDOM","isNonNullable","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","styles","jsInputStyles","ThemeContext","CommonWrapper","cx","findRenderContainer","rootNode","createPropsGetter","isTheme2022","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","HiddenInput","InputLikeTextDataTids","root","input","nativeInput","InputLikeText","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","document","body","setTimeout","focusTimeout","clearInterval","window","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","context","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","flushSync","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n ReactDOM.flushSync(() => {\n this.setState({ focused: true });\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["React","ReactDOM","isNonNullable","isKeyTab","isShortcutPaste","MouseDrag","isEdge","isIE11","isMobile","removeAllSelections","selectNodeContents","styles","jsInputStyles","ThemeContext","CommonWrapper","cx","findRenderContainer","rootNode","createPropsGetter","isTheme2022","InputLayoutAside","InputLayoutContext","InputLayoutContextDefault","HiddenInput","InputLikeTextDataTids","root","input","nativeInput","InputLikeText","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectInnerNode","start","end","document","body","setTimeout","focusTimeout","clearInterval","window","focus","renderMain","props","innerRef","tabIndex","placeholder","align","borderless","width","size","error","warning","onValueChange","disabled","prefix","suffix","leftIcon","rightIcon","value","onMouseDragStart","onMouseDragEnd","takeContentWidth","ariaDescribedby","rest","leftSide","theme","renderLeftSide","rightSide","renderRightSide","className","getSizeClassName","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","wrapperClass","wrapper","userSelectContain","context","Object","assign","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","Function","useDefaultColor","iconDisabled","renderPrefix","prefixDisabled","renderSuffix","suffixDisabled","sideContainer","rightContainer","hasValue","placeholderDisabled","placeholderFocus","handleDocumentMouseDown","e","target","Node","contains","defrost","handleDocumentKeyDown","onKeyDown","handleMouseDragStart","documentElement","classList","add","userSelectNone","handleMouseDragEnd","remove","setAttribute","version","search","flushSync","setState","onFocus","removeAttribute","stopPropagation","onBlur","el","sizeLarge","sizeLargeFallback","sizeMedium","sizeMediumFallback","sizeSmall","sizeSmallFallback","blur","blinkTimeout","getNode","componentDidMount","listen","addEventListener","componentWillUnmount","clearTimeout","stop","removeEventListener","render","setRootNode","right","rightIconLarge","leftIconLarge","rightIconMedium","leftIconMedium","rightIconSmall","leftIconSmall","Component","__KONTUR_REACT_UI__"],"mappings":"qhBAAA;AACA;AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,MAAqB,WAArB;;AAEA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAASC,QAAT,EAAmBC,eAAnB,QAA0C,uCAA1C;AACA,SAASC,SAAT,QAAiD,4BAAjD;AACA,SAASC,MAAT,EAAiBC,MAAjB,EAAyBC,QAAzB,QAAyC,kBAAzC;;AAEA,SAASC,mBAAT,EAA8BC,kBAA9B,QAAwD,qDAAxD;;AAEA,SAASC,MAAM,IAAIC,aAAnB,QAAwC,qCAAxC;AACA,SAASC,YAAT,QAA6B,gCAA7B;;AAEA,SAAsBC,aAAtB,QAAmE,kBAAnE;AACA,SAASC,EAAT,QAAmB,2BAAnB;AACA,SAASC,mBAAT,QAAoC,8BAApC;AACA,SAAuBC,QAAvB,QAAuC,oBAAvC;AACA,SAASC,iBAAT,QAAkC,6BAAlC;AACA,SAASC,WAAT,QAA4B,gCAA5B;AACA,SAASC,gBAAT,QAAiC,qDAAjC;AACA,SAASC,kBAAT,EAA6BC,yBAA7B,QAA8D,uDAA9D;;AAEA,SAASC,WAAT,QAA4B,eAA5B;AACA,SAASZ,MAAT,QAAuB,wBAAvB;;;;;;;;;;;;;;AAcA,OAAO,IAAMa,qBAAqB,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B;AAEnCC,EAAAA,KAAK,EAAE,sBAF4B;AAGnCC,EAAAA,WAAW,EAAE,4BAHsB,EAA9B;;;;;;AASP,WAAaC,aAAb,GADCX,QACD;;;;;AAKUY,IAAAA,QALV,GAKqBX,iBAAiB,CAACU,aAAa,CAACE,YAAf,CALtC;;AAOSC,IAAAA,KAPT,GAOiB,EAAEC,QAAQ,EAAE,KAAZ,EAAmBC,OAAO,EAAE,KAA5B,EAPjB;;;AAUUC,IAAAA,IAVV,GAUqC,IAVrC;AAWUC,IAAAA,WAXV,GAWiD,IAXjD;AAYUC,IAAAA,qBAZV,GAYwE,IAZxE;AAaUC,IAAAA,MAbV,GAamB,KAbnB;AAcUC,IAAAA,UAdV,GAcuB,KAdvB;AAeUC,IAAAA,QAfV,GAeqB,KAfrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDSC,IAAAA,eAtDT,GAsD2B,UAACN,IAAD,EAA2BO,KAA3B,EAAsCC,GAAtC,EAAkD,KAAvBD,KAAuB,cAAvBA,KAAuB,GAAf,CAAe,MAAZC,GAAY,cAAZA,GAAY,GAAN,CAAM;AACzE,UAAI,MAAKH,QAAL,IAAiB,CAACL,IAAtB,EAA4B;AAC1B;AACD;AACD,UAAI3B,MAAM,IAAIS,mBAAmB,CAACkB,IAAD,EAAOS,QAAQ,CAACC,IAAhB,CAAjC,EAAwD;AACtD;AACA;AACD;AACD,YAAKP,MAAL,GAAc,IAAd;AACA,YAAKC,UAAL,GAAkB,IAAlB;;AAEA,YAAKF,qBAAL,GAA6B,CAACF,IAAD,EAAOO,KAAP,EAAcC,GAAd,CAA7B;AACAG,MAAAA,UAAU,CAAC,oBAAMnC,kBAAkB,CAACwB,IAAD,EAAOO,KAAP,EAAcC,GAAd,CAAxB,EAAD,EAA6C,CAA7C,CAAV;AACA,UAAI,MAAKI,YAAT,EAAuB;AACrBC,QAAAA,aAAa,CAAC,MAAKD,YAAN,CAAb;AACD;AACD,YAAKA,YAAL,GAAoBE,MAAM,CAACH,UAAP,CAAkB,oBAAM,CAACtC,MAAM,IAAID,MAAX,KAAsB,MAAK4B,IAA3B,IAAmC,MAAKA,IAAL,CAAUe,KAAV,EAAzC,EAAlB,EAA8E,CAA9E,CAApB;AACD,KAvEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyGUC,IAAAA,UAzGV,GAyGuB,UAACC,KAAD,EAAuD;AAC1E;AACEC,MAAAA,QADF;;;;;;;;;;;;;;;;;;;;;AAsBID,MAAAA,KAtBJ,CACEC,QADF,CAEEC,QAFF,GAsBIF,KAtBJ,CAEEE,QAFF,CAGEC,WAHF,GAsBIH,KAtBJ,CAGEG,WAHF,CAIEC,KAJF,GAsBIJ,KAtBJ,CAIEI,KAJF,CAKEC,UALF,GAsBIL,KAtBJ,CAKEK,UALF,CAMEC,KANF,GAsBIN,KAtBJ,CAMEM,KANF,CAOEC,IAPF,GAsBIP,KAtBJ,CAOEO,IAPF,CAQEC,KARF,GAsBIR,KAtBJ,CAQEQ,KARF,CASEC,OATF,GAsBIT,KAtBJ,CASES,OATF,CAUEC,aAVF,GAsBIV,KAtBJ,CAUEU,aAVF,CAWEC,QAXF,GAsBIX,KAtBJ,CAWEW,QAXF,CAYEC,MAZF,GAsBIZ,KAtBJ,CAYEY,MAZF,CAaEC,MAbF,GAsBIb,KAtBJ,CAaEa,MAbF,CAcEC,QAdF,GAsBId,KAtBJ,CAcEc,QAdF,CAeEC,SAfF,GAsBIf,KAtBJ,CAeEe,SAfF,CAgBEC,KAhBF,GAsBIhB,KAtBJ,CAgBEgB,KAhBF,CAiBEC,gBAjBF,GAsBIjB,KAtBJ,CAiBEiB,gBAjBF,CAkBEC,cAlBF,GAsBIlB,KAtBJ,CAkBEkB,cAlBF,CAmBEC,gBAnBF,GAsBInB,KAtBJ,CAmBEmB,gBAnBF,CAoBsBC,eApBtB,GAsBIpB,KAtBJ,CAoBE,kBApBF,EAqBKqB,IArBL,iCAsBIrB,KAtBJ;;AAwBA,wBAA8B,MAAKpB,KAAnC,CAAQE,OAAR,eAAQA,OAAR,CAAiBD,QAAjB,eAAiBA,QAAjB;;AAEA,UAAMyC,QAAQ,GAAGtD,WAAW,CAAC,MAAKuD,KAAN,CAAX;AACf,0BAAC,gBAAD,IAAkB,IAAI,EAAET,QAAxB,EAAkC,IAAI,EAAEF,MAAxC,EAAgD,IAAI,EAAC,MAArD,GADe;;AAGf,YAAKY,cAAL,EAHF;;AAKA,UAAMC,SAAS,GAAGzD,WAAW,CAAC,MAAKuD,KAAN,CAAX;AAChB,0BAAC,gBAAD,IAAkB,IAAI,EAAER,SAAxB,EAAmC,IAAI,EAAEF,MAAzC,EAAiD,IAAI,EAAC,OAAtD,GADgB;;AAGhB,YAAKa,eAAL,EAHF;;;AAMA,UAAMC,SAAS,GAAG/D,EAAE,CAACJ,MAAM,CAACc,IAAP,EAAD,EAAgBb,aAAa,CAACa,IAAd,CAAmB,MAAKiD,KAAxB,CAAhB,EAAgD,MAAKK,gBAAL,EAAhD;AACjBnE,MAAAA,aAAa,CAACkD,QAAd,CAAuB,MAAKY,KAA5B,CADiB,IACoB,CAAC,CAACZ,QADtB;AAEjBlD,MAAAA,aAAa,CAAC4C,UAAd,EAFiB,IAEY,CAAC,CAACA,UAFd;AAGjB5C,MAAAA,aAAa,CAACqC,KAAd,CAAoB,MAAKyB,KAAzB,CAHiB,IAGiBzC,OAHjB;AAIjBrB,MAAAA,aAAa,CAACoE,KAAd,CAAoB,MAAKN,KAAzB,CAJiB,IAIiB1C,QAJjB;AAKjBpB,MAAAA,aAAa,CAACgD,OAAd,CAAsB,MAAKc,KAA3B,CALiB,IAKmB,CAAC,CAACd,OALrB;AAMjBhD,MAAAA,aAAa,CAAC+C,KAAd,CAAoB,MAAKe,KAAzB,CANiB,IAMiB,CAAC,CAACf,KANnB;AAOjB/C,MAAAA,aAAa,CAACqE,aAAd,CAA4B,MAAKP,KAAjC,CAPiB,IAOyBzC,OAAO,KAAK1B,MAAM,IAAID,MAAf,CAPhC;AAQjBM,MAAAA,aAAa,CAACsE,eAAd,CAA8B,MAAKR,KAAnC,CARiB,IAQ2B,CAAC,CAACd,OAAF,KAAcrD,MAAM,IAAID,MAAxB,CAR3B;AASjBM,MAAAA,aAAa,CAACuE,aAAd,CAA4B,MAAKT,KAAjC,CATiB,IASyB,CAAC,CAACf,KAAF,KAAYpD,MAAM,IAAID,MAAtB,CATzB;AAUjBM,MAAAA,aAAa,CAACwE,kBAAd,EAViB,IAUoB5E,QAVpB,OAApB;;;AAaA,UAAM6E,YAAY,GAAGtE,EAAE,CAACH,aAAa,CAAC0E,OAAd,EAAD;AACpB3E,MAAAA,MAAM,CAAC4E,iBAAP,EADoB,IACStD,OADT,QAAvB;;;AAIA,UAAMuD,OAAO,GAAGlE,yBAAhB;AACAmE,MAAAA,MAAM,CAACC,MAAP,CAAcF,OAAd,EAAuB,EAAE1B,QAAQ,EAARA,QAAF,EAAY7B,OAAO,EAAPA,OAAZ,EAAqByB,IAAI,EAAJA,IAArB,EAAvB;;AAEA;AACE;AACE,sBAAUlC,qBAAqB,CAACC,IADlC;AAEM+C,QAAAA,IAFN;AAGE,UAAA,SAAS,EAAEM,SAHb;AAIE,UAAA,KAAK,EAAE,EAAErB,KAAK,EAALA,KAAF,EAASkC,SAAS,EAAEpC,KAApB,EAJT;AAKE,UAAA,QAAQ,EAAEO,QAAQ,GAAG8B,SAAH,GAAe,CALnC;AAME,UAAA,OAAO,EAAE,MAAKC,WANhB;AAOE,UAAA,MAAM,EAAE,MAAKC,UAPf;AAQE,UAAA,GAAG,EAAE,MAAK1C,QARZ;AASE,UAAA,SAAS,EAAE,MAAK2C,aATlB;AAUE,UAAA,WAAW,EAAE,MAAKC,eAVpB;;AAYE,4BAAC,kBAAD,CAAoB,QAApB,IAA6B,KAAK,EAAER,OAApC;AACE;AACE,sBAAUhE,qBAAqB,CAACG,WADlC;AAEE,UAAA,IAAI,EAAC,QAFP;AAGE,UAAA,KAAK,EAAEwC,KAHT;AAIE,UAAA,QAAQ,EAAEL,QAJZ;AAKE,8BAAkBS,eALpB,GADF;;AAQGE,QAAAA,QARH;AASE,sCAAM,SAAS,EAAEY,YAAjB;AACE;AACE,sBAAU7D,qBAAqB,CAACE,KADlC;AAEE,UAAA,SAAS,EAAEX,EAAE,CAACH,aAAa,CAACc,KAAd,CAAoB,MAAKgD,KAAzB,CAAD;AACV/D,UAAAA,MAAM,CAACsF,QAAP,EADU,IACU,CAAC3B,gBADX;AAEV1D,UAAAA,aAAa,CAACsF,UAAd,CAAyB,MAAKxB,KAA9B,CAFU,IAE6BzC,OAF7B;AAGVrB,UAAAA,aAAa,CAACuF,aAAd,CAA4B,MAAKzB,KAAjC,CAHU,IAGgCZ,QAHhC,QAFf;;;AAQG,cAAKX,KAAL,CAAWiD,QARd,CADF;;AAWG,cAAKC,iBAAL,EAXH,CATF;;AAsBGzB,QAAAA,SAtBH;AAuBGrE,QAAAA,MAAM,IAAI0B,OAAV,iBAAqB,oBAAC,WAAD,IAAa,OAAO,EAAE,MAAKqE,cAA3B,GAvBxB,CAZF,CADF;;;;AAwCD,KA3MH;;;;;;;;;;;;;;AAyNUC,IAAAA,cAzNV,GAyN2B,YAAM;AAC7B,aAAO,MAAKC,UAAL,CAAgB,MAAKrD,KAAL,CAAWc,QAA3B,EAAqC,MAAKwC,gBAAL,EAArC,CAAP;AACD,KA3NH;;AA6NUC,IAAAA,eA7NV,GA6N4B,YAAM;AAC9B,aAAO,MAAKF,UAAL,CAAgB,MAAKrD,KAAL,CAAWe,SAA3B,EAAsC,MAAKuC,gBAAL,CAAsB,IAAtB,CAAtC,CAAP;AACD,KA/NH;;AAiOUD,IAAAA,UAjOV,GAiOuB,UAACG,IAAD,EAAsB7B,SAAtB,EAAgE;AACnF,UAAI,CAAC6B,IAAL,EAAW;AACT,eAAO,IAAP;AACD;;AAED,UAAQ7C,QAAR,GAAqB,MAAKX,KAA1B,CAAQW,QAAR;AACA,UAAM8C,QAAQ,GAAGD,IAAI,YAAYE,QAAhB,GAA2BF,IAAI,EAA/B,GAAoCA,IAArD;;AAEA;AACE;AACE,UAAA,SAAS,EAAE5F,EAAE,CAACH,aAAa,CAAC+F,IAAd,EAAD,EAAuB7B,SAAvB,EAAkClE,aAAa,CAACkG,eAAd,CAA8B,MAAKpC,KAAnC,CAAlC;AACV9D,UAAAA,aAAa,CAACmG,YAAd,EADU,IACqBjD,QADrB,QADf;;;AAKG8C,QAAAA,QALH,CADF;;;AASD,KAlPH;;AAoPUI,IAAAA,YApPV,GAoPyB,YAA0B;AAC/C,wBAA6B,MAAK7D,KAAlC,CAAQY,MAAR,eAAQA,MAAR,CAAgBD,QAAhB,eAAgBA,QAAhB;;AAEA,UAAI,CAACC,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEhD,EAAE,CAACH,aAAa,CAACmD,MAAd,CAAqB,MAAKW,KAA1B,CAAD,mBAAsC9D,aAAa,CAACqG,cAAd,CAA6B,MAAKvC,KAAlC,CAAtC,IAAiFZ,QAAjF,QAAnB;AACGC,QAAAA,MADH,CADF;;;AAKD,KAhQH;;AAkQUmD,IAAAA,YAlQV,GAkQyB,YAA0B;AAC/C,yBAA6B,MAAK/D,KAAlC,CAAQa,MAAR,gBAAQA,MAAR,CAAgBF,QAAhB,gBAAgBA,QAAhB;;AAEA,UAAI,CAACE,MAAL,EAAa;AACX,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEjD,EAAE,CAACH,aAAa,CAACoD,MAAd,CAAqB,MAAKU,KAA1B,CAAD,mBAAsC9D,aAAa,CAACuG,cAAd,CAA6B,MAAKzC,KAAlC,CAAtC,IAAiFZ,QAAjF,QAAnB;AACGE,QAAAA,MADH,CADF;;;AAKD,KA9QH;;AAgRUW,IAAAA,cAhRV,GAgR2B,YAA0B;AACjD,UAAMV,QAAQ,GAAG,MAAKsC,cAAL,EAAjB;AACA,UAAMxC,MAAM,GAAG,MAAKiD,YAAL,EAAf;;AAEA,UAAI,CAAC/C,QAAD,IAAa,CAACF,MAAlB,EAA0B;AACxB,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEnD,aAAa,CAACwG,aAAd,EAAjB;AACGnD,QAAAA,QADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,KA9RH;;AAgSUc,IAAAA,eAhSV,GAgS4B,YAA0B;AAClD,UAAMX,SAAS,GAAG,MAAKwC,eAAL,EAAlB;AACA,UAAM1C,MAAM,GAAG,MAAKkD,YAAL,EAAf;;AAEA,UAAI,CAAChD,SAAD,IAAc,CAACF,MAAnB,EAA2B;AACzB,eAAO,IAAP;AACD;;AAED;AACE,sCAAM,SAAS,EAAEjD,EAAE,CAACH,aAAa,CAACwG,aAAd,EAAD,EAAgCxG,aAAa,CAACyG,cAAd,EAAhC,CAAnB;AACGnD,QAAAA,SADH;AAEGF,QAAAA,MAFH,CADF;;;AAMD,KA9SH;;AAgTUqC,IAAAA,iBAhTV,GAgT8B,YAA0B;AACpD,yBAA4C,MAAKlD,KAAjD,CAAQiD,QAAR,gBAAQA,QAAR,CAAkB9C,WAAlB,gBAAkBA,WAAlB,CAA+BQ,QAA/B,gBAA+BA,QAA/B;AACA,UAAQ7B,OAAR,GAAoB,MAAKF,KAAzB,CAAQE,OAAR;AACA,UAAMqF,QAAQ,GAAGpH,aAAa,CAACkG,QAAD,CAAb,IAA2BA,QAAQ,KAAK,EAAzD;;AAEA,UAAI,CAACkB,QAAD,IAAahE,WAAjB,EAA8B;AAC5B;AACE;AACE,YAAA,SAAS,EAAEvC,EAAE,CAACH,aAAa,CAAC0C,WAAd,CAA0B,MAAKoB,KAA/B,CAAD;AACV9D,YAAAA,aAAa,CAAC2G,mBAAd,CAAkC,MAAK7C,KAAvC,CADU,IACsCZ,QADtC;AAEVlD,YAAAA,aAAa,CAAC4G,gBAAd,CAA+B,MAAK9C,KAApC,CAFU,IAEmCzC,OAFnC,QADf;;;AAMGqB,UAAAA,WANH,CADF;;;AAUD;AACD,aAAO,IAAP;AACD,KAlUH;;AAoUUmE,IAAAA,uBApUV,GAoUoC,UAACC,CAAD,EAAmB;AACnD,UAAI,MAAK3F,KAAL,CAAWE,OAAX,IAAsB,MAAKC,IAA3B,IAAmCwF,CAAC,CAACC,MAAF,YAAoBC,IAAvD,IAA+D,CAAC,MAAK1F,IAAL,CAAU2F,QAAV,CAAmBH,CAAC,CAACC,MAArB,CAApE,EAAkG;AAChG,cAAKG,OAAL;AACD;AACF,KAxUH;;AA0UUC,IAAAA,qBA1UV,GA0UkC,UAACL,CAAD,EAAsB;AACpD,UAAI,MAAK3F,KAAL,CAAWE,OAAX,IAAsB9B,QAAQ,CAACuH,CAAD,CAAlC,EAAuC;AACrC,cAAKI,OAAL;AACD;AACF,KA9UH;;AAgVU9B,IAAAA,eAhVV,GAgV4B,YAAM;AAC9B,YAAK3D,MAAL,GAAc,IAAd;AACD,KAlVH;;AAoVU0D,IAAAA,aApVV,GAoV0B,UAAC2B,CAAD,EAAyC;AAC/D,UAAI,MAAKvE,KAAL,CAAWW,QAAf,EAAyB;AACvB;AACD;;AAED,UAAIvD,MAAM,IAAIH,eAAe,CAACsH,CAAD,CAAzB,IAAgC,MAAKvF,WAAzC,EAAsD;AACpD,cAAKE,MAAL,GAAc,IAAd;AACAQ,QAAAA,UAAU,CAAC,YAAM;AACf,cAAI,MAAKT,qBAAT,EAAgC;AAC9B,6BAAKI,eAAL,eAAwB,MAAKJ,qBAA7B;AACD;AACD,cAAI,MAAKF,IAAT,EAAe;AACb,kBAAKA,IAAL,CAAUe,KAAV;AACD;AACF,SAPS,EAOP,CAPO,CAAV;;AASA,cAAKd,WAAL,CAAiBc,KAAjB;AACD;;AAED,UAAI,MAAKE,KAAL,CAAW6E,SAAf,EAA0B;AACxB,cAAK7E,KAAL,CAAW6E,SAAX,CAAqBN,CAArB;AACD;AACF,KA1WH;;AA4WUO,IAAAA,oBA5WV,GA4WwD,UAACP,CAAD,EAAO;AAC3D,YAAKnF,QAAL,GAAgB,IAAhB;AACAI,MAAAA,QAAQ,CAACuF,eAAT,CAAyBC,SAAzB,CAAmCC,GAAnC,CAAuCzH,MAAM,CAAC0H,cAAP,EAAvC;;AAEA,UAAI,MAAKlF,KAAL,CAAWiB,gBAAf,EAAiC;AAC/B,cAAKjB,KAAL,CAAWiB,gBAAX,CAA4BsD,CAA5B;AACD;AACF,KAnXH;;AAqXUY,IAAAA,kBArXV,GAqXsD,UAACZ,CAAD,EAAO;AACzD;AACA7E,MAAAA,UAAU,CAAC,YAAM;AACf,cAAKN,QAAL,GAAgB,KAAhB;;AAEA,YAAI,MAAKY,KAAL,CAAWkB,cAAf,EAA+B;AAC7B,gBAAKlB,KAAL,CAAWkB,cAAX,CAA0BqD,CAA1B;AACD;AACF,OANS,EAMP,CANO,CAAV;;AAQA/E,MAAAA,QAAQ,CAACuF,eAAT,CAAyBC,SAAzB,CAAmCI,MAAnC,CAA0C5H,MAAM,CAAC0H,cAAP,EAA1C;AACD,KAhYH;;AAkYUxC,IAAAA,WAlYV,GAkYwB,UAAC6B,CAAD,EAAsC;AAC1D,UAAIlH,QAAJ,EAAc;AACZkH,QAAAA,CAAC,CAACC,MAAF,CAASa,YAAT,CAAsB,iBAAtB,EAAyC,MAAzC;AACD;;AAED,UAAI,MAAKrF,KAAL,CAAWW,QAAf,EAAyB;AACvB,YAAIvD,MAAJ,EAAY;AACVG,UAAAA,kBAAkB,CAACiC,QAAQ,CAACC,IAAV,EAAgB,CAAhB,EAAmB,CAAnB,CAAlB;AACD;AACD;AACD;;AAED,UAAI,CAACrC,MAAM,IAAID,MAAX,KAAsB,MAAK+B,MAA/B,EAAuC;AACrC,cAAKA,MAAL,GAAc,KAAd;AACA,YAAI,MAAKN,KAAL,CAAWE,OAAf,EAAwB;AACtB;AACD;AACF;;AAED;AACA;AACA,UAAIjC,KAAK,CAACyI,OAAN,CAAcC,MAAd,CAAqB,IAArB,MAA+B,CAAnC,EAAsC;AACpCzI,QAAAA,QAAQ,CAAC0I,SAAT,CAAmB,oBAAM,MAAKC,QAAL,CAAc,EAAE3G,OAAO,EAAE,IAAX,EAAd,CAAN,EAAnB;AACD,OAFD,MAEO;AACL,cAAK2G,QAAL,CAAc,EAAE3G,OAAO,EAAE,IAAX,EAAd;AACD;;AAED,UAAI,MAAKkB,KAAL,CAAW0F,OAAf,EAAwB;AACtB,cAAK1F,KAAL,CAAW0F,OAAX,CAAmBnB,CAAnB;AACD;AACF,KAhaH;;AAkaU5B,IAAAA,UAlaV,GAkauB,UAAC4B,CAAD,EAAsC;AACzD,UAAIlH,QAAJ,EAAc;AACZkH,QAAAA,CAAC,CAACC,MAAF,CAASmB,eAAT,CAAyB,iBAAzB;AACD;;AAED,UAAI,MAAK3F,KAAL,CAAWW,QAAf,EAAyB;AACvB4D,QAAAA,CAAC,CAACqB,eAAF;AACA;AACD;;AAED,UAAI,CAACxI,MAAM,IAAID,MAAX,KAAsB,MAAKgC,UAA/B,EAA2C;AACzC,cAAKA,UAAL,GAAkB,KAAlB;AACA;AACD;AACD,UAAI,CAAC/B,MAAM,IAAID,MAAX,KAAsB,MAAK+B,MAA/B,EAAuC;AACrC;AACD;;AAED5B,MAAAA,mBAAmB;;AAEnB,YAAKmI,QAAL,CAAc,EAAE3G,OAAO,EAAE,KAAX,EAAd;;AAEA,UAAI,MAAKkB,KAAL,CAAW6F,MAAf,EAAuB;AACrB,cAAK7F,KAAL,CAAW6F,MAAX,CAAkBtB,CAAlB;AACD;AACF,KA3bH;;AA6bUpB,IAAAA,cA7bV,GA6b2B,UAAC2C,EAAD,EAAiC;AACxD,YAAK9G,WAAL,GAAmB8G,EAAnB;AACD,KA/bH;;AAicU7F,IAAAA,QAjcV,GAicqB,UAAC6F,EAAD,EAA4B;AAC7C,UAAI,MAAK9F,KAAL,CAAWC,QAAf,EAAyB;AACvB,cAAKD,KAAL,CAAWC,QAAX,CAAoB6F,EAApB;AACD;AACD,YAAK/G,IAAL,GAAY+G,EAAZ;AACD,KAtcH;;AAwcUnB,IAAAA,OAxcV,GAwcoB,YAAY;AAC5B,YAAKzF,MAAL,GAAc,KAAd;AACA,YAAKC,UAAL,GAAkB,KAAlB;AACD,KA3cH;;AA6cUyC,IAAAA,gBA7cV,GA6c6B,YAAM;AAC/B,cAAQ,MAAKlD,QAAL,GAAgB6B,IAAxB;AACE,aAAK,OAAL;AACE,iBAAO3C,EAAE;AACNH,UAAAA,aAAa,CAACsI,SAAd,CAAwB,MAAKxE,KAA7B,CADM,IACgC,IADhC;AAEN9D,UAAAA,aAAa,CAACuI,iBAAd,CAAgC,MAAKzE,KAArC,CAFM,IAEwCnE,MAAM,IAAID,MAFlD,QAAT;;AAIF,aAAK,QAAL;AACE,iBAAOS,EAAE;AACNH,UAAAA,aAAa,CAACwI,UAAd,CAAyB,MAAK1E,KAA9B,CADM,IACiC,IADjC;AAEN9D,UAAAA,aAAa,CAACyI,kBAAd,CAAiC,MAAK3E,KAAtC,CAFM,IAEyCnE,MAAM,IAAID,MAFnD,QAAT;;AAIF,aAAK,OAAL;AACA;AACE,iBAAOS,EAAE;AACNH,UAAAA,aAAa,CAAC0I,SAAd,CAAwB,MAAK5E,KAA7B,CADM,IACgC,IADhC;AAEN9D,UAAAA,aAAa,CAAC2I,iBAAd,CAAgC,MAAK7E,KAArC,CAFM,IAEwCnE,MAAM,IAAID,MAFlD,SAAT,CAbJ;;;AAkBD,KAheH,qDAoBE;AACF;AACA,KAtBA,OAuBS2C,KAvBT,GAuBE,iBAAe,CACb,IAAI,KAAKf,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUe,KAAV,GACD,CACF,CA3BH,CA6BE;AACF;AACA,KA/BA,QAgCSuG,IAhCT,GAgCE,gBAAc,CACZ,IAAI,KAAKtH,IAAT,EAAe,CACb,KAAKA,IAAL,CAAUsH,IAAV,GACD,CACF,CApCH,CAsCE;AACF;AACA,KAxCA,QAyCSxE,KAzCT,GAyCE,iBAAe,mBACb,IAAI,KAAK7B,KAAL,CAAWW,QAAf,EAAyB,CACvB,OACD,CACD,KAAK8E,QAAL,CAAc,EAAE5G,QAAQ,EAAE,IAAZ,EAAd,EAAkC,YAAM,CACtC,MAAI,CAACyH,YAAL,GAAoBzG,MAAM,CAACH,UAAP,CAAkB,oBAAM,MAAI,CAAC+F,QAAL,CAAc,EAAE5G,QAAQ,EAAE,KAAZ,EAAd,CAAN,EAAlB,EAA4D,GAA5D,CAApB,CACD,CAFD,EAGD,CAhDH,QAkDS0H,OAlDT,GAkDE,mBAAqC,CACnC,OAAO,KAAKxH,IAAZ,CACD,CApDH,QAyESyH,iBAzET,GAyEE,6BAA2B,CACzB,IAAI,KAAKzH,IAAT,EAAe,CACb7B,SAAS,CAACuJ,MAAV,CAAiB,KAAK1H,IAAtB,EAA4BkC,gBAA5B,CAA6C,KAAK6D,oBAAlD,EAAwE5D,cAAxE,CAAuF,KAAKiE,kBAA5F,EACD,CACD3F,QAAQ,CAACkH,gBAAT,CAA0B,WAA1B,EAAuC,KAAKpC,uBAA5C,EACA9E,QAAQ,CAACkH,gBAAT,CAA0B,SAA1B,EAAqC,KAAK9B,qBAA1C,EACD,CA/EH,QAiFS+B,oBAjFT,GAiFE,gCAA8B,CAC5B,IAAI,KAAKL,YAAT,EAAuB,CACrBM,YAAY,CAAC,KAAKN,YAAN,CAAZ,CACD,CACDpJ,SAAS,CAAC2J,IAAV,CAAe,KAAK9H,IAApB,EACAS,QAAQ,CAACsH,mBAAT,CAA6B,WAA7B,EAA0C,KAAKxC,uBAA/C,EACA9E,QAAQ,CAACsH,mBAAT,CAA6B,SAA7B,EAAwC,KAAKlC,qBAA7C,EACD,CAxFH,QA0FSmC,MA1FT,GA0FE,kBAAgB,mBACd,oBACE,oBAAC,YAAD,CAAc,QAAd,QACG,UAACxF,KAAD,EAAW,CACV,MAAI,CAACA,KAAL,GAAaA,KAAb,CACA,oBACE,oBAAC,aAAD,aAAe,WAAW,EAAE,MAAI,CAACyF,WAAjC,IAAkD,MAAI,CAAChH,KAAvD,GACG,MAAI,CAACD,UADR,CADF,CAKD,CARH,CADF,CAYD,CAvGH,QA6MUuD,gBA7MV,GA6ME,0BAAyB2D,KAAzB,EAAwC,KAAfA,KAAe,cAAfA,KAAe,GAAP,KAAO,EACtC,QAAQ,KAAKvI,QAAL,GAAgB6B,IAAxB,GACE,KAAK,OAAL,CACE,OAAO0G,KAAK,GAAGxJ,aAAa,CAACyJ,cAAd,CAA6B,KAAK3F,KAAlC,CAAH,GAA8C9D,aAAa,CAAC0J,aAAd,CAA4B,KAAK5F,KAAjC,CAA1D,CACF,KAAK,QAAL,CACE,OAAO0F,KAAK,GAAGxJ,aAAa,CAAC2J,eAAd,CAA8B,KAAK7F,KAAnC,CAAH,GAA+C9D,aAAa,CAAC4J,cAAd,CAA6B,KAAK9F,KAAlC,CAA3D,CACF,KAAK,OAAL,CACA,QACE,OAAO0F,KAAK,GAAGxJ,aAAa,CAAC6J,cAAd,CAA6B,KAAK/F,KAAlC,CAAH,GAA8C9D,aAAa,CAAC8J,aAAd,CAA4B,KAAKhG,KAAjC,CAA1D,CAPJ,CASD,CAvNH,wBAAmC1E,KAAK,CAAC2K,SAAzC,WACgBC,mBADhB,GACsC,eADtC,UAGgB9I,YAHhB,GAG6C,EAAE4B,IAAI,EAAE,OAAR,EAH7C","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyTab, isShortcutPaste } from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag, MouseDragEventHandler } from '../../lib/events/MouseDrag';\nimport { isEdge, isIE11, isMobile } from '../../lib/client';\nimport { Nullable } from '../../typings/utility-types';\nimport { removeAllSelections, selectNodeContents } from '../../components/DateInput/helpers/SelectionHelpers';\nimport { InputProps, InputIconType, InputState } from '../../components/Input';\nimport { styles as jsInputStyles } from '../../components/Input/Input.styles';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { findRenderContainer } from '../../lib/listenFocusOutside';\nimport { TSetRootNode, rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { InputLayoutAside } from '../../components/Input/InputLayout/InputLayoutAside';\nimport { InputLayoutContext, InputLayoutContextDefault } from '../../components/Input/InputLayout/InputLayoutContext';\n\nimport { HiddenInput } from './HiddenInput';\nimport { styles } from './InputLikeText.styles';\n\nexport interface InputLikeTextProps extends CommonProps, InputProps {\n children?: React.ReactNode;\n innerRef?: (el: HTMLElement | null) => void;\n onFocus?: React.FocusEventHandler<HTMLElement>;\n onBlur?: React.FocusEventHandler<HTMLElement>;\n onMouseDragStart?: MouseDragEventHandler;\n onMouseDragEnd?: MouseDragEventHandler;\n takeContentWidth?: boolean;\n}\n\nexport type InputLikeTextState = Omit<InputState, 'needsPolyfillPlaceholder'>;\n\nexport const InputLikeTextDataTids = {\n root: 'InputLikeText__root',\n input: 'InputLikeText__input',\n nativeInput: 'InputLikeText__nativeInput',\n} as const;\n\ntype DefaultProps = Required<Pick<InputLikeTextProps, 'size'>>;\n\n@rootNode\nexport class InputLikeText extends React.Component<InputLikeTextProps, InputLikeTextState> {\n public static __KONTUR_REACT_UI__ = 'InputLikeText';\n\n public static defaultProps: DefaultProps = { size: 'small' };\n\n private getProps = createPropsGetter(InputLikeText.defaultProps);\n\n public state = { blinking: false, focused: false };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private hiddenInput: HTMLInputElement | null = null;\n private lastSelectedInnerNode: [HTMLElement, number, number] | null = null;\n private frozen = false;\n private frozenBlur = false;\n private dragging = false;\n private focusTimeout: Nullable<number>;\n private blinkTimeout: Nullable<number>;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\n public blink() {\n if (this.props.disabled) {\n return;\n }\n this.setState({ blinking: true }, () => {\n this.blinkTimeout = window.setTimeout(() => this.setState({ blinking: false }), 150);\n });\n }\n\n public getNode(): HTMLElement | null {\n return this.node;\n }\n\n public selectInnerNode = (node: HTMLElement | null, start = 0, end = 1) => {\n if (this.dragging || !node) {\n return;\n }\n if (isIE11 && findRenderContainer(node, document.body)) {\n // Code below causes Popup to close after triggering the focus event on the body in IE11\n return;\n }\n this.frozen = true;\n this.frozenBlur = true;\n\n this.lastSelectedInnerNode = [node, start, end];\n setTimeout(() => selectNodeContents(node, start, end), 0);\n if (this.focusTimeout) {\n clearInterval(this.focusTimeout);\n }\n this.focusTimeout = window.setTimeout(() => (isIE11 || isEdge) && this.node && this.node.focus(), 0);\n };\n\n public componentDidMount() {\n if (this.node) {\n MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);\n }\n document.addEventListener('mousedown', this.handleDocumentMouseDown);\n document.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n document.removeEventListener('mousedown', this.handleDocumentMouseDown);\n document.removeEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain = (props: CommonWrapperRestProps<InputLikeTextProps>) => {\n const {\n innerRef,\n tabIndex,\n placeholder,\n align,\n borderless,\n width,\n size,\n error,\n warning,\n onValueChange,\n disabled,\n prefix,\n suffix,\n leftIcon,\n rightIcon,\n value,\n onMouseDragStart,\n onMouseDragEnd,\n takeContentWidth,\n 'aria-describedby': ariaDescribedby,\n ...rest\n } = props;\n\n const { focused, blinking } = this.state;\n\n const leftSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={leftIcon} text={prefix} side=\"left\" />\n ) : (\n this.renderLeftSide()\n );\n const rightSide = isTheme2022(this.theme) ? (\n <InputLayoutAside icon={rightIcon} text={suffix} side=\"right\" />\n ) : (\n this.renderRightSide()\n );\n\n const className = cx(styles.root(), jsInputStyles.root(this.theme), this.getSizeClassName(), {\n [jsInputStyles.disabled(this.theme)]: !!disabled,\n [jsInputStyles.borderless()]: !!borderless,\n [jsInputStyles.focus(this.theme)]: focused,\n [jsInputStyles.blink(this.theme)]: blinking,\n [jsInputStyles.warning(this.theme)]: !!warning,\n [jsInputStyles.error(this.theme)]: !!error,\n [jsInputStyles.focusFallback(this.theme)]: focused && (isIE11 || isEdge),\n [jsInputStyles.warningFallback(this.theme)]: !!warning && (isIE11 || isEdge),\n [jsInputStyles.errorFallback(this.theme)]: !!error && (isIE11 || isEdge),\n [jsInputStyles.hideBlinkingCursor()]: isMobile,\n });\n\n const wrapperClass = cx(jsInputStyles.wrapper(), {\n [styles.userSelectContain()]: focused,\n });\n\n const context = InputLayoutContextDefault;\n Object.assign(context, { disabled, focused, size });\n\n return (\n <span\n data-tid={InputLikeTextDataTids.root}\n {...rest}\n className={className}\n style={{ width, textAlign: align }}\n tabIndex={disabled ? undefined : 0}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.innerRef}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <InputLayoutContext.Provider value={context}>\n <input\n data-tid={InputLikeTextDataTids.nativeInput}\n type=\"hidden\"\n value={value}\n disabled={disabled}\n aria-describedby={ariaDescribedby}\n />\n {leftSide}\n <span className={wrapperClass}>\n <span\n data-tid={InputLikeTextDataTids.input}\n className={cx(jsInputStyles.input(this.theme), {\n [styles.absolute()]: !takeContentWidth,\n [jsInputStyles.inputFocus(this.theme)]: focused,\n [jsInputStyles.inputDisabled(this.theme)]: disabled,\n })}\n >\n {this.props.children}\n </span>\n {this.renderPlaceholder()}\n </span>\n {rightSide}\n {isIE11 && focused && <HiddenInput nodeRef={this.hiddenInputRef} />}\n </InputLayoutContext.Provider>\n </span>\n );\n };\n\n private getIconClassname(right = false) {\n switch (this.getProps().size) {\n case 'large':\n return right ? jsInputStyles.rightIconLarge(this.theme) : jsInputStyles.leftIconLarge(this.theme);\n case 'medium':\n return right ? jsInputStyles.rightIconMedium(this.theme) : jsInputStyles.leftIconMedium(this.theme);\n case 'small':\n default:\n return right ? jsInputStyles.rightIconSmall(this.theme) : jsInputStyles.leftIconSmall(this.theme);\n }\n }\n\n private renderLeftIcon = () => {\n return this.renderIcon(this.props.leftIcon, this.getIconClassname());\n };\n\n private renderRightIcon = () => {\n return this.renderIcon(this.props.rightIcon, this.getIconClassname(true));\n };\n\n private renderIcon = (icon: InputIconType, className: string): JSX.Element | null => {\n if (!icon) {\n return null;\n }\n\n const { disabled } = this.props;\n const iconNode = icon instanceof Function ? icon() : icon;\n\n return (\n <span\n className={cx(jsInputStyles.icon(), className, jsInputStyles.useDefaultColor(this.theme), {\n [jsInputStyles.iconDisabled()]: disabled,\n })}\n >\n {iconNode}\n </span>\n );\n };\n\n private renderPrefix = (): JSX.Element | null => {\n const { prefix, disabled } = this.props;\n\n if (!prefix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.prefix(this.theme), { [jsInputStyles.prefixDisabled(this.theme)]: disabled })}>\n {prefix}\n </span>\n );\n };\n\n private renderSuffix = (): JSX.Element | null => {\n const { suffix, disabled } = this.props;\n\n if (!suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.suffix(this.theme), { [jsInputStyles.suffixDisabled(this.theme)]: disabled })}>\n {suffix}\n </span>\n );\n };\n\n private renderLeftSide = (): JSX.Element | null => {\n const leftIcon = this.renderLeftIcon();\n const prefix = this.renderPrefix();\n\n if (!leftIcon && !prefix) {\n return null;\n }\n\n return (\n <span className={jsInputStyles.sideContainer()}>\n {leftIcon}\n {prefix}\n </span>\n );\n };\n\n private renderRightSide = (): JSX.Element | null => {\n const rightIcon = this.renderRightIcon();\n const suffix = this.renderSuffix();\n\n if (!rightIcon && !suffix) {\n return null;\n }\n\n return (\n <span className={cx(jsInputStyles.sideContainer(), jsInputStyles.rightContainer())}>\n {rightIcon}\n {suffix}\n </span>\n );\n };\n\n private renderPlaceholder = (): JSX.Element | null => {\n const { children, placeholder, disabled } = this.props;\n const { focused } = this.state;\n const hasValue = isNonNullable(children) && children !== '';\n\n if (!hasValue && placeholder) {\n return (\n <span\n className={cx(jsInputStyles.placeholder(this.theme), {\n [jsInputStyles.placeholderDisabled(this.theme)]: disabled,\n [jsInputStyles.placeholderFocus(this.theme)]: focused,\n })}\n >\n {placeholder}\n </span>\n );\n }\n return null;\n };\n\n private handleDocumentMouseDown = (e: MouseEvent) => {\n if (this.state.focused && this.node && e.target instanceof Node && !this.node.contains(e.target)) {\n this.defrost();\n }\n };\n\n private handleDocumentKeyDown = (e: KeyboardEvent) => {\n if (this.state.focused && isKeyTab(e)) {\n this.defrost();\n }\n };\n\n private handleMouseDown = () => {\n this.frozen = true;\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLElement>) => {\n if (this.props.disabled) {\n return;\n }\n\n if (isIE11 && isShortcutPaste(e) && this.hiddenInput) {\n this.frozen = true;\n setTimeout(() => {\n if (this.lastSelectedInnerNode) {\n this.selectInnerNode(...this.lastSelectedInnerNode);\n }\n if (this.node) {\n this.node.focus();\n }\n }, 0);\n\n this.hiddenInput.focus();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e as React.KeyboardEvent<HTMLInputElement>);\n }\n };\n\n private handleMouseDragStart: MouseDragEventHandler = (e) => {\n this.dragging = true;\n document.documentElement.classList.add(styles.userSelectNone());\n\n if (this.props.onMouseDragStart) {\n this.props.onMouseDragStart(e);\n }\n };\n\n private handleMouseDragEnd: MouseDragEventHandler = (e) => {\n // Дожидаемся onMouseUp\n setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n document.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11) {\n selectNodeContents(document.body, 0, 0);\n }\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozen) {\n this.frozen = false;\n if (this.state.focused) {\n return;\n }\n }\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (React.version.search('18') === 0) {\n ReactDOM.flushSync(() => this.setState({ focused: true }));\n } else {\n this.setState({ focused: true });\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n e.target.removeAttribute('contenteditable');\n }\n\n if (this.props.disabled) {\n e.stopPropagation();\n return;\n }\n\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n return;\n }\n if ((isIE11 || isEdge) && this.frozen) {\n return;\n }\n\n removeAllSelections();\n\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(e);\n }\n };\n\n private hiddenInputRef = (el: HTMLInputElement | null) => {\n this.hiddenInput = el;\n };\n\n private innerRef = (el: HTMLElement | null) => {\n if (this.props.innerRef) {\n this.props.innerRef(el);\n }\n this.node = el;\n };\n\n private defrost = (): void => {\n this.frozen = false;\n this.frozenBlur = false;\n };\n\n private getSizeClassName = () => {\n switch (this.getProps().size) {\n case 'large':\n return cx({\n [jsInputStyles.sizeLarge(this.theme)]: true,\n [jsInputStyles.sizeLargeFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'medium':\n return cx({\n [jsInputStyles.sizeMedium(this.theme)]: true,\n [jsInputStyles.sizeMediumFallback(this.theme)]: isIE11 || isEdge,\n });\n case 'small':\n default:\n return cx({\n [jsInputStyles.sizeSmall(this.theme)]: true,\n [jsInputStyles.sizeSmallFallback(this.theme)]: isIE11 || isEdge,\n });\n }\n };\n}\n"]}
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.15.2",
3
+ "version": "4.15.3-fixed",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
7
7
  "sideEffects": false,
8
- "homepage": "https://tech.skbkontur.ru/react-ui/4.15.2/",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"
@@ -151,8 +151,5 @@
151
151
  "peerDependencies": {
152
152
  "react": ">=16.9",
153
153
  "react-dom": ">=16.9"
154
- },
155
- "publishConfig": {
156
- "tag": "latest"
157
154
  }
158
155
  }