@skbkontur/react-ui 4.22.2 → 4.22.3

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.
Files changed (84) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/cjs/components/Checkbox/Checkbox.d.ts +1 -0
  3. package/cjs/components/Checkbox/Checkbox.js +7 -2
  4. package/cjs/components/Checkbox/Checkbox.js.map +1 -1
  5. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  6. package/cjs/components/CurrencyInput/CurrencyInput.js +9 -5
  7. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  8. package/cjs/components/DateInput/DateInput.d.ts +1 -0
  9. package/cjs/components/DateInput/DateInput.js +8 -3
  10. package/cjs/components/DateInput/DateInput.js.map +1 -1
  11. package/cjs/components/FileUploader/FileUploader.js +4 -1
  12. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  13. package/cjs/components/Input/Input.d.ts +1 -0
  14. package/cjs/components/Input/Input.js +8 -6
  15. package/cjs/components/Input/Input.js.map +1 -1
  16. package/cjs/components/Radio/Radio.d.ts +1 -0
  17. package/cjs/components/Radio/Radio.js +7 -2
  18. package/cjs/components/Radio/Radio.js.map +1 -1
  19. package/cjs/components/Toggle/Toggle.d.ts +1 -0
  20. package/cjs/components/Toggle/Toggle.js +8 -7
  21. package/cjs/components/Toggle/Toggle.js.map +1 -1
  22. package/cjs/internal/CommonWrapper/CommonWrapper.js +9 -2
  23. package/cjs/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  24. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.d.ts +17 -0
  25. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js +46 -0
  26. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.js.map +1 -0
  27. package/cjs/internal/FocusControlWrapper/FocusControlWrapper.stories.d.ts +5 -0
  28. package/cjs/internal/FocusControlWrapper/index.d.ts +1 -0
  29. package/cjs/internal/FocusControlWrapper/index.js +1 -0
  30. package/cjs/internal/FocusControlWrapper/index.js.map +1 -0
  31. package/cjs/internal/FocusControlWrapper/useFocusControl.d.ts +12 -0
  32. package/cjs/internal/FocusControlWrapper/useFocusControl.js +34 -0
  33. package/cjs/internal/FocusControlWrapper/useFocusControl.js.map +1 -0
  34. package/cjs/internal/InputLikeText/InputLikeText.d.ts +1 -0
  35. package/cjs/internal/InputLikeText/InputLikeText.js +25 -13
  36. package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
  37. package/cjs/{components/DateInput/helpers/SelectionHelpers.js.map → lib/dom/selectionHelpers.js.map} +1 -1
  38. package/components/Checkbox/Checkbox/Checkbox.js +12 -5
  39. package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
  40. package/components/Checkbox/Checkbox.d.ts +1 -0
  41. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +11 -6
  42. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  43. package/components/CurrencyInput/CurrencyInput.d.ts +1 -0
  44. package/components/DateInput/DateInput/DateInput.js +13 -6
  45. package/components/DateInput/DateInput/DateInput.js.map +1 -1
  46. package/components/DateInput/DateInput.d.ts +1 -0
  47. package/components/FileUploader/FileUploader/FileUploader.js +7 -2
  48. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  49. package/components/Input/Input/Input.js +11 -6
  50. package/components/Input/Input/Input.js.map +1 -1
  51. package/components/Input/Input.d.ts +1 -0
  52. package/components/Radio/Radio/Radio.js +12 -5
  53. package/components/Radio/Radio/Radio.js.map +1 -1
  54. package/components/Radio/Radio.d.ts +1 -0
  55. package/components/Toggle/Toggle/Toggle.js +12 -7
  56. package/components/Toggle/Toggle/Toggle.js.map +1 -1
  57. package/components/Toggle/Toggle.d.ts +1 -0
  58. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js +17 -6
  59. package/internal/CommonWrapper/CommonWrapper/CommonWrapper.js.map +1 -1
  60. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js +33 -0
  61. package/internal/FocusControlWrapper/FocusControlWrapper/FocusControlWrapper.js.map +1 -0
  62. package/internal/FocusControlWrapper/FocusControlWrapper/package.json +6 -0
  63. package/internal/FocusControlWrapper/FocusControlWrapper.d.ts +17 -0
  64. package/internal/FocusControlWrapper/FocusControlWrapper.stories.d.ts +5 -0
  65. package/internal/FocusControlWrapper/index/index.js +1 -0
  66. package/internal/FocusControlWrapper/index/index.js.map +1 -0
  67. package/internal/FocusControlWrapper/index/package.json +6 -0
  68. package/internal/FocusControlWrapper/index.d.ts +1 -0
  69. package/internal/FocusControlWrapper/package.json +6 -0
  70. package/internal/FocusControlWrapper/useFocusControl/package.json +6 -0
  71. package/internal/FocusControlWrapper/useFocusControl/useFocusControl.js +33 -0
  72. package/internal/FocusControlWrapper/useFocusControl/useFocusControl.js.map +1 -0
  73. package/internal/FocusControlWrapper/useFocusControl.d.ts +12 -0
  74. package/internal/InputLikeText/InputLikeText/InputLikeText.js +34 -8
  75. package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
  76. package/internal/InputLikeText/InputLikeText.d.ts +1 -0
  77. package/lib/dom/selectionHelpers/package.json +6 -0
  78. package/{components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js.map → lib/dom/selectionHelpers/selectionHelpers.js.map} +1 -1
  79. package/package.json +3 -3
  80. package/components/DateInput/helpers/SelectionHelpers/package.json +0 -6
  81. /package/cjs/{components/DateInput/helpers/SelectionHelpers.d.ts → lib/dom/selectionHelpers.d.ts} +0 -0
  82. /package/cjs/{components/DateInput/helpers/SelectionHelpers.js → lib/dom/selectionHelpers.js} +0 -0
  83. /package/{components/DateInput/helpers/SelectionHelpers/SelectionHelpers.js → lib/dom/selectionHelpers/selectionHelpers.js} +0 -0
  84. /package/{components/DateInput/helpers/SelectionHelpers.d.ts → lib/dom/selectionHelpers.d.ts} +0 -0
@@ -9,7 +9,7 @@ var _utils = require("../../lib/utils");
9
9
  var _identifiers = require("../../lib/events/keyboard/identifiers");
10
10
  var _MouseDrag = require("../../lib/events/MouseDrag");
11
11
  var _client = require("../../lib/client");
12
- var _SelectionHelpers = require("../../components/DateInput/helpers/SelectionHelpers");
12
+ var _selectionHelpers = require("../../lib/dom/selectionHelpers");
13
13
 
14
14
  var _Input = require("../../components/Input/Input.styles");
15
15
  var _ThemeContext = require("../../lib/theming/ThemeContext");
@@ -23,6 +23,7 @@ var _ThemeHelpers = require("../../lib/theming/ThemeHelpers");
23
23
  var _InputLayoutAside = require("../../components/Input/InputLayout/InputLayoutAside");
24
24
  var _InputLayoutContext = require("../../components/Input/InputLayout/InputLayoutContext");
25
25
  var _isInstanceOf = require("../../lib/isInstanceOf");
26
+ var _FocusControlWrapper = require("../FocusControlWrapper");
26
27
 
27
28
  var _HiddenInput = require("./HiddenInput");
28
29
  var _InputLikeText = require("./InputLikeText.styles");var _excluded = ["innerRef", "tabIndex", "placeholder", "align", "borderless", "width", "size", "error", "warning", "onValueChange", "disabled", "prefix", "suffix", "leftIcon", "rightIcon", "value", "onMouseDragStart", "onMouseDragEnd", "takeContentWidth", "aria-describedby"];var _class, _class2, _temp;
@@ -104,7 +105,7 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
104
105
 
105
106
 
106
107
 
107
- selectNodeContentsDebounced = (0, _lodash.default)(_SelectionHelpers.selectNodeContents, 0);_this.
108
+ selectNodeContentsDebounced = (0, _lodash.default)(_selectionHelpers.selectNodeContents, 0);_this.
108
109
 
109
110
  selectInnerNode = function (node, start, end) {if (start === void 0) {start = 0;}if (end === void 0) {end = 1;}
110
111
  if (_this.dragging || !node) {
@@ -218,6 +219,7 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
218
219
  Object.assign(context, { disabled: disabled, focused: focused, size: size });
219
220
 
220
221
  return /*#__PURE__*/(
222
+ _react.default.createElement(_FocusControlWrapper.FocusControlWrapper, { disabled: disabled, onBlurWhenDisabled: _this.resetFocus }, /*#__PURE__*/
221
223
  _react.default.createElement("span", (0, _extends2.default)({
222
224
  "data-tid": InputLikeTextDataTids.root },
223
225
  rest, {
@@ -253,7 +255,8 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
253
255
  _this.renderPlaceholder()),
254
256
 
255
257
  rightSide,
256
- _client.isIE11 && focused && /*#__PURE__*/_react.default.createElement(_HiddenInput.HiddenInput, { nodeRef: _this.hiddenInputRef }))));
258
+ _client.isIE11 && focused && /*#__PURE__*/_react.default.createElement(_HiddenInput.HiddenInput, { nodeRef: _this.hiddenInputRef })))));
259
+
257
260
 
258
261
 
259
262
 
@@ -441,13 +444,13 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
441
444
  };_this.
442
445
 
443
446
  handleFocus = function (e) {
444
- if (_client.isMobile) {
445
- e.target.setAttribute('contenteditable', 'true');
447
+ if (_client.isMobile) {var _this$node;
448
+ (_this$node = _this.node) == null ? void 0 : _this$node.setAttribute('contenteditable', 'true');
446
449
  }
447
450
 
448
451
  if (_this.props.disabled) {
449
452
  if (_client.isIE11 && _globalObject.globalObject.document) {
450
- (0, _SelectionHelpers.selectNodeContents)(_globalObject.globalObject.document.body, 0, 0);
453
+ (0, _selectionHelpers.selectNodeContents)(_globalObject.globalObject.document.body, 0, 0);
451
454
  }
452
455
  return;
453
456
  }
@@ -472,10 +475,22 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
472
475
  }
473
476
  };_this.
474
477
 
478
+ resetFocus = function () {
479
+ _this.selectNodeContentsDebounced.cancel();
480
+ if (_client.isMobile) {var _this$node2;
481
+ (_this$node2 = _this.node) == null ? void 0 : _this$node2.removeAttribute('contenteditable');
482
+ }
483
+ if ((_client.isIE11 || _client.isEdge) && _this.frozenBlur) {
484
+ _this.frozenBlur = false;
485
+ }
486
+ (0, _selectionHelpers.removeAllSelections)();
487
+ _this.setState({ focused: false });
488
+ };_this.
489
+
475
490
  handleBlur = function (e) {
476
491
  _this.selectNodeContentsDebounced.cancel();
477
- if (_client.isMobile) {
478
- e.target.removeAttribute('contenteditable');
492
+ if (_client.isMobile) {var _this$node3;
493
+ (_this$node3 = _this.node) == null ? void 0 : _this$node3.removeAttribute('contenteditable');
479
494
  }
480
495
 
481
496
  if (_this.props.disabled) {
@@ -491,13 +506,10 @@ InputLikeText = (0, _rootNode.rootNode)(_class = (_temp = _class2 = /*#__PURE__*
491
506
  return;
492
507
  }
493
508
 
494
- (0, _SelectionHelpers.removeAllSelections)();
495
-
509
+ (0, _selectionHelpers.removeAllSelections)();
496
510
  _this.setState({ focused: false });
497
511
 
498
- if (_this.props.onBlur) {
499
- _this.props.onBlur(e);
500
- }
512
+ _this.props.onBlur == null ? void 0 : _this.props.onBlur(e);
501
513
  };_this.
502
514
 
503
515
  hiddenInputRef = function (el) {
@@ -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","selectNodeContentsDebounced","selectNodeContents","selectInnerNode","start","end","isIE11","globalObject","document","body","focusTimeout","clearInterval","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","hovering","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","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__","displayName"],"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';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isFunction, 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 { 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';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\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 public static displayName = '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: SafeTimer;\n private blinkTimeout: SafeTimer;\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 = globalObject.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 && globalObject.document && findRenderContainer(node, globalObject.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 globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.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 globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.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.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\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 = isFunction(icon) ? 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 && isInstanceOf(e.target, globalObject.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 globalObject.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 globalObject.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 globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n globalObject.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 && globalObject.document) {\n selectNodeContents(globalObject.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"]}
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","globalObject","document","body","focusTimeout","clearInterval","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","hovering","blink","focusFallback","warningFallback","errorFallback","hideBlinkingCursor","isMobile","wrapperClass","wrapper","userSelectContain","context","InputLayoutContextDefault","Object","assign","resetFocus","textAlign","undefined","handleFocus","handleBlur","handleKeyDown","handleMouseDown","absolute","inputFocus","inputDisabled","children","renderPlaceholder","hiddenInputRef","renderLeftIcon","renderIcon","getIconClassname","renderRightIcon","icon","iconNode","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__","displayName"],"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';\nimport { globalObject, SafeTimer } from '@skbkontur/global-object';\n\nimport { isFunction, 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 { removeAllSelections, selectNodeContents } from '../../lib/dom/selectionHelpers';\nimport { InputIconType, InputProps, 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 { rootNode, TSetRootNode } 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';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { FocusControlWrapper } from '../FocusControlWrapper';\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 public static displayName = '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: SafeTimer;\n private blinkTimeout: SafeTimer;\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 = globalObject.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 && globalObject.document && findRenderContainer(node, globalObject.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 globalObject.clearInterval(this.focusTimeout);\n }\n this.focusTimeout = globalObject.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 globalObject.document?.addEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.document?.addEventListener('keydown', this.handleDocumentKeyDown);\n }\n\n public componentWillUnmount() {\n if (this.blinkTimeout) {\n globalObject.clearTimeout(this.blinkTimeout);\n }\n MouseDrag.stop(this.node);\n globalObject.document?.removeEventListener('mousedown', this.handleDocumentMouseDown);\n globalObject.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.hovering(this.theme)]: !focused && !disabled && !warning && !error && !borderless,\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 <FocusControlWrapper disabled={disabled} onBlurWhenDisabled={this.resetFocus}>\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 </FocusControlWrapper>\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 = isFunction(icon) ? 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 && isInstanceOf(e.target, globalObject.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 globalObject.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 globalObject.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 globalObject.setTimeout(() => {\n this.dragging = false;\n\n if (this.props.onMouseDragEnd) {\n this.props.onMouseDragEnd(e);\n }\n }, 0);\n\n globalObject.document?.documentElement.classList.remove(styles.userSelectNone());\n };\n\n private handleFocus = (e: React.FocusEvent<HTMLElement>) => {\n if (isMobile) {\n this.node?.setAttribute('contenteditable', 'true');\n }\n\n if (this.props.disabled) {\n if (isIE11 && globalObject.document) {\n selectNodeContents(globalObject.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 resetFocus = () => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.removeAttribute('contenteditable');\n }\n if ((isIE11 || isEdge) && this.frozenBlur) {\n this.frozenBlur = false;\n }\n removeAllSelections();\n this.setState({ focused: false });\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLElement>) => {\n this.selectNodeContentsDebounced.cancel();\n if (isMobile) {\n this.node?.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 this.setState({ focused: false });\n\n this.props.onBlur?.(e);\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 +1 @@
1
- {"version":3,"sources":["SelectionHelpers.tsx"],"names":["selectNodeContents","node","start","end","globalObject","document","selection","getSelection","range","createRange","undefined","setStart","setEnd","removeAllRanges","addRange","e","body","createTextRange","moveToElementText","select","removeAllSelections"],"mappings":"yGAAA;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAA2BC,KAA3B,EAA2CC,GAA3C,EAA4D;AAC5F,MAAI,CAACF,IAAL,EAAW;AACT;AACD;AACD,MAAI,6BAAUG,0BAAV,KAA2B,iBAAiBA,2BAAaC,QAA7D,EAAuE;AACrE,QAAI;AACF,UAAMC,SAAS,GAAGF,2BAAaG,YAAb,EAAlB;AACA,UAAMC,KAAK,GAAGJ,2BAAaC,QAAb,CAAsBI,WAAtB,EAAd;AACA,UAAIP,KAAK,KAAKQ,SAAV,IAAuBP,GAAG,KAAKO,SAAnC,EAA8C;AAC5CF,QAAAA,KAAK,CAACG,QAAN,CAAeV,IAAf,EAAqBC,KAArB;AACAM,QAAAA,KAAK,CAACI,MAAN,CAAaX,IAAb,EAAmBE,GAAnB;AACD,OAHD,MAGO;AACLK,QAAAA,KAAK,CAACR,kBAAN,CAAyBC,IAAzB;AACD;AACD,UAAIK,SAAS,KAAK,IAAlB,EAAwB;AACtB;AACAA,QAAAA,SAAS,CAACO,eAAV;AACAP,QAAAA,SAAS,CAACQ,QAAV,CAAmBN,KAAnB;AACA;AACD;AACF,KAfD,CAeE,OAAOO,CAAP,EAAU;AACV;AACD;AACF;;AAED,MAAI,6BAAUX,0BAAV,KAA2B,qBAAqBA,2BAAaC,QAAb,CAAsBW,IAA1E,EAAgF;AAC9E;AACA,QAAMR,MAAK,GAAGJ,2BAAaC,QAAb,CAAsBW,IAAtB,CAA2BC,eAA3B,EAAd;AACAT,IAAAA,MAAK,CAACU,iBAAN,CAAwBjB,IAAxB;AACA,QAAI,OAAOO,MAAK,CAACW,MAAb,KAAwB,UAA5B,EAAwC;AACtCX,MAAAA,MAAK,CAACW,MAAN;AACD;AACD;AACD;AACF,CAlCM,C;;AAoCA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AACvC,MAAMd,SAAS,GAAGF,2BAAaG,YAAhB,oBAAGH,2BAAaG,YAAb,EAAlB;AACA,MAAID,SAAJ,EAAe;AACb,QAAI;AACF;AACAA,MAAAA,SAAS,CAACO,eAAV;AACD,KAHD,CAGE,OAAOE,CAAP,EAAU;AACV;AACD;AACF;AACF,CAVM,C","sourcesContent":["import { globalObject, isBrowser } from '@skbkontur/global-object';\n\nexport const selectNodeContents = (node: HTMLElement | null, start?: number, end?: number) => {\n if (!node) {\n return;\n }\n if (isBrowser(globalObject) && 'createRange' in globalObject.document) {\n try {\n const selection = globalObject.getSelection();\n const range = globalObject.document.createRange();\n if (start !== undefined && end !== undefined) {\n range.setStart(node, start);\n range.setEnd(node, end);\n } else {\n range.selectNodeContents(node);\n }\n if (selection !== null) {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n selection.addRange(range);\n return;\n }\n } catch (e) {\n // empty block\n }\n }\n\n if (isBrowser(globalObject) && 'createTextRange' in globalObject.document.body) {\n // @ts-expect-error: IE-specific API.\n const range = globalObject.document.body.createTextRange();\n range.moveToElementText(node);\n if (typeof range.select === 'function') {\n range.select();\n }\n return;\n }\n};\n\nexport const removeAllSelections = () => {\n const selection = globalObject.getSelection?.();\n if (selection) {\n try {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n } catch (e) {\n // empty block\n }\n }\n};\n"]}
1
+ {"version":3,"sources":["selectionHelpers.tsx"],"names":["selectNodeContents","node","start","end","globalObject","document","selection","getSelection","range","createRange","undefined","setStart","setEnd","removeAllRanges","addRange","e","body","createTextRange","moveToElementText","select","removeAllSelections"],"mappings":"yGAAA;;AAEO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAqB,CAACC,IAAD,EAA2BC,KAA3B,EAA2CC,GAA3C,EAA4D;AAC5F,MAAI,CAACF,IAAL,EAAW;AACT;AACD;AACD,MAAI,6BAAUG,0BAAV,KAA2B,iBAAiBA,2BAAaC,QAA7D,EAAuE;AACrE,QAAI;AACF,UAAMC,SAAS,GAAGF,2BAAaG,YAAb,EAAlB;AACA,UAAMC,KAAK,GAAGJ,2BAAaC,QAAb,CAAsBI,WAAtB,EAAd;AACA,UAAIP,KAAK,KAAKQ,SAAV,IAAuBP,GAAG,KAAKO,SAAnC,EAA8C;AAC5CF,QAAAA,KAAK,CAACG,QAAN,CAAeV,IAAf,EAAqBC,KAArB;AACAM,QAAAA,KAAK,CAACI,MAAN,CAAaX,IAAb,EAAmBE,GAAnB;AACD,OAHD,MAGO;AACLK,QAAAA,KAAK,CAACR,kBAAN,CAAyBC,IAAzB;AACD;AACD,UAAIK,SAAS,KAAK,IAAlB,EAAwB;AACtB;AACAA,QAAAA,SAAS,CAACO,eAAV;AACAP,QAAAA,SAAS,CAACQ,QAAV,CAAmBN,KAAnB;AACA;AACD;AACF,KAfD,CAeE,OAAOO,CAAP,EAAU;AACV;AACD;AACF;;AAED,MAAI,6BAAUX,0BAAV,KAA2B,qBAAqBA,2BAAaC,QAAb,CAAsBW,IAA1E,EAAgF;AAC9E;AACA,QAAMR,MAAK,GAAGJ,2BAAaC,QAAb,CAAsBW,IAAtB,CAA2BC,eAA3B,EAAd;AACAT,IAAAA,MAAK,CAACU,iBAAN,CAAwBjB,IAAxB;AACA,QAAI,OAAOO,MAAK,CAACW,MAAb,KAAwB,UAA5B,EAAwC;AACtCX,MAAAA,MAAK,CAACW,MAAN;AACD;AACD;AACD;AACF,CAlCM,C;;AAoCA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AACvC,MAAMd,SAAS,GAAGF,2BAAaG,YAAhB,oBAAGH,2BAAaG,YAAb,EAAlB;AACA,MAAID,SAAJ,EAAe;AACb,QAAI;AACF;AACAA,MAAAA,SAAS,CAACO,eAAV;AACD,KAHD,CAGE,OAAOE,CAAP,EAAU;AACV;AACD;AACF;AACF,CAVM,C","sourcesContent":["import { globalObject, isBrowser } from '@skbkontur/global-object';\n\nexport const selectNodeContents = (node: HTMLElement | null, start?: number, end?: number) => {\n if (!node) {\n return;\n }\n if (isBrowser(globalObject) && 'createRange' in globalObject.document) {\n try {\n const selection = globalObject.getSelection();\n const range = globalObject.document.createRange();\n if (start !== undefined && end !== undefined) {\n range.setStart(node, start);\n range.setEnd(node, end);\n } else {\n range.selectNodeContents(node);\n }\n if (selection !== null) {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n selection.addRange(range);\n return;\n }\n } catch (e) {\n // empty block\n }\n }\n\n if (isBrowser(globalObject) && 'createTextRange' in globalObject.document.body) {\n // @ts-expect-error: IE-specific API.\n const range = globalObject.document.body.createTextRange();\n range.moveToElementText(node);\n if (typeof range.select === 'function') {\n range.select();\n }\n return;\n }\n};\n\nexport const removeAllSelections = () => {\n const selection = globalObject.getSelection?.();\n if (selection) {\n try {\n // Fix IE from issue not working (https://github.com/skbkontur/retail-ui/issues/1205)\n selection.removeAllRanges();\n } catch (e) {\n // empty block\n }\n }\n};\n"]}
@@ -21,6 +21,7 @@ import { rootNode } from "../../../lib/rootNode";
21
21
  import { fixFirefoxModifiedClickOnLabel } from "../../../lib/events/fixFirefoxModifiedClickOnLabel";
22
22
  import { isTheme2022 } from "../../../lib/theming/ThemeHelpers";
23
23
  import { createPropsGetter } from "../../../lib/createPropsGetter";
24
+ import { FocusControlWrapper } from "../../../internal/FocusControlWrapper";
24
25
  import { styles, globalClasses } from "../Checkbox.styles";
25
26
  import { CheckedIcon } from "../CheckedIcon";
26
27
  import { IndeterminateIcon } from "../IndeterminateIcon";
@@ -177,10 +178,12 @@ export var Checkbox = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
177
178
  onMouseLeave: onMouseLeave,
178
179
  onMouseOver: onMouseOver,
179
180
  onClick: fixFirefoxModifiedClickOnLabel(_this.input)
181
+ }, /*#__PURE__*/React.createElement(FocusControlWrapper, {
182
+ onBlurWhenDisabled: _this.resetFocus
180
183
  }, /*#__PURE__*/React.createElement("input", _extends({}, inputProps, {
181
184
  "aria-label": ariaLabel,
182
185
  "aria-describedby": ariaDescribedby
183
- })), box, caption);
186
+ }))), box, caption);
184
187
  };
185
188
 
186
189
  _this.handleFocus = function (e) {
@@ -201,14 +204,18 @@ export var Checkbox = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function
201
204
  }
202
205
  };
203
206
 
204
- _this.handleBlur = function (e) {
205
- _this.props.onBlur == null ? void 0 : _this.props.onBlur(e);
206
-
207
- _this.setState({
207
+ _this.resetFocus = function () {
208
+ return _this.setState({
208
209
  focusedByTab: false
209
210
  });
210
211
  };
211
212
 
213
+ _this.handleBlur = function (e) {
214
+ _this.resetFocus();
215
+
216
+ _this.props.onBlur == null ? void 0 : _this.props.onBlur(e);
217
+ };
218
+
212
219
  _this.handleChange = function (event) {
213
220
  var checked = event.currentTarget.checked;
214
221
  _this.props.onValueChange == null ? void 0 : _this.props.onValueChange(checked);
@@ -1 +1 @@
1
- {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","globalObject","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","ariaLabel","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type CheckboxSize = SizeProp;\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: SizeProp;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\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 /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.props.onBlur?.(e);\n this.setState({ focusedByTab: false });\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
1
+ {"version":3,"sources":["Checkbox.tsx"],"names":["React","PropTypes","globalObject","keyListener","ThemeContext","OkIcon","SquareIcon","isEdge","isIE11","CommonWrapper","cx","rootNode","fixFirefoxModifiedClickOnLabel","isTheme2022","createPropsGetter","FocusControlWrapper","styles","globalClasses","CheckedIcon","IndeterminateIcon","CheckboxDataTids","root","Checkbox","getProps","defaultProps","state","focusedByTab","indeterminate","props","initialIndeterminate","isShiftPressed","input","createRef","handleShiftPress","e","key","setState","handleShiftRelease","componentDidMount","current","document","addEventListener","componentWillUnmount","removeEventListener","setIndeterminate","resetIndeterminate","renderMain","error","warning","size","onMouseEnter","onMouseLeave","onMouseOver","onValueChange","type","ariaDescribedby","ariaLabel","rest","isIndeterminate","_isTheme2022","theme","iconClass","icon","iconFixPosition","checked","iconUnchecked","iconSize","parseInt","getCheckboxBoxSize","IconCheck","IconSquare","rootClass","getRootSizeClassName","rootFallback","rootChecked","rootDisableTextSelect","disabled","Boolean","inputProps","className","onChange","handleChange","onFocus","handleFocus","onBlur","handleBlur","onClick","handleClick","ref","caption","children","captionClass","captionIE11","box","getBoxWrapperSizeClassName","boxWrapper","boxChecked","boxFocus","boxError","boxWarning","boxDisabled","resetFocus","requestAnimationFrame","isTabPressed","event","currentTarget","undefined","rootLarge","rootMedium","rootSmall","boxWrapperLarge","boxWrapperMedium","boxWrapperSmall","checkboxBoxSizeLarge","checkboxBoxSizeMedium","checkboxBoxSizeSmall","componentDidUpdate","prevProps","render","setRootNode","focus","blur","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","bool","func"],"mappings":"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","sourcesContent":["// TODO: Enable this rule in functional components.\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport React, { AriaAttributes } from 'react';\nimport PropTypes from 'prop-types';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { Override } from '../../typings/utility-types';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { OkIcon, SquareIcon } from '../../internal/icons/16px';\nimport { isEdge, isIE11 } from '../../lib/client';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { fixFirefoxModifiedClickOnLabel } from '../../lib/events/fixFirefoxModifiedClickOnLabel';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { SizeProp } from '../../lib/types/props';\nimport { FocusControlWrapper } from '../../internal/FocusControlWrapper';\n\nimport { styles, globalClasses } from './Checkbox.styles';\nimport { CheckedIcon } from './CheckedIcon';\nimport { IndeterminateIcon } from './IndeterminateIcon';\n\n/**\n * @deprecated use SizeProp\n */\nexport type CheckboxSize = SizeProp;\n\nexport interface CheckboxProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Override<\n React.InputHTMLAttributes<HTMLInputElement>,\n {\n /**\n * Контент `label`\n */\n children?: React.ReactNode;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Размер */\n size?: SizeProp;\n /**\n * HTML-событие `mouseenter`.\n */\n onMouseEnter?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseleave`.\n */\n onMouseLeave?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * HTML-событие `mouseover`.\n */\n onMouseOver?: React.MouseEventHandler<HTMLLabelElement>;\n /**\n * Функция, вызываемая при изменении `value`.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * HTML-событие `onblur`.\n */\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n /**\n * [Неопределённое состояние](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/checkbox#attr-indeterminate) чекбокса из HTML.\n */\n initialIndeterminate?: boolean;\n }\n > {}\n\nexport interface CheckboxState {\n focusedByTab: boolean;\n indeterminate: boolean;\n isShiftPressed: boolean;\n}\n\nexport const CheckboxDataTids = {\n root: 'Checkbox__root',\n} as const;\n\ntype DefaultProps = Required<Pick<CheckboxProps, 'size'>>;\n\n@rootNode\nexport class Checkbox extends React.PureComponent<CheckboxProps, CheckboxState> {\n public static __KONTUR_REACT_UI__ = 'Checkbox';\n public static displayName = 'Checkbox';\n\n public static defaultProps: DefaultProps = {\n size: 'small',\n };\n\n private getProps = createPropsGetter(Checkbox.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getBoxWrapperSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.boxWrapperLarge(this.theme);\n case 'medium':\n return styles.boxWrapperMedium(this.theme);\n case 'small':\n default:\n return styles.boxWrapperSmall(this.theme);\n }\n }\n\n private getCheckboxBoxSize() {\n switch (this.getProps().size) {\n case 'large':\n return this.theme.checkboxBoxSizeLarge;\n case 'medium':\n return this.theme.checkboxBoxSizeMedium;\n case 'small':\n default:\n return this.theme.checkboxBoxSizeSmall;\n }\n }\n\n public static propTypes = {\n checked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n onBlur: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n };\n\n public state = {\n focusedByTab: false,\n indeterminate: this.props.initialIndeterminate || false,\n isShiftPressed: false,\n };\n\n private theme!: Theme;\n private input = React.createRef<HTMLInputElement>();\n\n private handleShiftPress = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState(() => ({\n isShiftPressed: true,\n }));\n }\n };\n\n private handleShiftRelease = (e: KeyboardEvent) => {\n if (e.key === 'Shift') {\n this.setState({\n isShiftPressed: false,\n });\n }\n };\n\n public componentDidMount = () => {\n if (this.state.indeterminate && this.input.current) {\n this.input.current.indeterminate = true;\n }\n\n globalObject.document?.addEventListener('keydown', this.handleShiftPress);\n globalObject.document?.addEventListener('keyup', this.handleShiftRelease);\n };\n\n public componentWillUnmount = () => {\n globalObject.document?.removeEventListener('keydown', this.handleShiftPress);\n globalObject.document?.removeEventListener('keyup', this.handleShiftRelease);\n };\n\n private setRootNode!: TSetRootNode;\n\n public componentDidUpdate(prevProps: CheckboxProps) {\n if (prevProps.checked !== this.props.checked) {\n this.resetIndeterminate();\n }\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 /**\n * Программная установка фокуса чекбоксу.\n * @public\n */\n public focus() {\n keyListener.isTabPressed = true;\n this.input.current?.focus();\n }\n\n /**\n * Программное снятие фокуса с чекбокса.\n * @public\n */\n public blur() {\n this.input.current?.blur();\n }\n\n /**\n * Устанавливает чекбокс в HTML-состояние `indeterminate`.\n * @public\n */\n public setIndeterminate = () => {\n this.setState({\n indeterminate: true,\n });\n if (this.input.current) {\n this.input.current.indeterminate = true;\n }\n };\n\n /**\n * Снимает с чекбокса HTML-состояние `indeterminate`.\n * @public\n */\n public resetIndeterminate = () => {\n this.setState({\n indeterminate: false,\n });\n if (this.input.current) {\n this.input.current.indeterminate = false;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<CheckboxProps>) => {\n const {\n error,\n warning,\n size,\n onMouseEnter,\n onMouseLeave,\n onMouseOver,\n onValueChange,\n type,\n initialIndeterminate,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n ...rest\n } = props;\n const isIndeterminate = this.state.indeterminate;\n\n const _isTheme2022 = isTheme2022(this.theme);\n\n const iconClass = cx(\n styles.icon(),\n !_isTheme2022 && styles.iconFixPosition(),\n !props.checked && !isIndeterminate && styles.iconUnchecked(),\n );\n\n const iconSize = parseInt(this.getCheckboxBoxSize());\n const IconCheck = _isTheme2022 ? (\n <span className={iconClass}>\n <CheckedIcon size={iconSize} />\n </span>\n ) : (\n <OkIcon className={iconClass} />\n );\n const IconSquare = _isTheme2022 ? (\n <span className={iconClass}>\n <IndeterminateIcon size={iconSize} />\n </span>\n ) : (\n <SquareIcon className={iconClass} />\n );\n\n const rootClass = cx(this.getRootSizeClassName(), {\n [styles.root(this.theme)]: true,\n [styles.rootFallback()]: isIE11 || isEdge,\n [styles.rootChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.rootDisableTextSelect()]: this.state.isShiftPressed,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n\n const inputProps = {\n ...rest,\n type: 'checkbox',\n className: styles.input(),\n onChange: this.handleChange,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n onClick: this.handleClick,\n ref: this.input,\n };\n\n let caption = null;\n if (this.props.children) {\n const captionClass = cx({\n [styles.caption(this.theme)]: true,\n [styles.captionIE11()]: isIE11 || isEdge,\n [styles.disabled(this.theme)]: Boolean(props.disabled),\n });\n caption = <span className={captionClass}>{this.props.children}</span>;\n }\n\n const box = (\n <div\n className={cx(this.getBoxWrapperSizeClassName(), {\n [styles.boxWrapper(this.theme)]: true,\n })}\n >\n <div\n className={cx(styles.box(this.theme), globalClasses.box, {\n [styles.boxChecked(this.theme)]: props.checked || isIndeterminate,\n [styles.boxFocus(this.theme)]: this.state.focusedByTab,\n [styles.boxError(this.theme)]: props.error,\n [styles.boxWarning(this.theme)]: props.warning,\n [styles.boxDisabled(this.theme)]: props.disabled,\n })}\n >\n {(isIndeterminate && IconSquare) || IconCheck}\n </div>\n </div>\n );\n\n return (\n <label\n data-tid={CheckboxDataTids.root}\n className={rootClass}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n onClick={fixFirefoxModifiedClickOnLabel(this.input)}\n >\n <FocusControlWrapper onBlurWhenDisabled={this.resetFocus}>\n <input {...inputProps} aria-label={ariaLabel} aria-describedby={ariaDescribedby} />\n </FocusControlWrapper>\n {box}\n {caption}\n </label>\n );\n };\n\n private handleFocus = (e: React.FocusEvent<any>) => {\n if (!this.props.disabled) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n };\n\n private resetFocus = () => this.setState({ focusedByTab: false });\n\n private handleBlur = (e: React.FocusEvent<HTMLInputElement>) => {\n this.resetFocus();\n this.props.onBlur?.(e);\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const checked = event.currentTarget.checked;\n this.props.onValueChange?.(checked);\n\n this.resetIndeterminate();\n\n this.props.onChange?.(event);\n };\n\n private handleClick = (e: React.MouseEvent<HTMLInputElement>) => {\n this.props.onClick?.(e);\n // support IE11's and old Edge's special behavior\n // https://github.com/jquery/jquery/issues/1698\n if (this.state.indeterminate && (isIE11 || isEdge)) {\n this.resetIndeterminate();\n // simulate correct behavior only if onValueChange is used\n // because we cant simulate real native onChange event\n if (this.props.onValueChange && this.input.current) {\n const checked = !this.input.current.checked;\n\n if (this.props.checked === undefined) {\n // in case of uncontrolled mode\n this.input.current.checked = checked;\n }\n\n this.props.onValueChange(checked);\n }\n }\n };\n}\n"]}
@@ -112,6 +112,7 @@ export declare class Checkbox extends React.PureComponent<CheckboxProps, Checkbo
112
112
  resetIndeterminate: () => void;
113
113
  private renderMain;
114
114
  private handleFocus;
115
+ private resetFocus;
115
116
  private handleBlur;
116
117
  private handleChange;
117
118
  private handleClick;
@@ -20,6 +20,7 @@ import { CommonWrapper } from "../../../internal/CommonWrapper";
20
20
  import { rootNode } from "../../../lib/rootNode";
21
21
  import { createPropsGetter } from "../../../lib/createPropsGetter";
22
22
  import { isInstanceOf } from "../../../lib/isInstanceOf";
23
+ import { FocusControlWrapper } from "../../../internal/FocusControlWrapper";
23
24
  import { MAX_SAFE_DIGITS } from "../constants";
24
25
  import { SelectionHelper } from "../SelectionHelper";
25
26
  import { CurrencyHelper } from "../CurrencyHelper";
@@ -62,7 +63,9 @@ var CurrencyInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
62
63
  hideTrailingZeros = props.hideTrailingZeros,
63
64
  rest = _objectWithoutPropertiesLoose(props, _excluded);
64
65
 
65
- return /*#__PURE__*/React.createElement(Input, _extends({
66
+ return /*#__PURE__*/React.createElement(FocusControlWrapper, {
67
+ onBlurWhenDisabled: _this.resetFocus
68
+ }, /*#__PURE__*/React.createElement(Input, _extends({
66
69
  "data-tid": CurrencyInputDataTids.root
67
70
  }, rest, {
68
71
  align: _this.getProps().align,
@@ -81,7 +84,7 @@ var CurrencyInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
81
84
  onMouseOver: _this.props.onMouseOver,
82
85
  ref: _this.refInput,
83
86
  placeholder: _this.state.focused ? '' : getPlaceholder(props)
84
- }));
87
+ })));
85
88
  };
86
89
 
87
90
  _this.focus = function () {
@@ -412,16 +415,18 @@ var CurrencyInput = rootNode(_class = (_temp = _class2 = /*#__PURE__*/function (
412
415
  }
413
416
  };
414
417
 
415
- _this.handleBlur = function (event) {
418
+ _this.resetFocus = function () {
416
419
  var value = CurrencyHelper.parse(_this.state.formatted);
417
420
 
418
421
  _this.setState(_extends({}, _this.getState(value, _this.getProps().fractionDigits, _this.getProps().hideTrailingZeros), {
419
422
  focused: false
420
423
  }));
424
+ };
421
425
 
422
- if (_this.props.onBlur) {
423
- _this.props.onBlur(event);
424
- }
426
+ _this.handleBlur = function (event) {
427
+ _this.resetFocus();
428
+
429
+ _this.props.onBlur == null ? void 0 : _this.props.onBlur(event);
425
430
  };
426
431
 
427
432
  _this.refInput = function (element) {