@skbkontur/react-ui 5.4.2 → 5.4.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 (30) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Textarea/Textarea.d.ts +1 -0
  3. package/cjs/components/Textarea/Textarea.js +14 -2
  4. package/cjs/components/Textarea/Textarea.js.map +1 -1
  5. package/cjs/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  6. package/cjs/internal/ResizeDetector/ResizeDetector.js +8 -1
  7. package/cjs/internal/ResizeDetector/ResizeDetector.js.map +1 -1
  8. package/cjs/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  9. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js +7 -1
  10. package/cjs/internal/ResizeDetector/ResizeDetector.styles.js.map +1 -1
  11. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  12. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  13. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +3 -1
  14. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  15. package/components/Textarea/Textarea/Textarea.js +12 -6
  16. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  17. package/components/Textarea/Textarea.d.ts +1 -0
  18. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js +1 -1
  19. package/internal/ResizeDetector/ResizeDetector/ResizeDetector.js.map +1 -1
  20. package/internal/ResizeDetector/ResizeDetector.d.ts +1 -0
  21. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js +4 -1
  22. package/internal/ResizeDetector/ResizeDetector.styles/ResizeDetector.styles.js.map +1 -1
  23. package/internal/ResizeDetector/ResizeDetector.styles.d.ts +1 -0
  24. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  25. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +2 -1
  26. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  27. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  28. package/package.json +7 -5
  29. package/cjs/lib/__stories__/Blink.creevey.mts +0 -90
  30. package/lib/__stories__/Blink.creevey.mts +0 -90
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [5.4.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.4.2...@skbkontur/react-ui@5.4.3) (2025-11-24)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **Textarea:** baseline alignment ([98e4dc0](https://github.com/skbkontur/retail-ui/commit/98e4dc0575e0c3c6315ea0adedad5f85df7b95d1))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [5.4.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.4.1...@skbkontur/react-ui@5.4.2) (2025-11-20)
7
18
 
8
19
 
@@ -82,6 +82,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
82
82
  };
83
83
  private size;
84
84
  private reflowCounter;
85
+ private featureFlags;
85
86
  private theme;
86
87
  private selectAllId;
87
88
  private node;
@@ -22,6 +22,11 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
22
22
 
23
23
 
24
24
  var _SizeDecorator = require("../../lib/size/SizeDecorator");
25
+ var _ReactUIFeatureFlagsContext = require("../../lib/featureFlagsContext/ReactUIFeatureFlagsContext");
26
+
27
+
28
+
29
+ var _FeatureFlagsHelpers = require("../../lib/featureFlagsContext/FeatureFlagsHelpers");
25
30
 
26
31
  var _TextareaHelpers = require("./TextareaHelpers");
27
32
  var _Textarea2 = require("./Textarea.styles");
@@ -259,6 +264,13 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (0, _SizeDecorato
259
264
 
260
265
 
261
266
 
267
+
268
+
269
+
270
+
271
+
272
+
273
+
262
274
 
263
275
 
264
276
 
@@ -394,7 +406,7 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (0, _SizeDecorato
394
406
  ) }),
395
407
 
396
408
  placeholderPolyfill, /*#__PURE__*/
397
- _react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this.reflowCounter }, /*#__PURE__*/
409
+ _react.default.createElement(_ResizeDetector.ResizeDetector, { onResize: _this.reflowCounter, alignBaseline: _this.featureFlags.textareaBaselineAlign }, /*#__PURE__*/
398
410
  _react.default.createElement(Component, (0, _extends2.default)({},
399
411
  textareaProps, {
400
412
  className: textareaClassNames,
@@ -545,7 +557,7 @@ Textarea = exports.Textarea = (0, _rootNode.rootNode)(_class = (0, _SizeDecorato
545
557
  }
546
558
  };return _this;}(0, _inheritsLoose2.default)(Textarea, _React$Component);var _proto = Textarea.prototype;_proto.getRootSizeClassName = function getRootSizeClassName() {switch (this.size) {case 'large':return _Textarea2.styles.rootLarge(this.theme);case 'medium':return _Textarea2.styles.rootMedium(this.theme);case 'small':default:return _Textarea2.styles.rootSmall(this.theme);}};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.size) {case 'large':return _Textarea2.styles.textareaLarge(this.theme);case 'medium':return _Textarea2.styles.textareaMedium(this.theme);case 'small':default:return _Textarea2.styles.textareaSmall(this.theme);}};_proto.getAutoResizeThrottleWait = function getAutoResizeThrottleWait(props) {if (props === void 0) {props = this.props;} // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты
547
559
  // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120
548
- return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref3 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref3.disableAnimations,extraRow = _ref3.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}var _this$getProps2 = this.getProps(),rows = _this$getProps2.rows,maxRows = _this$getProps2.maxRows;if (this.props.autoResize && (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});} /**
560
+ return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;};_proto.isAnimationsDisabled = function isAnimationsDisabled(_temp) {var _ref3 = _temp === void 0 ? this.props : _temp,disableAnimations = _ref3.disableAnimations,extraRow = _ref3.extraRow;return disableAnimations || !extraRow;};_proto.componentDidMount = function componentDidMount() {if (this.props.autoResize) {this.autoResize();this.layoutEvents = LayoutEvents.addListener(this.autoResize);}if (this.node && this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.observe(this.node, { attributes: true });}};_proto.componentWillUnmount = function componentWillUnmount() {if (this.layoutEvents) {this.layoutEvents.remove();}if (this.props.showLengthCounter && this.textareaObserver) {this.textareaObserver.disconnect();}this.cancelDelayedSelectAll();};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {this.autoResize.cancel();this.autoResize = (0, _lodash.default)(this.autoResizeHandler, this.getAutoResizeThrottleWait());}var _this$getProps2 = this.getProps(),rows = _this$getProps2.rows,maxRows = _this$getProps2.maxRows;if (this.props.autoResize && (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)) {this.autoResize();}};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ReactUIFeatureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _FeatureFlagsHelpers.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: _this2.setRootNode }, _this2.getProps()), _this2.renderMain);});});} /**
549
561
  * @public
550
562
  */;_proto.focus = function focus() {if (this.node) {this.node.focus();}} /**
551
563
  * @public
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_SizeDecorator","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","exports","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ThemeContext","Consumer","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.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 getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\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 * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_lodash","_globalObject","_identifiers","_needsPolyfillPlaceholder","LayoutEvents","_interopRequireWildcard","_ThemeContext","_RenderLayer","_ResizeDetector","_client","_CommonWrapper","_currentEnvironment","_Emotion","_rootNode","_createPropsGetter","_SizeDecorator","_ReactUIFeatureFlagsContext","_FeatureFlagsHelpers","_TextareaHelpers","_Textarea2","_TextareaCounter","_TextareaWithSafari17Workaround","_excluded","_class","_Textarea","DEFAULT_WIDTH","exports","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","rootNode","withSize","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","createPropsGetter","defaultProps","state","needsPolyfillPlaceholder","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","globalObject","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose2","default","rootProps","style","textareaClassNames","cx","getTextareaSizeClassName","styles","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends2","ref","refFake","TextareaCounter","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","isSafariWithTextareaBug","TextareaWithSafari17Workaround","RenderLayer","onFocusOutside","onClickOutside","active","getRootSizeClassName","ResizeDetector","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","isKeyEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","getTextAreaHeight","minRows","parseInt","height","exceededMaxHeight","overflowY","throttle","getAutoResizeThrottleWait","event","isIE11","_inheritsLoose2","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","ReactUIFeatureFlagsContext","Consumer","flags","getFullReactUIFlagsContext","ThemeContext","CommonWrapper","rootNodeRef","setRootNode","blur","React","__KONTUR_REACT_UI__","displayName","isTestEnv"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.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 getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\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 * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,yBAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAC,uBAAA,CAAAN,OAAA;;AAEA,IAAAO,aAAA,GAAAP,OAAA;;AAEA,IAAAQ,YAAA,GAAAR,OAAA;AACA,IAAAS,eAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;;AAEA,IAAAW,cAAA,GAAAX,OAAA;AACA,IAAAY,mBAAA,GAAAZ,OAAA;AACA,IAAAa,QAAA,GAAAb,OAAA;;AAEA,IAAAc,SAAA,GAAAd,OAAA;AACA,IAAAe,kBAAA,GAAAf,OAAA;;;AAGA,IAAAgB,cAAA,GAAAhB,OAAA;AACA,IAAAiB,2BAAA,GAAAjB,OAAA;;;;AAIA,IAAAkB,oBAAA,GAAAlB,OAAA;;AAEA,IAAAmB,gBAAA,GAAAnB,OAAA;AACA,IAAAoB,UAAA,GAAApB,OAAA;;AAEA,IAAAqB,gBAAA,GAAArB,OAAA;AACA,IAAAsB,+BAAA,GAAAtB,OAAA,qCAAkF,IAAAuB,SAAA,qQAAAC,MAAA,EAAAC,SAAA;;AAE3E,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,GAAG;AAChC,IAAME,gCAAgC,GAAG,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0ErC,IAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG;EAC9BC,IAAI,EAAE,gBAAgB;EACtBC,OAAO,EAAE,uBAAuB;EAChCC,QAAQ,EAAE;AACZ,CAAU;;;;AAIV;AACA;AACA;AACA;AACA;AACA,GALA;;;;AASaC,QAAQ,GAAAN,OAAA,CAAAM,QAAA,OAFpBC,kBAAQ,EAAAV,MAAA,OACRW,uBAAQ,EAAAX,MAAA,IAAAC,SAAA,0BAAAW,gBAAA,YAAAH,SAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;IAYAU,KAAK,GAAG,YAAM;MACnB,IAAIV,KAAA,CAAKW,IAAI,EAAE;QACbX,KAAA,CAAKW,IAAI,CAACC,KAAK,GAAG,EAAE;MACtB;MACA,IAAIZ,KAAA,CAAKa,QAAQ,EAAE;QACjBb,KAAA,CAAKa,QAAQ,CAACD,KAAK,GAAG,EAAE;MAC1B;IACF,CAAC,CAAAZ,KAAA;;IAEOc,QAAQ,GAAG,IAAAC,oCAAiB,EAACnB,QAAQ,CAACoB,YAAY,CAAC,CAAAhB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BpDiB,KAAK,GAAG;MACbC,wBAAwB,EAAxBA,kDAAwB;MACxBC,gBAAgB,EAAE;IACpB,CAAC,CAAAnB,KAAA;;;IAGOoB,aAAa,GAAG,YAAM;MAC5B,IAAIpB,KAAA,CAAKN,OAAO,EAAE;QAChBM,KAAA,CAAKN,OAAO,CAAC2B,MAAM,CAAC,CAAC;MACvB;IACF,CAAC,CAAArB,KAAA;;;IAGOsB,WAAW,GAAkB,IAAI,CAAAtB,KAAA;;;;;IAKjCuB,gBAAgB,GAAGC,0BAAY,CAACC,gBAAgB;IACpD,IAAID,0BAAY,CAACC,gBAAgB,CAACzB,KAAA,CAAKoB,aAAa,CAAC;IACrD,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuFR;AACF;AACA;AACA;AACA,OAJEpB,KAAA;IAKO0B,iBAAiB,GAAG,UAACC,KAAa,EAAEC,GAAW,EAAK,KAAAC,qBAAA;MACzD,IAAI,CAAC7B,KAAA,CAAKW,IAAI,EAAE;QACd,MAAM,IAAImB,KAAK,CAAC,oDAAoD,CAAC;MACvE;;MAEA,IAAI,EAAAD,qBAAA,GAAAL,0BAAY,CAACO,QAAQ,qBAArBF,qBAAA,CAAuBG,aAAa,MAAKhC,KAAA,CAAKW,IAAI,EAAE;QACtDX,KAAA,CAAKiC,KAAK,CAAC,CAAC;MACd;;MAEAjC,KAAA,CAAKW,IAAI,CAACe,iBAAiB,CAACC,KAAK,EAAEC,GAAG,CAAC;IACzC,CAAC;;IAED;AACF;AACA,OAFE5B,KAAA;IAGOkC,SAAS,GAAG,YAAM;MACvB,IAAIlC,KAAA,CAAKW,IAAI,EAAE;QACbX,KAAA,CAAK0B,iBAAiB,CAAC,CAAC,EAAE1B,KAAA,CAAKW,IAAI,CAACC,KAAK,CAACT,MAAM,CAAC;MACnD;IACF,CAAC,CAAAH,KAAA;;IAEOmC,cAAc,GAAG,iBAAAC,qBAAA;QACtBpC,KAAA,CAAKsB,WAAW,IAAAc,qBAAA,GAAGZ,0BAAY,CAACa,qBAAqB,oBAAlCb,0BAAY,CAACa,qBAAqB,CAAGrC,KAAA,CAAKkC,SAAS,CAAC,YAAAE,qBAAA,GAAI,IAAI,GAAC,CAAApC,KAAA;;IAE3EsC,sBAAsB,GAAG,YAAY;MAC3C,IAAItC,KAAA,CAAKsB,WAAW,EAAE;QACpBE,0BAAY,CAACe,oBAAoB,YAAjCf,0BAAY,CAACe,oBAAoB,CAAGvC,KAAA,CAAKsB,WAAW,CAAC;QACrDtB,KAAA,CAAKsB,WAAW,GAAG,IAAI;MACzB;IACF,CAAC,CAAAtB,KAAA;;IAEOwC,UAAU,GAAG,UAACC,KAA4C,EAAK,KAAAC,GAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,IAAA;MACrE,IAAAC,YAAA;;;;;;;;;;;;;;;;;;;;;QAqBIL,KAAK,CApBPM,KAAK,CAALA,KAAK,GAAAD,YAAA,cAAGzD,aAAa,GAAAyD,YAAA,CACrBE,KAAK,GAmBHP,KAAK,CAnBPO,KAAK,CACLC,OAAO,GAkBLR,KAAK,CAlBPQ,OAAO,CACPC,IAAI,GAiBFT,KAAK,CAjBPS,IAAI,CACJC,UAAU,GAgBRV,KAAK,CAhBPU,UAAU,CACVC,MAAM,GAeJX,KAAK,CAfPW,MAAM,CACNC,KAAK,GAcHZ,KAAK,CAdPY,KAAK,CACLC,OAAO,GAaLb,KAAK,CAbPa,OAAO,CACPC,OAAO,GAYLd,KAAK,CAZPc,OAAO,CACPC,OAAO,GAWLf,KAAK,CAXPe,OAAO,CACPC,gBAAgB,GAUdhB,KAAK,CAVPgB,gBAAgB,CAChBC,WAAW,GASTjB,KAAK,CATPiB,WAAW,CACXC,aAAa,GAQXlB,KAAK,CARPkB,aAAa,CACbC,iBAAiB,GAOfnB,KAAK,CAPPmB,iBAAiB,CACjBC,aAAa,GAMXpB,KAAK,CANPoB,aAAa,CACbC,WAAW,GAKTrB,KAAK,CALPqB,WAAW,CACXC,QAAQ,GAINtB,KAAK,CAJPsB,QAAQ,CACRC,iBAAiB,GAGfvB,KAAK,CAHPuB,iBAAiB,CACjBC,QAAQ,GAENxB,KAAK,CAFPwB,QAAQ,CACLC,aAAa,OAAAC,8BAAA,CAAAC,OAAA,EACd3B,KAAK,EAAAvD,SAAA;;MAET,IAAQiC,gBAAgB,GAAKnB,KAAA,CAAKiB,KAAK,CAA/BE,gBAAgB;;MAExB,IAAMkD,SAAS,GAAG;QAChBC,KAAK,EAAE;UACLvB,KAAK,EAALA;QACF;MACF,CAAC;;MAED,IAAMwB,kBAAkB,GAAG,IAAAC,WAAE,EAACxE,KAAA,CAAKyE,wBAAwB,CAAC,CAAC,GAAA/B,GAAA,OAAAA,GAAA;MAC1DgC,iBAAM,CAACC,QAAQ,CAAC3E,KAAA,CAAK4E,KAAK,CAAC,IAAG,IAAI,EAAAlC,GAAA;MAClCgC,iBAAM,CAACG,QAAQ,CAAC7E,KAAA,CAAK4E,KAAK,CAAC,IAAG,CAAC5B,KAAK,IAAI,CAACC,OAAO,EAAAP,GAAA;MAChDgC,iBAAM,CAACT,QAAQ,CAACjE,KAAA,CAAK4E,KAAK,CAAC,IAAGX,QAAQ,EAAAvB,GAAA;MACtCgC,iBAAM,CAAC1B,KAAK,CAAChD,KAAA,CAAK4E,KAAK,CAAC,IAAG,CAAC,CAAC5B,KAAK,EAAAN,GAAA;MAClCgC,iBAAM,CAACzB,OAAO,CAACjD,KAAA,CAAK4E,KAAK,CAAC,IAAG,CAAC,CAAC3B,OAAO,EAAAP,GAAA;MACtCgC,iBAAM,CAACV,iBAAiB,CAAC,CAAC,IAAGhE,KAAA,CAAK8E,oBAAoB,CAAC,CAAC,EAAApC,GAAA;MAC1D,CAAC;;MAEF,IAAMqC,aAAa,GAAG;QACpB3B,MAAM,EAAED,UAAU,GAAG,MAAM,GAAGC,MAAM;QACpC4B,SAAS,EAAEhF,KAAA,CAAKyC,KAAK,CAACwC;MACxB,CAAC;;MAED,IAAIC,mBAAmB,GAAG,IAAI;;MAE9B,IAAIlF,KAAA,CAAKiB,KAAK,CAACC,wBAAwB,IAAI,CAACgD,aAAa,CAACtD,KAAK,IAAI,CAACsD,aAAa,CAACiB,YAAY,EAAE;QAC9FD,mBAAmB,gBAAGzH,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,WAAMC,SAAS,EAAEX,iBAAM,CAAChB,WAAW,CAAC,CAAE,IAAEA,WAAkB,CAAC;MACnF;;MAEA,IAAI4B,YAAY,GAAG,IAAI;MACvB,IAAInC,UAAU,EAAE;QACd,IAAMoC,SAAS,GAAG;UAChB3E,KAAK,EAAEZ,KAAA,CAAKyC,KAAK,CAAC7B,KAAK;UACvBuE,YAAY,EAAEnF,KAAA,CAAKyC,KAAK,CAAC0C,YAAY;UACrCE,SAAS,EAAE,IAAAb,WAAE,EAACD,kBAAkB,EAAEG,iBAAM,CAACc,IAAI,CAAC,CAAC,CAAC;UAChDC,QAAQ,EAAE;QACZ,CAAC;QACDH,YAAY,gBAAG7H,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,iBAAAM,SAAA,CAAAtB,OAAA,MAAcmB,SAAS,IAAEI,GAAG,EAAE3F,KAAA,CAAK4F,OAAQ,GAAE,CAAC;MAC/D;;MAEA,IAAMlG,OAAO,GAAGkE,iBAAiB,IAAIzC,gBAAgB,IAAInB,KAAA,CAAKW,IAAI;MAChElD,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAACpG,gBAAA,CAAA6G,eAAe;QACdlB,QAAQ,EAAE3E,KAAA,CAAKW,IAAK;QACpBuC,IAAI,EAAElD,KAAA,CAAKkD,IAAK;QAChB4C,IAAI,EAAEhC,WAAY;QAClBlD,KAAK,EAAEsD,aAAa,CAACtD,KAAM;QAC3BT,MAAM,GAAAwC,IAAA,IAAAC,qBAAA,GAAEsB,aAAa,CAAC6B,SAAS,YAAAnD,qBAAA,GAAIiB,aAAa,YAAAlB,IAAA,GAAI,CAAE;QACtDqD,WAAW,EAAEhG,KAAA,CAAKiG,sBAAuB;QACzCN,GAAG,EAAE3F,KAAA,CAAKkG,UAAW;MACtB,CACF;;;MAED,IAAMC,SAAS,GAAGC,+BAAuB,GAAGC,8DAA8B,GAAG,UAAU;;MAEvF;QACE5I,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAACjH,YAAA,CAAAmI,WAAW;UACVC,cAAc,EAAEvG,KAAA,CAAKiG,sBAAuB;UAC5CO,cAAc,EAAExG,KAAA,CAAKiG,sBAAuB;UAC5CQ,MAAM,EAAEzG,KAAA,CAAKiB,KAAK,CAACE,gBAAiB;;QAEpC1D,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,cAAAM,SAAA,CAAAtB,OAAA;UACE,YAAU5E,gBAAgB,CAACC,IAAK;QAC5B4E,SAAS;UACbgB,SAAS,EAAE,IAAAb,WAAE,EAACxE,KAAA,CAAK0G,oBAAoB,CAAC,CAAC,GAAA7D,IAAA,OAAAA,IAAA;UACtC6B,iBAAM,CAACjF,IAAI,CAAC,CAAC,IAAG,IAAI,EAAAoD,IAAA;UACtB,CAAE;;QAEFqC,mBAAmB;QACpBzH,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAAChH,eAAA,CAAAuI,cAAc,IAACC,QAAQ,EAAE5G,KAAA,CAAKoB,aAAc,EAACyF,aAAa,EAAE7G,KAAA,CAAK8G,YAAY,CAACC,qBAAsB;QACnGtJ,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAACe,SAAS,MAAAT,SAAA,CAAAtB,OAAA;QACJF,aAAa;UACjBmB,SAAS,EAAEd,kBAAmB;UAC9BD,KAAK,EAAES,aAAc;UACrBrB,WAAW,EAAE,CAACwB,mBAAmB,GAAGxB,WAAW,GAAGsD,SAAU;UAC5DrB,GAAG,EAAE3F,KAAA,CAAK2F,GAAI;UACdsB,QAAQ,EAAEjH,KAAA,CAAKkH,YAAa;UAC5B7D,KAAK,EAAErD,KAAA,CAAKmH,SAAU;UACtB7D,OAAO,EAAEtD,KAAA,CAAKoH,WAAY;UAC1B5D,OAAO,EAAExD,KAAA,CAAKqH,WAAY;UAC1BC,SAAS,EAAEtH,KAAA,CAAKuH,aAAc;UAC9BtD,QAAQ,EAAEA,QAAS;;QAElBjE,KAAA,CAAKyC,KAAK,CAAC+E;QACH;QACG,CAAC;QAChBlC,YAAY;QACZ5F;QACI;QACI,CAAC;;IAElB,CAAC,CAAAM,KAAA;;IAEOiG,sBAAsB,GAAG,oBAAMjG,KAAA,CAAKyH,QAAQ,CAAC,EAAEtG,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,GAAAnB,KAAA;;IAEzEuH,aAAa,GAAG,UAACG,CAA2C,EAAK;MACvE;MACA;MACA,IAAM9G,KAAK,GAAGZ,KAAA,CAAKyC,KAAK,CAAC7B,KAAK,KAAKoG,SAAS,GAAGhH,KAAA,CAAKyC,KAAK,CAAC7B,KAAK,CAAC+G,QAAQ,CAAC,CAAC,GAAG,IAAI;MACjF,IAAMC,YAAY,GAAG,IAAAC,uBAAU,EAACH,CAAC,CAAC,IAAI9G,KAAK,KAAK,IAAI,IAAIA,KAAK,CAACT,MAAM,KAAKH,KAAA,CAAKyC,KAAK,CAACsD,SAAS;;MAE7F,IAAI6B,YAAY,EAAE;QAChBF,CAAC,CAACI,cAAc,CAAC,CAAC;MACpB;;MAEA,IAAI9H,KAAA,CAAKyC,KAAK,CAAC6E,SAAS,EAAE;QACxBtH,KAAA,CAAKyC,KAAK,CAAC6E,SAAS,CAACI,CAAC,CAAC;MACzB;IACF,CAAC,CAAA1H,KAAA;;IAEOkH,YAAY,GAAG,UAACQ,CAAyC,EAAK;MACpE,IAAIxG,kDAAwB,EAAE;QAC5B,IAAM6G,YAAY,GAAGL,CAAC,CAACM,MAAM,CAACpH,KAAK,KAAK,EAAE;;QAE1C,IAAIZ,KAAA,CAAKiB,KAAK,CAACC,wBAAwB,KAAK6G,YAAY,EAAE;UACxD/H,KAAA,CAAKyH,QAAQ,CAAC,EAAEvG,wBAAwB,EAAE6G,YAAY,CAAC,CAAC,CAAC;QAC3D;MACF;;MAEA,IAAI/H,KAAA,CAAKyC,KAAK,CAACkB,aAAa,EAAE;QAC5B3D,KAAA,CAAKyC,KAAK,CAACkB,aAAa,CAAC+D,CAAC,CAACM,MAAM,CAACpH,KAAK,CAAC;MAC1C;;MAEA,IAAIZ,KAAA,CAAKyC,KAAK,CAACU,UAAU,EAAE;QACzBnD,KAAA,CAAKmD,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAInD,KAAA,CAAKyC,KAAK,CAACwE,QAAQ,EAAE;QACvBjH,KAAA,CAAKyC,KAAK,CAACwE,QAAQ,CAACS,CAAC,CAAC;MACxB;;MAEA1H,KAAA,CAAKoB,aAAa,CAAC,CAAC;IACtB,CAAC,CAAApB,KAAA;;IAEO2F,GAAG,GAAG,UAACsC,OAA4B,EAAK;MAC9CjI,KAAA,CAAKW,IAAI,GAAGsH,OAAO;IACrB,CAAC,CAAAjI,KAAA;;IAEO4F,OAAO,GAAG,UAACqC,OAA4B,EAAK;MAClDjI,KAAA,CAAKa,QAAQ,GAAGoH,OAAO;IACzB,CAAC,CAAAjI,KAAA;;IAEOkG,UAAU,GAAG,UAACP,GAA8B,EAAK;MACvD3F,KAAA,CAAKN,OAAO,GAAGiG,GAAG;IACpB,CAAC,CAAA3F,KAAA;;IAEOkI,iBAAiB,GAAG,YAAM;MAChC,IAAMrH,QAAQ,GAAGb,KAAA,CAAKa,QAAQ;MAC9B,IAAI,CAACA,QAAQ,EAAE;QACb;MACF;MACA,IAAMF,IAAI,GAAGX,KAAA,CAAKW,IAAI;MACtB,IAAI,CAACA,IAAI,EAAE;QACT;MACF;MACA,IAAIX,KAAA,CAAKyC,KAAK,CAAC7B,KAAK,KAAKoG,SAAS,EAAE;QAClCnG,QAAQ,CAACD,KAAK,GAAGD,IAAI,CAACC,KAAK;MAC7B;;MAEA,IAAAuH,cAAA,GAA0BnI,KAAA,CAAKc,QAAQ,CAAC,CAAC,CAAjCsH,IAAI,GAAAD,cAAA,CAAJC,IAAI,CAAE7E,OAAO,GAAA4E,cAAA,CAAP5E,OAAO;MACrB,IAAI6E,IAAI,KAAKpB,SAAS,IAAIzD,OAAO,KAAKyD,SAAS,EAAE;QAC/C;MACF;;MAEA,IAAAqB,KAAA;QACE,IAAAC,kCAAiB,EAAC;UAChB3H,IAAI,EAAEE,QAAQ;UACd0H,OAAO,EAAE,OAAOH,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGI,QAAQ,CAACJ,IAAI,EAAE,EAAE,CAAC;UAC7D7E,OAAO,EAAE,OAAOA,OAAO,KAAK,QAAQ,GAAGA,OAAO,GAAGiF,QAAQ,CAACjF,OAAO,EAAE,EAAE,CAAC;UACtEQ,QAAQ,EAAE/D,KAAA,CAAKc,QAAQ,CAAC,CAAC,CAACiD;QAC5B,CAAC,CAAC,IAAI,CAAC,CAAC,CANF0E,MAAM,GAAAJ,KAAA,CAANI,MAAM,CAAEC,iBAAiB,GAAAL,KAAA,CAAjBK,iBAAiB;;MAQjC,IAAID,MAAM,KAAKzB,SAAS,IAAI0B,iBAAiB,KAAK1B,SAAS,EAAE;QAC3D;MACF;;MAEArG,IAAI,CAAC2D,KAAK,CAACmE,MAAM,GAAGA,MAAM,GAAG,IAAI;MACjC9H,IAAI,CAAC2D,KAAK,CAACqE,SAAS,GAAGD,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;MAC9D7H,QAAQ,CAACyD,KAAK,CAACqE,SAAS,GAAGD,iBAAiB,GAAG,QAAQ,GAAG,QAAQ;IACpE,CAAC,CAAA1I,KAAA;;IAEOmD,UAAU,GAAG,IAAAyF,eAAQ,EAAC5I,KAAA,CAAKkI,iBAAiB,EAAElI,KAAA,CAAK6I,yBAAyB,CAAC,CAAC,CAAC,CAAA7I,KAAA;;IAE/EmH,SAAS,GAAG,UAAC2B,KAAgD,EAAK;MACxE,IAAI9I,KAAA,CAAKyC,KAAK,CAACU,UAAU,EAAE;QACzBnD,KAAA,CAAKmD,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAInD,KAAA,CAAKyC,KAAK,CAACY,KAAK,EAAE;QACpBrD,KAAA,CAAKyC,KAAK,CAACY,KAAK,CAACyF,KAAK,CAAC;MACzB;;MAEA9I,KAAA,CAAKoB,aAAa,CAAC,CAAC;IACtB,CAAC,CAAApB,KAAA;;IAEOoH,WAAW,GAAG,UAAC0B,KAAgD,EAAK;MAC1E,IAAI9I,KAAA,CAAKyC,KAAK,CAACU,UAAU,EAAE;QACzBnD,KAAA,CAAKmD,UAAU,CAAC,CAAC;MACnB;;MAEA,IAAInD,KAAA,CAAKyC,KAAK,CAACa,OAAO,EAAE;QACtBtD,KAAA,CAAKyC,KAAK,CAACa,OAAO,CAACwF,KAAK,CAAC;MAC3B;;MAEA9I,KAAA,CAAKoB,aAAa,CAAC,CAAC;IACtB,CAAC,CAAApB,KAAA;;IAEOqH,WAAW,GAAG,UAACyB,KAA4C,EAAK;MACtE9I,KAAA,CAAKyH,QAAQ,CAAC,EAAEtG,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;;MAEzC,IAAInB,KAAA,CAAKyC,KAAK,CAACgB,gBAAgB,EAAE;QAC/B;QACAzD,KAAA,CAAKW,IAAI,IAAI,CAACoI,cAAM,GAAG/I,KAAA,CAAKkC,SAAS,CAAC,CAAC,GAAGlC,KAAA,CAAKmC,cAAc,CAAC,CAAC;MACjE;;MAEA,IAAInC,KAAA,CAAKyC,KAAK,CAACe,OAAO,EAAE;QACtBxD,KAAA,CAAKyC,KAAK,CAACe,OAAO,CAACsF,KAAK,CAAC;MAC3B;IACF,CAAC,QAAA9I,KAAA,MAAAgJ,eAAA,CAAA5E,OAAA,EAAAxE,QAAA,EAAAG,gBAAA,MAAAkJ,MAAA,GAAArJ,QAAA,CAAAsJ,SAAA,CAAAD,MAAA,CAvZOvC,oBAAoB,GAA5B,SAAAA,qBAAA,EAA+B,CAC7B,QAAQ,IAAI,CAACxD,IAAI,GACf,KAAK,OAAO,CACV,OAAOwB,iBAAM,CAACyE,SAAS,CAAC,IAAI,CAACvE,KAAK,CAAC,CACrC,KAAK,QAAQ,CACX,OAAOF,iBAAM,CAAC0E,UAAU,CAAC,IAAI,CAACxE,KAAK,CAAC,CACtC,KAAK,OAAO,CACZ,QACE,OAAOF,iBAAM,CAAC2E,SAAS,CAAC,IAAI,CAACzE,KAAK,CAAC,CACvC,CACF,CAAC,CAAAqE,MAAA,CAEOxE,wBAAwB,GAAhC,SAAAA,yBAAA,EAAmC,CACjC,QAAQ,IAAI,CAACvB,IAAI,GACf,KAAK,OAAO,CACV,OAAOwB,iBAAM,CAAC4E,aAAa,CAAC,IAAI,CAAC1E,KAAK,CAAC,CACzC,KAAK,QAAQ,CACX,OAAOF,iBAAM,CAAC6E,cAAc,CAAC,IAAI,CAAC3E,KAAK,CAAC,CAC1C,KAAK,OAAO,CACZ,QACE,OAAOF,iBAAM,CAAC8E,aAAa,CAAC,IAAI,CAAC5E,KAAK,CAAC,CAC3C,CACF,CAAC,CAAAqE,MAAA,CAyBOJ,yBAAyB,GAAjC,SAAAA,0BAAkCpG,KAAoB,EAAuB,KAA3CA,KAAoB,cAApBA,KAAoB,GAAG,IAAI,CAACA,KAAK,GACjE;IACA;IACA,OAAO,IAAI,CAACqC,oBAAoB,CAACrC,KAAK,CAAC,GAAG,CAAC,GAAGlD,gCAAgC,CAChF,CAAC,CAAA0J,MAAA,CACOnE,oBAAoB,GAA5B,SAAAA,qBAAA2E,KAAA,EAAmG,KAAAC,KAAA,GAAAD,KAAA,cAArB,IAAI,CAAChH,KAAK,GAAAgH,KAAA,CAAzDzF,iBAAiB,GAAA0F,KAAA,CAAjB1F,iBAAiB,CAAED,QAAQ,GAAA2F,KAAA,CAAR3F,QAAQ,CACxD,OAAOC,iBAAiB,IAAI,CAACD,QAAQ,CACvC,CAAC,CAAAkF,MAAA,CAEMU,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAAClH,KAAK,CAACU,UAAU,EAAE,CACzB,IAAI,CAACA,UAAU,CAAC,CAAC,CACjB,IAAI,CAACyG,YAAY,GAAG5L,YAAY,CAAC6L,WAAW,CAAC,IAAI,CAAC1G,UAAU,CAAC,CAC/D,CAEA,IAAI,IAAI,CAACxC,IAAI,IAAI,IAAI,CAAC8B,KAAK,CAACmB,iBAAiB,IAAI,IAAI,CAACrC,gBAAgB,EAAE,CACtE,IAAI,CAACA,gBAAgB,CAACuI,OAAO,CAAC,IAAI,CAACnJ,IAAI,EAAE,EAAEoJ,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,CAChE,CACF,CAAC,CAAAd,MAAA,CAEMe,oBAAoB,GAA3B,SAAAA,qBAAA,EAA8B,CAC5B,IAAI,IAAI,CAACJ,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACK,MAAM,CAAC,CAAC,CAC5B,CACA,IAAI,IAAI,CAACxH,KAAK,CAACmB,iBAAiB,IAAI,IAAI,CAACrC,gBAAgB,EAAE,CACzD,IAAI,CAACA,gBAAgB,CAAC2I,UAAU,CAAC,CAAC,CACpC,CACA,IAAI,CAAC5H,sBAAsB,CAAC,CAAC,CAC/B,CAAC,CAAA2G,MAAA,CAEMkB,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAwB,EAAE,CAClD,IAAI,IAAI,CAACvB,yBAAyB,CAAC,CAAC,KAAK,IAAI,CAACA,yBAAyB,CAACuB,SAAS,CAAC,EAAE,CAClF,IAAI,CAACjH,UAAU,CAACkH,MAAM,CAAC,CAAC,CACxB,IAAI,CAAClH,UAAU,GAAG,IAAAyF,eAAQ,EAAC,IAAI,CAACV,iBAAiB,EAAE,IAAI,CAACW,yBAAyB,CAAC,CAAC,CAAC,CACtF,CACA,IAAAyB,eAAA,GAA0B,IAAI,CAACxJ,QAAQ,CAAC,CAAC,CAAjCsH,IAAI,GAAAkC,eAAA,CAAJlC,IAAI,CAAE7E,OAAO,GAAA+G,eAAA,CAAP/G,OAAO,CACrB,IACE,IAAI,CAACd,KAAK,CAACU,UAAU,KACpBiF,IAAI,KAAKgC,SAAS,CAAChC,IAAI,IAAI7E,OAAO,KAAK6G,SAAS,CAAC7G,OAAO,IAAI,IAAI,CAACd,KAAK,CAAC7B,KAAK,KAAKwJ,SAAS,CAACxJ,KAAK,CAAC,EAClG,CACA,IAAI,CAACuC,UAAU,CAAC,CAAC,CACnB,CACF,CAAC,CAAA8F,MAAA,CAEMsB,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,oBACE/M,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAACxG,2BAAA,CAAA6L,0BAA0B,CAACC,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVH,MAAI,CAAC1D,YAAY,GAAG,IAAA8D,+CAA0B,EAACD,KAAK,CAAC,CACrD,oBACElN,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAAClH,aAAA,CAAA2M,YAAY,CAACH,QAAQ,QACnB,UAAC9F,KAAK,EAAK,CACV4F,MAAI,CAAC5F,KAAK,GAAGA,KAAK,CAClB,oBACEnH,MAAA,CAAA2G,OAAA,CAAAgB,aAAA,CAAC9G,cAAA,CAAAwM,aAAa,MAAApF,SAAA,CAAAtB,OAAA,IAAC2G,WAAW,EAAEP,MAAI,CAACQ,WAAY,IAAKR,MAAI,CAAC1J,QAAQ,CAAC,CAAC,GAC9D0J,MAAI,CAAChI,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CACmC,CAAC,CAE1C,CAAC,CAED;AACF;AACA,KAFE,CAAAyG,MAAA,CAGOhH,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,IAAI,CAACtB,IAAI,EAAE,CACb,IAAI,CAACA,IAAI,CAACsB,KAAK,CAAC,CAAC,CACnB,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAgH,MAAA,CAGOgC,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,IAAI,CAACtK,IAAI,EAAE,CACb,IAAI,CAACA,IAAI,CAACsK,IAAI,CAAC,CAAC,CAClB,CACF,CAAC,QAAArL,QAAA,GAvJ2BsL,cAAK,CAAC/E,SAAS,GAAA/G,SAAA,CAC7B+L,mBAAmB,GAAG,UAAU,EAAA/L,SAAA,CAChCgM,WAAW,GAAG,UAAU,EAAAhM,SAAA,CAExB4B,YAAY,GAAiB,EACzCoH,IAAI,EAAE,CAAC,EACP7E,OAAO,EAAE,EAAE,EACXQ,QAAQ,EAAE,IAAI,EACdC,iBAAiB,EAAEqH,6BAAS,CAC9B,CAAC,EAAAjM,SAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export interface ResizeDetectorProps {
3
3
  onResize?: (event: UIEvent) => void;
4
4
  fullHeight?: boolean;
5
+ alignBaseline?: boolean;
5
6
  }
6
7
  export declare class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {
7
8
  static __KONTUR_REACT_UI__: string;
@@ -9,6 +9,7 @@ var _ResizeDetector2 = require("./ResizeDetector.styles");var
9
9
 
10
10
 
11
11
 
12
+
12
13
  ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Component) {function ResizeDetector() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;_this.
13
14
 
14
15
 
@@ -28,6 +29,12 @@ ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Componen
28
29
 
29
30
 
30
31
 
32
+
33
+
34
+
35
+
36
+
37
+
31
38
 
32
39
 
33
40
 
@@ -42,4 +49,4 @@ ResizeDetector = exports.ResizeDetector = /*#__PURE__*/function (_React$Componen
42
49
  if (iframe && iframe.contentWindow) {
43
50
  _this.iframeWindow = iframe.contentWindow;
44
51
  }
45
- };return _this;}(0, _inheritsLoose2.default)(ResizeDetector, _React$Component);var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector2.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector2.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector2.styles.content()] = true, _cx[_ResizeDetector2.styles.fullHeight()] = this.props.fullHeight, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';ResizeDetector.displayName = 'ResizeDetector';
52
+ };return _this;}(0, _inheritsLoose2.default)(ResizeDetector, _React$Component);var _proto = ResizeDetector.prototype;_proto.componentDidMount = function componentDidMount() {if (this.iframeWindow) {this.iframeWindow.addEventListener('resize', this.handleResize);}};_proto.render = function render() {var _cx;return /*#__PURE__*/_react.default.createElement("div", { className: _ResizeDetector2.styles.root() }, /*#__PURE__*/_react.default.createElement("iframe", { title: "resizeDetector", ref: this.iframeRef, className: _ResizeDetector2.styles.iframe(), tabIndex: -1 }), /*#__PURE__*/_react.default.createElement("div", { className: (0, _Emotion.cx)((_cx = {}, _cx[_ResizeDetector2.styles.content()] = true, _cx[_ResizeDetector2.styles.fullHeight()] = this.props.fullHeight, _cx[_ResizeDetector2.styles.flex()] = this.props.alignBaseline, _cx)) }, this.props.children));};return ResizeDetector;}(_react.default.Component);ResizeDetector.__KONTUR_REACT_UI__ = 'ResizeDetector';ResizeDetector.displayName = 'ResizeDetector';
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Emotion","_ResizeDetector2","ResizeDetector","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","styles","root","title","ref","tabIndex","cx","content","fullHeight","children","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div className={cx({ [styles.content()]: true, [styles.fullHeight()]: this.props.fullHeight })}>\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"],"mappings":"kQAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,QAAA,GAAAD,OAAA;;AAEA,IAAAE,gBAAA,GAAAF,OAAA,4BAAiD;;;;;;;AAOpCG,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAAE,gBAAA,YAAAF,eAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;IAIjBU,YAAY,GAAkB,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;IAmBlCW,YAAY,GAAG,UAACC,KAAc,EAAK;MACzC,IAAIZ,KAAA,CAAKa,KAAK,CAACC,QAAQ,EAAE;QACvBd,KAAA,CAAKa,KAAK,CAACC,QAAQ,CAACF,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOe,SAAS,GAAG,UAACC,MAAyB,EAAK;MACjD,IAAIA,MAAM,IAAIA,MAAM,CAACC,aAAa,EAAE;QAClCjB,KAAA,CAAKU,YAAY,GAAGM,MAAM,CAACC,aAAa;MAC1C;IACF,CAAC,QAAAjB,KAAA,MAAAkB,eAAA,CAAAC,OAAA,EAAAtB,cAAA,EAAAE,gBAAA,MAAAqB,MAAA,GAAAvB,cAAA,CAAAwB,SAAA,CAAAD,MAAA,CA3BME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACZ,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACa,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACZ,YAAY,CAAC,CACjE,CACF,CAAC,CAAAS,MAAA,CAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,GAAA,CACd,oBACEjC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UAAKC,SAAS,EAAEC,uBAAM,CAACC,IAAI,CAAC,CAAE,iBAC5BrC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,aAAQI,KAAK,EAAC,gBAAgB,EAACC,GAAG,EAAE,IAAI,CAAChB,SAAU,EAACY,SAAS,EAAEC,uBAAM,CAACZ,MAAM,CAAC,CAAE,EAACgB,QAAQ,EAAE,CAAC,CAAE,EAAE,CAAC,eAChGxC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UAAKC,SAAS,EAAE,IAAAM,WAAE,GAAAR,GAAA,OAAAA,GAAA,CAAIG,uBAAM,CAACM,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAT,GAAA,CAAGG,uBAAM,CAACO,UAAU,CAAC,CAAC,IAAG,IAAI,CAACtB,KAAK,CAACsB,UAAU,EAAAV,GAAA,CAAE,CAAE,IAC5F,IAAI,CAACZ,KAAK,CAACuB,QACT,CACF,CAAC,CAEV,CAAC,QAAAvC,cAAA,GArBiCwC,cAAK,CAACC,SAAS,EAAtCzC,cAAc,CACX0C,mBAAmB,GAAG,gBAAgB,CADzC1C,cAAc,CAEX2C,WAAW,GAAG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Emotion","_ResizeDetector2","ResizeDetector","exports","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","styles","root","title","ref","tabIndex","cx","content","fullHeight","flex","alignBaseline","children","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n alignBaseline?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div\n className={cx({\n [styles.content()]: true,\n [styles.fullHeight()]: this.props.fullHeight,\n [styles.flex()]: this.props.alignBaseline,\n })}\n >\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"],"mappings":"kQAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;AAEA,IAAAC,QAAA,GAAAD,OAAA;;AAEA,IAAAE,gBAAA,GAAAF,OAAA,4BAAiD;;;;;;;;AAQpCG,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAAE,gBAAA,YAAAF,eAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;IAIjBU,YAAY,GAAkB,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAyBlCW,YAAY,GAAG,UAACC,KAAc,EAAK;MACzC,IAAIZ,KAAA,CAAKa,KAAK,CAACC,QAAQ,EAAE;QACvBd,KAAA,CAAKa,KAAK,CAACC,QAAQ,CAACF,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOe,SAAS,GAAG,UAACC,MAAyB,EAAK;MACjD,IAAIA,MAAM,IAAIA,MAAM,CAACC,aAAa,EAAE;QAClCjB,KAAA,CAAKU,YAAY,GAAGM,MAAM,CAACC,aAAa;MAC1C;IACF,CAAC,QAAAjB,KAAA,MAAAkB,eAAA,CAAAC,OAAA,EAAAtB,cAAA,EAAAE,gBAAA,MAAAqB,MAAA,GAAAvB,cAAA,CAAAwB,SAAA,CAAAD,MAAA,CAjCME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACZ,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACa,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACZ,YAAY,CAAC,CACjE,CACF,CAAC,CAAAS,MAAA,CAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,GAAA,CACd,oBACEjC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UAAKC,SAAS,EAAEC,uBAAM,CAACC,IAAI,CAAC,CAAE,iBAC5BrC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,aAAQI,KAAK,EAAC,gBAAgB,EAACC,GAAG,EAAE,IAAI,CAAChB,SAAU,EAACY,SAAS,EAAEC,uBAAM,CAACZ,MAAM,CAAC,CAAE,EAACgB,QAAQ,EAAE,CAAC,CAAE,EAAE,CAAC,eAChGxC,MAAA,CAAA2B,OAAA,CAAAO,aAAA,UACEC,SAAS,EAAE,IAAAM,WAAE,GAAAR,GAAA,OAAAA,GAAA,CACVG,uBAAM,CAACM,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAT,GAAA,CACvBG,uBAAM,CAACO,UAAU,CAAC,CAAC,IAAG,IAAI,CAACtB,KAAK,CAACsB,UAAU,EAAAV,GAAA,CAC3CG,uBAAM,CAACQ,IAAI,CAAC,CAAC,IAAG,IAAI,CAACvB,KAAK,CAACwB,aAAa,EAAAZ,GAAA,CAC1C,CAAE,IAEF,IAAI,CAACZ,KAAK,CAACyB,QACT,CACF,CAAC,CAEV,CAAC,QAAAzC,cAAA,GA3BiC0C,cAAK,CAACC,SAAS,EAAtC3C,cAAc,CACX4C,mBAAmB,GAAG,gBAAgB,CADzC5C,cAAc,CAEX6C,WAAW,GAAG,gBAAgB","ignoreList":[]}
@@ -3,4 +3,5 @@ export declare const styles: {
3
3
  iframe(): string;
4
4
  content(): string;
5
5
  fullHeight(): string;
6
+ flex(): string;
6
7
  };
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
2
2
 
3
3
  var styles = exports.styles = (0, _Emotion.memoizeStyle)({
4
4
  root: function root() {
@@ -33,5 +33,11 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
33
33
  return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: 100%;\n "])));
34
34
 
35
35
 
36
+ },
37
+
38
+ flex: function flex() {
39
+ return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n display: flex;\n "])));
40
+
41
+
36
42
  }
37
43
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","iframe","content","fullHeight"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAEvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOC,YAAG,EAAAR,eAAA,KAAAA,eAAA,OAAAS,4BAAA,CAAAC,OAAA;;;;EAIZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,WAAOH,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;;;;;;;;;;;;EAYZ,CAAC;;EAEDE,OAAO,WAAAA,QAAA,EAAG;IACR,WAAOJ,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDG,UAAU,WAAAA,WAAA,EAAG;IACX,WAAOL,YAAG,EAAAL,gBAAA,KAAAA,gBAAA,OAAAM,4BAAA,CAAAC,OAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_Emotion","require","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","styles","exports","memoizeStyle","root","css","_taggedTemplateLiteralLoose2","default","iframe","content","fullHeight","flex"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n\n flex() {\n return css`\n display: flex;\n `;\n },\n});\n"],"mappings":"oRAAA,IAAAA,QAAA,GAAAC,OAAA,8BAA8D,IAAAC,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA;;AAEvD,IAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,qBAAY,EAAC;EACjCC,IAAI,WAAAA,KAAA,EAAG;IACL,WAAOC,YAAG,EAAAT,eAAA,KAAAA,eAAA,OAAAU,4BAAA,CAAAC,OAAA;;;;EAIZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,WAAOH,YAAG,EAAAR,gBAAA,KAAAA,gBAAA,OAAAS,4BAAA,CAAAC,OAAA;;;;;;;;;;;;EAYZ,CAAC;;EAEDE,OAAO,WAAAA,QAAA,EAAG;IACR,WAAOJ,YAAG,EAAAP,gBAAA,KAAAA,gBAAA,OAAAQ,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDG,UAAU,WAAAA,WAAA,EAAG;IACX,WAAOL,YAAG,EAAAN,gBAAA,KAAAA,gBAAA,OAAAO,4BAAA,CAAAC,OAAA;;;EAGZ,CAAC;;EAEDI,IAAI,WAAAA,KAAA,EAAG;IACL,WAAON,YAAG,EAAAL,gBAAA,KAAAA,gBAAA,OAAAM,4BAAA,CAAAC,OAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -12,4 +12,5 @@ export declare const getFullReactUIFlagsContext: (flags: ReactUIFeatureFlags) =>
12
12
  sidePageDisableHeaderShrink?: boolean | undefined;
13
13
  sidePageNotCutTitleOnStuckByDefault?: boolean | undefined;
14
14
  tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean | undefined;
15
+ textareaBaselineAlign?: boolean | undefined;
15
16
  };
@@ -12,6 +12,7 @@ export interface ReactUIFeatureFlags {
12
12
  sidePageDisableHeaderShrink?: boolean;
13
13
  sidePageNotCutTitleOnStuckByDefault?: boolean;
14
14
  tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;
15
+ textareaBaselineAlign?: boolean;
15
16
  }
16
17
  export declare const reactUIFeatureFlagsDefault: ReactUIFeatureFlags;
17
18
  export declare const ReactUIFeatureFlagsContext: React.Context<ReactUIFeatureFlags>;
@@ -15,6 +15,7 @@
15
15
 
16
16
 
17
17
 
18
+
18
19
  var reactUIFeatureFlagsDefault = exports.reactUIFeatureFlagsDefault = {
19
20
  dateInputFixSameNumberTypingOnRefocus: false,
20
21
  dateInputAllowInvalidValuesInDays: false,
@@ -27,7 +28,8 @@ var reactUIFeatureFlagsDefault = exports.reactUIFeatureFlagsDefault = {
27
28
  fxInputUseMaskedInput: false,
28
29
  sidePageDisableHeaderShrink: false,
29
30
  sidePageNotCutTitleOnStuckByDefault: false,
30
- tokenInputCreateTokenOnBlurInWithoutReferenceMode: false
31
+ tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,
32
+ textareaBaselineAlign: false
31
33
  };
32
34
 
33
35
  var ReactUIFeatureFlagsContext = exports.ReactUIFeatureFlagsContext = /*#__PURE__*/_react.default.createContext(reactUIFeatureFlagsDefault);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","reactUIFeatureFlagsDefault","exports","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","ReactUIFeatureFlagsContext","React","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"qNAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;;;;;;;;;;;;;;AAiBO,IAAMC,0BAA+C,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EAC7DE,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE;AACrD,CAAC;;AAEM,IAAMC,0BAA0B,GAAAb,OAAA,CAAAa,0BAAA,gBAAGC,cAAK,CAACC,aAAa,CAAsBhB,0BAA0B,CAAC;;AAE9Gc,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AACrEH,0BAA0B,CAACI,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","reactUIFeatureFlagsDefault","exports","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","textareaBaselineAlign","ReactUIFeatureFlagsContext","React","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n textareaBaselineAlign?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n textareaBaselineAlign: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"qNAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;;;;;;;;;;;;;;;;;;AAkBO,IAAMC,0BAA+C,GAAAC,OAAA,CAAAD,0BAAA,GAAG;EAC7DE,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE,KAAK;EACxDC,qBAAqB,EAAE;AACzB,CAAC;;AAEM,IAAMC,0BAA0B,GAAAd,OAAA,CAAAc,0BAAA,gBAAGC,cAAK,CAACC,aAAa,CAAsBjB,0BAA0B,CAAC;;AAE9Ge,0BAA0B,CAACG,WAAW,GAAG,4BAA4B;AACrEH,0BAA0B,CAACI,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
@@ -19,6 +19,8 @@ import { cx } from "../../../lib/theming/Emotion";
19
19
  import { rootNode } from "../../../lib/rootNode";
20
20
  import { createPropsGetter } from "../../../lib/createPropsGetter";
21
21
  import { withSize } from "../../../lib/size/SizeDecorator";
22
+ import { ReactUIFeatureFlagsContext } from "../../../lib/featureFlagsContext/ReactUIFeatureFlagsContext";
23
+ import { getFullReactUIFlagsContext } from "../../../lib/featureFlagsContext/FeatureFlagsHelpers";
22
24
  import { getTextAreaHeight } from "../TextareaHelpers";
23
25
  import { styles } from "../Textarea.styles";
24
26
  import { TextareaCounter } from "../TextareaCounter";
@@ -176,7 +178,8 @@ export var Textarea = rootNode(_class = withSize(_class = (_Textarea = /*#__PURE
176
178
  className: cx(_this.getRootSizeClassName(), (_cx2 = {}, _cx2[styles.root()] = true, _cx2))
177
179
  }), placeholderPolyfill, /*#__PURE__*/
178
180
  React.createElement(ResizeDetector, {
179
- onResize: _this.reflowCounter
181
+ onResize: _this.reflowCounter,
182
+ alignBaseline: _this.featureFlags.textareaBaselineAlign
180
183
  }, /*#__PURE__*/
181
184
  React.createElement(Component, _extends({}, textareaProps, {
182
185
  className: textareaClassNames,
@@ -375,11 +378,14 @@ export var Textarea = rootNode(_class = withSize(_class = (_Textarea = /*#__PURE
375
378
  };
376
379
  _proto.render = function render() {
377
380
  var _this2 = this;
378
- return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
379
- _this2.theme = theme;
380
- return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
381
- rootNodeRef: _this2.setRootNode
382
- }, _this2.getProps()), _this2.renderMain);
381
+ return /*#__PURE__*/React.createElement(ReactUIFeatureFlagsContext.Consumer, null, function (flags) {
382
+ _this2.featureFlags = getFullReactUIFlagsContext(flags);
383
+ return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
384
+ _this2.theme = theme;
385
+ return /*#__PURE__*/React.createElement(CommonWrapper, _extends({
386
+ rootNodeRef: _this2.setRootNode
387
+ }, _this2.getProps()), _this2.renderMain);
388
+ });
383
389
  });
384
390
  } /**
385
391
  * @public
@@ -1 +1 @@
1
- {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.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 getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\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 * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.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 getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\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 * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -82,6 +82,7 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
82
82
  };
83
83
  private size;
84
84
  private reflowCounter;
85
+ private featureFlags;
85
86
  private theme;
86
87
  private selectAllId;
87
88
  private node;
@@ -39,7 +39,7 @@ export var ResizeDetector = /*#__PURE__*/function (_React$Component) {
39
39
  className: styles.iframe(),
40
40
  tabIndex: -1
41
41
  }), /*#__PURE__*/React.createElement("div", {
42
- className: cx((_cx = {}, _cx[styles.content()] = true, _cx[styles.fullHeight()] = this.props.fullHeight, _cx))
42
+ className: cx((_cx = {}, _cx[styles.content()] = true, _cx[styles.fullHeight()] = this.props.fullHeight, _cx[styles.flex()] = this.props.alignBaseline, _cx))
43
43
  }, this.props.children));
44
44
  };
45
45
  return ResizeDetector;
@@ -1 +1 @@
1
- {"version":3,"names":["React","cx","styles","ResizeDetector","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","root","title","ref","tabIndex","content","fullHeight","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div className={cx({ [styles.content()]: true, [styles.fullHeight()]: this.props.fullHeight })}>\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"],"mappings":"sEAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,MAAM,QAAQ,yBAAyB;;;;;;;AAOhD,WAAaC,cAAc,0BAAAC,gBAAA,YAAAD,eAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;IAIjBU,YAAY,GAAkB,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;IAmBlCW,YAAY,GAAG,UAACC,KAAc,EAAK;MACzC,IAAIZ,KAAA,CAAKa,KAAK,CAACC,QAAQ,EAAE;QACvBd,KAAA,CAAKa,KAAK,CAACC,QAAQ,CAACF,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOe,SAAS,GAAG,UAACC,MAAyB,EAAK;MACjD,IAAIA,MAAM,IAAIA,MAAM,CAACC,aAAa,EAAE;QAClCjB,KAAA,CAAKU,YAAY,GAAGM,MAAM,CAACC,aAAa;MAC1C;IACF,CAAC,QAAAjB,KAAA,EAAAkB,cAAA,CAAApB,cAAA,EAAAC,gBAAA,MAAAoB,MAAA,GAAArB,cAAA,CAAAsB,SAAA,CAAAD,MAAA,CA3BME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACX,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACY,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACX,YAAY,CAAC,CACjE,CACF,CAAC,CAAAQ,MAAA,CAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,GAAA,CACd,oBACE7B,KAAA,CAAA8B,aAAA,UAAKC,SAAS,EAAE7B,MAAM,CAAC8B,IAAI,CAAC,CAAE,iBAC5BhC,KAAA,CAAA8B,aAAA,aAAQG,KAAK,EAAC,gBAAgB,EAACC,GAAG,EAAE,IAAI,CAACd,SAAU,EAACW,SAAS,EAAE7B,MAAM,CAACmB,MAAM,CAAC,CAAE,EAACc,QAAQ,EAAE,CAAC,CAAE,EAAE,CAAC,eAChGnC,KAAA,CAAA8B,aAAA,UAAKC,SAAS,EAAE9B,EAAE,EAAA4B,GAAA,OAAAA,GAAA,CAAI3B,MAAM,CAACkC,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAP,GAAA,CAAG3B,MAAM,CAACmC,UAAU,CAAC,CAAC,IAAG,IAAI,CAACnB,KAAK,CAACmB,UAAU,EAAAR,GAAA,CAAE,CAAE,IAC5F,IAAI,CAACX,KAAK,CAACoB,QACT,CACF,CAAC,CAEV,CAAC,QAAAnC,cAAA,GArBiCH,KAAK,CAACuC,SAAS,EAAtCpC,cAAc,CACXqC,mBAAmB,GAAG,gBAAgB,CADzCrC,cAAc,CAEXsC,WAAW,GAAG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["React","cx","styles","ResizeDetector","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","iframeWindow","handleResize","event","props","onResize","iframeRef","iframe","contentWindow","_inheritsLoose","_proto","prototype","componentDidMount","addEventListener","render","_cx","createElement","className","root","title","ref","tabIndex","content","fullHeight","flex","alignBaseline","children","Component","__KONTUR_REACT_UI__","displayName"],"sources":["ResizeDetector.tsx"],"sourcesContent":["import React from 'react';\n\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles } from './ResizeDetector.styles';\n\nexport interface ResizeDetectorProps {\n onResize?: (event: UIEvent) => void;\n fullHeight?: boolean;\n alignBaseline?: boolean;\n}\n\nexport class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {\n public static __KONTUR_REACT_UI__ = 'ResizeDetector';\n public static displayName = 'ResizeDetector';\n\n private iframeWindow: Window | null = null;\n\n public componentDidMount() {\n if (this.iframeWindow) {\n this.iframeWindow.addEventListener('resize', this.handleResize);\n }\n }\n\n public render() {\n return (\n <div className={styles.root()}>\n <iframe title=\"resizeDetector\" ref={this.iframeRef} className={styles.iframe()} tabIndex={-1} />\n <div\n className={cx({\n [styles.content()]: true,\n [styles.fullHeight()]: this.props.fullHeight,\n [styles.flex()]: this.props.alignBaseline,\n })}\n >\n {this.props.children}\n </div>\n </div>\n );\n }\n\n private handleResize = (event: UIEvent) => {\n if (this.props.onResize) {\n this.props.onResize(event);\n }\n };\n\n private iframeRef = (iframe: HTMLIFrameElement) => {\n if (iframe && iframe.contentWindow) {\n this.iframeWindow = iframe.contentWindow;\n }\n };\n}\n"],"mappings":"sEAAA,OAAOA,KAAK,MAAM,OAAO;;AAEzB,SAASC,EAAE,QAAQ,2BAA2B;;AAE9C,SAASC,MAAM,QAAQ,yBAAyB;;;;;;;;AAQhD,WAAaC,cAAc,0BAAAC,gBAAA,YAAAD,eAAA,OAAAE,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;IAIjBU,YAAY,GAAkB,IAAI,CAAAV,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;IAyBlCW,YAAY,GAAG,UAACC,KAAc,EAAK;MACzC,IAAIZ,KAAA,CAAKa,KAAK,CAACC,QAAQ,EAAE;QACvBd,KAAA,CAAKa,KAAK,CAACC,QAAQ,CAACF,KAAK,CAAC;MAC5B;IACF,CAAC,CAAAZ,KAAA;;IAEOe,SAAS,GAAG,UAACC,MAAyB,EAAK;MACjD,IAAIA,MAAM,IAAIA,MAAM,CAACC,aAAa,EAAE;QAClCjB,KAAA,CAAKU,YAAY,GAAGM,MAAM,CAACC,aAAa;MAC1C;IACF,CAAC,QAAAjB,KAAA,EAAAkB,cAAA,CAAApB,cAAA,EAAAC,gBAAA,MAAAoB,MAAA,GAAArB,cAAA,CAAAsB,SAAA,CAAAD,MAAA,CAjCME,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,IAAI,CAACX,YAAY,EAAE,CACrB,IAAI,CAACA,YAAY,CAACY,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACX,YAAY,CAAC,CACjE,CACF,CAAC,CAAAQ,MAAA,CAEMI,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,GAAA,CACd,oBACE7B,KAAA,CAAA8B,aAAA,UAAKC,SAAS,EAAE7B,MAAM,CAAC8B,IAAI,CAAC,CAAE,iBAC5BhC,KAAA,CAAA8B,aAAA,aAAQG,KAAK,EAAC,gBAAgB,EAACC,GAAG,EAAE,IAAI,CAACd,SAAU,EAACW,SAAS,EAAE7B,MAAM,CAACmB,MAAM,CAAC,CAAE,EAACc,QAAQ,EAAE,CAAC,CAAE,EAAE,CAAC,eAChGnC,KAAA,CAAA8B,aAAA,UACEC,SAAS,EAAE9B,EAAE,EAAA4B,GAAA,OAAAA,GAAA,CACV3B,MAAM,CAACkC,OAAO,CAAC,CAAC,IAAG,IAAI,EAAAP,GAAA,CACvB3B,MAAM,CAACmC,UAAU,CAAC,CAAC,IAAG,IAAI,CAACnB,KAAK,CAACmB,UAAU,EAAAR,GAAA,CAC3C3B,MAAM,CAACoC,IAAI,CAAC,CAAC,IAAG,IAAI,CAACpB,KAAK,CAACqB,aAAa,EAAAV,GAAA,CAC1C,CAAE,IAEF,IAAI,CAACX,KAAK,CAACsB,QACT,CACF,CAAC,CAEV,CAAC,QAAArC,cAAA,GA3BiCH,KAAK,CAACyC,SAAS,EAAtCtC,cAAc,CACXuC,mBAAmB,GAAG,gBAAgB,CADzCvC,cAAc,CAEXwC,WAAW,GAAG,gBAAgB","ignoreList":[]}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  export interface ResizeDetectorProps {
3
3
  onResize?: (event: UIEvent) => void;
4
4
  fullHeight?: boolean;
5
+ alignBaseline?: boolean;
5
6
  }
6
7
  export declare class ResizeDetector extends React.Component<React.PropsWithChildren<ResizeDetectorProps>> {
7
8
  static __KONTUR_REACT_UI__: string;
@@ -1,5 +1,5 @@
1
1
  import _taggedTemplateLiteralLoose from "@babel/runtime/helpers/esm/taggedTemplateLiteralLoose";
2
- var _templateObject, _templateObject2, _templateObject3, _templateObject4;
2
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
3
3
  import { css, memoizeStyle } from "../../../lib/theming/Emotion";
4
4
  export var styles = memoizeStyle({
5
5
  root: function root() {
@@ -13,5 +13,8 @@ export var styles = memoizeStyle({
13
13
  },
14
14
  fullHeight: function fullHeight() {
15
15
  return css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteralLoose(["\n height: 100%;\n "])));
16
+ },
17
+ flex: function flex() {
18
+ return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteralLoose(["\n display: flex;\n "])));
16
19
  }
17
20
  });
@@ -1 +1 @@
1
- {"version":3,"names":["css","memoizeStyle","styles","root","_templateObject","_taggedTemplateLiteralLoose","iframe","_templateObject2","content","_templateObject3","fullHeight","_templateObject4"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n});\n"],"mappings":"0KAAA,SAASA,GAAG,EAAEC,YAAY,QAAQ,2BAA2B;;AAE7D,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;EACjCE,IAAI,WAAAA,KAAA,EAAG;IACL,OAAOH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,2BAAA;;;;EAIZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,OAAON,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,2BAAA;;;;;;;;;;;;EAYZ,CAAC;;EAEDG,OAAO,WAAAA,QAAA,EAAG;IACR,OAAOR,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,2BAAA;;;EAGZ,CAAC;;EAEDK,UAAU,WAAAA,WAAA,EAAG;IACX,OAAOV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,2BAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["css","memoizeStyle","styles","root","_templateObject","_taggedTemplateLiteralLoose","iframe","_templateObject2","content","_templateObject3","fullHeight","_templateObject4","flex","_templateObject5"],"sources":["ResizeDetector.styles.ts"],"sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\n\nexport const styles = memoizeStyle({\n root() {\n return css`\n position: relative;\n height: 100%;\n `;\n },\n\n iframe() {\n return css`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n padding: 0;\n margin: 0;\n border: 0;\n background: transparent;\n opacity: 0;\n `;\n },\n\n content() {\n return css`\n position: relative;\n `;\n },\n\n fullHeight() {\n return css`\n height: 100%;\n `;\n },\n\n flex() {\n return css`\n display: flex;\n `;\n },\n});\n"],"mappings":"4LAAA,SAASA,GAAG,EAAEC,YAAY,QAAQ,2BAA2B;;AAE7D,OAAO,IAAMC,MAAM,GAAGD,YAAY,CAAC;EACjCE,IAAI,WAAAA,KAAA,EAAG;IACL,OAAOH,GAAG,CAAAI,eAAA,KAAAA,eAAA,GAAAC,2BAAA;;;;EAIZ,CAAC;;EAEDC,MAAM,WAAAA,OAAA,EAAG;IACP,OAAON,GAAG,CAAAO,gBAAA,KAAAA,gBAAA,GAAAF,2BAAA;;;;;;;;;;;;EAYZ,CAAC;;EAEDG,OAAO,WAAAA,QAAA,EAAG;IACR,OAAOR,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAJ,2BAAA;;;EAGZ,CAAC;;EAEDK,UAAU,WAAAA,WAAA,EAAG;IACX,OAAOV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAN,2BAAA;;;EAGZ,CAAC;;EAEDO,IAAI,WAAAA,KAAA,EAAG;IACL,OAAOZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAR,2BAAA;;;EAGZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -3,4 +3,5 @@ export declare const styles: {
3
3
  iframe(): string;
4
4
  content(): string;
5
5
  fullHeight(): string;
6
+ flex(): string;
6
7
  };
@@ -12,4 +12,5 @@ export declare const getFullReactUIFlagsContext: (flags: ReactUIFeatureFlags) =>
12
12
  sidePageDisableHeaderShrink?: boolean | undefined;
13
13
  sidePageNotCutTitleOnStuckByDefault?: boolean | undefined;
14
14
  tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean | undefined;
15
+ textareaBaselineAlign?: boolean | undefined;
15
16
  };
@@ -11,7 +11,8 @@ export var reactUIFeatureFlagsDefault = {
11
11
  fxInputUseMaskedInput: false,
12
12
  sidePageDisableHeaderShrink: false,
13
13
  sidePageNotCutTitleOnStuckByDefault: false,
14
- tokenInputCreateTokenOnBlurInWithoutReferenceMode: false
14
+ tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,
15
+ textareaBaselineAlign: false
15
16
  };
16
17
  export var ReactUIFeatureFlagsContext = /*#__PURE__*/React.createContext(reactUIFeatureFlagsDefault);
17
18
  ReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';
@@ -1 +1 @@
1
- {"version":3,"names":["React","reactUIFeatureFlagsDefault","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","ReactUIFeatureFlagsContext","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;;AAiBzB,OAAO,IAAMC,0BAA+C,GAAG;EAC7DC,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE;AACrD,CAAC;;AAED,OAAO,IAAMC,0BAA0B,gBAAGd,KAAK,CAACe,aAAa,CAAsBd,0BAA0B,CAAC;;AAE9Ga,0BAA0B,CAACE,WAAW,GAAG,4BAA4B;AACrEF,0BAA0B,CAACG,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["React","reactUIFeatureFlagsDefault","dateInputFixSameNumberTypingOnRefocus","dateInputAllowInvalidValuesInDays","comboBoxAllowValueChangeInEditingState","stickyReduceLayoutEvents","radioGroupRemoveBaselineSpacer","groupAddHintAndTooltipSupport","popupFixPinTearing","autocompleteUseMaskedInput","fxInputUseMaskedInput","sidePageDisableHeaderShrink","sidePageNotCutTitleOnStuckByDefault","tokenInputCreateTokenOnBlurInWithoutReferenceMode","textareaBaselineAlign","ReactUIFeatureFlagsContext","createContext","displayName","__KONTUR_REACT_UI__"],"sources":["ReactUIFeatureFlagsContext.tsx"],"sourcesContent":["import React from 'react';\n\nexport interface ReactUIFeatureFlags {\n dateInputFixSameNumberTypingOnRefocus?: boolean;\n dateInputAllowInvalidValuesInDays?: boolean;\n comboBoxAllowValueChangeInEditingState?: boolean;\n stickyReduceLayoutEvents?: boolean;\n radioGroupRemoveBaselineSpacer?: boolean;\n groupAddHintAndTooltipSupport?: boolean;\n popupFixPinTearing?: boolean;\n autocompleteUseMaskedInput?: boolean;\n fxInputUseMaskedInput?: boolean;\n sidePageDisableHeaderShrink?: boolean;\n sidePageNotCutTitleOnStuckByDefault?: boolean;\n tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;\n textareaBaselineAlign?: boolean;\n}\n\nexport const reactUIFeatureFlagsDefault: ReactUIFeatureFlags = {\n dateInputFixSameNumberTypingOnRefocus: false,\n dateInputAllowInvalidValuesInDays: false,\n comboBoxAllowValueChangeInEditingState: false,\n stickyReduceLayoutEvents: false,\n radioGroupRemoveBaselineSpacer: false,\n groupAddHintAndTooltipSupport: false,\n popupFixPinTearing: false,\n autocompleteUseMaskedInput: false,\n fxInputUseMaskedInput: false,\n sidePageDisableHeaderShrink: false,\n sidePageNotCutTitleOnStuckByDefault: false,\n tokenInputCreateTokenOnBlurInWithoutReferenceMode: false,\n textareaBaselineAlign: false,\n};\n\nexport const ReactUIFeatureFlagsContext = React.createContext<ReactUIFeatureFlags>(reactUIFeatureFlagsDefault);\n\nReactUIFeatureFlagsContext.displayName = 'ReactUIFeatureFlagsContext';\nReactUIFeatureFlagsContext.__KONTUR_REACT_UI__ = 'ReactUIFeatureFlagsContext';\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;;;;;;;;;;;;;;;;;;AAkBzB,OAAO,IAAMC,0BAA+C,GAAG;EAC7DC,qCAAqC,EAAE,KAAK;EAC5CC,iCAAiC,EAAE,KAAK;EACxCC,sCAAsC,EAAE,KAAK;EAC7CC,wBAAwB,EAAE,KAAK;EAC/BC,8BAA8B,EAAE,KAAK;EACrCC,6BAA6B,EAAE,KAAK;EACpCC,kBAAkB,EAAE,KAAK;EACzBC,0BAA0B,EAAE,KAAK;EACjCC,qBAAqB,EAAE,KAAK;EAC5BC,2BAA2B,EAAE,KAAK;EAClCC,mCAAmC,EAAE,KAAK;EAC1CC,iDAAiD,EAAE,KAAK;EACxDC,qBAAqB,EAAE;AACzB,CAAC;;AAED,OAAO,IAAMC,0BAA0B,gBAAGf,KAAK,CAACgB,aAAa,CAAsBf,0BAA0B,CAAC;;AAE9Gc,0BAA0B,CAACE,WAAW,GAAG,4BAA4B;AACrEF,0BAA0B,CAACG,mBAAmB,GAAG,4BAA4B","ignoreList":[]}
@@ -12,6 +12,7 @@ export interface ReactUIFeatureFlags {
12
12
  sidePageDisableHeaderShrink?: boolean;
13
13
  sidePageNotCutTitleOnStuckByDefault?: boolean;
14
14
  tokenInputCreateTokenOnBlurInWithoutReferenceMode?: boolean;
15
+ textareaBaselineAlign?: boolean;
15
16
  }
16
17
  export declare const reactUIFeatureFlagsDefault: ReactUIFeatureFlags;
17
18
  export declare const ReactUIFeatureFlagsContext: React.Context<ReactUIFeatureFlags>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "5.4.2",
3
+ "version": "5.4.3",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",
@@ -37,8 +37,8 @@
37
37
  "fix:prettier": "yarn prettier --write .",
38
38
  "test": "vitest run",
39
39
  "test:watch": "vitest",
40
- "creevey": "node ../../scripts/creevey-prepare.js .creevey/config.mts && cross-env BABEL_ENV=cjs creevey -c .creevey/config.mts",
41
- "creevey:ci": "start-server-and-test storybook:serve http://localhost:6060 creevey",
40
+ "creevey": "cross-env BABEL_ENV=cjs creevey test -c .creevey/config.mts --storybook-port=6060",
41
+ "creevey:ci": "npx playwright install --with-deps chromium firefox && start-server-and-test storybook:serve http://localhost:6060 creevey",
42
42
  "creevey:update": "cross-env BABEL_ENV=cjs creevey -c .creevey/config.mts --update",
43
43
  "creevey:ui": "yarn creevey --ui",
44
44
  "report:eslint": "yarn eslint -f eslint-html-reporter/reporter.js -o reports/eslint/index.html"
@@ -74,6 +74,7 @@
74
74
  "@babel/preset-react": "^7.24.6",
75
75
  "@babel/preset-typescript": "^7.24.6",
76
76
  "@babel/register": "^7.24.6",
77
+ "@playwright/test": "^1.54.2",
77
78
  "@skbkontur/icons": "1.10.0",
78
79
  "@skbkontur/storybook-addon-live-examples": "0.0.17",
79
80
  "@storybook/addon-a11y": "7.6.18",
@@ -106,7 +107,7 @@
106
107
  "chalk": "4.1.0",
107
108
  "copyfiles": "^2.4.1",
108
109
  "core-js": "^3.37.1",
109
- "creevey": "0.10.0-beta.47",
110
+ "creevey": "0.10.31",
110
111
  "cross-env": "^7.0.3",
111
112
  "css-loader": "^7.1.2",
112
113
  "dotenv": "^16.4.5",
@@ -125,6 +126,7 @@
125
126
  "jsdom": "^26.1.0",
126
127
  "npm-run-all": "^4.1.5",
127
128
  "output-file-sync": "^2.0.1",
129
+ "playwright-core": "^1.54.2",
128
130
  "react": "18.3.1",
129
131
  "react-docgen-typescript": "^2.2.2",
130
132
  "react-dom": "^18.3.1",
@@ -149,6 +151,6 @@
149
151
  "react-dom": ">=16.9 <19"
150
152
  },
151
153
  "publishConfig": {
152
- "tag": "latest"
154
+ "tag": "old-version"
153
155
  }
154
156
  }
@@ -1,90 +0,0 @@
1
- import { story, kind, test } from 'creevey';
2
- import type { CreeveyTestContext } from 'creevey';
3
-
4
- const startBlink = async (context: CreeveyTestContext) => {
5
- await context.webdriver
6
- .actions({
7
- bridge: true,
8
- })
9
- .click(
10
- context.webdriver.findElement({
11
- css: 'input',
12
- }),
13
- )
14
- .sendKeys('1')
15
- .perform();
16
- };
17
- const finishBlink = async (context: CreeveyTestContext) => {
18
- await context.webdriver
19
- .actions({
20
- bridge: true,
21
- })
22
- .click(
23
- context.webdriver.findElement({
24
- css: 'input',
25
- }),
26
- )
27
- .sendKeys('2')
28
- .perform();
29
- };
30
- const interruptBlink = async (context: CreeveyTestContext) => {
31
- await context.webdriver
32
- .actions({
33
- bridge: true,
34
- })
35
- .click(
36
- context.webdriver.findElement({
37
- css: '[data-tid="update-input"]',
38
- }),
39
- )
40
- .perform();
41
- };
42
-
43
- const pressedTest = () => {
44
- test('blinking', async (context) => {
45
- await startBlink(context);
46
- const start = await context.takeScreenshot();
47
-
48
- await finishBlink(context);
49
- const finish = await context.takeScreenshot();
50
-
51
- await context.matchImages({ start, finish });
52
- });
53
-
54
- test('interrupting', async (context) => {
55
- await startBlink(context);
56
- const start = await context.takeScreenshot();
57
-
58
- await interruptBlink(context);
59
- const interrupt = await context.takeScreenshot();
60
-
61
- await context.matchImages({ start, interrupt });
62
- });
63
-
64
- test('blinking after interruption', async (context) => {
65
- await startBlink(context);
66
- const start = await context.takeScreenshot();
67
-
68
- await interruptBlink(context);
69
- const interrupt = await context.takeScreenshot();
70
-
71
- await startBlink(context);
72
- const restart = await context.takeScreenshot();
73
-
74
- await finishBlink(context);
75
- const finish = await context.takeScreenshot();
76
-
77
- await context.matchImages({ start, interrupt, restart, finish });
78
- });
79
- };
80
-
81
- const defaultStoryParameters = {
82
- skip: { 'enough basic themes': { in: /^(?!\bchrome2022\b|\bfirefox2022\b)/ } },
83
- };
84
-
85
- kind('Lib/blink', () => {
86
- story('Animate', ({ setStoryParameters }) => {
87
- setStoryParameters(defaultStoryParameters);
88
- pressedTest();
89
- });
90
- });
@@ -1,90 +0,0 @@
1
- import { story, kind, test } from 'creevey';
2
- import type { CreeveyTestContext } from 'creevey';
3
-
4
- const startBlink = async (context: CreeveyTestContext) => {
5
- await context.webdriver
6
- .actions({
7
- bridge: true,
8
- })
9
- .click(
10
- context.webdriver.findElement({
11
- css: 'input',
12
- }),
13
- )
14
- .sendKeys('1')
15
- .perform();
16
- };
17
- const finishBlink = async (context: CreeveyTestContext) => {
18
- await context.webdriver
19
- .actions({
20
- bridge: true,
21
- })
22
- .click(
23
- context.webdriver.findElement({
24
- css: 'input',
25
- }),
26
- )
27
- .sendKeys('2')
28
- .perform();
29
- };
30
- const interruptBlink = async (context: CreeveyTestContext) => {
31
- await context.webdriver
32
- .actions({
33
- bridge: true,
34
- })
35
- .click(
36
- context.webdriver.findElement({
37
- css: '[data-tid="update-input"]',
38
- }),
39
- )
40
- .perform();
41
- };
42
-
43
- const pressedTest = () => {
44
- test('blinking', async (context) => {
45
- await startBlink(context);
46
- const start = await context.takeScreenshot();
47
-
48
- await finishBlink(context);
49
- const finish = await context.takeScreenshot();
50
-
51
- await context.matchImages({ start, finish });
52
- });
53
-
54
- test('interrupting', async (context) => {
55
- await startBlink(context);
56
- const start = await context.takeScreenshot();
57
-
58
- await interruptBlink(context);
59
- const interrupt = await context.takeScreenshot();
60
-
61
- await context.matchImages({ start, interrupt });
62
- });
63
-
64
- test('blinking after interruption', async (context) => {
65
- await startBlink(context);
66
- const start = await context.takeScreenshot();
67
-
68
- await interruptBlink(context);
69
- const interrupt = await context.takeScreenshot();
70
-
71
- await startBlink(context);
72
- const restart = await context.takeScreenshot();
73
-
74
- await finishBlink(context);
75
- const finish = await context.takeScreenshot();
76
-
77
- await context.matchImages({ start, interrupt, restart, finish });
78
- });
79
- };
80
-
81
- const defaultStoryParameters = {
82
- skip: { 'enough basic themes': { in: /^(?!\bchrome2022\b|\bfirefox2022\b)/ } },
83
- };
84
-
85
- kind('Lib/blink', () => {
86
- story('Animate', ({ setStoryParameters }) => {
87
- setStoryParameters(defaultStoryParameters);
88
- pressedTest();
89
- });
90
- });