@skbkontur/react-ui 4.15.4 → 4.15.6

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,25 @@
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.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.5...@skbkontur/react-ui@4.15.6) (2023-08-02)
7
+
8
+ **Note:** Version bump only for package @skbkontur/react-ui
9
+
10
+
11
+
12
+
13
+
14
+ ## [4.15.5](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.4...@skbkontur/react-ui@4.15.5) (2023-08-02)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **InputLikeText:** use debounce to control async content selection ([#3226](https://github.com/skbkontur/retail-ui/issues/3226)) ([18e5947](https://github.com/skbkontur/retail-ui/commit/18e5947086f0a6b161b4fc0d40412a600131337f))
20
+
21
+
22
+
23
+
24
+
6
25
  ## [4.15.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@4.15.3...@skbkontur/react-ui@4.15.4) (2023-07-24)
7
26
 
8
27
 
@@ -49,6 +49,7 @@ export declare class InputLikeText extends React.Component<InputLikeTextProps, I
49
49
  */
50
50
  blink(): void;
51
51
  getNode(): HTMLElement | null;
52
+ private selectNodeContentsDebounced;
52
53
  selectInnerNode: (node: HTMLElement | null, start?: number, end?: number) => void;
53
54
  componentDidMount(): void;
54
55
  componentWillUnmount(): void;
@@ -2,6 +2,7 @@
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
4
  var _reactDom = _interopRequireDefault(require("react-dom"));
5
+ var _lodash = _interopRequireDefault(require("lodash.debounce"));
5
6
 
6
7
  var _utils = require("../../lib/utils");
7
8
  var _identifiers = require("../../lib/events/keyboard/identifiers");
@@ -99,6 +100,9 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
99
100
 
100
101
 
101
102
 
103
+
104
+
105
+ selectNodeContentsDebounced = (0, _lodash.default)(_SelectionHelpers.selectNodeContents, 0);_this.
102
106
 
103
107
  selectInnerNode = function (node, start, end) {if (start === void 0) {start = 0;}if (end === void 0) {end = 1;}
104
108
  if (_this.dragging || !node) {
@@ -112,7 +116,8 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
112
116
  _this.frozenBlur = true;
113
117
 
114
118
  _this.lastSelectedInnerNode = [node, start, end];
115
- setTimeout(function () {return (0, _SelectionHelpers.selectNodeContents)(node, start, end);}, 0);
119
+ _this.selectNodeContentsDebounced(node, start, end);
120
+
116
121
  if (_this.focusTimeout) {
117
122
  clearInterval(_this.focusTimeout);
118
123
  }
@@ -465,6 +470,7 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
465
470
  };_this.
466
471
 
467
472
  handleBlur = function (e) {
473
+ _this.selectNodeContentsDebounced.cancel();
468
474
  if (_client.isMobile) {
469
475
  e.target.removeAttribute('contenteditable');
470
476
  }
@@ -532,4 +538,5 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
532
538
  * @public
533
539
  */;_proto.blur = function blur() {if (this.node) {this.node.blur();}} /**
534
540
  * @public
535
- */;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;};_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.props), _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.getProps().size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};return InputLikeText;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.InputLikeText = InputLikeText;
541
+ */;_proto.blink = function blink() {var _this3 = this;if (this.props.disabled) {return;}this.setState({ blinking: true }, function () {_this3.blinkTimeout = window.setTimeout(function () {return _this3.setState({ blinking: false });}, 150);});};_proto.getNode = function getNode() {return this.node;} // Async call required for Firefox
542
+ ;_proto.componentDidMount = function componentDidMount() {if (this.node) {_MouseDrag.MouseDrag.listen(this.node).onMouseDragStart(this.handleMouseDragStart).onMouseDragEnd(this.handleMouseDragEnd);}document.addEventListener('mousedown', this.handleDocumentMouseDown);document.addEventListener('keydown', this.handleDocumentKeyDown);};_proto.componentWillUnmount = function componentWillUnmount() {if (this.blinkTimeout) {clearTimeout(this.blinkTimeout);}_MouseDrag.MouseDrag.stop(this.node);document.removeEventListener('mousedown', this.handleDocumentMouseDown);document.removeEventListener('keydown', this.handleDocumentKeyDown);};_proto.render = function render() {var _this4 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this4.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this4.setRootNode }, _this4.props), _this4.renderMain);});};_proto.getIconClassname = function getIconClassname(right) {if (right === void 0) {right = false;}switch (this.getProps().size) {case 'large':return right ? _Input.styles.rightIconLarge(this.theme) : _Input.styles.leftIconLarge(this.theme);case 'medium':return right ? _Input.styles.rightIconMedium(this.theme) : _Input.styles.leftIconMedium(this.theme);case 'small':default:return right ? _Input.styles.rightIconSmall(this.theme) : _Input.styles.leftIconSmall(this.theme);}};return InputLikeText;}(_react.default.Component), _class2.__KONTUR_REACT_UI__ = 'InputLikeText', _class2.defaultProps = { size: 'small' }, _temp)) || _class;exports.InputLikeText = InputLikeText;
@@ -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","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":"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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 // 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"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["InputLikeTextDataTids","root","input","nativeInput","InputLikeText","rootNode","getProps","defaultProps","state","blinking","focused","node","hiddenInput","lastSelectedInnerNode","frozen","frozenBlur","dragging","selectNodeContentsDebounced","selectNodeContents","selectInnerNode","start","end","isIE11","document","body","focusTimeout","clearInterval","window","setTimeout","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","cancel","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":"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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';\nimport debounce from 'lodash.debounce';\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 // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\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 this.selectNodeContentsDebounced(node, start, end);\n\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 this.selectNodeContentsDebounced.cancel();\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"]}
@@ -10,6 +10,7 @@ var _class, _class2, _temp; // TODO: Enable this rule in functional components.
10
10
 
11
11
  import React from 'react';
12
12
  import ReactDOM from 'react-dom';
13
+ import debounce from 'lodash.debounce';
13
14
  import { isNonNullable } from "../../../lib/utils";
14
15
  import { isKeyTab, isShortcutPaste } from "../../../lib/events/keyboard/identifiers";
15
16
  import { MouseDrag } from "../../../lib/events/MouseDrag";
@@ -54,6 +55,7 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
54
55
  _this.frozen = false;
55
56
  _this.frozenBlur = false;
56
57
  _this.dragging = false;
58
+ _this.selectNodeContentsDebounced = debounce(selectNodeContents, 0);
57
59
 
58
60
  _this.selectInnerNode = function (node, start, end) {
59
61
  if (start === void 0) {
@@ -76,9 +78,8 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
76
78
  _this.frozen = true;
77
79
  _this.frozenBlur = true;
78
80
  _this.lastSelectedInnerNode = [node, start, end];
79
- setTimeout(function () {
80
- return selectNodeContents(node, start, end);
81
- }, 0);
81
+
82
+ _this.selectNodeContentsDebounced(node, start, end);
82
83
 
83
84
  if (_this.focusTimeout) {
84
85
  clearInterval(_this.focusTimeout);
@@ -373,6 +374,8 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
373
374
  };
374
375
 
375
376
  _this.handleBlur = function (e) {
377
+ _this.selectNodeContentsDebounced.cancel();
378
+
376
379
  if (isMobile) {
377
380
  e.target.removeAttribute('contenteditable');
378
381
  }
@@ -483,7 +486,8 @@ export var InputLikeText = rootNode(_class = (_temp = _class2 = /*#__PURE__*/fun
483
486
 
484
487
  _proto.getNode = function getNode() {
485
488
  return this.node;
486
- };
489
+ } // Async call required for Firefox
490
+ ;
487
491
 
488
492
  _proto.componentDidMount = function componentDidMount() {
489
493
  if (this.node) {
@@ -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","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":"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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 // 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"]}
1
+ {"version":3,"sources":["InputLikeText.tsx"],"names":["React","ReactDOM","debounce","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","selectNodeContentsDebounced","selectInnerNode","start","end","document","body","focusTimeout","clearInterval","window","setTimeout","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","cancel","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';\nimport debounce from 'lodash.debounce';\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 // Async call required for Firefox\n private selectNodeContentsDebounced = debounce(selectNodeContents, 0);\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 this.selectNodeContentsDebounced(node, start, end);\n\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 this.selectNodeContentsDebounced.cancel();\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"]}
@@ -49,6 +49,7 @@ export declare class InputLikeText extends React.Component<InputLikeTextProps, I
49
49
  */
50
50
  blink(): void;
51
51
  getNode(): HTMLElement | null;
52
+ private selectNodeContentsDebounced;
52
53
  selectInnerNode: (node: HTMLElement | null, start?: number, end?: number) => void;
53
54
  componentDidMount(): void;
54
55
  componentWillUnmount(): void;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "4.15.4",
3
+ "version": "4.15.6",
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",
8
+ "homepage": "https://tech.skbkontur.ru/react-ui/4.15.6/",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git@github.com:skbkontur/retail-ui.git"
@@ -21,7 +21,7 @@
21
21
  "build": "run-p build:esm build:cjs && node scripts/build/postbuild",
22
22
  "clean": "git clean -fdxqe node_modules",
23
23
  "prerelease": "node scripts/publish/prepublish && yarn build",
24
- "release": "npm publish ./build",
24
+ "release": "cd build && npm publish && cd ..",
25
25
  "postrelease": "yarn deploy",
26
26
  "predeploy": "rimraf .styleguide/deploy && yarn run styleguide:build",
27
27
  "deploy": "gh-pages -a -d .styleguide/deploy -r git@github.com:skbkontur/react-ui.git",
@@ -151,5 +151,8 @@
151
151
  "peerDependencies": {
152
152
  "react": ">=16.9",
153
153
  "react-dom": ">=16.9"
154
+ },
155
+ "publishConfig": {
156
+ "tag": "latest"
154
157
  }
155
158
  }