@skbkontur/react-ui 3.8.4 → 3.9.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 +53 -0
- package/cjs/components/Button/Button.d.ts +66 -10
- package/cjs/components/Button/Button.js +55 -0
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Button/Button.md +42 -30
- package/cjs/components/Checkbox/Checkbox.d.ts +31 -14
- package/cjs/components/Checkbox/Checkbox.js +26 -7
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.md +92 -51
- package/cjs/components/ComboBox/ComboBox.d.ts +6 -0
- package/cjs/components/ComboBox/ComboBox.js +4 -0
- package/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/cjs/components/DateInput/DateInput.d.ts +6 -0
- package/cjs/components/DateInput/DateInput.js +6 -0
- package/cjs/components/DateInput/DateInput.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +6 -0
- package/cjs/components/DatePicker/DatePicker.js +6 -0
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.d.ts +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Hint/Hint.d.ts +38 -0
- package/cjs/components/Hint/Hint.js +39 -1
- package/cjs/components/Hint/Hint.js.map +1 -1
- package/cjs/components/Hint/Hint.md +40 -1
- package/cjs/components/Input/Input.d.ts +6 -2
- package/cjs/components/Input/Input.js +4 -0
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Link/Link.d.ts +28 -10
- package/cjs/components/Link/Link.js +25 -10
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.md +73 -7
- package/cjs/components/Link/Link.mixins.js +2 -1
- package/cjs/components/Link/Link.mixins.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +42 -7
- package/cjs/components/MenuItem/MenuItem.js +30 -0
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/Radio/Radio.d.ts +27 -11
- package/cjs/components/Radio/Radio.js +19 -6
- package/cjs/components/Radio/Radio.js.map +1 -1
- package/cjs/components/Radio/Radio.md +36 -12
- package/cjs/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/cjs/components/RadioGroup/RadioGroup.js.map +1 -1
- package/cjs/components/Select/Select.d.ts +4 -1
- package/cjs/components/Select/Select.js +3 -0
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/SidePage/SidePage.d.ts +5 -1
- package/cjs/components/SidePage/SidePage.js +11 -16
- package/cjs/components/SidePage/SidePage.js.map +1 -1
- package/cjs/components/SidePage/SidePage.styles.d.ts +5 -2
- package/cjs/components/SidePage/SidePage.styles.js +52 -35
- package/cjs/components/SidePage/SidePage.styles.js.map +1 -1
- package/cjs/components/SidePage/SidePageFooter.js +1 -1
- package/cjs/components/SidePage/SidePageFooter.js.map +1 -1
- package/cjs/components/SidePage/SidePageHeader.js +1 -1
- package/cjs/components/SidePage/SidePageHeader.js.map +1 -1
- package/cjs/components/Tabs/Tab.d.ts +2 -2
- package/cjs/components/Tabs/Tab.js.map +1 -1
- package/cjs/components/Textarea/Textarea.d.ts +6 -2
- package/cjs/components/Textarea/Textarea.js +9 -2
- package/cjs/components/Textarea/Textarea.js.map +1 -1
- package/cjs/components/Textarea/Textarea.styles.d.ts +1 -0
- package/cjs/components/Textarea/Textarea.styles.js +22 -19
- package/cjs/components/Textarea/Textarea.styles.js.map +1 -1
- package/cjs/components/Toggle/Toggle.d.ts +2 -2
- package/cjs/components/Toggle/Toggle.js.map +1 -1
- package/cjs/components/Token/Token.d.ts +6 -0
- package/cjs/components/Token/Token.js +6 -0
- package/cjs/components/Token/Token.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.d.ts +6 -0
- package/cjs/components/TokenInput/TokenInput.js +23 -17
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/Tooltip/Tooltip.d.ts +3 -2
- package/cjs/components/Tooltip/Tooltip.js +3 -1
- package/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/cjs/internal/Calendar/Calendar.js +1 -1
- package/cjs/internal/Calendar/Calendar.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +6 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js +6 -0
- package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +6 -0
- package/cjs/internal/CustomComboBox/CustomComboBox.js +11 -9
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js +2 -2
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/Popup/Popup.d.ts +13 -0
- package/cjs/internal/Popup/Popup.js +34 -6
- package/cjs/internal/Popup/Popup.js.map +1 -1
- package/cjs/internal/Popup/PopupHelper.js +1 -0
- package/cjs/internal/Popup/PopupHelper.js.map +1 -1
- package/cjs/internal/PopupMenu/PopupMenu.d.ts +0 -1
- package/cjs/internal/PopupMenu/PopupMenu.js +1 -2
- package/cjs/internal/PopupMenu/PopupMenu.js.map +1 -1
- package/cjs/lib/forwardRefAndName.d.ts +5 -0
- package/cjs/lib/forwardRefAndName.js +23 -0
- package/cjs/lib/forwardRefAndName.js.map +1 -0
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Button/Button.d.ts +66 -10
- package/components/Button/Button.md +42 -30
- package/components/Checkbox/Checkbox/Checkbox.js +4 -6
- package/components/Checkbox/Checkbox/Checkbox.js.map +1 -1
- package/components/Checkbox/Checkbox.d.ts +31 -14
- package/components/Checkbox/Checkbox.md +92 -51
- package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
- package/components/ComboBox/ComboBox.d.ts +6 -0
- package/components/DateInput/DateInput/DateInput.js.map +1 -1
- package/components/DateInput/DateInput.d.ts +6 -0
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +6 -0
- package/components/Dropdown/Dropdown/Dropdown.js.map +1 -1
- package/components/Dropdown/Dropdown.d.ts +2 -2
- package/components/Hint/Hint/Hint.js +4 -0
- package/components/Hint/Hint/Hint.js.map +1 -1
- package/components/Hint/Hint.d.ts +38 -0
- package/components/Hint/Hint.md +40 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.d.ts +6 -2
- package/components/Link/Link/Link.js +5 -12
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.d.ts +28 -10
- package/components/Link/Link.md +73 -7
- package/components/Link/Link.mixins/Link.mixins.js +1 -1
- package/components/Link/Link.mixins/Link.mixins.js.map +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +42 -7
- package/components/Radio/Radio/Radio.js +6 -5
- package/components/Radio/Radio/Radio.js.map +1 -1
- package/components/Radio/Radio.d.ts +27 -11
- package/components/Radio/Radio.md +36 -12
- package/components/RadioGroup/RadioGroup/RadioGroup.js.map +1 -1
- package/components/RadioGroup/RadioGroup.d.ts +2 -2
- package/components/Select/Select/Select.js.map +1 -1
- package/components/Select/Select.d.ts +4 -1
- package/components/SidePage/SidePage/SidePage.js +16 -28
- package/components/SidePage/SidePage/SidePage.js.map +1 -1
- package/components/SidePage/SidePage.d.ts +5 -1
- package/components/SidePage/SidePage.styles/SidePage.styles.js +39 -30
- package/components/SidePage/SidePage.styles/SidePage.styles.js.map +1 -1
- package/components/SidePage/SidePage.styles.d.ts +5 -2
- package/components/SidePage/SidePageFooter/SidePageFooter.js +1 -0
- package/components/SidePage/SidePageFooter/SidePageFooter.js.map +1 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js +2 -1
- package/components/SidePage/SidePageHeader/SidePageHeader.js.map +1 -1
- package/components/Tabs/Tab/Tab.js.map +1 -1
- package/components/Tabs/Tab.d.ts +2 -2
- package/components/Textarea/Textarea/Textarea.js +5 -3
- package/components/Textarea/Textarea/Textarea.js.map +1 -1
- package/components/Textarea/Textarea.d.ts +6 -2
- package/components/Textarea/Textarea.styles/Textarea.styles.js +12 -9
- package/components/Textarea/Textarea.styles/Textarea.styles.js.map +1 -1
- package/components/Textarea/Textarea.styles.d.ts +1 -0
- package/components/Toggle/Toggle/Toggle.js.map +1 -1
- package/components/Toggle/Toggle.d.ts +2 -2
- package/components/Token/Token/Token.js.map +1 -1
- package/components/Token/Token.d.ts +6 -0
- package/components/TokenInput/TokenInput/TokenInput.js +30 -19
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInput.d.ts +6 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +2 -2
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/Tooltip/Tooltip/Tooltip.js +2 -1
- package/components/Tooltip/Tooltip/Tooltip.js.map +1 -1
- package/components/Tooltip/Tooltip.d.ts +3 -2
- package/internal/Calendar/Calendar/Calendar.js +2 -1
- package/internal/Calendar/Calendar/Calendar.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -2
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
- package/internal/CustomComboBox/ComboBoxView.d.ts +6 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +5 -12
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox.d.ts +6 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/Popup/Popup/Popup.js +15 -6
- package/internal/Popup/Popup/Popup.js.map +1 -1
- package/internal/Popup/Popup.d.ts +13 -0
- package/internal/Popup/PopupHelper/PopupHelper.js +2 -1
- package/internal/Popup/PopupHelper/PopupHelper.js.map +1 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js +0 -1
- package/internal/PopupMenu/PopupMenu/PopupMenu.js.map +1 -1
- package/internal/PopupMenu/PopupMenu.d.ts +0 -1
- package/lib/forwardRefAndName/forwardRefAndName.js +11 -0
- package/lib/forwardRefAndName/forwardRefAndName.js.map +1 -0
- package/lib/forwardRefAndName/package.json +6 -0
- package/lib/forwardRefAndName.d.ts +5 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","state","polyfillPlaceholder","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","rows","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","disabled","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /** Ошибка */\n error?: boolean;\n /** Предупреждение */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = isBrowser ? new MutationObserver(this.reflowCounter) : null;\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 if (\n this.props.autoResize &&\n (this.props.rows !== prevProps.rows ||\n this.props.maxRows !== prevProps.maxRows ||\n this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (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 => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(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 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 ...textareaProps\n } = props;\n\n const { isCounterVisible } = this.state;\n\n const rootProps = {\n style: {\n width,\n },\n };\n\n const textareaClassNames = cx({\n [styles.textarea(this.theme)]: true,\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 };\n\n let placeholderPolyfill = null;\n\n if (this.state.polyfillPlaceholder && !textareaProps.value) {\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 help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\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 >\n {this.props.children}\n </textarea>\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 (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: 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, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\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"]}
|
|
1
|
+
{"version":3,"sources":["Textarea.tsx"],"names":["DEFAULT_WIDTH","AUTORESIZE_THROTTLE_DEFAULT_WAIT","Textarea","state","polyfillPlaceholder","isCounterVisible","reflowCounter","counter","reflow","theme","selectAllId","node","fakeNode","layoutEvents","textareaObserver","isBrowser","MutationObserver","setSelectionRange","start","end","Error","document","activeElement","focus","selectAll","value","length","delaySelectAll","cancelDelayedSelectAll","raf","cancel","renderMain","props","width","error","warning","autoResize","resize","onCut","onPaste","maxRows","onFocus","selectAllOnFocus","placeholder","onValueChange","showLengthCounter","lengthCounter","counterHelp","extraRow","disableAnimations","disabled","textareaProps","rootProps","style","textareaClassNames","styles","textarea","isAnimationsDisabled","textareaStyle","placeholderPolyfill","fakeTextarea","fakeProps","defaultValue","className","fake","readOnly","refFake","maxLength","handleCloseCounterHelp","refCounter","root","undefined","ref","handleChange","handleCut","handlePaste","handleFocus","handleKeyDown","children","setState","e","toString","isBlockEnter","preventDefault","onKeyDown","fieldIsEmpty","target","onChange","element","autoResizeHandler","rows","minRows","parseInt","height","exceededMaxHeight","overflowY","getAutoResizeThrottleWait","event","isIE11","componentDidMount","LayoutEvents","addListener","observe","attributes","componentWillUnmount","remove","disconnect","componentDidUpdate","prevProps","render","blur","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","oneOfType","string","number","id","name","title","spellCheck","role","tabIndex","func","onMouseEnter","onMouseLeave","onMouseOver","onMouseMove","onMouseOut","onMouseUp","onMouseDown","onClick","onDoubleClick","onKeyPress","onKeyUp","onInput","onBlur","onScroll","onWheel","onCopy","defaultProps","isTestEnv"],"mappings":"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","sourcesContent":["import React, { ReactNode } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport raf from 'raf';\n\nimport { isKeyEnter } from '../../lib/events/keyboard/identifiers';\nimport { polyfillPlaceholder } from '../../lib/polyfillPlaceholder';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { Nullable, Override } from '../../typings/utility-types';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ResizeDetector } from '../../internal/ResizeDetector';\nimport { isBrowser, isIE11 } from '../../lib/client';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { getTextAreaHeight } from './TextareaHelpers';\nimport { styles } from './Textarea.styles';\nimport { TextareaCounter, TextareaCounterRef } from './TextareaCounter';\n\nconst DEFAULT_WIDTH = 250;\nconst AUTORESIZE_THROTTLE_DEFAULT_WAIT = 100;\n\nexport interface TextareaProps\n extends CommonProps,\n Override<\n React.TextareaHTMLAttributes<HTMLTextAreaElement>,\n {\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n /** Не активное состояние */\n disabled?: boolean;\n\n /**\n * Атоматический ресайз\n * в зависимости от содержимого\n */\n autoResize?: boolean;\n /**\n * Число строк\n */\n rows: number;\n /**\n * Максимальное число строк при\n * автоматическом ресайзе\n */\n maxRows: string | number;\n\n /**\n * Стандартный ресайз\n * Попадает в `style`\n */\n resize?: React.CSSProperties['resize'];\n\n /**\n * Ширина\n */\n width?: React.CSSProperties['width'];\n\n /**\n * Вызывается при изменении `value`\n */\n onValueChange?: (value: string) => void;\n\n /** Выделение значения при фокусе */\n selectAllOnFocus?: boolean;\n\n /** Показывать счетчик символов */\n showLengthCounter?: boolean;\n\n /** Допустимое количество символов в поле. Отображается в счетчике.\n * Если не указано, равно `maxLength`\n */\n lengthCounter?: number;\n\n /** Подсказка к счетчику символов.\n *\n * По умолчанию - тултип с содежимым из пропа, если передан`ReactNode`.\n *\n * Передав функцию, можно переопределить подсказку целиком, вместе с иконкой. Например,\n *\n * ```\n * counterHelp={() => <Tooltip render={...}><HelpIcon /></Tooltip>}\n * ```\n * */\n counterHelp?: ReactNode | (() => ReactNode);\n\n /** Добавлять дополнительную свободную строку при авто-ресайзе.\n * @see https://guides.kontur.ru/components/textarea/#04\n * */\n extraRow: boolean;\n\n /** Отключать анимацию при авто-ресайзе.\n * Автоматически отключается когда в `extraRow` передан `false`.\n */\n disableAnimations: boolean;\n }\n > {}\n\nexport interface TextareaState {\n polyfillPlaceholder: boolean;\n isCounterVisible: boolean;\n}\n\n/**\n * Компонент для ввода многострочного текста.\n *\n * Принимает все атрибуты `React.TextareaHTMLAttributes<HTMLTextAreaElement>`\n *\n * ** `className` и `style` игнорируются**\n */\nexport class Textarea extends React.Component<TextareaProps, TextareaState> {\n public static __KONTUR_REACT_UI__ = 'Textarea';\n\n public static propTypes = {\n error: PropTypes.bool,\n warning: PropTypes.bool,\n disabled: PropTypes.bool,\n\n autoResize: PropTypes.bool,\n extraRow: PropTypes.bool,\n disableAnimations: PropTypes.bool,\n maxRows: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n resize: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n id: PropTypes.string,\n name: PropTypes.string,\n title: PropTypes.string,\n spellCheck: PropTypes.bool,\n role: PropTypes.string,\n maxLength: PropTypes.number,\n tabIndex: PropTypes.number,\n rows: PropTypes.number,\n placeholder: PropTypes.string,\n\n value: PropTypes.string,\n defaultValue: PropTypes.string,\n onValueChange: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n\n onMouseUp: PropTypes.func,\n onMouseDown: PropTypes.func,\n onClick: PropTypes.func,\n onDoubleClick: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n onKeyPress: PropTypes.func,\n onKeyUp: PropTypes.func,\n onInput: PropTypes.func,\n\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n\n onScroll: PropTypes.func,\n onWheel: PropTypes.func,\n\n onCut: PropTypes.func,\n onPaste: PropTypes.func,\n onCopy: PropTypes.func,\n };\n\n public static defaultProps = {\n rows: 3,\n maxRows: 15,\n extraRow: true,\n disableAnimations: isTestEnv,\n };\n\n public state = {\n polyfillPlaceholder,\n isCounterVisible: false,\n };\n private reflowCounter = () => {\n if (this.counter) {\n this.counter.reflow();\n }\n };\n\n private theme!: Theme;\n private selectAllId: number | null = null;\n private node: Nullable<HTMLTextAreaElement>;\n private fakeNode: Nullable<HTMLTextAreaElement>;\n private counter: Nullable<TextareaCounterRef>;\n private layoutEvents: Nullable<{ remove: () => void }>;\n private textareaObserver = isBrowser ? new MutationObserver(this.reflowCounter) : null;\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 if (\n this.props.autoResize &&\n (this.props.rows !== prevProps.rows ||\n this.props.maxRows !== prevProps.maxRows ||\n this.props.value !== prevProps.value)\n ) {\n this.autoResize();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <CommonWrapper {...this.props}>{this.renderMain}</CommonWrapper>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.node) {\n this.node.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.node) {\n this.node.blur();\n }\n }\n\n /**\n * @public\n * @param {number} start\n * @param {number} end\n */\n public setSelectionRange = (start: number, end: number) => {\n if (!this.node) {\n throw new Error('Cannot call \"setSelectionRange\" on unmounted Input');\n }\n\n if (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 => (this.selectAllId = raf(this.selectAll));\n\n private cancelDelayedSelectAll = (): void => {\n if (this.selectAllId) {\n raf.cancel(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 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({\n [styles.textarea(this.theme)]: true,\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 };\n\n let placeholderPolyfill = null;\n\n if (this.state.polyfillPlaceholder && !textareaProps.value) {\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 help={counterHelp}\n value={textareaProps.value}\n length={textareaProps.maxLength ?? lengthCounter ?? 0}\n onCloseHelp={this.handleCloseCounterHelp}\n ref={this.refCounter}\n />\n );\n\n return (\n <RenderLayer\n onFocusOutside={this.handleCloseCounterHelp}\n onClickOutside={this.handleCloseCounterHelp}\n active={this.state.isCounterVisible}\n >\n <label {...rootProps} className={styles.root(this.theme)}>\n {placeholderPolyfill}\n <ResizeDetector onResize={this.reflowCounter}>\n <textarea\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 </textarea>\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 (polyfillPlaceholder) {\n const fieldIsEmpty = e.target.value === '';\n\n if (this.state.polyfillPlaceholder !== fieldIsEmpty) {\n this.setState({ polyfillPlaceholder: 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, extraRow } = this.props;\n if (rows === undefined || maxRows === undefined) {\n return;\n }\n const { height, exceededMaxHeight } = getTextAreaHeight({\n node: fakeNode,\n minRows: typeof rows === 'number' ? rows : parseInt(rows, 10),\n maxRows: typeof maxRows === 'number' ? maxRows : parseInt(maxRows, 10),\n extraRow,\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");exports.__esModule = true;exports.styles = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
var styles = (0, _Emotion.memoizeStyle)({
|
|
@@ -12,7 +12,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
12
12
|
},
|
|
13
13
|
|
|
14
14
|
textarea: function textarea(t) {
|
|
15
|
-
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n -webkit-appearance: none;\n background-clip: padding-box;\n background: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ", ";\n min-height: ", ";\n outline: none;\n padding: ", " ", ";\n transition: height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ", ";\n white-space: pre-wrap;\n\n &:focus {\n border-color: ", ";\n box-shadow: 0 0 0 ", " ", ";\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ", ";\n }\n }\n
|
|
15
|
+
return (0, _Emotion.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteralLoose2.default)(["\n -webkit-appearance: none;\n background-clip: padding-box;\n background: ", ";\n border: ", " solid ", ";\n border-top-color: ", ";\n box-shadow: ", ";\n box-sizing: border-box;\n color: ", ";\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ", ";\n min-height: ", ";\n outline: none;\n padding: ", " ", ";\n transition: height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ", ";\n white-space: pre-wrap;\n\n &:focus {\n border-color: ", ";\n box-shadow: 0 0 0 ", " ", ";\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ", ";\n }\n }\n\n &::placeholder {\n color: ", ";\n }\n\n &:-moz-placeholder {\n color: ", ";\n }\n\n &::-moz-placeholder {\n color: ", ";\n }\n "])),
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
t.textareaBg,
|
|
@@ -46,21 +46,11 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
t.textareaTextColorDisabled,
|
|
50
|
-
t.textareaDisabledBg,
|
|
51
|
-
t.textareaDisabledBorderColor,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
49
|
|
|
56
50
|
t.textareaPlaceholderColor,
|
|
57
51
|
|
|
58
52
|
|
|
59
53
|
|
|
60
|
-
t.textareaPlaceholderColorDisabled,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
54
|
t.textareaPlaceholderColor,
|
|
65
55
|
|
|
66
56
|
|
|
@@ -92,10 +82,23 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
92
82
|
t.textareaOutlineWidth, t.textareaBorderColorWarning);
|
|
93
83
|
|
|
94
84
|
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
disabled: function disabled(t) {
|
|
88
|
+
return (0, _Emotion.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n background: ", ";\n border-color: ", ";\n box-shadow: none;\n\n &::placeholder {\n color: ", ";\n }\n "])),
|
|
89
|
+
t.textareaTextColorDisabled,
|
|
90
|
+
t.textareaDisabledBg,
|
|
91
|
+
t.textareaDisabledBorderColor,
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
t.textareaPlaceholderColorDisabled);
|
|
96
|
+
|
|
97
|
+
|
|
95
98
|
},
|
|
96
99
|
|
|
97
100
|
fake: function fake() {
|
|
98
|
-
return (0, _Emotion.css)(
|
|
101
|
+
return (0, _Emotion.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteralLoose2.default)(["\n height: 0;\n left: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n "])));
|
|
99
102
|
|
|
100
103
|
|
|
101
104
|
|
|
@@ -106,7 +109,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
106
109
|
},
|
|
107
110
|
|
|
108
111
|
placeholder: function placeholder() {
|
|
109
|
-
return (0, _Emotion.css)(
|
|
112
|
+
return (0, _Emotion.css)(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteralLoose2.default)(["\n -ms-user-select: none;\n color: #aaa;\n left: 12px;\n overflow: hidden;\n position: absolute;\n right: 12px;\n top: 9px;\n user-select: none;\n z-index: 3;\n "])));
|
|
110
113
|
|
|
111
114
|
|
|
112
115
|
|
|
@@ -120,7 +123,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
120
123
|
},
|
|
121
124
|
|
|
122
125
|
counterContainer: function counterContainer(t) {
|
|
123
|
-
return (0, _Emotion.css)(
|
|
126
|
+
return (0, _Emotion.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n top: 0;\n border: ", " solid transparent;\n box-sizing: content-box;\n "])),
|
|
124
127
|
|
|
125
128
|
|
|
126
129
|
t.textareaBorderWidth);
|
|
@@ -129,7 +132,7 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
129
132
|
},
|
|
130
133
|
|
|
131
134
|
counter: function counter(t) {
|
|
132
|
-
return (0, _Emotion.css)(
|
|
135
|
+
return (0, _Emotion.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteralLoose2.default)(["\n position: absolute;\n z-index: 3;\n text-align: right;\n background: ", ";\n color: ", ";\n border-radius: 2px;\n right: ", ";\n bottom: ", ";\n "])),
|
|
133
136
|
|
|
134
137
|
|
|
135
138
|
|
|
@@ -142,20 +145,20 @@ var styles = (0, _Emotion.memoizeStyle)({
|
|
|
142
145
|
},
|
|
143
146
|
|
|
144
147
|
counterError: function counterError(t) {
|
|
145
|
-
return (0, _Emotion.css)(
|
|
148
|
+
return (0, _Emotion.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
|
|
146
149
|
t.textareaCounterErrorColor);
|
|
147
150
|
|
|
148
151
|
},
|
|
149
152
|
|
|
150
153
|
counterHelp: function counterHelp() {
|
|
151
|
-
return (0, _Emotion.css)(
|
|
154
|
+
return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n margin-left: 4px;\n cursor: pointer;\n "])));
|
|
152
155
|
|
|
153
156
|
|
|
154
157
|
|
|
155
158
|
},
|
|
156
159
|
|
|
157
160
|
disableAnimations: function disableAnimations() {
|
|
158
|
-
return (0, _Emotion.css)(
|
|
161
|
+
return (0, _Emotion.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteralLoose2.default)(["\n transition: none;\n "])));
|
|
159
162
|
|
|
160
163
|
|
|
161
164
|
} });exports.styles = styles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Textarea.styles.ts"],"names":["styles","root","t","css","textareaFontSize","textareaLineHeight","textarea","textareaBg","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","textareaMinHeight","textareaPaddingY","textareaPaddingX","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","
|
|
1
|
+
{"version":3,"sources":["Textarea.styles.ts"],"names":["styles","root","t","css","textareaFontSize","textareaLineHeight","textarea","textareaBg","textareaBorderWidth","textareaBorderColor","textareaBorderTopColor","textareaShadow","textareaColor","textareaWidth","textareaMinHeight","textareaPaddingY","textareaPaddingX","textareaBorderRadius","textareaBorderColorFocus","textareaOutlineWidth","textareaPlaceholderColorLight","textareaPlaceholderColor","error","textareaBorderColorError","warning","textareaBorderColorWarning","disabled","textareaTextColorDisabled","textareaDisabledBg","textareaDisabledBorderColor","textareaPlaceholderColorDisabled","fake","placeholder","counterContainer","counter","textareaCounterBg","textareaCounterColor","counterError","textareaCounterErrorColor","counterHelp","disableAnimations"],"mappings":"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","sourcesContent":["import { css, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n display: inline-block;\n font-size: ${t.textareaFontSize};\n line-height: ${t.textareaLineHeight};\n position: relative;\n `;\n },\n\n textarea(t: Theme) {\n return css`\n -webkit-appearance: none;\n background-clip: padding-box;\n background: ${t.textareaBg};\n border: ${t.textareaBorderWidth} solid ${t.textareaBorderColor};\n border-top-color: ${t.textareaBorderTopColor};\n box-shadow: ${t.textareaShadow};\n box-sizing: border-box;\n color: ${t.textareaColor};\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n max-width: 100%;\n min-width: ${t.textareaWidth};\n min-height: ${t.textareaMinHeight};\n outline: none;\n padding: ${t.textareaPaddingY} ${t.textareaPaddingX};\n transition: height 0.2s ease-out;\n vertical-align: middle;\n width: 100%;\n border-radius: ${t.textareaBorderRadius};\n white-space: pre-wrap;\n\n &:focus {\n border-color: ${t.textareaBorderColorFocus};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorFocus};\n position: relative;\n z-index: 2;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorLight};\n }\n }\n\n &::placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &:-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n\n &::-moz-placeholder {\n color: ${t.textareaPlaceholderColor};\n }\n `;\n },\n\n error(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaBorderWidth} ${t.textareaBorderColorError};\n\n &:focus {\n border-color: ${t.textareaBorderColorError};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorError};\n }\n `;\n },\n\n warning(t: Theme) {\n return css`\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n\n &:focus {\n border-color: ${t.textareaBorderColorWarning};\n box-shadow: 0 0 0 ${t.textareaOutlineWidth} ${t.textareaBorderColorWarning};\n }\n `;\n },\n\n disabled(t: Theme) {\n return css`\n color: ${t.textareaTextColorDisabled};\n background: ${t.textareaDisabledBg};\n border-color: ${t.textareaDisabledBorderColor};\n box-shadow: none;\n\n &::placeholder {\n color: ${t.textareaPlaceholderColorDisabled};\n }\n `;\n },\n\n fake() {\n return css`\n height: 0;\n left: 0;\n position: absolute;\n top: 0;\n visibility: hidden;\n width: 100%;\n `;\n },\n\n placeholder() {\n return css`\n -ms-user-select: none;\n color: #aaa;\n left: 12px;\n overflow: hidden;\n position: absolute;\n right: 12px;\n top: 9px;\n user-select: none;\n z-index: 3;\n `;\n },\n\n counterContainer(t: Theme) {\n return css`\n position: absolute;\n top: 0;\n border: ${t.textareaBorderWidth} solid transparent;\n box-sizing: content-box;\n `;\n },\n\n counter(t: Theme) {\n return css`\n position: absolute;\n z-index: 3;\n text-align: right;\n background: ${t.textareaCounterBg};\n color: ${t.textareaCounterColor};\n border-radius: 2px;\n right: ${t.textareaPaddingX};\n bottom: ${t.textareaPaddingY};\n `;\n },\n\n counterError(t: Theme) {\n return css`\n color: ${t.textareaCounterErrorColor};\n `;\n },\n\n counterHelp() {\n return css`\n margin-left: 4px;\n cursor: pointer;\n `;\n },\n\n disableAnimations() {\n return css`\n transition: none;\n `;\n },\n});\n"]}
|
|
@@ -30,12 +30,12 @@ export interface ToggleProps extends CommonProps {
|
|
|
30
30
|
*/
|
|
31
31
|
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Cостояние валидации при предупреждении.
|
|
34
34
|
* @default false
|
|
35
35
|
*/
|
|
36
36
|
warning?: boolean;
|
|
37
37
|
/**
|
|
38
|
-
*
|
|
38
|
+
* Cостояние валидации при ошибке.
|
|
39
39
|
* @default false
|
|
40
40
|
*/
|
|
41
41
|
error?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Toggle.tsx"],"names":["colorWarningShown","Toggle","props","theme","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","handleBlur","onBlur","state","defaultChecked","componentDidMount","autoFocus","render","renderMain","children","captionPosition","warning","error","loading","color","id","disabled","containerClassNames","styles","container","containerDisabled","globalClasses","containerLoading","labelClassNames","root","rootLeft","caption","captionClass","captionLeft","disabledCaption","outline","isWarning","isError","focused","wrapper","backgroundColor","boxShadow","undefined","activeBackground","background","activeBackgroundLoading","disabledBackground","handle","handleDisabled","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nlet colorWarningShown = false;\n\nexport interface ToggleProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Положение `children` относительно переключателя.\n * @default 'right'\n */\n captionPosition: 'left' | 'right';\n /**\n * Состояние `тогла`, если `true` - `тогл` будет включён, иначе выключен.\n * @default false\n */\n checked?: boolean;\n /**\n * Делает `тогл` включенным по умолчанию.\n */\n defaultChecked?: boolean;\n /**\n * Отключает `тогл`.\n */\n disabled?: boolean;\n /**\n * Событие вызывающееся, когда значение `тогла` меняется, передаёт текущее значение тогла в переданную функцию.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * Событие вызывающееся при клике на `тогл`.\n */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n /**\n * Добавляет оранжевую обводку вокруг переключателя.\n * @default false\n */\n warning?: boolean;\n /**\n * Добавляет красную обводку вокруг переключателя.\n * @default false\n */\n error?: boolean;\n /**\n * Добавляет стили для состояния `loading` и отключает `тогл`.\n */\n loading?: boolean;\n /**\n * Если true, выставляет фокус на `тогле` после загрузки страницы.\n */\n autoFocus?: boolean;\n /**\n * Событие вызывающееся, когда `тогл` получает фокус.\n */\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * Событие вызывающееся, когда `тогл` теряет фокус.\n */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * @deprecated используйте переменную темы `toggleBgChecked` вместо этого пропа.\n */\n color?: React.CSSProperties['color'];\n /**\n * HTML-атрибут `id` для передачи во внутренний `<input />`.\n */\n id?: string;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\n/**\n * _Примечание:_ под тоглом понимается полный компонент т.е. надпись + переключатель, а не просто переключатель.\n */\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n\n public static propTypes = {\n checked: PropTypes.bool,\n defaultChecked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n loading: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n color(props: ToggleProps) {\n if (props.color && !colorWarningShown) {\n warning(false, `[Toggle]: prop 'color' is deprecated. Please, use theme variable 'toggleBgChecked' instead. `);\n colorWarningShown = true;\n }\n },\n };\n\n public static defaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n };\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { children, captionPosition, warning, error, loading, color, id } = this.props;\n const disabled = this.props.disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(styles.container(this.theme), {\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(styles.root(this.theme), {\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(styles.caption(this.theme), {\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper {...this.props}>\n <label className={labelClassNames}>\n <div\n className={cx(styles.outline(this.theme), {\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <span className={cx(styles.wrapper(this.theme))}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={styles.input(this.theme)}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n />\n <div\n className={containerClassNames}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n >\n <div\n className={cx(styles.activeBackground(), globalClasses.background, {\n [styles.activeBackgroundLoading(this.theme)]: loading,\n [styles.disabledBackground(this.theme)]: disabled,\n })}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n />\n </div>\n <div\n className={cx(styles.handle(this.theme), globalClasses.handle, {\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </span>\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({\n focusByTab: false,\n });\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["Toggle.tsx"],"names":["colorWarningShown","Toggle","props","theme","input","focus","keyListener","isTabPressed","inputRef","element","handleChange","event","onValueChange","target","checked","isUncontrolled","setState","onChange","handleFocus","onFocus","focusByTab","handleBlur","onBlur","state","defaultChecked","componentDidMount","autoFocus","render","renderMain","children","captionPosition","warning","error","loading","color","id","disabled","containerClassNames","styles","container","containerDisabled","globalClasses","containerLoading","labelClassNames","root","rootLeft","caption","captionClass","captionLeft","disabledCaption","outline","isWarning","isError","focused","wrapper","backgroundColor","boxShadow","undefined","activeBackground","background","activeBackgroundLoading","disabledBackground","handle","handleDisabled","React","Component","__KONTUR_REACT_UI__","propTypes","PropTypes","bool","func","defaultProps"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport warning from 'warning';\n\nimport { keyListener } from '../../lib/events/keyListener';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, globalClasses } from './Toggle.styles';\n\nlet colorWarningShown = false;\n\nexport interface ToggleProps extends CommonProps {\n children?: React.ReactNode;\n /**\n * Положение `children` относительно переключателя.\n * @default 'right'\n */\n captionPosition: 'left' | 'right';\n /**\n * Состояние `тогла`, если `true` - `тогл` будет включён, иначе выключен.\n * @default false\n */\n checked?: boolean;\n /**\n * Делает `тогл` включенным по умолчанию.\n */\n defaultChecked?: boolean;\n /**\n * Отключает `тогл`.\n */\n disabled?: boolean;\n /**\n * Событие вызывающееся, когда значение `тогла` меняется, передаёт текущее значение тогла в переданную функцию.\n */\n onValueChange?: (value: boolean) => void;\n /**\n * Событие вызывающееся при клике на `тогл`.\n */\n onChange?: React.ChangeEventHandler<HTMLInputElement>;\n /**\n * Cостояние валидации при предупреждении.\n * @default false\n */\n warning?: boolean;\n /**\n * Cостояние валидации при ошибке.\n * @default false\n */\n error?: boolean;\n /**\n * Добавляет стили для состояния `loading` и отключает `тогл`.\n */\n loading?: boolean;\n /**\n * Если true, выставляет фокус на `тогле` после загрузки страницы.\n */\n autoFocus?: boolean;\n /**\n * Событие вызывающееся, когда `тогл` получает фокус.\n */\n onFocus?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * Событие вызывающееся, когда `тогл` теряет фокус.\n */\n onBlur?: React.FocusEventHandler<HTMLInputElement>;\n /**\n * @deprecated используйте переменную темы `toggleBgChecked` вместо этого пропа.\n */\n color?: React.CSSProperties['color'];\n /**\n * HTML-атрибут `id` для передачи во внутренний `<input />`.\n */\n id?: string;\n}\n\nexport interface ToggleState {\n checked?: boolean;\n focusByTab?: boolean;\n}\n\n/**\n * _Примечание:_ под тоглом понимается полный компонент т.е. надпись + переключатель, а не просто переключатель.\n */\nexport class Toggle extends React.Component<ToggleProps, ToggleState> {\n public static __KONTUR_REACT_UI__ = 'Toggle';\n\n public static propTypes = {\n checked: PropTypes.bool,\n defaultChecked: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.bool,\n loading: PropTypes.bool,\n warning: PropTypes.bool,\n onValueChange: PropTypes.func,\n color(props: ToggleProps) {\n if (props.color && !colorWarningShown) {\n warning(false, `[Toggle]: prop 'color' is deprecated. Please, use theme variable 'toggleBgChecked' instead. `);\n colorWarningShown = true;\n }\n },\n };\n\n public static defaultProps = {\n disabled: false,\n loading: false,\n captionPosition: 'right',\n };\n\n private theme!: Theme;\n private input: HTMLInputElement | null = null;\n\n constructor(props: ToggleProps) {\n super(props);\n\n this.state = {\n focusByTab: false,\n checked: props.defaultChecked,\n };\n }\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n }\n\n /**\n * @public\n */\n public focus = () => {\n if (this.input) {\n keyListener.isTabPressed = true;\n this.input.focus();\n }\n };\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { children, captionPosition, warning, error, loading, color, id } = this.props;\n const disabled = this.props.disabled || loading;\n const checked = this.isUncontrolled() ? this.state.checked : this.props.checked;\n\n const containerClassNames = cx(styles.container(this.theme), {\n [styles.containerDisabled(this.theme)]: !!disabled,\n [globalClasses.container]: true,\n [globalClasses.containerDisabled]: !!disabled,\n [globalClasses.containerLoading]: loading,\n });\n\n const labelClassNames = cx(styles.root(this.theme), {\n [styles.rootLeft()]: captionPosition === 'left',\n [styles.disabled()]: !!disabled,\n [globalClasses.disabled]: !!disabled,\n });\n\n let caption = null;\n if (children) {\n const captionClass = cx(styles.caption(this.theme), {\n [styles.captionLeft(this.theme)]: captionPosition === 'left',\n [styles.disabledCaption(this.theme)]: !!disabled,\n });\n caption = <span className={captionClass}>{children}</span>;\n }\n\n return (\n <CommonWrapper {...this.props}>\n <label className={labelClassNames}>\n <div\n className={cx(styles.outline(this.theme), {\n [styles.isWarning(this.theme)]: !!warning,\n [styles.isError(this.theme)]: !!error,\n [styles.focused(this.theme)]: !disabled && !!this.state.focusByTab,\n })}\n >\n <span className={cx(styles.wrapper(this.theme))}>\n <input\n type=\"checkbox\"\n checked={checked}\n onChange={this.handleChange}\n className={styles.input(this.theme)}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n ref={this.inputRef}\n disabled={disabled}\n id={id}\n />\n <div\n className={containerClassNames}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n >\n <div\n className={cx(styles.activeBackground(), globalClasses.background, {\n [styles.activeBackgroundLoading(this.theme)]: loading,\n [styles.disabledBackground(this.theme)]: disabled,\n })}\n style={\n checked && color && !disabled\n ? {\n backgroundColor: color,\n boxShadow: `inset 0 0 0 1px ${color}`,\n }\n : undefined\n }\n />\n </div>\n <div\n className={cx(styles.handle(this.theme), globalClasses.handle, {\n [styles.handleDisabled(this.theme)]: disabled,\n })}\n />\n </span>\n </div>\n {caption}\n </label>\n </CommonWrapper>\n );\n }\n\n private inputRef = (element: HTMLInputElement) => {\n this.input = element;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.checked);\n }\n\n if (this.isUncontrolled()) {\n this.setState({\n checked: event.target.checked,\n });\n }\n\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n\n if (keyListener.isTabPressed) {\n this.setState({ focusByTab: true });\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({\n focusByTab: false,\n });\n };\n\n private isUncontrolled() {\n return this.props.checked === undefined;\n }\n}\n"]}
|
|
@@ -9,7 +9,13 @@ export interface TokenColors {
|
|
|
9
9
|
export interface TokenProps extends CommonProps {
|
|
10
10
|
colors?: TokenColors;
|
|
11
11
|
isActive?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Cостояние валидации при ошибке.
|
|
14
|
+
*/
|
|
12
15
|
error?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Cостояние валидации при предупреждении.
|
|
18
|
+
*/
|
|
13
19
|
warning?: boolean;
|
|
14
20
|
disabled?: boolean;
|
|
15
21
|
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Token.tsx"],"names":["Token","theme","onRemoveClick","event","props","disabled","onRemove","emptyHandler","preventDefault","render","renderMain","children","isActive","colors","error","warning","onClick","onDoubleClick","onMouseEnter","onMouseLeave","onFocus","onBlur","validation","disableClassNames","colorStyles","defaultDisabled","defaultDisabledWarning","defaultDisabledError","tokenClassName","defaultIdle","activeTokenClassName","defaultActive","idle","activeClassName","active","tokenClassNames","styles","token","text","removeIcon","globalClasses","React","Component","__KONTUR_REACT_UI__"],"mappings":"iPAAA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,uC
|
|
1
|
+
{"version":3,"sources":["Token.tsx"],"names":["Token","theme","onRemoveClick","event","props","disabled","onRemove","emptyHandler","preventDefault","render","renderMain","children","isActive","colors","error","warning","onClick","onDoubleClick","onMouseEnter","onMouseLeave","onFocus","onBlur","validation","disableClassNames","colorStyles","defaultDisabled","defaultDisabledWarning","defaultDisabledError","tokenClassName","defaultIdle","activeTokenClassName","defaultActive","idle","activeClassName","active","tokenClassNames","styles","token","text","removeIcon","globalClasses","React","Component","__KONTUR_REACT_UI__"],"mappings":"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","sourcesContent":["import React from 'react';\n\nimport { CrossIcon } from '../../internal/icons/CrossIcon';\nimport { emptyHandler } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { CommonProps, CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { styles, colorStyles, globalClasses } from './Token.styles';\n\nexport type TokenColorName = keyof typeof colorStyles;\n\nexport interface TokenColors {\n idle: TokenColorName;\n active?: TokenColorName;\n}\n\nexport interface TokenProps extends CommonProps {\n colors?: TokenColors;\n isActive?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n disabled?: boolean;\n\n onClick?: React.MouseEventHandler<HTMLDivElement>;\n onDoubleClick?: React.MouseEventHandler<HTMLDivElement>;\n onRemove?: React.MouseEventHandler<HTMLElement>;\n onMouseEnter?: React.MouseEventHandler<HTMLDivElement>;\n onMouseLeave?: React.MouseEventHandler<HTMLDivElement>;\n onFocus?: React.FocusEventHandler<HTMLDivElement>;\n onBlur?: React.FocusEventHandler<HTMLDivElement>;\n}\n\nexport class Token extends React.Component<TokenProps> {\n public static __KONTUR_REACT_UI__ = 'Token';\n\n private theme!: Theme;\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const {\n children,\n isActive,\n colors,\n error,\n warning,\n disabled,\n onClick = emptyHandler,\n onDoubleClick = emptyHandler,\n onMouseEnter = emptyHandler,\n onMouseLeave = emptyHandler,\n onFocus = emptyHandler,\n onBlur = emptyHandler,\n } = this.props;\n\n const theme = this.theme;\n const validation = error ? 'error' : warning ? 'warning' : null;\n const disableClassNames = cx(colorStyles.defaultDisabled(theme), {\n [colorStyles.defaultDisabledWarning(theme)]: warning,\n [colorStyles.defaultDisabledError(theme)]: error,\n });\n\n let tokenClassName = disabled ? disableClassNames : colorStyles.defaultIdle(theme, validation);\n let activeTokenClassName = disabled ? disableClassNames : colorStyles.defaultActive(theme, validation);\n\n if (!disabled && colors) {\n tokenClassName = colorStyles[colors.idle](theme, validation);\n\n const activeClassName = colors.active ? colors.active : colors.idle;\n activeTokenClassName = colorStyles[activeClassName](theme, validation);\n }\n\n const tokenClassNames = cx(styles.token(this.theme), tokenClassName, {\n [activeTokenClassName]: !!isActive,\n [styles.disabled(theme)]: !!disabled,\n });\n\n return (\n <CommonWrapper {...this.props}>\n <div\n className={tokenClassNames}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <span className={styles.text(this.theme)}>{children}</span>\n <span className={cx(styles.removeIcon(this.theme), globalClasses.removeIcon)} onClick={this.onRemoveClick}>\n <CrossIcon />\n </span>\n </div>\n </CommonWrapper>\n );\n }\n\n private onRemoveClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n const { disabled, onRemove = emptyHandler } = this.props;\n\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n onRemove(event);\n };\n}\n"]}
|
|
@@ -48,7 +48,13 @@ export interface TokenInputProps<T> extends CommonProps {
|
|
|
48
48
|
toKey: (item: T) => string | number | undefined;
|
|
49
49
|
placeholder?: string;
|
|
50
50
|
delimiters: string[];
|
|
51
|
+
/**
|
|
52
|
+
* Cостояние валидации при ошибке.
|
|
53
|
+
*/
|
|
51
54
|
error?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Cостояние валидации при предупреждении.
|
|
57
|
+
*/
|
|
52
58
|
warning?: boolean;
|
|
53
59
|
disabled?: boolean;
|
|
54
60
|
width?: string | number;
|