@skbkontur/react-ui 5.0.3 → 5.0.4
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 +11 -0
- package/cjs/components/Button/Button.js +0 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +2 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js +19 -0
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js.map +1 -1
- package/components/Button/Button/Button.js +0 -2
- package/components/Button/Button/Button.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js +46 -0
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.3...@skbkontur/react-ui@5.0.4) (2024-12-04)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **TokenInput:** forward prop `size` to menu items ([#3553](https://github.com/skbkontur/retail-ui/issues/3553)) ([5a0c990](https://github.com/skbkontur/retail-ui/commit/5a0c990f99478adb12fce10b04f5875406b75e61))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [5.0.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.2...@skbkontur/react-ui@5.0.3) (2024-11-22)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -290,7 +290,6 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
|
|
|
290
290
|
var isFocused = _this.state.focusedByTab || visuallyFocused;
|
|
291
291
|
var isLink = use === 'link';
|
|
292
292
|
|
|
293
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
294
293
|
var _useButtonArrow = (0, _ButtonArrow.useButtonArrow)((0, _extends2.default)({},
|
|
295
294
|
_this.props, { isFocused: Boolean(isFocused) }),
|
|
296
295
|
_this.theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -557,6 +557,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
|
|
|
557
557
|
|
|
558
558
|
|
|
559
559
|
|
|
560
|
+
|
|
560
561
|
|
|
561
562
|
|
|
562
563
|
hasValueInItems = function (items, value) {
|
|
@@ -1220,7 +1221,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
|
|
|
1220
1221
|
* @public
|
|
1221
1222
|
*/;_proto.blur = function blur() {var _this$input9;(_this$input9 = this.input) == null || _this$input9.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.getLabelSizeClassName = function getLabelSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.labelLarge(this.theme);case 'medium':return _TokenInput2.styles.labelMedium(this.theme);case 'small':default:return _TokenInput2.styles.labelSmall(this.theme);}};_proto.getInputSizeClassName = function getInputSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.inputLarge(this.theme);case 'medium':return _TokenInput2.styles.inputMedium(this.theme);case 'small':default:return _TokenInput2.styles.inputSmall(this.theme);}};_proto.renderMain = function renderMain() {var _cx, _cx2, _cx3;if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {throw Error('Missed getItems for type ' + this.type);}var _this$props2 = this.props,maxMenuHeight = _this$props2.maxMenuHeight,error = _this$props2.error,warning = _this$props2.warning,disabled = _this$props2.disabled,renderNotFound = _this$props2.renderNotFound,hideMenuIfEmptyInputValue = _this$props2.hideMenuIfEmptyInputValue,inputMode = _this$props2.inputMode,renderTotalCount = _this$props2.renderTotalCount,totalCount = _this$props2.totalCount,ariaDescribedby = _this$props2['aria-describedby'],ariaLabel = _this$props2['aria-label'];var _this$getProps8 = this.getProps(),selectedItems = _this$getProps8.selectedItems,width = _this$getProps8.width,onMouseEnter = _this$getProps8.onMouseEnter,onMouseLeave = _this$getProps8.onMouseLeave,menuWidth = _this$getProps8.menuWidth,menuAlign = _this$getProps8.menuAlign,renderItem = _this$getProps8.renderItem;var _this$state3 = this.state,activeTokens = _this$state3.activeTokens,inFocus = _this$state3.inFocus,inputValueWidth = _this$state3.inputValueWidth,inputValueHeight = _this$state3.inputValueHeight,inputValue = _this$state3.inputValue,reservedInputValue = _this$state3.reservedInputValue,autocompleteItems = _this$state3.autocompleteItems,loading = _this$state3.loading;var showMenu = this.type !== TokenInputType.WithoutReference && this.isCursorVisible && activeTokens.length === 0 && (inputValue !== '' || !hideMenuIfEmptyInputValue);var theme = this.theme;var inputInlineStyles = { // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости
|
|
1222
1223
|
width: inputValueWidth, height: inputValueHeight, // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее
|
|
1223
|
-
caretColor: this.isCursorVisible ? undefined : 'transparent' };var labelClassName = (0, _Emotion.cx)(_TokenInput2.styles.label(theme), this.getLabelSizeClassName(), (_cx = {}, _cx[_TokenInput2.styles.hovering(this.theme)] = !inFocus && !disabled && !warning && !error, _cx[_TokenInput2.styles.labelDisabled(theme)] = !!disabled, _cx[_TokenInput2.styles.labelFocused(theme)] = !!inFocus, _cx[_TokenInput2.styles.error(theme)] = !!error, _cx[_TokenInput2.styles.warning(theme)] = !!warning, _cx));var inputClassName = (0, _Emotion.cx)(_TokenInput2.styles.input(theme), this.getInputSizeClassName(), (_cx2 = {}, _cx2[_TokenInput2.styles.inputDisabled(theme)] = !!disabled, _cx2));var placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';var inputNode = /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.getProps().size, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_TokenInput2.styles.inputPlaceholderWrapper()] = Boolean(placeholder), _cx3)), hideCloseButton: Boolean(placeholder) }, /*#__PURE__*/_react.default.createElement("textarea", { id: this.textareaId, ref: this.inputRef, value: inputValue, style: inputInlineStyles, spellCheck: false, disabled: disabled, className: inputClassName, placeholder: placeholder, onFocus: this.handleInputFocus, onBlur: this.handleInputBlur, onChange: this.handleChangeInputValue, onKeyDown: this.handleKeyDown, onPaste: this.handleInputPaste, inputMode: inputMode, "aria-label": ariaLabel, "aria-describedby": ariaDescribedby }));return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { "data-tid": TokenInputDataTids.root, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, /*#__PURE__*/_react.default.createElement("label", { ref: this.wrapperRef, style: { width: width }, className: labelClassName, onMouseDown: this.handleWrapperMouseDown, onMouseUp: this.handleWrapperMouseUp, htmlFor: this.textareaId, "aria-controls": this.rootId, "data-tid": TokenInputDataTids.label }, /*#__PURE__*/_react.default.createElement(_TextWidthHelper.TextWidthHelper, { ref: this.textHelperRef, text: inputValue, theme: this.theme, size: this.getProps().size }), this.renderTokensStart(), inputNode, showMenu && /*#__PURE__*/_react.default.createElement(_TokenInputMenu.TokenInputMenu, { popupMenuId: this.rootId, ref: this.tokensInputMenuRef, items: autocompleteItems, loading: loading, opened: showMenu, maxMenuHeight: maxMenuHeight, anchorElement: menuAlign === 'cursor' ? this.input : this.wrapper, renderNotFound: renderNotFound, renderItem: renderItem, onValueChange: this.selectItem, renderAddButton: this.renderAddButton, menuWidth: menuWidth, menuAlign: menuAlign, renderTotalCount: renderTotalCount, totalCount: totalCount }), this.renderTokensEnd(), this.isEditingMode ? /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.props.size }, /*#__PURE__*/_react.default.createElement("span", { className: _TokenInput2.styles.reservedInput(theme) }, reservedInputValue)) : null)));} /**
|
|
1224
|
+
caretColor: this.isCursorVisible ? undefined : 'transparent' };var labelClassName = (0, _Emotion.cx)(_TokenInput2.styles.label(theme), this.getLabelSizeClassName(), (_cx = {}, _cx[_TokenInput2.styles.hovering(this.theme)] = !inFocus && !disabled && !warning && !error, _cx[_TokenInput2.styles.labelDisabled(theme)] = !!disabled, _cx[_TokenInput2.styles.labelFocused(theme)] = !!inFocus, _cx[_TokenInput2.styles.error(theme)] = !!error, _cx[_TokenInput2.styles.warning(theme)] = !!warning, _cx));var inputClassName = (0, _Emotion.cx)(_TokenInput2.styles.input(theme), this.getInputSizeClassName(), (_cx2 = {}, _cx2[_TokenInput2.styles.inputDisabled(theme)] = !!disabled, _cx2));var placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';var inputNode = /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.getProps().size, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_TokenInput2.styles.inputPlaceholderWrapper()] = Boolean(placeholder), _cx3)), hideCloseButton: Boolean(placeholder) }, /*#__PURE__*/_react.default.createElement("textarea", { id: this.textareaId, ref: this.inputRef, value: inputValue, style: inputInlineStyles, spellCheck: false, disabled: disabled, className: inputClassName, placeholder: placeholder, onFocus: this.handleInputFocus, onBlur: this.handleInputBlur, onChange: this.handleChangeInputValue, onKeyDown: this.handleKeyDown, onPaste: this.handleInputPaste, inputMode: inputMode, "aria-label": ariaLabel, "aria-describedby": ariaDescribedby }));return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { "data-tid": TokenInputDataTids.root, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, /*#__PURE__*/_react.default.createElement("label", { ref: this.wrapperRef, style: { width: width }, className: labelClassName, onMouseDown: this.handleWrapperMouseDown, onMouseUp: this.handleWrapperMouseUp, htmlFor: this.textareaId, "aria-controls": this.rootId, "data-tid": TokenInputDataTids.label }, /*#__PURE__*/_react.default.createElement(_TextWidthHelper.TextWidthHelper, { ref: this.textHelperRef, text: inputValue, theme: this.theme, size: this.getProps().size }), this.renderTokensStart(), inputNode, showMenu && /*#__PURE__*/_react.default.createElement(_TokenInputMenu.TokenInputMenu, { popupMenuId: this.rootId, ref: this.tokensInputMenuRef, items: autocompleteItems, loading: loading, opened: showMenu, maxMenuHeight: maxMenuHeight, anchorElement: menuAlign === 'cursor' ? this.input : this.wrapper, renderNotFound: renderNotFound, renderItem: renderItem, onValueChange: this.selectItem, renderAddButton: this.renderAddButton, menuWidth: menuWidth, menuAlign: menuAlign, renderTotalCount: renderTotalCount, totalCount: totalCount, size: this.getProps().size }), this.renderTokensEnd(), this.isEditingMode ? /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.props.size }, /*#__PURE__*/_react.default.createElement("span", { className: _TokenInput2.styles.reservedInput(theme) }, reservedInputValue)) : null)));} /**
|
|
1224
1225
|
* Сбрасывает введенное пользователем значение
|
|
1225
1226
|
* @public
|
|
1226
1227
|
*/;_proto.reset = function reset() {this.dispatch({ type: 'RESET' });};_proto.isCursorVisibleForState = function isCursorVisibleForState(state) {return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);};_proto.updateInputTextWidth = function updateInputTextWidth() {if (this.textHelper) {// в IE текст иногда не помещается в input
|