@skbkontur/react-ui 5.5.1 → 5.5.2

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 (54) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/cjs/components/Modal/Modal.d.ts +25 -22
  3. package/cjs/components/Modal/Modal.js +10 -7
  4. package/cjs/components/Modal/Modal.js.map +1 -1
  5. package/cjs/components/Modal/ModalBody.d.ts +1 -1
  6. package/cjs/components/Modal/ModalBody.js +1 -1
  7. package/cjs/components/Modal/ModalBody.js.map +1 -1
  8. package/cjs/components/Modal/ModalFooter.d.ts +5 -5
  9. package/cjs/components/Modal/ModalFooter.js +1 -1
  10. package/cjs/components/Modal/ModalFooter.js.map +1 -1
  11. package/cjs/components/Modal/ModalHeader.d.ts +3 -3
  12. package/cjs/components/Modal/ModalHeader.js +1 -1
  13. package/cjs/components/Modal/ModalHeader.js.map +1 -1
  14. package/cjs/components/Radio/Radio.d.ts +11 -10
  15. package/cjs/components/Radio/Radio.js +5 -4
  16. package/cjs/components/Radio/Radio.js.map +1 -1
  17. package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
  18. package/cjs/components/RadioGroup/RadioGroup.js +2 -9
  19. package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
  20. package/cjs/components/Textarea/Textarea.d.ts +5 -1
  21. package/cjs/components/Textarea/Textarea.js +10 -1
  22. package/cjs/components/Textarea/Textarea.js.map +1 -1
  23. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
  24. package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
  25. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  26. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
  27. package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  28. package/components/Modal/Modal/Modal.js +5 -7
  29. package/components/Modal/Modal/Modal.js.map +1 -1
  30. package/components/Modal/Modal.d.ts +25 -22
  31. package/components/Modal/ModalBody/ModalBody.js +1 -1
  32. package/components/Modal/ModalBody/ModalBody.js.map +1 -1
  33. package/components/Modal/ModalBody.d.ts +1 -1
  34. package/components/Modal/ModalFooter/ModalFooter.js +1 -1
  35. package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
  36. package/components/Modal/ModalFooter.d.ts +5 -5
  37. package/components/Modal/ModalHeader/ModalHeader.js +1 -1
  38. package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
  39. package/components/Modal/ModalHeader.d.ts +3 -3
  40. package/components/Radio/Radio/Radio.js +5 -4
  41. package/components/Radio/Radio/Radio.js.map +1 -1
  42. package/components/Radio/Radio.d.ts +11 -10
  43. package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
  44. package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
  45. package/components/RadioGroup/RadioGroup.d.ts +21 -28
  46. package/components/Textarea/Textarea/Textarea.js +5 -0
  47. package/components/Textarea/Textarea/Textarea.js.map +1 -1
  48. package/components/Textarea/Textarea.d.ts +5 -1
  49. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
  50. package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
  51. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
  52. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
  53. package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
  54. package/package.json +1 -1
@@ -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","_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":"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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","getNode","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 */\n public getNode() {\n return this.node;\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":[]}
@@ -146,6 +146,11 @@ var Effect = exports.Effect = {
146
146
  }
147
147
 
148
148
  input.focus();
149
+ var inputNode = input.getNode();
150
+ if (inputNode) {
151
+ inputNode.scrollLeft = inputNode.scrollWidth;
152
+ inputNode.scrollTop = inputNode.scrollHeight;
153
+ }
149
154
  },
150
155
  highlightMenuItem: function highlightMenuItem(dispatch, getState, getProps, getInstance) {
151
156
  var _getProps6 = getProps(),value = _getProps6.value,itemToValue = _getProps6.itemToValue,valueToString = _getProps6.valueToString;
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","_interopRequireDefault","require","_lodash2","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_CustomComboBox","_CustomComboBoxTypes","DEBOUNCE_DELAY","getValueString","value","valueToString","isNonNullable","Effect","exports","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","debounce","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","_getProps","onBlur","focus","_getProps2","onFocus","valueChange","_getProps3","onValueChange","valueClear","type","unexpectedInput","items","_getProps4","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","keepFocus","undefined","inputChange","_getProps5","onInputValueChange","_getState","returnedValue","inputFocus","_getInstance","input","highlightMenuItem","_getProps6","itemToValue","_getState2","focused","requestStatus","_getInstance2","menu","valueString","index","findIndex","x","highlightItem","reset","globalObject","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","ComboBoxRequestStatus","Failed","selectMenuItem","event","_getInstance3","enter","moveMenuHighlight","direction","_getInstance4","resetHighlightedMenuItem","combobox","hasHighlightedItem","reflow","emit","selectInputText","inputKeyDown","_getProps7","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","_extends2","default","e","effects","nextState","isKeyEnter","preventDefault","push","isKeyArrowVertical","isKeyArrowUp","isKeyEscape","concat","isEqual","prevProps","fixValueChange","nextTextValue","loading","DefaultState","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"sources":["CustomComboBoxReducer.tsx"],"sourcesContent":["import type React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport type { CustomComboBox, CustomComboBoxProps, CustomComboBoxState } from './CustomComboBox';\nimport { DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n fixValueChange: boolean | undefined;\n }\n | { type: 'Mount' }\n | { type: 'Focus'; searchOnFocus?: boolean }\n | { type: 'InputClick' }\n | { type: 'ClearCrossClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n valueClear: Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n valueClear: (dispatch) => {\n dispatch({ type: 'TextChange', value: '' });\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items?.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n menu.highlightItem(index);\n } else {\n menu.reset();\n }\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n globalObject.requestAnimationFrame?.(() => menu?.scrollToSelected());\n return;\n }\n\n const queryTextDifferenceOfSavedValue = textValue !== valueString;\n const needFocusToRefreshButton = requestStatus === ComboBoxRequestStatus.Failed;\n if (queryTextDifferenceOfSavedValue || needFocusToRefreshButton) {\n globalObject.requestAnimationFrame?.(() => menu?.highlightItem(0));\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n if (action.fixValueChange) {\n const nextTextValue = getValueString(props.value, props.valueToString);\n\n if (!state.focused) {\n return [\n {\n editing: false,\n inputChanged: false,\n textValue: nextTextValue,\n },\n [Effect.cancelRequest],\n ];\n }\n\n if (state.focused && state.opened) {\n return [{ ...state, textValue: nextTextValue }, [Effect.cancelRequest, Effect.search(nextTextValue)]];\n }\n\n if (state.focused) {\n return {\n ...state,\n textValue: nextTextValue,\n };\n }\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!action.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'ClearCrossClick': {\n const newState = {\n editing: true,\n loading: true,\n };\n return [newState, [Effect.valueClear, Effect.focus, Effect.search('')]];\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_lodash","_interopRequireDefault","require","_lodash2","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_CustomComboBox","_CustomComboBoxTypes","DEBOUNCE_DELAY","getValueString","value","valueToString","isNonNullable","Effect","exports","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","debounce","searchEffect","textValue","cancelRequest","cancel","cancelSearch","blur","_getProps","onBlur","focus","_getProps2","onFocus","valueChange","_getProps3","onValueChange","valueClear","type","unexpectedInput","items","_getProps4","onUnexpectedInput","Array","isArray","length","singleItem","valueContent","keepFocus","undefined","inputChange","_getProps5","onInputValueChange","_getState","returnedValue","inputFocus","_getInstance","input","inputNode","getNode","scrollLeft","scrollWidth","scrollTop","scrollHeight","highlightMenuItem","_getProps6","itemToValue","_getState2","focused","requestStatus","_getInstance2","menu","valueString","index","findIndex","x","highlightItem","reset","globalObject","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","ComboBoxRequestStatus","Failed","selectMenuItem","event","_getInstance3","enter","moveMenuHighlight","direction","_getInstance4","resetHighlightedMenuItem","combobox","hasHighlightedItem","reflow","emit","selectInputText","inputKeyDown","_getProps7","onInputKeyDown","never","reducer","state","props","action","opened","inputChanged","editing","newState","searchOnFocus","_extends2","default","e","effects","nextState","isKeyEnter","preventDefault","push","isKeyArrowVertical","isKeyArrowUp","isKeyEscape","concat","isEqual","prevProps","fixValueChange","nextTextValue","loading","DefaultState","Pending","shouldResetMenuHighlight","Success","repeatRequest","Unknown"],"sources":["CustomComboBoxReducer.tsx"],"sourcesContent":["import type React from 'react';\nimport debounce from 'lodash.debounce';\nimport isEqual from 'lodash.isequal';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyArrowUp, isKeyArrowVertical, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\n\nimport type { CustomComboBox, CustomComboBoxProps, CustomComboBoxState } from './CustomComboBox';\nimport { DefaultState } from './CustomComboBox';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\n\nexport type CustomComboBoxAction<T> =\n | { type: 'ValueChange'; value: T; keepFocus: boolean }\n | { type: 'TextChange'; value: string }\n | { type: 'KeyPress'; event: React.KeyboardEvent }\n | {\n type: 'DidUpdate';\n prevProps: CustomComboBoxProps<T>;\n prevState: CustomComboBoxState<T>;\n fixValueChange: boolean | undefined;\n }\n | { type: 'Mount' }\n | { type: 'Focus'; searchOnFocus?: boolean }\n | { type: 'InputClick' }\n | { type: 'ClearCrossClick' }\n | { type: 'Blur' }\n | { type: 'Reset' }\n | { type: 'Open' }\n | { type: 'Close' }\n | { type: 'Search'; query: string }\n | { type: 'RequestItems' }\n | { type: 'ReceiveItems'; items: Array<ComboBoxExtendedItem<T>> }\n | { type: 'RequestFailure'; repeatRequest: () => void }\n | { type: 'CancelRequest' };\n\nexport type CustomComboBoxEffect<T> = (\n dispatch: (action: CustomComboBoxAction<T>) => void,\n getState: () => CustomComboBoxState<T>,\n getProps: () => CustomComboBoxProps<T>,\n getInstance: () => CustomComboBox<T>,\n) => void;\n\ntype Effect = CustomComboBoxEffect<any>;\n\ninterface EffectFactory {\n search: (query: string) => Effect;\n debouncedSearch: Effect & {\n cancel(): void;\n flush(): void;\n };\n cancelRequest: Effect;\n blur: Effect;\n focus: Effect;\n\n valueChange: (value: any) => Effect;\n valueClear: Effect;\n unexpectedInput: (textValue: string, items: Nullable<any[]>) => Effect;\n inputChange: Effect;\n inputFocus: Effect;\n highlightMenuItem: Effect;\n selectMenuItem: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n inputKeyDown: (event: React.KeyboardEvent<HTMLElement>) => Effect;\n moveMenuHighlight: (direction: 'up' | 'down') => Effect;\n resetHighlightedMenuItem: Effect;\n reflow: Effect;\n selectInputText: Effect;\n}\n\nconst DEBOUNCE_DELAY = 300;\n\nconst getValueString = (value: any, valueToString: CustomComboBoxProps<any>['valueToString']) => {\n return isNonNullable(value) ? valueToString(value) : '';\n};\n\nexport const Effect: EffectFactory = {\n search: (query) => (dispatch, getState, getProps, getInstance) => {\n getInstance().search(query);\n },\n debouncedSearch: debounce((dispatch, getState, getProps, getInstance) => {\n const searchEffect = Effect.search(getState().textValue);\n searchEffect(dispatch, getState, getProps, getInstance);\n }, DEBOUNCE_DELAY),\n cancelRequest: (dispatch, getState, getProps, getInstance) => {\n Effect.debouncedSearch.cancel();\n getInstance().cancelSearch();\n },\n blur: (dispatch, getState, getProps) => {\n const { onBlur } = getProps();\n if (onBlur) {\n onBlur();\n }\n },\n focus: (dispatch, getState, getProps) => {\n const { onFocus } = getProps();\n if (onFocus) {\n onFocus();\n }\n },\n valueChange: (value) => (dispatch, getState, getProps) => {\n const { onValueChange } = getProps();\n if (onValueChange) {\n onValueChange(value);\n }\n },\n valueClear: (dispatch) => {\n dispatch({ type: 'TextChange', value: '' });\n },\n unexpectedInput: (textValue, items) => (dispatch, getState, getProps) => {\n const { onUnexpectedInput, valueToString } = getProps();\n if (Array.isArray(items) && items.length === 1) {\n const singleItem = items[0];\n const valueContent = getValueString(singleItem, valueToString);\n\n if (valueContent === textValue) {\n dispatch({ type: 'ValueChange', value: singleItem, keepFocus: false });\n return;\n }\n }\n\n if (onUnexpectedInput) {\n const value = onUnexpectedInput(textValue);\n if (value !== undefined) {\n dispatch({ type: 'ValueChange', value, keepFocus: false });\n }\n }\n },\n inputChange: (dispatch, getState, getProps) => {\n const { onInputValueChange } = getProps();\n const { textValue } = getState();\n if (onInputValueChange) {\n const returnedValue = onInputValueChange(textValue);\n if (typeof returnedValue === 'string' && returnedValue !== textValue) {\n dispatch({ type: 'TextChange', value: returnedValue });\n }\n }\n },\n inputFocus: (dispatch, getState, getProps, getInstance) => {\n const { input } = getInstance();\n\n if (!input) {\n return;\n }\n\n input.focus();\n const inputNode = input.getNode();\n if (inputNode) {\n inputNode.scrollLeft = inputNode.scrollWidth;\n inputNode.scrollTop = inputNode.scrollHeight;\n }\n },\n highlightMenuItem: (dispatch, getState, getProps, getInstance) => {\n const { value, itemToValue, valueToString } = getProps();\n const { items, focused, textValue, requestStatus } = getState();\n const { menu } = getInstance();\n const valueString = getValueString(value, valueToString);\n\n if (!menu) {\n return;\n }\n\n if (!focused) {\n return;\n }\n\n let index = -1;\n if (items?.length && isNonNullable(value)) {\n index = items.findIndex((x) => itemToValue(x) === itemToValue(value));\n menu.highlightItem(index);\n } else {\n menu.reset();\n }\n\n if (index >= 0) {\n // @ts-expect-error: Use of private property.\n globalObject.requestAnimationFrame?.(() => menu?.scrollToSelected());\n return;\n }\n\n const queryTextDifferenceOfSavedValue = textValue !== valueString;\n const needFocusToRefreshButton = requestStatus === ComboBoxRequestStatus.Failed;\n if (queryTextDifferenceOfSavedValue || needFocusToRefreshButton) {\n globalObject.requestAnimationFrame?.(() => menu?.highlightItem(0));\n }\n },\n selectMenuItem: (event) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu.enter(event);\n }\n },\n moveMenuHighlight: (direction) => (dispatch, getState, getProps, getInstance) => {\n const { menu } = getInstance();\n if (menu) {\n menu[direction]();\n }\n },\n resetHighlightedMenuItem: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n\n if (combobox.menu && combobox.menu.hasHighlightedItem()) {\n combobox.menu.reset();\n }\n },\n reflow: () => {\n LayoutEvents.emit();\n },\n selectInputText: (dispatch, getState, getProps, getInstance) => {\n const combobox = getInstance();\n combobox.selectInputText();\n },\n inputKeyDown: (event) => (dispatch, getState, getProps) => {\n const { onInputKeyDown } = getProps();\n if (onInputKeyDown) {\n onInputKeyDown(event);\n }\n },\n};\n\nconst never = () => null;\n\nexport function reducer<T>(\n state: CustomComboBoxState<T>,\n props: CustomComboBoxProps<T>,\n action: CustomComboBoxAction<T>,\n): Pick<CustomComboBoxState<T>, never> | [Pick<CustomComboBoxState<T>, never>, Array<CustomComboBoxEffect<T>>] {\n switch (action.type) {\n case 'ValueChange': {\n const { value, keepFocus } = action;\n const textValue = getValueString(value, props.valueToString);\n if (keepFocus) {\n return [\n {\n opened: false,\n inputChanged: false,\n editing: true,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest, Effect.inputFocus],\n ];\n }\n return [\n {\n opened: false,\n inputChanged: false,\n editing: false,\n items: null,\n textValue,\n },\n [Effect.valueChange(value), Effect.cancelRequest],\n ];\n }\n case 'TextChange': {\n const newState = {\n inputChanged: true,\n textValue: action.value,\n };\n if (!action.value && !props.searchOnFocus) {\n return [\n {\n ...newState,\n opened: false,\n items: null,\n },\n [Effect.inputChange],\n ];\n }\n return [newState, [Effect.debouncedSearch, Effect.inputChange]];\n }\n case 'KeyPress': {\n const e = action.event as React.KeyboardEvent<HTMLElement>;\n const effects = [];\n let nextState = state;\n\n switch (true) {\n case isKeyEnter(e):\n if (!state.opened) {\n break;\n }\n e.preventDefault();\n effects.push(Effect.selectMenuItem(e));\n break;\n case isKeyArrowVertical(e):\n e.preventDefault();\n effects.push(Effect.moveMenuHighlight(isKeyArrowUp(e) ? 'up' : 'down'));\n if (!state.opened) {\n effects.push(Effect.search(state.textValue));\n }\n break;\n case isKeyEscape(e):\n nextState = {\n ...state,\n items: null,\n opened: false,\n };\n break;\n }\n return [nextState, [...effects, Effect.inputKeyDown(e)]];\n }\n case 'DidUpdate': {\n if (isEqual(props.value, action.prevProps.value)) {\n return state;\n }\n\n if (action.fixValueChange) {\n const nextTextValue = getValueString(props.value, props.valueToString);\n\n if (!state.focused) {\n return [\n {\n editing: false,\n inputChanged: false,\n textValue: nextTextValue,\n },\n [Effect.cancelRequest],\n ];\n }\n\n if (state.focused && state.opened) {\n return [{ ...state, textValue: nextTextValue }, [Effect.cancelRequest, Effect.search(nextTextValue)]];\n }\n\n if (state.focused) {\n return {\n ...state,\n textValue: nextTextValue,\n };\n }\n }\n\n return {\n opened: false,\n textValue: state.editing ? state.textValue : getValueString(props.value, props.valueToString),\n };\n }\n case 'Mount': {\n return {\n textValue: getValueString(props.value, props.valueToString),\n };\n }\n case 'Focus': {\n const newState = {\n focused: true,\n editing: true,\n };\n if (!action.searchOnFocus) {\n return [newState, [Effect.focus]];\n }\n if (state.editing) {\n return [newState, [Effect.search(state.textValue), Effect.focus]];\n }\n return [newState, [Effect.search(''), Effect.focus, Effect.selectInputText]];\n }\n case 'InputClick': {\n const newState = {\n inputChanged: false,\n };\n if (!state.opened && props.searchOnFocus) {\n return [newState, [Effect.search('')]];\n }\n return state;\n }\n case 'ClearCrossClick': {\n const newState = {\n editing: true,\n loading: true,\n };\n return [newState, [Effect.valueClear, Effect.focus, Effect.search('')]];\n }\n case 'Blur': {\n const { inputChanged, items } = state;\n if (!inputChanged) {\n return [\n {\n focused: false,\n opened: false,\n items: null,\n editing: false,\n },\n [Effect.blur, Effect.cancelRequest],\n ];\n }\n\n return [\n {\n focused: false,\n opened: false,\n items: null,\n },\n [Effect.blur, Effect.cancelRequest, Effect.unexpectedInput(state.textValue, items)],\n ];\n }\n case 'Reset': {\n return DefaultState;\n }\n case 'Open': {\n return { opened: true };\n }\n case 'Close': {\n return { opened: false, items: null };\n }\n case 'Search': {\n return [state, [Effect.search(action.query)]];\n }\n case 'RequestItems': {\n return {\n loading: true,\n opened: true,\n requestStatus: ComboBoxRequestStatus.Pending,\n };\n }\n case 'ReceiveItems': {\n const shouldResetMenuHighlight = state.textValue === '';\n return [\n {\n loading: false,\n opened: true,\n items: action.items,\n requestStatus: ComboBoxRequestStatus.Success,\n },\n [shouldResetMenuHighlight ? Effect.resetHighlightedMenuItem : Effect.highlightMenuItem, Effect.reflow],\n ];\n }\n case 'RequestFailure': {\n return [\n {\n loading: false,\n opened: true,\n items: null,\n requestStatus: ComboBoxRequestStatus.Failed,\n repeatRequest: action.repeatRequest,\n },\n [Effect.highlightMenuItem],\n ];\n }\n case 'CancelRequest': {\n return {\n loading: false,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n }\n default: {\n never();\n }\n }\n return state;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -20,6 +20,7 @@ export declare class InternalTextareaWithLayout extends React.Component<Internal
20
20
  blur(): void;
21
21
  setSelectionRange(start: number, end: number): void;
22
22
  selectAll(): void;
23
+ getNode(): import("../../typings/utility-types").Nullable<HTMLTextAreaElement>;
23
24
  render(): React.JSX.Element;
24
25
  private getTextareaSizeClassName;
25
26
  private getRootSizeClassName;
@@ -107,6 +107,9 @@ InternalTextareaWithLayout = exports.InternalTextareaWithLayout = (0, _rootNode.
107
107
 
108
108
 
109
109
 
110
+
111
+
112
+
110
113
 
111
114
 
112
115
 
@@ -232,4 +235,4 @@ InternalTextareaWithLayout = exports.InternalTextareaWithLayout = (0, _rootNode.
232
235
  clearCrossShowed: _this.getClearCrossShowed({ focused: true, hovered: _this.state.hovered })
233
236
  });
234
237
  _this.props.onFocus == null || _this.props.onFocus(event);
235
- };return _this;}(0, _inheritsLoose2.default)(InternalTextareaWithLayout, _React$Component);var _proto = InternalTextareaWithLayout.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$state = this.state,focused = _this$state.focused,hovered = _this$state.hovered;if (Boolean(prevProps.value) !== Boolean(this.props.value)) {this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: focused, hovered: hovered }) });}};_proto.focus = function focus() {var _this$wrappedComponen2;(_this$wrappedComponen2 = this.wrappedComponentRef.current) == null || _this$wrappedComponen2.focus();};_proto.blur = function blur() {var _this$wrappedComponen3;(_this$wrappedComponen3 = this.wrappedComponentRef.current) == null || _this$wrappedComponen3.blur();};_proto.setSelectionRange = function setSelectionRange(start, end) {var _this$wrappedComponen4;(_this$wrappedComponen4 = this.wrappedComponentRef.current) == null || _this$wrappedComponen4.setSelectionRange(start, end);};_proto.selectAll = function selectAll() {var _this$wrappedComponen5;(_this$wrappedComponen5 = this.wrappedComponentRef.current) == null || _this$wrappedComponen5.selectAll();};_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("span", { "data-tid": 'InternalTextareaWithLayout' }, _this2.renderLayout());});};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.getProps().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.getRootSizeClassName = function getRootSizeClassName() {switch (this.getProps().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);}};return (0, _createClass2.default)(InternalTextareaWithLayout, [{ key: "preparedTheme", get: function get() {return _ThemeFactory.ThemeFactory.create({ textareaWidth: 'auto', textareaBorderWidth: '0px', textareaPaddingXSmall: '0px', textareaPaddingXMedium: '0px', textareaPaddingXLarge: '0px', textareaPaddingYSmall: '0px', textareaPaddingYMedium: '0px', textareaPaddingYLarge: '0px', textareaOutlineWidth: '0px', textareaShadow: 'none', textareaDisabledBg: 'transparent', textareaBg: 'transparent' }, this.theme);} }]);}(_react.default.Component), _InternalTextareaWithLayout.__KONTUR_REACT_UI__ = 'InternalTextareaWithLayout', _InternalTextareaWithLayout)) || _class;
238
+ };return _this;}(0, _inheritsLoose2.default)(InternalTextareaWithLayout, _React$Component);var _proto = InternalTextareaWithLayout.prototype;_proto.componentDidUpdate = function componentDidUpdate(prevProps) {var _this$state = this.state,focused = _this$state.focused,hovered = _this$state.hovered;if (Boolean(prevProps.value) !== Boolean(this.props.value)) {this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: focused, hovered: hovered }) });}};_proto.focus = function focus() {var _this$wrappedComponen2;(_this$wrappedComponen2 = this.wrappedComponentRef.current) == null || _this$wrappedComponen2.focus();};_proto.blur = function blur() {var _this$wrappedComponen3;(_this$wrappedComponen3 = this.wrappedComponentRef.current) == null || _this$wrappedComponen3.blur();};_proto.setSelectionRange = function setSelectionRange(start, end) {var _this$wrappedComponen4;(_this$wrappedComponen4 = this.wrappedComponentRef.current) == null || _this$wrappedComponen4.setSelectionRange(start, end);};_proto.selectAll = function selectAll() {var _this$wrappedComponen5;(_this$wrappedComponen5 = this.wrappedComponentRef.current) == null || _this$wrappedComponen5.selectAll();};_proto.getNode = function getNode() {var _this$wrappedComponen6;return (_this$wrappedComponen6 = this.wrappedComponentRef.current) == null ? void 0 : _this$wrappedComponen6.getNode();};_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("span", { "data-tid": 'InternalTextareaWithLayout' }, _this2.renderLayout());});};_proto.getTextareaSizeClassName = function getTextareaSizeClassName() {switch (this.getProps().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.getRootSizeClassName = function getRootSizeClassName() {switch (this.getProps().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);}};return (0, _createClass2.default)(InternalTextareaWithLayout, [{ key: "preparedTheme", get: function get() {return _ThemeFactory.ThemeFactory.create({ textareaWidth: 'auto', textareaBorderWidth: '0px', textareaPaddingXSmall: '0px', textareaPaddingXMedium: '0px', textareaPaddingXLarge: '0px', textareaPaddingYSmall: '0px', textareaPaddingYMedium: '0px', textareaPaddingYLarge: '0px', textareaOutlineWidth: '0px', textareaShadow: 'none', textareaDisabledBg: 'transparent', textareaBg: 'transparent' }, this.theme);} }]);}(_react.default.Component), _InternalTextareaWithLayout.__KONTUR_REACT_UI__ = 'InternalTextareaWithLayout', _InternalTextareaWithLayout)) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_InputLayout","_Textarea","_Textarea2","_Emotion","_ThemeContext","_ThemeFactory","_rootNode","_Input","_createPropsGetter","_currentEnvironment","_Input2","_ClearCrossIcon","_InternalTextareaWithLayout2","_excluded","_class","_InternalTextareaWithLayout","InternalTextareaWithLayout","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","wrappedComponentRef","React","createRef","getProps","createPropsGetter","Textarea","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","calculateClearCrossShowedState","showClearIcon","notEmptyValue","Boolean","value","state","clearCrossShowed","handleClearInput","current","clear","focus","onValueChange","getRightIcon","_this$props","size","rightIcon","default","createElement","ClearCrossIcon","InputDataTids","clearCross","onClick","handleMouseEnter","setState","handleMouseOut","renderLayout","_cx","labelProps","className","cx","styles","contentWrapper","textareaStyles","textarea","theme","getTextareaSizeClassName","getRootSizeClassName","inputStyles","warning","error","borderless","style","width","DEFAULT_WIDTH","minWidth","position","onMouseEnter","onMouseLeave","handleLayoutClick","InputLayout","leftIcon","context","tag","renderTextarea","_this$props2","textareaProps","_objectWithoutPropertiesLoose2","ThemeContext","Provider","preparedTheme","_extends2","isTestEnv","spellCheck","ref","onFocus","handleFocus","onBlur","handleBlur","_this$wrappedComponen","event","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$state","_this$wrappedComponen2","blur","_this$wrappedComponen3","setSelectionRange","start","end","_this$wrappedComponen4","selectAll","_this$wrappedComponen5","render","_this2","Consumer","textareaLarge","textareaMedium","textareaSmall","rootLarge","rootMedium","rootSmall","_createClass2","key","get","ThemeFactory","create","textareaWidth","textareaBorderWidth","textareaPaddingXSmall","textareaPaddingXMedium","textareaPaddingXLarge","textareaPaddingYSmall","textareaPaddingYMedium","textareaPaddingYLarge","textareaOutlineWidth","textareaShadow","textareaDisabledBg","textareaBg","Component","__KONTUR_REACT_UI__"],"sources":["InternalTextareaWithLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { InputProps } from '../../components/Input';\nimport { InputLayout } from '../../components/Input/InputLayout/InputLayout';\nimport { DEFAULT_WIDTH, Textarea } from '../../components/Textarea';\nimport type { TextareaProps } from '../../components/Textarea';\nimport { styles as textareaStyles } from '../../components/Textarea/Textarea.styles';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { styles as inputStyles } from '../../components/Input/Input.styles';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { calculateClearCrossShowedState, InputDataTids } from '../../components/Input';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon';\n\nimport { styles } from './InternalTextareaWithLayout.styles';\n\ninterface InternalTextareaWithLayoutProps\n extends TextareaProps,\n Pick<InputProps, 'leftIcon' | 'rightIcon' | 'align' | 'borderless' | 'showClearIcon'> {}\n\ninterface InternalTextareaWithLayoutState {\n focused: boolean;\n hovered: boolean;\n clearCrossShowed: boolean;\n}\n\n@rootNode\nexport class InternalTextareaWithLayout extends React.Component<\n InternalTextareaWithLayoutProps,\n InternalTextareaWithLayoutState\n> {\n public static __KONTUR_REACT_UI__ = 'InternalTextareaWithLayout';\n private wrappedComponentRef = React.createRef<Textarea>();\n private theme!: Theme;\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n public componentDidUpdate(prevProps: Readonly<InternalTextareaWithLayoutProps>) {\n const { focused, hovered } = this.state;\n if (Boolean(prevProps.value) !== Boolean(this.props.value)) {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused, hovered }) });\n }\n }\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon || 'never',\n notEmptyValue: Boolean(this.props.value),\n focused,\n hovered,\n });\n };\n\n public state: InternalTextareaWithLayoutState = {\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: false }),\n };\n\n public focus() {\n this.wrappedComponentRef.current?.focus();\n }\n public blur() {\n this.wrappedComponentRef.current?.blur();\n }\n public setSelectionRange(start: number, end: number) {\n this.wrappedComponentRef.current?.setSelectionRange(start, end);\n }\n public selectAll() {\n this.wrappedComponentRef.current?.selectAll();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <span data-tid={'InternalTextareaWithLayout'}>{this.renderLayout()}</span>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return textareaStyles.textareaLarge(this.theme);\n case 'medium':\n return textareaStyles.textareaMedium(this.theme);\n case 'small':\n default:\n return textareaStyles.textareaSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return textareaStyles.rootLarge(this.theme);\n case 'medium':\n return textareaStyles.rootMedium(this.theme);\n case 'small':\n default:\n return textareaStyles.rootSmall(this.theme);\n }\n }\n\n private handleClearInput = () => {\n if (this.wrappedComponentRef.current) {\n this.wrappedComponentRef.current.clear();\n\n if (!this.state.focused) {\n this.wrappedComponentRef.current.focus();\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private getRightIcon = () => {\n const { size, rightIcon } = this.props;\n\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n private handleMouseEnter = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleMouseOut = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private renderLayout = () => {\n const labelProps = {\n className: cx(\n styles.contentWrapper(),\n textareaStyles.textarea(this.theme),\n this.getTextareaSizeClassName(),\n this.getRootSizeClassName(),\n {\n [inputStyles.focus(this.theme)]: this.state.focused && !this.props.warning && !this.props.error,\n [inputStyles.borderless()]: this.props.borderless && !this.state.focused,\n [textareaStyles.disabled(this.theme)]: this.props.disabled,\n [textareaStyles.warning(this.theme)]: this.props.warning,\n [textareaStyles.error(this.theme)]: this.props.error,\n },\n ),\n style: { width: this.props.width || DEFAULT_WIDTH, minWidth: '0', position: 'relative' as const },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseOut,\n onClick: this.handleLayoutClick,\n };\n return (\n <InputLayout\n leftIcon={this.props.leftIcon}\n rightIcon={this.getRightIcon()}\n labelProps={labelProps}\n context={{ disabled: this.props.disabled, focused: this.state.focused, size: this.getProps().size }}\n tag=\"span\"\n >\n {this.renderTextarea()}\n </InputLayout>\n );\n };\n\n private get preparedTheme(): Theme {\n return ThemeFactory.create(\n {\n textareaWidth: 'auto',\n textareaBorderWidth: '0px',\n textareaPaddingXSmall: '0px',\n textareaPaddingXMedium: '0px',\n textareaPaddingXLarge: '0px',\n textareaPaddingYSmall: '0px',\n textareaPaddingYMedium: '0px',\n textareaPaddingYLarge: '0px',\n textareaOutlineWidth: '0px',\n textareaShadow: 'none',\n textareaDisabledBg: 'transparent',\n textareaBg: 'transparent',\n },\n this.theme,\n );\n }\n\n private renderTextarea = () => {\n const { leftIcon, rightIcon, borderless, ...textareaProps } = this.props;\n return (\n <ThemeContext.Provider value={this.preparedTheme}>\n <Textarea\n {...(isTestEnv ? { spellCheck: false } : {})}\n {...textareaProps}\n width={'100%'}\n ref={this.wrappedComponentRef}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </ThemeContext.Provider>\n );\n };\n\n private handleLayoutClick = () => {\n this.wrappedComponentRef.current?.focus();\n };\n private handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n if (getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n this.setState({\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: false, hovered: this.state.hovered }),\n });\n this.props.onBlur?.(event);\n }\n };\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n this.props.onFocus?.(event);\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_InputLayout","_Textarea","_Textarea2","_Emotion","_ThemeContext","_ThemeFactory","_rootNode","_Input","_createPropsGetter","_currentEnvironment","_Input2","_ClearCrossIcon","_InternalTextareaWithLayout2","_excluded","_class","_InternalTextareaWithLayout","InternalTextareaWithLayout","exports","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","wrappedComponentRef","React","createRef","getProps","createPropsGetter","Textarea","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","calculateClearCrossShowedState","showClearIcon","notEmptyValue","Boolean","value","state","clearCrossShowed","handleClearInput","current","clear","focus","onValueChange","getRightIcon","_this$props","size","rightIcon","default","createElement","ClearCrossIcon","InputDataTids","clearCross","onClick","handleMouseEnter","setState","handleMouseOut","renderLayout","_cx","labelProps","className","cx","styles","contentWrapper","textareaStyles","textarea","theme","getTextareaSizeClassName","getRootSizeClassName","inputStyles","warning","error","borderless","style","width","DEFAULT_WIDTH","minWidth","position","onMouseEnter","onMouseLeave","handleLayoutClick","InputLayout","leftIcon","context","tag","renderTextarea","_this$props2","textareaProps","_objectWithoutPropertiesLoose2","ThemeContext","Provider","preparedTheme","_extends2","isTestEnv","spellCheck","ref","onFocus","handleFocus","onBlur","handleBlur","_this$wrappedComponen","event","_getRootNode","getRootNode","contains","relatedTarget","_inheritsLoose2","_proto","prototype","componentDidUpdate","prevProps","_this$state","_this$wrappedComponen2","blur","_this$wrappedComponen3","setSelectionRange","start","end","_this$wrappedComponen4","selectAll","_this$wrappedComponen5","getNode","_this$wrappedComponen6","render","_this2","Consumer","textareaLarge","textareaMedium","textareaSmall","rootLarge","rootMedium","rootSmall","_createClass2","key","get","ThemeFactory","create","textareaWidth","textareaBorderWidth","textareaPaddingXSmall","textareaPaddingXMedium","textareaPaddingXLarge","textareaPaddingYSmall","textareaPaddingYMedium","textareaPaddingYLarge","textareaOutlineWidth","textareaShadow","textareaDisabledBg","textareaBg","Component","__KONTUR_REACT_UI__"],"sources":["InternalTextareaWithLayout.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { InputProps } from '../../components/Input';\nimport { InputLayout } from '../../components/Input/InputLayout/InputLayout';\nimport { DEFAULT_WIDTH, Textarea } from '../../components/Textarea';\nimport type { TextareaProps } from '../../components/Textarea';\nimport { styles as textareaStyles } from '../../components/Textarea/Textarea.styles';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { styles as inputStyles } from '../../components/Input/Input.styles';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { calculateClearCrossShowedState, InputDataTids } from '../../components/Input';\nimport { ClearCrossIcon } from '../ClearCrossIcon/ClearCrossIcon';\n\nimport { styles } from './InternalTextareaWithLayout.styles';\n\ninterface InternalTextareaWithLayoutProps\n extends TextareaProps,\n Pick<InputProps, 'leftIcon' | 'rightIcon' | 'align' | 'borderless' | 'showClearIcon'> {}\n\ninterface InternalTextareaWithLayoutState {\n focused: boolean;\n hovered: boolean;\n clearCrossShowed: boolean;\n}\n\n@rootNode\nexport class InternalTextareaWithLayout extends React.Component<\n InternalTextareaWithLayoutProps,\n InternalTextareaWithLayoutState\n> {\n public static __KONTUR_REACT_UI__ = 'InternalTextareaWithLayout';\n private wrappedComponentRef = React.createRef<Textarea>();\n private theme!: Theme;\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n public componentDidUpdate(prevProps: Readonly<InternalTextareaWithLayoutProps>) {\n const { focused, hovered } = this.state;\n if (Boolean(prevProps.value) !== Boolean(this.props.value)) {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused, hovered }) });\n }\n }\n\n private getClearCrossShowed = ({ focused, hovered }: { focused?: boolean; hovered?: boolean }): boolean => {\n if (this.props.disabled) {\n return false;\n }\n return calculateClearCrossShowedState({\n showClearIcon: this.getProps().showClearIcon || 'never',\n notEmptyValue: Boolean(this.props.value),\n focused,\n hovered,\n });\n };\n\n public state: InternalTextareaWithLayoutState = {\n focused: false,\n hovered: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: false }),\n };\n\n public focus() {\n this.wrappedComponentRef.current?.focus();\n }\n public blur() {\n this.wrappedComponentRef.current?.blur();\n }\n public setSelectionRange(start: number, end: number) {\n this.wrappedComponentRef.current?.setSelectionRange(start, end);\n }\n public selectAll() {\n this.wrappedComponentRef.current?.selectAll();\n }\n public getNode() {\n return this.wrappedComponentRef.current?.getNode();\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <span data-tid={'InternalTextareaWithLayout'}>{this.renderLayout()}</span>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTextareaSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return textareaStyles.textareaLarge(this.theme);\n case 'medium':\n return textareaStyles.textareaMedium(this.theme);\n case 'small':\n default:\n return textareaStyles.textareaSmall(this.theme);\n }\n }\n\n private getRootSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return textareaStyles.rootLarge(this.theme);\n case 'medium':\n return textareaStyles.rootMedium(this.theme);\n case 'small':\n default:\n return textareaStyles.rootSmall(this.theme);\n }\n }\n\n private handleClearInput = () => {\n if (this.wrappedComponentRef.current) {\n this.wrappedComponentRef.current.clear();\n\n if (!this.state.focused) {\n this.wrappedComponentRef.current.focus();\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange('');\n }\n };\n\n private getRightIcon = () => {\n const { size, rightIcon } = this.props;\n\n return this.state.clearCrossShowed ? (\n <ClearCrossIcon data-tid={InputDataTids.clearCross} size={size} onClick={this.handleClearInput} />\n ) : (\n rightIcon\n );\n };\n\n private handleMouseEnter = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: true }) });\n };\n\n private handleMouseOut = () => {\n this.setState({ clearCrossShowed: this.getClearCrossShowed({ focused: this.state.focused, hovered: false }) });\n };\n\n private renderLayout = () => {\n const labelProps = {\n className: cx(\n styles.contentWrapper(),\n textareaStyles.textarea(this.theme),\n this.getTextareaSizeClassName(),\n this.getRootSizeClassName(),\n {\n [inputStyles.focus(this.theme)]: this.state.focused && !this.props.warning && !this.props.error,\n [inputStyles.borderless()]: this.props.borderless && !this.state.focused,\n [textareaStyles.disabled(this.theme)]: this.props.disabled,\n [textareaStyles.warning(this.theme)]: this.props.warning,\n [textareaStyles.error(this.theme)]: this.props.error,\n },\n ),\n style: { width: this.props.width || DEFAULT_WIDTH, minWidth: '0', position: 'relative' as const },\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseOut,\n onClick: this.handleLayoutClick,\n };\n return (\n <InputLayout\n leftIcon={this.props.leftIcon}\n rightIcon={this.getRightIcon()}\n labelProps={labelProps}\n context={{ disabled: this.props.disabled, focused: this.state.focused, size: this.getProps().size }}\n tag=\"span\"\n >\n {this.renderTextarea()}\n </InputLayout>\n );\n };\n\n private get preparedTheme(): Theme {\n return ThemeFactory.create(\n {\n textareaWidth: 'auto',\n textareaBorderWidth: '0px',\n textareaPaddingXSmall: '0px',\n textareaPaddingXMedium: '0px',\n textareaPaddingXLarge: '0px',\n textareaPaddingYSmall: '0px',\n textareaPaddingYMedium: '0px',\n textareaPaddingYLarge: '0px',\n textareaOutlineWidth: '0px',\n textareaShadow: 'none',\n textareaDisabledBg: 'transparent',\n textareaBg: 'transparent',\n },\n this.theme,\n );\n }\n\n private renderTextarea = () => {\n const { leftIcon, rightIcon, borderless, ...textareaProps } = this.props;\n return (\n <ThemeContext.Provider value={this.preparedTheme}>\n <Textarea\n {...(isTestEnv ? { spellCheck: false } : {})}\n {...textareaProps}\n width={'100%'}\n ref={this.wrappedComponentRef}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </ThemeContext.Provider>\n );\n };\n\n private handleLayoutClick = () => {\n this.wrappedComponentRef.current?.focus();\n };\n private handleBlur = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n if (getRootNode(this)?.contains(event.relatedTarget)) {\n this.setState({ focused: false });\n } else {\n this.setState({\n focused: false,\n clearCrossShowed: this.getClearCrossShowed({ focused: false, hovered: this.state.hovered }),\n });\n this.props.onBlur?.(event);\n }\n };\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({\n focused: true,\n clearCrossShowed: this.getClearCrossShowed({ focused: true, hovered: this.state.hovered }),\n });\n this.props.onFocus?.(event);\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -38,14 +38,12 @@ export var ModalZIndexPriority = {
38
38
  Content: 1
39
39
  };
40
40
 
41
- /**
42
- * Модальное окно `Modal` — это эмуляция диалогового окна браузера, появляющегося поверх страницы в ответ на действия пользователя и блокирующего доступ к основному содержимому страницы.
41
+ /** Модальное окно — это эмуляция диалогового окна браузера, оно появляется поверх страницы в ответ на действия пользователя и блокирует доступ к основному содержимому страницы.
43
42
  *
44
- * Состоит из 3-х компонентов: `Modal.Header`, `Modal.Body`, `Modal.Footer`.
45
- *
46
- * Для отображения серой плашки в футере в компонент `Footer` необходимо передать проп `panel`.
47
- *
48
- * Для отключения прилипания шапки и футера в соответствующий компонент нужно передать проп `sticky` со значением `false` (по-умолчанию прилипание включено).
43
+ * Составной компонент, включает в себя:
44
+ * - «шапку» [Modal.Header](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalheader--docs), состоящую из заголовка и крестика закрытия окна;
45
+ * - контент-зону [Modal.Body](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalbody--docs);
46
+ * - футер [Modal.Footer](https://tech.skbkontur.ru/kontur-ui/?path=/docs/react-ui_overlay-modal-modalfooter--docs).
49
47
  */
50
48
  export var Modal = /*#__PURE__*/function (_React$Component) {
51
49
  function Modal() {