@skbkontur/react-ui 5.5.1-9e084.0 → 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.
- package/CHANGELOG.md +25 -0
- package/cjs/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/cjs/components/Checkbox/Checkbox.mixins.js +14 -6
- package/cjs/components/Checkbox/Checkbox.mixins.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.styles.js +13 -8
- package/cjs/components/Checkbox/Checkbox.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +13 -2
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js +2 -1
- package/cjs/components/DateRangePicker/DateRangePickerInput.js.map +1 -1
- package/cjs/components/FileUploader/FileUploader.d.ts +1 -0
- package/cjs/components/FileUploader/FileUploader.js +3 -0
- package/cjs/components/FileUploader/FileUploader.js.map +1 -1
- package/cjs/components/Modal/Modal.d.ts +25 -22
- package/cjs/components/Modal/Modal.js +10 -7
- package/cjs/components/Modal/Modal.js.map +1 -1
- package/cjs/components/Modal/ModalBody.d.ts +1 -1
- package/cjs/components/Modal/ModalBody.js +1 -1
- package/cjs/components/Modal/ModalBody.js.map +1 -1
- package/cjs/components/Modal/ModalFooter.d.ts +5 -5
- package/cjs/components/Modal/ModalFooter.js +1 -1
- package/cjs/components/Modal/ModalFooter.js.map +1 -1
- package/cjs/components/Modal/ModalHeader.d.ts +3 -3
- package/cjs/components/Modal/ModalHeader.js +1 -1
- package/cjs/components/Modal/ModalHeader.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +11 -10
- package/cjs/components/Radio/Radio.js +5 -4
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/cjs/components/RadioGroup/RadioGroup.js +2 -9
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +5 -1
- package/cjs/components/Textarea/Textarea.js +10 -1
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +5 -0
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -1
- package/cjs/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +3 -0
- package/cjs/internal/themes/BasicTheme.js +6 -1
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js +4 -4
- package/components/Checkbox/Checkbox.mixins/Checkbox.mixins.js.map +1 -1
- package/components/Checkbox/Checkbox.mixins.d.ts +2 -2
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js +7 -7
- package/components/Checkbox/Checkbox.styles/Checkbox.styles.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js +4 -2
- package/components/DateRangePicker/DateRangePicker/DateRangePicker.js.map +1 -1
- package/components/DateRangePicker/DateRangePicker.d.ts +9 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js +2 -1
- package/components/DateRangePicker/DateRangePickerInput/DateRangePickerInput.js.map +1 -1
- package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
- package/components/FileUploader/FileUploader.d.ts +1 -0
- package/components/Modal/Modal/Modal.js +5 -7
- package/components/Modal/Modal/Modal.js.map +1 -1
- package/components/Modal/Modal.d.ts +25 -22
- package/components/Modal/ModalBody/ModalBody.js +1 -1
- package/components/Modal/ModalBody/ModalBody.js.map +1 -1
- package/components/Modal/ModalBody.d.ts +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js +1 -1
- package/components/Modal/ModalFooter/ModalFooter.js.map +1 -1
- package/components/Modal/ModalFooter.d.ts +5 -5
- package/components/Modal/ModalHeader/ModalHeader.js +1 -1
- package/components/Modal/ModalHeader/ModalHeader.js.map +1 -1
- package/components/Modal/ModalHeader.d.ts +3 -3
- package/components/Radio/Radio/Radio.js +5 -4
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +11 -10
- package/components/RadioGroup/RadioGroup/RadioGroup.js +2 -9
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +21 -28
- package/components/Textarea/Textarea/Textarea.js +5 -0
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +5 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +5 -0
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js +4 -0
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js.map +1 -1
- package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout.d.ts +1 -0
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +3 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропсы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (globalObject.document?.activeElement !== this.node) {\n this.focus();\n }\n\n this.node.setSelectionRange(start, end);\n };\n\n /**\n * @public\n */\n public selectAll = () => {\n if (this.node) {\n this.setSelectionRange(0, this.node.value.length);\n }\n };\n\n private delaySelectAll = (): number | null =>\n (this.selectAllId = globalObject.requestAnimationFrame?.(this.selectAll) ?? null);\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n globalObject.cancelAnimationFrame?.(this.selectAllId);\n this.selectAllId = null;\n }\n };\n\n private renderMain = (props: CommonWrapperRestProps<TextareaProps>) => {\n const {\n width = DEFAULT_WIDTH,\n error,\n warning,\n size,\n autoResize,\n resize,\n onCut,\n onPaste,\n maxRows,\n onFocus,\n selectAllOnFocus,\n placeholder,\n onValueChange,\n showLengthCounter,\n lengthCounter,\n counterHelp,\n extraRow,\n disableAnimations,\n disabled,\n ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx(this.getTextareaSizeClassName(), {\n [styles.textarea(this.theme)]: true,\n [styles.hovering(this.theme)]: !error && !warning,\n [styles.disabled(this.theme)]: disabled,\n [styles.error(this.theme)]: !!error,\n [styles.warning(this.theme)]: !!warning,\n [styles.disableAnimations()]: this.isAnimationsDisabled(),\n });\n\n const textareaStyle = {\n resize: autoResize ? 'none' : resize,\n textAlign: this.props.align,\n };\n\n let placeholderPolyfill = null;\n\n if (this.state.needsPolyfillPlaceholder && !textareaProps.value && !textareaProps.defaultValue) {\n placeholderPolyfill = <span className={styles.placeholder()}>{placeholder}</span>;\n }\n\n let fakeTextarea = null;\n if (autoResize) {\n const fakeProps = {\n value: this.props.value,\n defaultValue: this.props.defaultValue,\n className: cx(textareaClassNames, styles.fake()),\n readOnly: true,\n };\n fakeTextarea = <textarea {...fakeProps} ref={this.refFake} />;\n }\n\n const counter = showLengthCounter && isCounterVisible && this.node && (\n <TextareaCounter\n textarea={this.node}\n size={this.size}\n help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n const Component = isSafariWithTextareaBug ? TextareaWithSafari17Workaround : 'textarea';\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label\n data-tid={TextareaDataTids.root}\n {...rootProps}\n className={cx(this.getRootSizeClassName(), {\n [styles.root()]: true,\n })}\n >\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter} alignBaseline={this.featureFlags.textareaBaselineAlign}>\n <Component\n {...textareaProps}\n className={textareaClassNames}\n style={textareaStyle}\n placeholder={!placeholderPolyfill ? placeholder : undefined}\n ref={this.ref}\n onChange={this.handleChange}\n onCut={this.handleCut}\n onPaste={this.handlePaste}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n disabled={disabled}\n >\n {this.props.children}\n </Component>\n </ResizeDetector>\n {fakeTextarea}\n {counter}\n </label>\n </RenderLayer>\n );\n };\n\n private handleCloseCounterHelp = () => this.setState({ isCounterVisible: false });\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n // Edge bug: textarea maxlength doesn't work after new line\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/18833616/\n const value = this.props.value !== undefined ? this.props.value.toString() : null;\n const isBlockEnter = isKeyEnter(e) && value !== null && value.length === this.props.maxLength;\n\n if (isBlockEnter) {\n e.preventDefault();\n }\n\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n };\n\n private handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (needsPolyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.needsPolyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ needsPolyfillPlaceholder: fieldIsEmpty });\n }\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(e.target.value);\n }\n\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onChange) {\n this.props.onChange(e);\n }\n\n this.reflowCounter();\n };\n\n private ref = (element: HTMLTextAreaElement) => {\n this.node = element;\n };\n\n private refFake = (element: HTMLTextAreaElement) => {\n this.fakeNode = element;\n };\n\n private refCounter = (ref: TextareaCounterRef | null) => {\n this.counter = ref;\n };\n\n private autoResizeHandler = () => {\n const fakeNode = this.fakeNode;\n if (!fakeNode) {\n return;\n }\n const node = this.node;\n if (!node) {\n return;\n }\n if (this.props.value === undefined) {\n fakeNode.value = node.value;\n }\n\n const { rows, maxRows } = this.getProps();\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n\n const { height, exceededMaxHeight } =\n getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow: this.getProps().extraRow,\n }) || {};\n\n if (height === undefined || exceededMaxHeight === undefined) {\n return;\n }\n\n node.style.height = height + 'px';\n node.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n fakeNode.style.overflowY = exceededMaxHeight ? 'scroll' : 'hidden';\n };\n\n private autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n\n private handleCut = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onCut) {\n this.props.onCut(event);\n }\n\n this.reflowCounter();\n };\n\n private handlePaste = (event: React.ClipboardEvent<HTMLTextAreaElement>) => {\n if (this.props.autoResize) {\n this.autoResize();\n }\n\n if (this.props.onPaste) {\n this.props.onPaste(event);\n }\n\n this.reflowCounter();\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLTextAreaElement>) => {\n this.setState({ isCounterVisible: true });\n\n if (this.props.selectAllOnFocus) {\n // https://github.com/facebook/react/issues/7769\n this.node && !isIE11 ? this.selectAll() : this.delaySelectAll();\n }\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","throttle","globalObject","isKeyEnter","needsPolyfillPlaceholder","LayoutEvents","ThemeContext","RenderLayer","ResizeDetector","isIE11","isSafariWithTextareaBug","CommonWrapper","isTestEnv","cx","rootNode","createPropsGetter","withSize","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","getTextAreaHeight","styles","TextareaCounter","TextareaWithSafari17Workaround","DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","TextareaDataTids","root","counter","helpIcon","Textarea","_class","_Textarea","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","clear","node","value","fakeNode","getProps","defaultProps","state","isCounterVisible","reflowCounter","reflow","selectAllId","textareaObserver","MutationObserver","setSelectionRange","start","end","_globalObject$documen","Error","document","activeElement","focus","selectAll","delaySelectAll","_globalObject$request","requestAnimationFrame","cancelDelayedSelectAll","cancelAnimationFrame","renderMain","props","_cx","_ref","_textareaProps$maxLen","_cx2","_props$width","width","error","warning","size","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","_objectWithoutPropertiesLoose","_excluded","rootProps","style","textareaClassNames","getTextareaSizeClassName","textarea","theme","hovering","isAnimationsDisabled","textareaStyle","textAlign","align","placeholderPolyfill","defaultValue","createElement","className","fakeTextarea","fakeProps","fake","readOnly","_extends","ref","refFake","help","maxLength","onCloseHelp","handleCloseCounterHelp","refCounter","Component","onFocusOutside","onClickOutside","active","getRootSizeClassName","onResize","alignBaseline","featureFlags","textareaBaselineAlign","undefined","onChange","handleChange","handleCut","handlePaste","handleFocus","onKeyDown","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","fieldIsEmpty","target","element","autoResizeHandler","_this$getProps","rows","_ref2","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","_inheritsLoose","_proto","prototype","rootLarge","rootMedium","rootSmall","textareaLarge","textareaMedium","textareaSmall","_temp","_ref3","componentDidMount","layoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","cancel","_this$getProps2","render","_this2","Consumer","flags","rootNodeRef","setRootNode","blur","getNode","__KONTUR_REACT_UI__","displayName"],"sources":["Textarea.tsx"],"sourcesContent":["import type { AriaAttributes, ReactNode } from 'react';\nimport React from 'react';\nimport throttle from 'lodash.throttle';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { needsPolyfillPlaceholder } from '../../lib/needsPolyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isIE11, isSafariWithTextareaBug } from '../../lib/client';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { InputAlign } from '../Input';\nimport { withSize } from '../../lib/size/SizeDecorator';\nimport {\n ReactUIFeatureFlagsContext,\n type ReactUIFeatureFlags,\n} from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport type { TextareaCounterRef } from './TextareaCounter';\nimport { TextareaCounter } from './TextareaCounter';\nimport { TextareaWithSafari17Workaround } from './TextareaWithSafari17Workaround';\n\nexport const DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends Pick<AriaAttributes, 'aria-controls' | 'aria-label'>,\n CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Выполняет автоматический ресайз в зависимости от содержимого. */\n autoResize?: boolean;\n\n /** Задает высоту текстарии в виде числа строк видимых без скролла. */\n rows?: number;\n\n /** Задает максимальное число строк при автоматическом ресайзе. */\n maxRows?: string | number;\n\n /** Задает направления ресайза компонента.\n * Попадает в `style`. */\n resize?: React.CSSProperties['resize'];\n\n /** Задает ширину текстэрии. */\n width?: React.CSSProperties['width'];\n\n /** Задает функцию, которая вызывается при изменении `value`. */\n onValueChange?: (value: string) => void;\n\n /** Определяет, нужно ли выделять введенное значение при фокусе. Работает с типами text, password, tel, search, url. */\n selectAllOnFocus?: boolean;\n\n /** Определяет, нужно ли показывать счетчик символов. */\n showLengthCounter?: boolean;\n\n /** Задает допустимое количество символов в поле. Отображается в счетчике.\n * @default maxLength */\n lengthCounter?: number;\n\n /** Задает подсказку к счетчику символов.\n * По умолчанию - тултип с содержимым из пропа, если передан `ReactNode`.\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой.\n * @example\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ``` */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавляет дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04 */\n extraRow?: boolean;\n\n /** Отключает анимацию при авто-ресайзе. Автоматически отключается когда в `extraRow` передан `false`. */\n disableAnimations?: boolean;\n /** Выравнивание текста */\n align?: InputAlign;\n }\n > {}\n\nexport interface TextareaState {\n needsPolyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\nexport const TextareaDataTids = {\n root: 'Textarea__root',\n counter: 'TextareaCounter__root',\n helpIcon: 'TextareaCounter__helpIcon',\n} as const;\n\ntype DefaultProps = Required<Pick<TextareaProps, 'rows' | 'maxRows' | 'extraRow' | 'disableAnimations'>>;\n\n/**\n * Многострочное поле `Textarea` — это поле ввода, которое позволяет работать с несколькими строками текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`.\n * Пропсы **`className` и `style` игнорируются**.\n */\n\n@rootNode\n@withSize\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n public static displayName = 'Textarea';\n\n public static defaultProps: DefaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public clear = () => {\n if (this.node) {\n this.node.value = '';\n }\n if (this.fakeNode) {\n this.fakeNode.value = '';\n }\n };\n\n private getProps = createPropsGetter(Textarea.defaultProps);\n\n private getRootSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.rootLarge(this.theme);\n case 'medium':\n return styles.rootMedium(this.theme);\n case 'small':\n default:\n return styles.rootSmall(this.theme);\n }\n }\n\n private getTextareaSizeClassName() {\n switch (this.size) {\n case 'large':\n return styles.textareaLarge(this.theme);\n case 'medium':\n return styles.textareaMedium(this.theme);\n case 'small':\n default:\n return styles.textareaSmall(this.theme);\n }\n }\n\n public state = {\n needsPolyfillPlaceholder,\n isCounterVisible: false,\n };\n private size!: SizeProp;\n\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n private featureFlags!: ReactUIFeatureFlags;\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = globalObject.MutationObserver\n ? new globalObject.MutationObserver(this.reflowCounter)\n : null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private getAutoResizeThrottleWait(props: TextareaProps = this.props): number {\n // NOTE: При отключении анимации остается эффект дергания при авто-ресайзе из-за троттлинга расчета высоты\n // Поэтому выставляем таймаут троттла в ноль. Подробности - https://github.com/skbkontur/retail-ui/issues/2120\n return this.isAnimationsDisabled(props) ? 0 : AUTORESIZE_THROTTLE_DEFAULT_WAIT;\n }\n private isAnimationsDisabled({ disableAnimations, extraRow }: TextareaProps = this.props): boolean {\n return disableAnimations || !extraRow;\n }\n\n public componentDidMount() {\n if (this.props.autoResize) {\n this.autoResize();\n this.layoutEvents = LayoutEvents.addListener(this.autoResize);\n }\n\n if (this.node && this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.observe(this.node, { attributes: true });\n }\n }\n\n public componentWillUnmount() {\n if (this.layoutEvents) {\n this.layoutEvents.remove();\n }\n if (this.props.showLengthCounter && this.textareaObserver) {\n this.textareaObserver.disconnect();\n }\n this.cancelDelayedSelectAll();\n }\n\n public componentDidUpdate(prevProps: TextareaProps) {\n if (this.getAutoResizeThrottleWait() !== this.getAutoResizeThrottleWait(prevProps)) {\n this.autoResize.cancel();\n this.autoResize = throttle(this.autoResizeHandler, this.getAutoResizeThrottleWait());\n }\n const { rows, maxRows } = this.getProps();\n if (\n this.props.autoResize &&\n (rows !== prevProps.rows || maxRows !== prevProps.maxRows || this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n */\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":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AriaAttributes, ReactNode } from 'react';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { Override } from '../../typings/utility-types';
|
|
3
|
+
import type { Nullable, Override } from '../../typings/utility-types';
|
|
4
4
|
import type { CommonProps } from '../../internal/CommonWrapper';
|
|
5
5
|
import type { TGetRootNode } from '../../lib/rootNode';
|
|
6
6
|
import type { SizeProp } from '../../lib/types/props';
|
|
@@ -106,6 +106,10 @@ export declare class Textarea extends React.Component<TextareaProps, TextareaSta
|
|
|
106
106
|
* @public
|
|
107
107
|
*/
|
|
108
108
|
blur(): void;
|
|
109
|
+
/**
|
|
110
|
+
* @public
|
|
111
|
+
*/
|
|
112
|
+
getNode(): Nullable<HTMLTextAreaElement>;
|
|
109
113
|
/**
|
|
110
114
|
* @public
|
|
111
115
|
* @param {number} start
|
|
@@ -105,6 +105,11 @@ export var Effect = {
|
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
107
107
|
input.focus();
|
|
108
|
+
var inputNode = input.getNode();
|
|
109
|
+
if (inputNode) {
|
|
110
|
+
inputNode.scrollLeft = inputNode.scrollWidth;
|
|
111
|
+
inputNode.scrollTop = inputNode.scrollHeight;
|
|
112
|
+
}
|
|
108
113
|
},
|
|
109
114
|
highlightMenuItem: function highlightMenuItem(dispatch, getState, getProps, getInstance) {
|
|
110
115
|
var _getProps6 = getProps(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["debounce","isEqual","globalObject","isNonNullable","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","LayoutEvents","DefaultState","ComboBoxRequestStatus","DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","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","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","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","_extends","e","effects","nextState","preventDefault","push","concat","prevProps","fixValueChange","nextTextValue","loading","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":["debounce","isEqual","globalObject","isNonNullable","isKeyArrowUp","isKeyArrowVertical","isKeyEnter","isKeyEscape","LayoutEvents","DefaultState","ComboBoxRequestStatus","DEBOUNCE_DELAY","getValueString","value","valueToString","Effect","search","query","dispatch","getState","getProps","getInstance","debouncedSearch","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","requestAnimationFrame","scrollToSelected","queryTextDifferenceOfSavedValue","needFocusToRefreshButton","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","_extends","e","effects","nextState","preventDefault","push","concat","prevProps","fixValueChange","nextTextValue","loading","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":[]}
|
package/internal/InternalTextareaWithLayout/InternalTextareaWithLayout/InternalTextareaWithLayout.js
CHANGED
|
@@ -196,6 +196,10 @@ export var InternalTextareaWithLayout = rootNode(_class = (_InternalTextareaWith
|
|
|
196
196
|
var _this$wrappedComponen5;
|
|
197
197
|
(_this$wrappedComponen5 = this.wrappedComponentRef.current) == null || _this$wrappedComponen5.selectAll();
|
|
198
198
|
};
|
|
199
|
+
_proto.getNode = function getNode() {
|
|
200
|
+
var _this$wrappedComponen6;
|
|
201
|
+
return (_this$wrappedComponen6 = this.wrappedComponentRef.current) == null ? void 0 : _this$wrappedComponen6.getNode();
|
|
202
|
+
};
|
|
199
203
|
_proto.render = function render() {
|
|
200
204
|
var _this2 = this;
|
|
201
205
|
return /*#__PURE__*/React.createElement(ThemeContext.Consumer, null, function (theme) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","InputLayout","DEFAULT_WIDTH","Textarea","styles","textareaStyles","cx","ThemeContext","ThemeFactory","getRootNode","rootNode","inputStyles","createPropsGetter","isTestEnv","calculateClearCrossShowedState","InputDataTids","ClearCrossIcon","InternalTextareaWithLayout","_class","_InternalTextareaWithLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","wrappedComponentRef","createRef","getProps","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","showClearIcon","notEmptyValue","Boolean","value","state","clearCrossShowed","handleClearInput","current","clear","focus","onValueChange","getRightIcon","_this$props","size","rightIcon","createElement","clearCross","onClick","handleMouseEnter","setState","handleMouseOut","renderLayout","_cx","labelProps","className","contentWrapper","textarea","theme","getTextareaSizeClassName","getRootSizeClassName","warning","error","borderless","style","width","minWidth","position","onMouseEnter","onMouseLeave","handleLayoutClick","leftIcon","context","tag","renderTextarea","_this$props2","textareaProps","_objectWithoutPropertiesLoose","_excluded","Provider","preparedTheme","_extends","spellCheck","ref","onFocus","handleFocus","onBlur","handleBlur","_this$wrappedComponen","event","_getRootNode","contains","relatedTarget","_inheritsLoose","_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","_createClass","key","get","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","InputLayout","DEFAULT_WIDTH","Textarea","styles","textareaStyles","cx","ThemeContext","ThemeFactory","getRootNode","rootNode","inputStyles","createPropsGetter","isTestEnv","calculateClearCrossShowedState","InputDataTids","ClearCrossIcon","InternalTextareaWithLayout","_class","_InternalTextareaWithLayout","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","wrappedComponentRef","createRef","getProps","defaultProps","getClearCrossShowed","_ref","focused","hovered","props","disabled","showClearIcon","notEmptyValue","Boolean","value","state","clearCrossShowed","handleClearInput","current","clear","focus","onValueChange","getRightIcon","_this$props","size","rightIcon","createElement","clearCross","onClick","handleMouseEnter","setState","handleMouseOut","renderLayout","_cx","labelProps","className","contentWrapper","textarea","theme","getTextareaSizeClassName","getRootSizeClassName","warning","error","borderless","style","width","minWidth","position","onMouseEnter","onMouseLeave","handleLayoutClick","leftIcon","context","tag","renderTextarea","_this$props2","textareaProps","_objectWithoutPropertiesLoose","_excluded","Provider","preparedTheme","_extends","spellCheck","ref","onFocus","handleFocus","onBlur","handleBlur","_this$wrappedComponen","event","_getRootNode","contains","relatedTarget","_inheritsLoose","_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","_createClass","key","get","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":[]}
|
|
@@ -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;
|