@skbkontur/react-ui 5.0.6 → 5.0.7
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 +12 -0
- package/cjs/components/Link/Link.js +26 -9
- package/cjs/components/Link/Link.js.map +1 -1
- package/cjs/components/Link/Link.styles.d.ts +4 -4
- package/cjs/components/Link/Link.styles.js +4 -5
- package/cjs/components/Link/Link.styles.js.map +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js +1 -1
- package/cjs/internal/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/components/Link/Link/Link.js +25 -1
- package/components/Link/Link/Link.js.map +1 -1
- package/components/Link/Link.styles/Link.styles.js +4 -4
- package/components/Link/Link.styles/Link.styles.js.map +1 -1
- package/components/Link/Link.styles.d.ts +4 -4
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js +2 -1
- package/internal/InternalMaskedInput/InternalMaskedInput/InternalMaskedInput.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
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.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.6...@skbkontur/react-ui@5.0.7) (2025-01-16)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Input:** crash on focus after page translation ([#3572](https://github.com/skbkontur/retail-ui/issues/3572)) ([0093e57](https://github.com/skbkontur/retail-ui/commit/0093e57a0c0ad63d385068d418801fc7a4e18007))
|
|
12
|
+
* **Link:** issue with same colors for different uses ([#3585](https://github.com/skbkontur/retail-ui/issues/3585)) ([2413253](https://github.com/skbkontur/retail-ui/commit/2413253fdf4ae21985f341c8bad5069741ea3e11))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
6
18
|
## [5.0.6](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.5...@skbkontur/react-ui@5.0.6) (2024-12-23)
|
|
7
19
|
|
|
8
20
|
|
|
@@ -179,7 +179,30 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
|
|
|
179
179
|
_react.default.createElement(_LinkIcon.LinkIcon, { hasBothIcons: !!icon && !!rightIcon, icon: rightIcon, loading: loading, position: "right" });
|
|
180
180
|
|
|
181
181
|
var nonInteractive = disabled || loading;
|
|
182
|
-
|
|
182
|
+
var getUseStyles = function getUseStyles() {
|
|
183
|
+
switch (use) {
|
|
184
|
+
case 'default':
|
|
185
|
+
return _Link2.styles.default(_this.theme);
|
|
186
|
+
case 'danger':
|
|
187
|
+
return _Link2.styles.danger(_this.theme);
|
|
188
|
+
case 'success':
|
|
189
|
+
return _Link2.styles.success(_this.theme);
|
|
190
|
+
case 'grayed':
|
|
191
|
+
return _Link2.styles.grayed(_this.theme);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
var getUseLineFocusStyles = function getUseLineFocusStyles() {
|
|
195
|
+
switch (use) {
|
|
196
|
+
case 'default':
|
|
197
|
+
return _Link2.styles.lineFocus(_this.theme);
|
|
198
|
+
case 'danger':
|
|
199
|
+
return _Link2.styles.lineFocusDanger(_this.theme);
|
|
200
|
+
case 'success':
|
|
201
|
+
return _Link2.styles.lineFocusSuccess(_this.theme);
|
|
202
|
+
case 'grayed':
|
|
203
|
+
return _Link2.styles.lineFocusGrayed(_this.theme);
|
|
204
|
+
}
|
|
205
|
+
};
|
|
183
206
|
var rootProps = (0, _extends2.default)({},
|
|
184
207
|
rest, {
|
|
185
208
|
className: (0, _Emotion.cx)((_cx = {}, _cx[
|
|
@@ -187,19 +210,13 @@ Link = exports.Link = (0, _rootNode.rootNode)(_class = (_Link = /*#__PURE__*/fun
|
|
|
187
210
|
(0, _Mixins.resetButton)()] = Root === 'button', _cx[
|
|
188
211
|
_Link2.styles.focus(_this.theme)] = isFocused, _cx[
|
|
189
212
|
_Link2.styles.disabled(_this.theme)] = disabled || loading, _cx[
|
|
190
|
-
|
|
191
|
-
_Link2.styles.useSuccess(_this.theme)] = use === 'success', _cx[
|
|
192
|
-
_Link2.styles.useDanger(_this.theme)] = use === 'danger', _cx[
|
|
193
|
-
_Link2.styles.useGrayed(_this.theme)] = use === 'grayed', _cx[
|
|
213
|
+
getUseStyles()] = true, _cx[
|
|
194
214
|
_Link2.styles.useGrayedFocus(_this.theme)] = use === 'grayed' && focused, _cx[
|
|
195
215
|
_Link2.styles.button(_this.theme)] = !!_button, _cx[
|
|
196
216
|
_Link2.styles.buttonOpened(_this.theme)] = !!_buttonOpened, _cx[
|
|
197
217
|
_Link2.styles.warning(_this.theme)] = warning, _cx[
|
|
198
218
|
_Link2.styles.error(_this.theme)] = error, _cx[
|
|
199
|
-
|
|
200
|
-
_Link2.styles.lineFocusSuccess(_this.theme)] = isFocused && use === 'success', _cx[
|
|
201
|
-
_Link2.styles.lineFocusDanger(_this.theme)] = isFocused && use === 'danger', _cx[
|
|
202
|
-
_Link2.styles.lineFocusGrayed(_this.theme)] = isFocused && use === 'grayed', _cx)
|
|
219
|
+
getUseLineFocusStyles()] = isFocused, _cx)
|
|
203
220
|
),
|
|
204
221
|
onClick: _this.handleClick,
|
|
205
222
|
onFocus: _this.handleFocus,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","rootProps","_extends2","cx","resetButton","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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 }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_Mixins","_keyListener","_ThemeContext","_utils","_CommonWrapper","_Emotion","_rootNode","_createPropsGetter","_ThemeFactory","_getVisualStateDataAttributes","_Link2","_LinkIcon","_excluded","_class","_Link","LINK_DEFAULT_COMPONENT","LinkDataTids","exports","root","Link","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","isExternalLink","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose2","default","arrow","createElement","className","styles","isFocused","leftIconElement","LinkIcon","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends2","cx","resetButton","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","getVisualStateDataAttributes","children","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","event","_this$props2","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","React","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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 }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"6dAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;;;AAGA,IAAAE,OAAA,GAAAF,OAAA;;AAEA,IAAAG,YAAA,GAAAH,OAAA;;AAEA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AACA,IAAAW,6BAAA,GAAAX,OAAA;;AAEA,IAAAY,MAAA,GAAAZ,OAAA;AACA,IAAAa,SAAA,GAAAb,OAAA,eAAsC,IAAAc,SAAA,wJAAAC,MAAA,EAAAC,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDtC,IAAMC,sBAAsB,GAAG,GAAG;;;;;;;;;;AAU3B,IAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,IAAI,EAAE;AACR,CAAU;;;;;AAKV;AACA;AACA,GAFA;;AAIaC,IAAI,GAAAF,OAAA,CAAAE,IAAA,OADhBC,kBAAQ,EAAAP,MAAA,IAAAC,KAAA,0BAAAO,gBAAA,YAAAF,KAAA,OAAAG,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,gBAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,gBAAA,SAAAU,MAAA,CAAAL,IAAA,WAAAJ,KAAA;;;;;;;;;;;;IAaCU,QAAQ,GAAG,IAAAC,oCAAiB,EAACd,IAAI,CAACe,YAAY,CAAC,CAAAZ,KAAA;;IAEhDa,KAAK,GAAc;MACxBC,YAAY,EAAE;IAChB,CAAC,CAAAd,KAAA;;;;;;;;;;;;;;;;;;;;IAoBOe,WAAW,GAAG,UAAAC,IAAA;;;;;;IAMhB,KALJC,cAAc,GAAAD,IAAA,CAAdC,cAAc,CAAAC,aAAA,GAAAF,IAAA,CACdG,QAAQ,CAARA,QAAQ,GAAAD,aAAA,cAAG,CAAC,GAAAA,aAAA;MAKZ,OAAOD,cAAc,GAAG,CAAC,CAAC,GAAGE,QAAQ;IACvC,CAAC,CAAAnB,KAAA;;IAEOoB,MAAM,GAAG,YAAM;MACrB,IAAIC,aAAa,CAACrB,KAAA,CAAKsB,KAAK,CAAC,EAAE;QAC7B,IAAAC,WAAA,GAAsBvB,KAAA,CAAKsB,KAAK,CAAxBE,GAAG,GAAAD,WAAA,CAAHC,GAAG,CAAEC,IAAI,GAAAF,WAAA,CAAJE,IAAI;QACjB,IAAI,CAACD,GAAG,IAAIC,IAAI,EAAE;UAChB,qBAAkB,IAAAC,qBAAc,EAACD,IAAI,CAAC,GAAG,aAAa,GAAG,EAAE;QAC7D;QACA,OAAOD,GAAG;MACZ;;MAEA,OAAOG,SAAS;IAClB,CAAC,CAAA3B,KAAA;;IAEO4B,UAAU,GAAG,UAACN,KAAmD,EAAK,KAAAO,GAAA;MAC5E;QACEC,QAAQ;;;;;;;;;;;;;;QAcNR,KAAK,CAdPQ,QAAQ,CACRC,IAAI,GAaFT,KAAK,CAbPS,IAAI,CACJC,SAAS,GAYPV,KAAK,CAZPU,SAAS,CACTC,GAAG,GAWDX,KAAK,CAXPW,GAAG,CACHC,OAAO,GAULZ,KAAK,CAVPY,OAAO,CACPC,OAAO,GASLb,KAAK,CATPa,OAAO,CACPC,aAAa,GAQXd,KAAK,CARPc,aAAa,CACFC,IAAI,GAObf,KAAK,CAPPgB,SAAS,CAAAC,cAAA,GAOPjB,KAAK,CANPkB,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,KAAK,GAAAA,cAAA,CACfE,KAAK,GAKHnB,KAAK,CALPmB,KAAK,CACLC,OAAO,GAILpB,KAAK,CAJPoB,OAAO,CACPvB,QAAQ,GAGNG,KAAK,CAHPH,QAAQ,CACRwB,KAAK,GAEHrB,KAAK,CAFPqB,KAAK,CACFC,IAAI,OAAAC,8BAAA,CAAAC,OAAA,EACLxB,KAAK,EAAAhC,SAAA;;MAET,IAAIyD,KAAK,GAAG,IAAI;MAChB,IAAIZ,OAAO,EAAE;QACXY,KAAK,gBAAGzE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,WAAMC,SAAS,EAAEC,aAAM,CAACH,KAAK,CAAC,CAAE,EAAE,CAAC;MAC7C;;MAEA,IAAMI,SAAS,GAAG,CAACrB,QAAQ,KAAK9B,KAAA,CAAKa,KAAK,CAACC,YAAY,IAAI0B,OAAO,CAAC;;MAEnE,IAAMY,eAAe,GAAGrB,IAAI,iBAAIzD,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACtB,IAAI,EAAEA,IAAK,EAACG,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,MAAM,EAAE,CAAC;MAC1F,IAAMC,gBAAgB,GAAGvB,SAAS;MAChC1D,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAC3D,SAAA,CAAAgE,QAAQ,IAACG,YAAY,EAAE,CAAC,CAACzB,IAAI,IAAI,CAAC,CAACC,SAAU,EAACD,IAAI,EAAEC,SAAU,EAACE,OAAO,EAAEA,OAAQ,EAACoB,QAAQ,EAAC,OAAO,EAAE,CACrG;;MACD,IAAMrC,cAAc,GAAGa,QAAQ,IAAII,OAAO;MAC1C,IAAMuB,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;QACzB,QAAQxB,GAAG;UACT,KAAK,SAAS;YACZ,OAAOiB,aAAM,CAACJ,OAAO,CAAC9C,KAAA,CAAK2C,KAAK,CAAC;UACnC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACQ,MAAM,CAAC1D,KAAA,CAAK2C,KAAK,CAAC;UAClC,KAAK,SAAS;YACZ,OAAOO,aAAM,CAACS,OAAO,CAAC3D,KAAA,CAAK2C,KAAK,CAAC;UACnC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACU,MAAM,CAAC5D,KAAA,CAAK2C,KAAK,CAAC;QACpC;MACF,CAAC;MACD,IAAMkB,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAA,EAAS;QAClC,QAAQ5B,GAAG;UACT,KAAK,SAAS;YACZ,OAAOiB,aAAM,CAACY,SAAS,CAAC9D,KAAA,CAAK2C,KAAK,CAAC;UACrC,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACa,eAAe,CAAC/D,KAAA,CAAK2C,KAAK,CAAC;UAC3C,KAAK,SAAS;YACZ,OAAOO,aAAM,CAACc,gBAAgB,CAAChE,KAAA,CAAK2C,KAAK,CAAC;UAC5C,KAAK,QAAQ;YACX,OAAOO,aAAM,CAACe,eAAe,CAACjE,KAAA,CAAK2C,KAAK,CAAC;QAC7C;MACF,CAAC;MACD,IAAMuB,SAAS,OAAAC,SAAA,CAAArB,OAAA;MACVF,IAAI;QACPK,SAAS,EAAE,IAAAmB,WAAE,GAAAvC,GAAA,OAAAA,GAAA;QACVqB,aAAM,CAACtD,IAAI,CAACI,KAAA,CAAK2C,KAAK,CAAC,IAAG,IAAI,EAAAd,GAAA;QAC9B,IAAAwC,mBAAW,EAAC,CAAC,IAAGhC,IAAI,KAAK,QAAQ,EAAAR,GAAA;QACjCqB,aAAM,CAACoB,KAAK,CAACtE,KAAA,CAAK2C,KAAK,CAAC,IAAGQ,SAAS,EAAAtB,GAAA;QACpCqB,aAAM,CAACpB,QAAQ,CAAC9B,KAAA,CAAK2C,KAAK,CAAC,IAAGb,QAAQ,IAAII,OAAO,EAAAL,GAAA;QACjD4B,YAAY,CAAC,CAAC,IAAG,IAAI,EAAA5B,GAAA;QACrBqB,aAAM,CAACqB,cAAc,CAACvE,KAAA,CAAK2C,KAAK,CAAC,IAAGV,GAAG,KAAK,QAAQ,IAAIO,OAAO,EAAAX,GAAA;QAC/DqB,aAAM,CAACsB,MAAM,CAACxE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACR,OAAO,EAAAN,GAAA;QACrCqB,aAAM,CAACuB,YAAY,CAACzE,KAAA,CAAK2C,KAAK,CAAC,IAAG,CAAC,CAACP,aAAa,EAAAP,GAAA;QACjDqB,aAAM,CAACR,OAAO,CAAC1C,KAAA,CAAK2C,KAAK,CAAC,IAAGD,OAAO,EAAAb,GAAA;QACpCqB,aAAM,CAACT,KAAK,CAACzC,KAAA,CAAK2C,KAAK,CAAC,IAAGF,KAAK,EAAAZ,GAAA;QAChCgC,qBAAqB,CAAC,CAAC,IAAGV,SAAS,EAAAtB,GAAA;QACrC,CAAC;QACF6C,OAAO,EAAE1E,KAAA,CAAK2E,WAAW;QACzBC,OAAO,EAAE5E,KAAA,CAAK6E,WAAW;QACzBC,MAAM,EAAE9E,KAAA,CAAK+E,UAAU;QACvB5D,QAAQ,EAAEnB,KAAA,CAAKe,WAAW,CAAC,EAAEE,cAAc,EAAdA,cAAc,EAAEE,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QACxDK,GAAG,EAAExB,KAAA,CAAKoB,MAAM,CAAC,CAAC,GACnB;;;MAED;QACE9C,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACX,IAAI,MAAA8B,SAAA,CAAArB,OAAA,IAAC,YAAUpD,YAAY,CAACE,IAAK,IAAKsE,SAAS,EAAM,IAAAc,0DAA4B,EAAC,EAAElD,QAAQ,EAARA,QAAQ,CAAC,CAAC,CAAC;QAC7FsB,eAAe;QACfpD,KAAA,CAAKsB,KAAK,CAAC2D,QAAQ;QACnB1B,gBAAgB;QAChBR;QACG,CAAC;;IAEX,CAAC,CAAA/C,KAAA;;IAEO6E,WAAW,GAAG,YAAM;MAC1B,IAAI,CAAC7E,KAAA,CAAKsB,KAAK,CAACQ,QAAQ,EAAE;QACxB;QACA;QACAoD,0BAAY,CAACC,qBAAqB,YAAlCD,0BAAY,CAACC,qBAAqB,CAAG,YAAM;UACzC,IAAIC,wBAAW,CAACC,YAAY,EAAE;YAC5BrF,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;UACvC;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAAd,KAAA;;IAEO+E,UAAU,GAAG,YAAM;MACzB/E,KAAA,CAAKsF,QAAQ,CAAC,EAAExE,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IACxC,CAAC,CAAAd,KAAA;;IAEO2E,WAAW,GAAG,UAACY,KAAuB,EAAK;MACjD,IAAAC,YAAA,GAAuCxF,KAAA,CAAKsB,KAAK,CAAzCoD,OAAO,GAAAc,YAAA,CAAPd,OAAO,CAAE5C,QAAQ,GAAA0D,YAAA,CAAR1D,QAAQ,CAAEI,OAAO,GAAAsD,YAAA,CAAPtD,OAAO;;MAElC,IAAIwC,OAAO,IAAI,CAAC5C,QAAQ,IAAI,CAACI,OAAO,EAAE;QACpCwC,OAAO,CAACa,KAAK,CAAC;MAChB;IACF,CAAC,QAAAvF,KAAA,MAAAyF,eAAA,CAAA3C,OAAA,EAAAjD,IAAA,EAAAE,gBAAA,MAAA2F,MAAA,GAAA7F,IAAA,CAAA8F,SAAA,CAAAD,MAAA,CAjJME,MAAM,GAAb,SAAAA,OAAA,EAA6B,KAAAC,MAAA,QAC3B,oBACEvH,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAACpE,aAAA,CAAAkH,YAAY,CAACC,QAAQ,QACnB,UAACpD,KAAK,EAAK,CACVkD,MAAI,CAAClD,KAAK,GAAGkD,MAAI,CAACvE,KAAK,CAACqB,KAAK,GAAGqD,0BAAY,CAACC,MAAM,CAACJ,MAAI,CAACvE,KAAK,CAACqB,KAAK,EAAWA,KAAK,CAAC,GAAGA,KAAK,CAC7F,oBACErE,MAAA,CAAAwE,OAAA,CAAAE,aAAA,CAAClE,cAAA,CAAAoH,aAAa,MAAA/B,SAAA,CAAArB,OAAA,IAACqD,WAAW,EAAEN,MAAI,CAACO,WAAY,IAAKP,MAAI,CAACnF,QAAQ,CAAC,CAAC,GAC9DmF,MAAI,CAACjE,UACO,CAAC,CAEpB,CACqB,CAAC,CAE5B,CAAC,QAAA/B,IAAA,GAlC0FwG,cAAK,CAACC,SAAS,GAAA9G,KAAA,CAI5F+G,mBAAmB,GAAG,MAAM,EAAA/G,KAAA,CAC5BgH,WAAW,GAAG,MAAM,EAAAhH,KAAA,CAEpBoB,YAAY,GAAiB,EACzCqB,GAAG,EAAE,SAAS,EACdK,SAAS,EAAE7C,sBAAsB,CACnC,CAAC,EAAAD,KAAA,MAAAD,MAAA;;;AA+JH,IAAM8B,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAqB,EAA8B;EACxE,OAAOA,KAAK,CAACgB,SAAS,KAAK,GAAG;AAChC,CAAC","ignoreList":[]}
|
|
@@ -8,10 +8,10 @@ export declare const styles: {
|
|
|
8
8
|
button(t: Theme): string;
|
|
9
9
|
buttonOpened(t: Theme): string;
|
|
10
10
|
arrow(): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
default(t: Theme): string;
|
|
12
|
+
success(t: Theme): string;
|
|
13
|
+
danger(t: Theme): string;
|
|
14
|
+
grayed(t: Theme): string;
|
|
15
15
|
useGrayedFocus(t: Theme): string;
|
|
16
16
|
focus(t: Theme): string;
|
|
17
17
|
disabled(t: Theme): string;
|
|
@@ -50,7 +50,6 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
},
|
|
53
|
-
|
|
54
53
|
lineFocus: function lineFocus(t) {
|
|
55
54
|
return (0, _Emotion.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteralLoose2.default)(["\n color: ", ";\n "])),
|
|
56
55
|
t.linkHoverColor);
|
|
@@ -102,25 +101,25 @@ var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
|
102
101
|
|
|
103
102
|
},
|
|
104
103
|
|
|
105
|
-
|
|
104
|
+
default: function _default(t) {
|
|
106
105
|
return (0, _Emotion.css)(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n "])),
|
|
107
106
|
(0, _Link.linkUseColorsMixin)(t.linkColor, t.linkHoverColor, t.linkActiveColor));
|
|
108
107
|
|
|
109
108
|
},
|
|
110
109
|
|
|
111
|
-
|
|
110
|
+
success: function success(t) {
|
|
112
111
|
return (0, _Emotion.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n "])),
|
|
113
112
|
(0, _Link.linkUseColorsMixin)(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor));
|
|
114
113
|
|
|
115
114
|
},
|
|
116
115
|
|
|
117
|
-
|
|
116
|
+
danger: function danger(t) {
|
|
118
117
|
return (0, _Emotion.css)(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n "])),
|
|
119
118
|
(0, _Link.linkUseColorsMixin)(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor));
|
|
120
119
|
|
|
121
120
|
},
|
|
122
121
|
|
|
123
|
-
|
|
122
|
+
grayed: function grayed(t) {
|
|
124
123
|
return (0, _Emotion.css)(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteralLoose2.default)(["\n ", ";\n "])),
|
|
125
124
|
(0, _Link.linkUseColorsMixin)(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor));
|
|
126
125
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Emotion","require","_Link","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","line","keyframes","_taggedTemplateLiteralLoose2","default","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","css","styles","exports","memoizeStyle","root","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","linkHoverColor","lineFocusSuccess","linkSuccessHoverColor","lineFocusDanger","linkDangerHoverColor","lineFocusGrayed","linkGrayedHoverColor","button","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","btnDefaultActiveBg","arrow","useDefault","linkUseColorsMixin","linkColor","linkActiveColor","useSuccess","linkSuccessColor","linkSuccessActiveColor","useDanger","linkDangerColor","linkDangerActiveColor","useGrayed","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","linkDisabledColor","focus","linkHoverTextDecoration","linkFocusOutline","disabled","linkDisabledMixin","icon","iconLeft","linkIconMarginRight","iconRight","linkIconMarginLeft","warning","btnWarningSecondary","error","btnErrorSecondary"],"sources":["Link.styles.ts"],"sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins';\n\nconst line = keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return css`\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n useDefault(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n useSuccess(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n useDanger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n useGrayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_Link","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","line","keyframes","_taggedTemplateLiteralLoose2","default","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","css","styles","exports","memoizeStyle","root","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","linkHoverColor","lineFocusSuccess","linkSuccessHoverColor","lineFocusDanger","linkDangerHoverColor","lineFocusGrayed","linkGrayedHoverColor","button","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","btnDefaultActiveBg","arrow","_default","linkUseColorsMixin","linkColor","linkActiveColor","success","linkSuccessColor","linkSuccessActiveColor","danger","linkDangerColor","linkDangerActiveColor","grayed","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","linkDisabledColor","focus","linkHoverTextDecoration","linkFocusOutline","disabled","linkDisabledMixin","icon","iconLeft","linkIconMarginRight","iconRight","linkIconMarginLeft","warning","btnWarningSecondary","error","btnErrorSecondary"],"sources":["Link.styles.ts"],"sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins';\n\nconst line = keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return css`\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n default(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n success(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n danger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n grayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -237,4 +237,4 @@ InternalMaskedInput = exports.InternalMaskedInput = /*#__PURE__*/function (_Reac
|
|
|
237
237
|
}
|
|
238
238
|
};_this.state = { value: _this.getValue(_props), originValue: _this.getValue(_props), emptyValue: '', focused: false };return _this;}(0, _inheritsLoose2.default)(InternalMaskedInput, _React$PureComponent);var _proto = InternalMaskedInput.prototype;_proto.componentDidMount = function componentDidMount() {if (this.reactInputMask) {// FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue
|
|
239
239
|
this.reactInputMask.forceUpdate();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps) {if (this.props.value !== prevProps.value) {this.setState({ value: this.props.value ? this.props.value.toString() : '' });}};_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.renderMain = function renderMain() {var _this$props = this.props,maskChar = _this$props.maskChar,alwaysShowMask = _this$props.alwaysShowMask,hasLeftIcon = _this$props.hasLeftIcon,hasRightIcon = _this$props.hasRightIcon,maxLength = _this$props.maxLength,onValueChange = _this$props.onValueChange,onUnexpectedInput = _this$props.onUnexpectedInput,defaultValue = _this$props.defaultValue,style = _this$props.style,inputProps = (0, _objectWithoutPropertiesLoose2.default)(_this$props, _excluded);var _this$state = this.state,emptyValue = _this$state.emptyValue,value = _this$state.value,originValue = _this$state.originValue;var leftHelper = (style == null ? void 0 : style.textAlign) !== 'right' && /*#__PURE__*/_react.default.createElement("span", { style: { color: 'transparent' } }, emptyValue.slice(0, originValue.length));var leftClass = (style == null ? void 0 : style.textAlign) !== 'right' && _InternalMaskedInput2.styles.inputMaskLeft();var rightHelper = emptyValue.slice(originValue.length).split('').map(function (_char, i) {return _char === '_' ? /*#__PURE__*/_react.default.createElement(_MaskCharLowLine.MaskCharLowLine, { key: i }) : _char;});return /*#__PURE__*/_react.default.createElement("span", { "data-tid": MaskedInputDataTids.root, className: _InternalMaskedInput2.styles.container(), "x-ms-format-detection": "none" }, /*#__PURE__*/_react.default.createElement(_reactInputMask.default, (0, _extends2.default)({}, inputProps, { maskChar: null // @ts-expect-error InternalMaskedInput will be deleted in 5.0
|
|
240
|
-
, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_InternalMaskedInput2.styles.inputMask(this.theme), leftClass) }, leftHelper, rightHelper));};return InternalMaskedInput;}(_react.default.PureComponent);InternalMaskedInput.__KONTUR_REACT_UI__ = 'InternalMaskedInput';InternalMaskedInput.displayName = 'InternalMaskedInput';InternalMaskedInput.defaultProps = { maskChar: '_' };
|
|
240
|
+
, beforeMaskedValueChange: this.preprocess, alwaysShowMask: false, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur, value: value, inputRef: this.refInput, ref: this.refMaskedInput, style: (0, _extends2.default)({}, style) })), this.isMaskVisible() && /*#__PURE__*/_react.default.createElement("span", { className: (0, _Emotion.cx)(_InternalMaskedInput2.styles.inputMask(this.theme), leftClass), translate: "no" }, leftHelper, rightHelper));};return InternalMaskedInput;}(_react.default.PureComponent);InternalMaskedInput.__KONTUR_REACT_UI__ = 'InternalMaskedInput';InternalMaskedInput.displayName = 'InternalMaskedInput';InternalMaskedInput.defaultProps = { maskChar: '_' };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactInputMask","_utils","_ThemeContext","_MaskCharLowLine","_Emotion","_createPropsGetter","_InternalMaskedInput2","_excluded","MaskedInputDataTids","exports","root","InternalMaskedInput","_React$PureComponent","props","_this","call","getProps","createPropsGetter","defaultProps","input","reactInputMask","getValue","isNonNullable","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","_inheritsLoose2","default","_proto","prototype","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this$props","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","_objectWithoutPropertiesLoose2","_this$state","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","MaskCharLowLine","key","className","container","_extends2","beforeMaskedValueChange","inputRef","ref","cx","inputMask","React","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["InternalMaskedInput.tsx"],"sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\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 {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactInputMask","_utils","_ThemeContext","_MaskCharLowLine","_Emotion","_createPropsGetter","_InternalMaskedInput2","_excluded","MaskedInputDataTids","exports","root","InternalMaskedInput","_React$PureComponent","props","_this","call","getProps","createPropsGetter","defaultProps","input","reactInputMask","getValue","isNonNullable","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","_inheritsLoose2","default","_proto","prototype","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this$props","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","_objectWithoutPropertiesLoose2","_this$state","leftHelper","textAlign","color","slice","leftClass","styles","inputMaskLeft","rightHelper","map","_char","i","MaskCharLowLine","key","className","container","_extends2","beforeMaskedValueChange","inputRef","ref","cx","inputMask","translate","React","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["InternalMaskedInput.tsx"],"sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\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 {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)} translate=\"no\">\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -91,8 +91,32 @@ export var Link = rootNode(_class = (_Link = /*#__PURE__*/function (_React$Compo
|
|
|
91
91
|
position: "right"
|
|
92
92
|
});
|
|
93
93
|
var nonInteractive = disabled || loading;
|
|
94
|
+
var getUseStyles = function getUseStyles() {
|
|
95
|
+
switch (use) {
|
|
96
|
+
case 'default':
|
|
97
|
+
return styles["default"](_this.theme);
|
|
98
|
+
case 'danger':
|
|
99
|
+
return styles.danger(_this.theme);
|
|
100
|
+
case 'success':
|
|
101
|
+
return styles.success(_this.theme);
|
|
102
|
+
case 'grayed':
|
|
103
|
+
return styles.grayed(_this.theme);
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
var getUseLineFocusStyles = function getUseLineFocusStyles() {
|
|
107
|
+
switch (use) {
|
|
108
|
+
case 'default':
|
|
109
|
+
return styles.lineFocus(_this.theme);
|
|
110
|
+
case 'danger':
|
|
111
|
+
return styles.lineFocusDanger(_this.theme);
|
|
112
|
+
case 'success':
|
|
113
|
+
return styles.lineFocusSuccess(_this.theme);
|
|
114
|
+
case 'grayed':
|
|
115
|
+
return styles.lineFocusGrayed(_this.theme);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
94
118
|
var rootProps = _extends({}, rest, {
|
|
95
|
-
className: cx((_cx = {}, _cx[styles.root(_this.theme)] = true, _cx[resetButton()] = Root === 'button', _cx[styles.focus(_this.theme)] = isFocused, _cx[styles.disabled(_this.theme)] = disabled || loading, _cx[
|
|
119
|
+
className: cx((_cx = {}, _cx[styles.root(_this.theme)] = true, _cx[resetButton()] = Root === 'button', _cx[styles.focus(_this.theme)] = isFocused, _cx[styles.disabled(_this.theme)] = disabled || loading, _cx[getUseStyles()] = true, _cx[styles.useGrayedFocus(_this.theme)] = use === 'grayed' && focused, _cx[styles.button(_this.theme)] = !!_button, _cx[styles.buttonOpened(_this.theme)] = !!_buttonOpened, _cx[styles.warning(_this.theme)] = warning, _cx[styles.error(_this.theme)] = error, _cx[getUseLineFocusStyles()] = isFocused, _cx)),
|
|
96
120
|
onClick: _this.handleClick,
|
|
97
121
|
onFocus: _this.handleFocus,
|
|
98
122
|
onBlur: _this.handleBlur,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","globalObject","resetButton","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","rootProps","_extends","focus","useDefault","useSuccess","useDanger","useGrayed","useGrayedFocus","button","buttonOpened","lineFocus","lineFocusSuccess","lineFocusDanger","lineFocusGrayed","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [styles.useDefault(this.theme)]: use === 'default',\n [styles.useSuccess(this.theme)]: use === 'success',\n [styles.useDanger(this.theme)]: use === 'danger',\n [styles.useGrayed(this.theme)]: use === 'grayed',\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [styles.lineFocus(this.theme)]: isFocused && use === 'default',\n [styles.lineFocusSuccess(this.theme)]: isFocused && use === 'success',\n [styles.lineFocusDanger(this.theme)]: isFocused && use === 'danger',\n [styles.lineFocusGrayed(this.theme)]: isFocused && use === 'grayed',\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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 }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","globalObject","resetButton","keyListener","ThemeContext","isExternalLink","CommonWrapper","cx","rootNode","createPropsGetter","ThemeFactory","getVisualStateDataAttributes","styles","LinkIcon","LINK_DEFAULT_COMPONENT","LinkDataTids","root","Link","_class","_Link","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","state","focusedByTab","getTabIndex","_ref","nonInteractive","_ref$tabIndex","tabIndex","getRel","isAnchorProps","props","_this$props","rel","href","undefined","renderMain","_cx","disabled","icon","rightIcon","use","loading","_button","_buttonOpened","Root","component","_props$focused","focused","error","warning","theme","rest","_objectWithoutPropertiesLoose","_excluded","arrow","createElement","className","isFocused","leftIconElement","position","rightIconElement","hasBothIcons","getUseStyles","danger","success","grayed","getUseLineFocusStyles","lineFocus","lineFocusDanger","lineFocusSuccess","lineFocusGrayed","rootProps","_extends","focus","useGrayedFocus","button","buttonOpened","onClick","handleClick","onFocus","handleFocus","onBlur","handleBlur","children","requestAnimationFrame","isTabPressed","setState","event","_this$props2","_inheritsLoose","_proto","prototype","render","_this2","Consumer","create","rootNodeRef","setRootNode","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Link.tsx"],"sourcesContent":["import React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { resetButton } from '../../lib/styles/Mixins';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { isExternalLink } from '../../lib/utils';\nimport { CommonProps, CommonWrapper, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { createPropsGetter, DefaultizedProps } from '../../lib/createPropsGetter';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { getVisualStateDataAttributes } from '../../internal/CommonWrapper/utils/getVisualStateDataAttributes';\n\nimport { styles } from './Link.styles';\nimport { LinkIcon } from './LinkIcon';\n\nexport interface LinkInnerProps extends CommonProps {\n /**\n * Отключенное состояние.\n */\n disabled?: boolean;\n /**\n * Добавляет ссылке иконку слева.\n */\n icon?: React.ReactElement;\n /**\n * Добавляет ссылке иконку справа.\n */\n rightIcon?: React.ReactElement;\n /**\n * Тема ссылки.\n */\n use?: 'default' | 'success' | 'danger' | 'grayed';\n /**\n * @ignore\n */\n _button?: boolean;\n /**\n * @ignore\n */\n _buttonOpened?: boolean;\n /**\n * HTML-атрибут `tabindex`.\n */\n tabIndex?: number;\n /**\n * Переводит ссылку в состояние загрузки.\n */\n loading?: boolean;\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n /**\n * @ignore\n */\n focused?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n}\n\nconst LINK_DEFAULT_COMPONENT = 'a';\n\nexport type LinkProps<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> = PolymorphicPropsWithoutRef<\n LinkInnerProps,\n C\n>;\nexport interface LinkState {\n focusedByTab: boolean;\n}\n\nexport const LinkDataTids = {\n root: 'Link__root',\n} as const;\n\ntype DefaultProps = Required<Pick<LinkProps<ButtonLinkAllowedValues>, 'use' | 'component'>>;\ntype DefaultizedLinkProps = DefaultizedProps<LinkProps<ButtonLinkAllowedValues>, DefaultProps>;\n\n/**\n * Элемент ссылки из HTML.\n */\n@rootNode\nexport class Link<C extends ButtonLinkAllowedValues = typeof LINK_DEFAULT_COMPONENT> extends React.Component<\n LinkProps<C>,\n LinkState\n> {\n public static __KONTUR_REACT_UI__ = 'Link';\n public static displayName = 'Link';\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n component: LINK_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Link.defaultProps);\n\n public state: LinkState = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private setRootNode!: TSetRootNode;\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.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex = ({\n nonInteractive,\n tabIndex = 0,\n }: {\n nonInteractive: boolean | undefined;\n tabIndex: number | undefined;\n }) => {\n return nonInteractive ? -1 : tabIndex;\n };\n\n private getRel = () => {\n if (isAnchorProps(this.props)) {\n const { rel, href } = this.props;\n if (!rel && href) {\n return `noopener${isExternalLink(href) ? ' noreferrer' : ''}`;\n }\n return rel;\n }\n\n return undefined;\n };\n\n private renderMain = (props: CommonWrapperRestProps<DefaultizedLinkProps>) => {\n const {\n disabled,\n icon,\n rightIcon,\n use,\n loading,\n _button,\n _buttonOpened,\n component: Root,\n focused = false,\n error,\n warning,\n tabIndex,\n theme,\n ...rest\n } = props;\n\n let arrow = null;\n if (_button) {\n arrow = <span className={styles.arrow()} />;\n }\n\n const isFocused = !disabled && (this.state.focusedByTab || focused);\n\n const leftIconElement = icon && <LinkIcon icon={icon} loading={loading} position=\"left\" />;\n const rightIconElement = rightIcon && (\n <LinkIcon hasBothIcons={!!icon && !!rightIcon} icon={rightIcon} loading={loading} position=\"right\" />\n );\n const nonInteractive = disabled || loading;\n const getUseStyles = () => {\n switch (use) {\n case 'default':\n return styles.default(this.theme);\n case 'danger':\n return styles.danger(this.theme);\n case 'success':\n return styles.success(this.theme);\n case 'grayed':\n return styles.grayed(this.theme);\n }\n };\n const getUseLineFocusStyles = () => {\n switch (use) {\n case 'default':\n return styles.lineFocus(this.theme);\n case 'danger':\n return styles.lineFocusDanger(this.theme);\n case 'success':\n return styles.lineFocusSuccess(this.theme);\n case 'grayed':\n return styles.lineFocusGrayed(this.theme);\n }\n };\n const rootProps = {\n ...rest,\n className: cx({\n [styles.root(this.theme)]: true,\n [resetButton()]: Root === 'button',\n [styles.focus(this.theme)]: isFocused,\n [styles.disabled(this.theme)]: disabled || loading,\n [getUseStyles()]: true,\n [styles.useGrayedFocus(this.theme)]: use === 'grayed' && focused,\n [styles.button(this.theme)]: !!_button,\n [styles.buttonOpened(this.theme)]: !!_buttonOpened,\n [styles.warning(this.theme)]: warning,\n [styles.error(this.theme)]: error,\n [getUseLineFocusStyles()]: isFocused,\n }),\n onClick: this.handleClick,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ nonInteractive, tabIndex }),\n rel: this.getRel(),\n };\n\n return (\n <Root data-tid={LinkDataTids.root} {...rootProps} {...getVisualStateDataAttributes({ disabled })}>\n {leftIconElement}\n {this.props.children}\n {rightIconElement}\n {arrow}\n </Root>\n );\n };\n\n private handleFocus = () => {\n if (!this.props.disabled) {\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 }\n };\n\n private handleBlur = () => {\n this.setState({ focusedByTab: false });\n };\n\n private handleClick = (event: React.MouseEvent) => {\n const { onClick, disabled, loading } = this.props;\n\n if (onClick && !disabled && !loading) {\n onClick(event);\n }\n };\n}\n\nconst isAnchorProps = (props: LinkProps<any>): props is LinkProps<'a'> => {\n return props.component === 'a';\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,16 +32,16 @@ export var styles = memoizeStyle({
|
|
|
32
32
|
arrow: function arrow() {
|
|
33
33
|
return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteralLoose(["\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n "])));
|
|
34
34
|
},
|
|
35
|
-
|
|
35
|
+
"default": function _default(t) {
|
|
36
36
|
return css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor));
|
|
37
37
|
},
|
|
38
|
-
|
|
38
|
+
success: function success(t) {
|
|
39
39
|
return css(_templateObject12 || (_templateObject12 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor));
|
|
40
40
|
},
|
|
41
|
-
|
|
41
|
+
danger: function danger(t) {
|
|
42
42
|
return css(_templateObject13 || (_templateObject13 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor));
|
|
43
43
|
},
|
|
44
|
-
|
|
44
|
+
grayed: function grayed(t) {
|
|
45
45
|
return css(_templateObject14 || (_templateObject14 = _taggedTemplateLiteralLoose(["\n ", ";\n "])), linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor));
|
|
46
46
|
},
|
|
47
47
|
useGrayedFocus: function useGrayedFocus(t) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","keyframes","memoizeStyle","linkDisabledMixin","linkUseColorsMixin","line","_templateObject","_taggedTemplateLiteralLoose","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","_templateObject2","styles","root","_templateObject3","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","_templateObject4","linkHoverColor","lineFocusSuccess","_templateObject5","linkSuccessHoverColor","lineFocusDanger","_templateObject6","linkDangerHoverColor","lineFocusGrayed","_templateObject7","linkGrayedHoverColor","button","_templateObject8","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","_templateObject9","btnDefaultActiveBg","arrow","_templateObject10","
|
|
1
|
+
{"version":3,"names":["css","keyframes","memoizeStyle","linkDisabledMixin","linkUseColorsMixin","line","_templateObject","_taggedTemplateLiteralLoose","oldLineText","t","delay","parseFloat","linkTextUnderlineOpacity","_templateObject2","styles","root","_templateObject3","linkTextDecoration","linkTextDecorationStyle","linkTextUnderlineOffset","linkTextDecorationThickness","transitionDuration","transitionTimingFunction","linkTextDecorationColor","linkHoverTextDecorationStyle","lineFocus","_templateObject4","linkHoverColor","lineFocusSuccess","_templateObject5","linkSuccessHoverColor","lineFocusDanger","_templateObject6","linkDangerHoverColor","lineFocusGrayed","_templateObject7","linkGrayedHoverColor","button","_templateObject8","linkButtonLineHeight","linkButtonPaddingX","buttonOpened","_templateObject9","btnDefaultActiveBg","arrow","_templateObject10","_default","_templateObject11","linkColor","linkActiveColor","success","_templateObject12","linkSuccessColor","linkSuccessActiveColor","danger","_templateObject13","linkDangerColor","linkDangerActiveColor","grayed","_templateObject14","linkGrayedColor","linkGrayedActiveColor","useGrayedFocus","_templateObject15","linkDisabledColor","focus","_templateObject16","linkHoverTextDecoration","linkFocusOutline","disabled","_templateObject17","icon","_templateObject18","iconLeft","_templateObject19","linkIconMarginRight","iconRight","_templateObject20","linkIconMarginLeft","warning","_templateObject21","btnWarningSecondary","error","_templateObject22","btnErrorSecondary"],"sources":["Link.styles.ts"],"sourcesContent":["import { css, keyframes, memoizeStyle } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { linkDisabledMixin, linkUseColorsMixin } from './Link.mixins';\n\nconst line = keyframes`\n 0% {\n text-decoration-color: inherit;\n }\n 100% {\n text-decoration-color: transparent;\n }\n`;\n\nconst oldLineText = function (t: Theme) {\n const delay = parseFloat(t.linkTextUnderlineOpacity) - 1;\n return css`\n animation: ${line} 1s linear !important; // override creevey\n animation-play-state: paused !important;\n animation-delay: ${delay}s !important;\n animation-fill-mode: forwards !important;\n `;\n};\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n cursor: pointer;\n position: relative;\n\n border-radius: 1px;\n text-decoration: ${t.linkTextDecoration};\n text-decoration-style: ${t.linkTextDecorationStyle};\n text-underline-offset: ${t.linkTextUnderlineOffset};\n text-decoration-thickness: ${t.linkTextDecorationThickness};\n transition: text-decoration-color ${t.transitionDuration} ${t.transitionTimingFunction};\n @supports (text-decoration-color: ${t.linkTextDecorationColor}) {\n text-decoration-color: ${t.linkTextDecorationColor};\n &:hover {\n text-decoration-color: currentColor;\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n }\n }\n @supports not (text-decoration-color: ${t.linkTextDecorationColor}) {\n ${oldLineText(t)};\n &:hover {\n text-decoration-style: ${t.linkHoverTextDecorationStyle};\n animation: none !important;\n }\n }\n `;\n },\n lineFocus(t: Theme) {\n return css`\n color: ${t.linkHoverColor};\n `;\n },\n\n lineFocusSuccess(t: Theme) {\n return css`\n color: ${t.linkSuccessHoverColor} !important;\n `;\n },\n\n lineFocusDanger(t: Theme) {\n return css`\n color: ${t.linkDangerHoverColor} !important;\n `;\n },\n\n lineFocusGrayed(t: Theme) {\n return css`\n color: ${t.linkGrayedHoverColor} !important;\n `;\n },\n\n button(t: Theme) {\n return css`\n display: inline-block;\n line-height: ${t.linkButtonLineHeight};\n padding-left: ${t.linkButtonPaddingX};\n padding-right: ${t.linkButtonPaddingX};\n `;\n },\n\n buttonOpened(t: Theme) {\n return css`\n background: ${t.btnDefaultActiveBg};\n `;\n },\n\n arrow() {\n return css`\n border: 4px solid transparent;\n border-bottom-width: 0;\n border-top-color: #a0a0a0;\n display: inline-block;\n margin-bottom: 3px;\n margin-left: 3px;\n vertical-align: middle;\n `;\n },\n\n default(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkColor, t.linkHoverColor, t.linkActiveColor)};\n `;\n },\n\n success(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkSuccessColor, t.linkSuccessHoverColor, t.linkSuccessActiveColor)};\n `;\n },\n\n danger(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkDangerColor, t.linkDangerHoverColor, t.linkDangerActiveColor)};\n `;\n },\n\n grayed(t: Theme) {\n return css`\n ${linkUseColorsMixin(t.linkGrayedColor, t.linkGrayedHoverColor, t.linkGrayedActiveColor)};\n `;\n },\n\n useGrayedFocus(t: Theme) {\n return css`\n color: ${t.linkDisabledColor};\n `;\n },\n\n focus(t: Theme) {\n return css`\n text-decoration: ${t.linkHoverTextDecoration};\n outline: ${t.linkFocusOutline};\n `;\n },\n\n disabled(t: Theme) {\n return css`\n ${linkDisabledMixin()};\n\n color: ${t.linkDisabledColor} !important; // override root color\n\n &:hover {\n color: ${t.linkDisabledColor};\n }\n `;\n },\n\n icon() {\n return css`\n display: inline-block;\n `;\n },\n\n iconLeft(t: Theme) {\n return css`\n margin-right: ${t.linkIconMarginRight};\n `;\n },\n\n iconRight(t: Theme) {\n return css`\n margin-left: ${t.linkIconMarginLeft};\n `;\n },\n\n warning(t: Theme) {\n return css`\n background-color: ${t.btnWarningSecondary};\n box-shadow: 0 0 0 2px ${t.btnWarningSecondary};\n `;\n },\n\n error(t: Theme) {\n return css`\n background-color: ${t.btnErrorSecondary};\n box-shadow: 0 0 0 2px ${t.btnErrorSecondary};\n `;\n },\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,10 +8,10 @@ export declare const styles: {
|
|
|
8
8
|
button(t: Theme): string;
|
|
9
9
|
buttonOpened(t: Theme): string;
|
|
10
10
|
arrow(): string;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
default(t: Theme): string;
|
|
12
|
+
success(t: Theme): string;
|
|
13
|
+
danger(t: Theme): string;
|
|
14
|
+
grayed(t: Theme): string;
|
|
15
15
|
useGrayedFocus(t: Theme): string;
|
|
16
16
|
focus(t: Theme): string;
|
|
17
17
|
disabled(t: Theme): string;
|
|
@@ -178,7 +178,8 @@ export var InternalMaskedInput = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
178
178
|
ref: this.refMaskedInput,
|
|
179
179
|
style: _extends({}, style)
|
|
180
180
|
})), this.isMaskVisible() && /*#__PURE__*/React.createElement("span", {
|
|
181
|
-
className: cx(styles.inputMask(this.theme), leftClass)
|
|
181
|
+
className: cx(styles.inputMask(this.theme), leftClass),
|
|
182
|
+
translate: "no"
|
|
182
183
|
}, leftHelper, rightHelper));
|
|
183
184
|
};
|
|
184
185
|
return InternalMaskedInput;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ReactInputMask","isNonNullable","ThemeContext","MaskCharLowLine","cx","createPropsGetter","styles","MaskedInputDataTids","root","InternalMaskedInput","_React$PureComponent","props","_this","call","getProps","defaultProps","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","_inheritsLoose","_proto","prototype","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","_this2","createElement","Consumer","theme","renderMain","_this$props","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","_objectWithoutPropertiesLoose","_excluded","_this$state","leftHelper","textAlign","color","slice","leftClass","inputMaskLeft","rightHelper","map","_char","i","key","className","container","_extends","beforeMaskedValueChange","inputRef","ref","inputMask","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["InternalMaskedInput.tsx"],"sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\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 {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)}>\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","ReactInputMask","isNonNullable","ThemeContext","MaskCharLowLine","cx","createPropsGetter","styles","MaskedInputDataTids","root","InternalMaskedInput","_React$PureComponent","props","_this","call","getProps","defaultProps","input","reactInputMask","getValue","value","toString","defaultValue","refInput","refMaskedInput","handleChange","event","target","state","handleUnexpectedInput","setState","originValue","onValueChange","onChange","handleFocus","focused","onFocus","handleBlur","onBlur","preprocess","newState","oldState","userInput","options","visibleMaskChars","Array","mask","length","fill","maskChar","split","forEach","char","index","permanents","includes","emptyValue","join","isMaskVisible","alwaysShowMask","onUnexpectedInput","_inheritsLoose","_proto","prototype","componentDidMount","forceUpdate","componentDidUpdate","prevProps","render","_this2","createElement","Consumer","theme","renderMain","_this$props","hasLeftIcon","hasRightIcon","maxLength","style","inputProps","_objectWithoutPropertiesLoose","_excluded","_this$state","leftHelper","textAlign","color","slice","leftClass","inputMaskLeft","rightHelper","map","_char","i","key","className","container","_extends","beforeMaskedValueChange","inputRef","ref","inputMask","translate","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["InternalMaskedInput.tsx"],"sourcesContent":["import React from 'react';\nimport ReactInputMask, { InputState } from 'react-input-mask';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { MaskCharLowLine } from '../MaskCharLowLine';\nimport { cx } from '../../lib/theming/Emotion';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\n\nimport { styles } from './InternalMaskedInput.styles';\n\nexport interface InternalMaskedInputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n mask: string;\n maskChar?: string | null;\n formatChars?: { [key: string]: string };\n alwaysShowMask?: boolean;\n hasLeftIcon?: boolean;\n hasRightIcon?: boolean;\n onUnexpectedInput?: (value: string) => void;\n onValueChange?: (value: string) => void;\n}\n\ninterface MaskedInputState {\n value: string;\n\n // Users can unmask value themselves. In these cases we take origin value length\n originValue: string;\n\n emptyValue: string;\n focused: boolean;\n}\n\ntype DefaultProps = Required<Pick<InternalMaskedInputProps, 'maskChar'>>;\n\nexport const MaskedInputDataTids = {\n root: 'MaskedInput__root',\n} as const;\n\n/** @deprecated Со следующей мажорной версии Input перестанет поддерживать маску.\n * todo: выпилить в 5 версии библиотеки.\n * */\nexport class InternalMaskedInput extends React.PureComponent<InternalMaskedInputProps, MaskedInputState> {\n public static __KONTUR_REACT_UI__ = 'InternalMaskedInput';\n public static displayName = 'InternalMaskedInput';\n\n public static defaultProps: DefaultProps = {\n maskChar: '_',\n };\n\n private getProps = createPropsGetter(InternalMaskedInput.defaultProps);\n\n public input: HTMLInputElement | null = null;\n private theme!: Theme;\n private reactInputMask: ReactInputMask | null = null;\n\n public constructor(props: InternalMaskedInputProps) {\n super(props);\n\n this.state = {\n value: this.getValue(props),\n originValue: this.getValue(props),\n emptyValue: '',\n focused: false,\n };\n }\n\n public componentDidMount() {\n if (this.reactInputMask) {\n // FIXME: принудительно вызываем beforeMaskedValueChange, чтобы получить emptyValue\n this.reactInputMask.forceUpdate();\n }\n }\n\n public componentDidUpdate(prevProps: InternalMaskedInputProps) {\n if (this.props.value !== prevProps.value) {\n this.setState({\n value: this.props.value ? this.props.value.toString() : '',\n });\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 {\n maskChar,\n alwaysShowMask,\n hasLeftIcon,\n hasRightIcon,\n maxLength,\n onValueChange,\n onUnexpectedInput,\n defaultValue,\n style,\n ...inputProps\n } = this.props;\n const { emptyValue, value, originValue } = this.state;\n\n const leftHelper = style?.textAlign !== 'right' && (\n <span style={{ color: 'transparent' }}>{emptyValue.slice(0, originValue.length)}</span>\n );\n const leftClass = style?.textAlign !== 'right' && styles.inputMaskLeft();\n\n const rightHelper = emptyValue\n .slice(originValue.length)\n .split('')\n .map((_char, i) => (_char === '_' ? <MaskCharLowLine key={i} /> : _char));\n\n return (\n <span data-tid={MaskedInputDataTids.root} className={styles.container()} x-ms-format-detection=\"none\">\n <ReactInputMask\n {...inputProps}\n maskChar={null}\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n beforeMaskedValueChange={this.preprocess}\n alwaysShowMask={false}\n onChange={this.handleChange}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n value={value}\n inputRef={this.refInput}\n ref={this.refMaskedInput}\n style={{ ...style }}\n />\n {this.isMaskVisible() && (\n <span className={cx(styles.inputMask(this.theme), leftClass)} translate=\"no\">\n {leftHelper}\n {rightHelper}\n </span>\n )}\n </span>\n );\n }\n\n private getValue = (props: InternalMaskedInputProps): string => {\n if (isNonNullable(props.value)) {\n return props.value.toString();\n }\n\n if (isNonNullable(props.defaultValue)) {\n return props.defaultValue.toString();\n }\n\n return '';\n };\n\n private refInput = (input: HTMLInputElement | null) => {\n this.input = input;\n };\n\n private refMaskedInput = (reactInputMask: ReactInputMask) => {\n this.reactInputMask = reactInputMask;\n };\n\n private handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (event.target.value === this.state.value) {\n this.handleUnexpectedInput();\n } else {\n this.setState({ value: event.target.value, originValue: event.target.value });\n if (this.props.onValueChange) {\n this.props.onValueChange(event.target.value);\n }\n if (this.props.onChange) {\n this.props.onChange(event);\n }\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n this.setState({ focused: false });\n\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n };\n\n private preprocess = (\n newState: InputState,\n oldState: InputState,\n userInput: string,\n options: Pick<InternalMaskedInputProps, 'mask'>,\n ) => {\n const visibleMaskChars = new Array(options.mask.length).fill(this.getProps().maskChar);\n\n if (newState.value !== oldState.value && userInput === null) {\n this.setState({\n value: newState.value,\n originValue: newState.value,\n });\n }\n\n options.mask.split('').forEach((char: string, index: number) => {\n // @ts-expect-error InternalMaskedInput will be deleted in 5.0\n if (options.permanents.includes(index)) {\n visibleMaskChars[index] = char;\n }\n\n if (newState.value[index]) {\n visibleMaskChars[index] = newState.value[index];\n }\n });\n\n const emptyValue = visibleMaskChars.join('');\n\n if (this.state.emptyValue !== emptyValue) {\n this.setState({\n emptyValue,\n });\n }\n\n return newState;\n };\n\n private isMaskVisible = () => this.props.alwaysShowMask || this.state.focused;\n\n private handleUnexpectedInput = () => {\n if (this.props.onUnexpectedInput) {\n this.props.onUnexpectedInput(this.state.value);\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skbkontur/react-ui",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.7",
|
|
4
4
|
"description": "UI Components",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
|
-
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.
|
|
8
|
+
"homepage": "https://tech.skbkontur.ru/react-ui/5.0.7/",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git@github.com:skbkontur/retail-ui.git"
|