@skbkontur/react-ui 5.0.2 → 5.0.4-react-imask-fix.0
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 +23 -0
- package/LICENSE +21 -21
- package/cjs/components/Button/Button.js +0 -1
- package/cjs/components/Button/Button.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +2 -1
- package/cjs/components/Gapped/Gapped.md +43 -43
- package/cjs/components/MaskedInput/FixedIMaskInput.d.ts +2 -2
- package/cjs/components/MaskedInput/FixedIMaskInput.js +4 -3
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/IMaskInput.d.ts +122 -0
- package/cjs/components/MaskedInput/IMaskInput.js +330 -0
- package/cjs/components/MaskedInput/IMaskInput.js.map +1 -0
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MenuItem/MenuItem.d.ts +1 -0
- package/cjs/components/MenuItem/MenuItem.js +3 -3
- package/cjs/components/MenuItem/MenuItem.js.map +1 -1
- package/cjs/components/RadioGroup/RadioGroup.md +43 -43
- package/cjs/components/Select/__creevey__/Select.creevey.js +21 -31
- package/cjs/components/Select/__creevey__/Select.creevey.js.map +1 -1
- package/cjs/components/SingleToast/SingleToast.js +5 -1
- package/cjs/components/SingleToast/SingleToast.js.map +1 -1
- package/cjs/components/TokenInput/TokenInput.js +2 -1
- package/cjs/components/TokenInput/TokenInput.js.map +1 -1
- package/cjs/components/TokenInput/TokenInputMenu.js +2 -1
- package/cjs/components/TokenInput/TokenInputMenu.js.map +1 -1
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js +19 -0
- package/cjs/components/TokenInput/__creevey__/TokenInput.creevey.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js +2 -1
- package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
- package/cjs/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/cjs/lib/dom/getParentOrShadowHost.d.ts +1 -0
- package/cjs/lib/dom/getParentOrShadowHost.js +3 -0
- package/cjs/lib/dom/getParentOrShadowHost.js.map +1 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.d.ts +2 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.js +48 -0
- package/cjs/lib/dom/scrollYCenterIntoNearestScrollable.js.map +1 -0
- package/components/Button/Button/Button.js +0 -2
- package/components/Button/Button/Button.js.map +1 -1
- package/components/Calendar/Calendar.md +2 -1
- package/components/Gapped/Gapped.md +43 -43
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/FixedIMaskInput.d.ts +2 -2
- package/components/MaskedInput/IMaskInput/IMaskInput.js +230 -0
- package/components/MaskedInput/IMaskInput/IMaskInput.js.map +1 -0
- package/components/MaskedInput/IMaskInput/package.json +6 -0
- package/components/MaskedInput/IMaskInput.d.ts +122 -0
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -1
- package/components/MenuItem/MenuItem/MenuItem.js +3 -5
- package/components/MenuItem/MenuItem/MenuItem.js.map +1 -1
- package/components/MenuItem/MenuItem.d.ts +1 -0
- package/components/RadioGroup/RadioGroup.md +43 -43
- package/components/Select/__creevey__/Select.creevey/Select.creevey.js +33 -70
- package/components/Select/__creevey__/Select.creevey/Select.creevey.js.map +1 -1
- package/components/SingleToast/SingleToast/SingleToast.js +9 -4
- package/components/SingleToast/SingleToast/SingleToast.js.map +1 -1
- package/components/TokenInput/TokenInput/TokenInput.js +2 -1
- package/components/TokenInput/TokenInput/TokenInput.js.map +1 -1
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js +1 -0
- package/components/TokenInput/TokenInputMenu/TokenInputMenu.js.map +1 -1
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js +46 -0
- package/components/TokenInput/__creevey__/TokenInput.creevey/TokenInput.creevey.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +1 -0
- package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
- package/internal/ThemeShowcase/ThemeShowcase.md +13 -13
- package/lib/dom/getParentOrShadowHost/getParentOrShadowHost.js +3 -0
- package/lib/dom/getParentOrShadowHost/getParentOrShadowHost.js.map +1 -0
- package/lib/dom/getParentOrShadowHost/package.json +6 -0
- package/lib/dom/getParentOrShadowHost.d.ts +1 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/package.json +6 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/scrollYCenterIntoNearestScrollable.js +40 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable/scrollYCenterIntoNearestScrollable.js.map +1 -0
- package/lib/dom/scrollYCenterIntoNearestScrollable.d.ts +2 -0
- package/package.json +3 -7
- package/skbkontur-react-ui-5.0.4.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.4](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.3...@skbkontur/react-ui@5.0.4) (2024-12-04)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **TokenInput:** forward prop `size` to menu items ([#3553](https://github.com/skbkontur/retail-ui/issues/3553)) ([5a0c990](https://github.com/skbkontur/retail-ui/commit/5a0c990f99478adb12fce10b04f5875406b75e61))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [5.0.3](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.2...@skbkontur/react-ui@5.0.3) (2024-11-22)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **Calendar,MenuItem:** page jumps when opening DateSelect ([#3543](https://github.com/skbkontur/retail-ui/issues/3543)) ([7b4acd6](https://github.com/skbkontur/retail-ui/commit/7b4acd61f1645298062cdd6294ab780eb49f8669))
|
|
23
|
+
* **SingleToast:** avoid flushSync error in react@16 ([#3546](https://github.com/skbkontur/retail-ui/issues/3546)) ([767c848](https://github.com/skbkontur/retail-ui/commit/767c848339591f1b26cacf7da2f0436c5535008a))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
6
29
|
## [5.0.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.0.1...@skbkontur/react-ui@5.0.2) (2024-11-19)
|
|
7
30
|
|
|
8
31
|
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2017 SKB Kontur
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2017 SKB Kontur
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -290,7 +290,6 @@ Button = exports.Button = (0, _rootNode.rootNode)(_class = (_Button = /*#__PURE_
|
|
|
290
290
|
var isFocused = _this.state.focusedByTab || visuallyFocused;
|
|
291
291
|
var isLink = use === 'link';
|
|
292
292
|
|
|
293
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
294
293
|
var _useButtonArrow = (0, _ButtonArrow.useButtonArrow)((0, _extends2.default)({},
|
|
295
294
|
_this.props, { isFocused: Boolean(isFocused) }),
|
|
296
295
|
_this.theme
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_globalObject","_utils","_client","_keyListener","_ThemeContext","_CommonWrapper","_Emotion","_rootNode","_ThemeFactory","_createPropsGetter","_Link","_Button2","_ButtonIcon","_ButtonArrow","_getInnerLinkTheme","_LoadingButtonIcon","_class","_Button","_excluded","_excluded2","BUTTON_DEFAULT_COMPONENT","exports","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose2","default","createElement","Button","rootNode","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","state","focusedByTab","node","renderMain","props","_cx","_cx4","_cx5","corners","active","disabled","borderless","checked","error","warning","loading","narrow","arrow","icon","rightIcon","_noPadding","_noRightPadding","visuallyFocused","align","disableFocus","width","tabIndex","_component","component","useProp","use","sizeProp","size","theme","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","useButtonArrow","_extends2","Boolean","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","trueDisabled","rootClassName","cx","styles","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","globalClasses","activeStyles","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","ButtonIcon","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","isSafari","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","LoadingButtonIcon","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","ThemeContext","Provider","value","getInnerLinkTheme","Link","focused","renderIcon2022","Root","ref","e","globalObject","requestAnimationFrame","keyListener","isTabPressed","setState","_inheritsLoose2","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","ThemeFactory","create","CommonWrapper","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","isKonturIcon","_icon$props$size","sizes","getButtonIconSizes","React","cloneElement","_cx6","_cx7","_cx8","sizeLarge","sizeLargeIE11","isIE11","isEdge","sizeLargeWithIcon","sizeLargeWithIconWithoutText","sizeMedium","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeSmall","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type","isButton","isReactUIComponent"],"sources":["Button.tsx"],"sourcesContent":["import React, { HTMLAttributes } from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon, isReactUIComponent } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport { SizeProp } from '../../lib/types/props';\nimport { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport { ButtonIcon, ButtonIconProps, getButtonIconSizes } from './ButtonIcon';\nimport { useButtonArrow } from './ButtonArrow';\nimport { getInnerLinkTheme } from './getInnerLinkTheme';\nimport { LoadingButtonIcon } from './LoadingButtonIcon';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\nexport type ButtonUse = 'default' | 'primary' | 'success' | 'danger' | 'pay' | 'link' | 'text' | 'backless';\n\nexport interface ButtonInnerProps extends CommonProps {\n /** @ignore */\n _noPadding?: boolean;\n\n /** @ignore */\n _noRightPadding?: boolean;\n\n /**\n * Применяет к кнопке стили псевдокласса `:active`.\n */\n active?: boolean;\n\n /**\n * CSS-свойство `text-align`.\n */\n align?: React.CSSProperties['textAlign'];\n\n /**\n * Превращает обычную кнопку в кнопку со стрелкой.\n */\n arrow?: boolean | 'left';\n\n /**\n * Даёт кнопке фокус после окончания загрузки страницы.\n */\n autoFocus?: boolean;\n\n /**\n * Убирает обводку у кнопки.\n */\n borderless?: boolean;\n\n /**\n * @ignore\n */\n checked?: boolean;\n\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /**\n * Отключенное состояние кнопки.\n */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n\n /**\n * Иконка слева от текста кнопки.\n */\n icon?: React.ReactElement;\n\n /**\n * Иконка справа от текста кнопки.\n */\n rightIcon?: React.ReactElement;\n\n /**\n * Переводит кнопку в состояние загрузки.\n */\n loading?: boolean;\n\n /**\n * Сужает кнопку.\n */\n narrow?: boolean;\n\n /**\n * Задаёт размер кнопки.\n *\n * **Допустимые значения**: `\"small\"`, `\"medium\"`, `\"large\"`.\n */\n size?: SizeProp;\n\n /**\n * HTML-атрибут `type`.\n */\n type?: ButtonType;\n\n /**\n * HTML-атрибут `title`.\n */\n title?: string;\n\n /**\n * Стиль кнопки.\n *\n * **Допустимые значения**: `\"default\"`, `\"primary\"`, `\"success\"`, `\"danger\"`, `\"pay\"`, `\"link\"`, `\"text\"`, `\"backless\"`.\n *\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n\n /**\n * CSS-свойство `width`.\n */\n width?: number | string;\n\n /**\n * Обычный объект с переменными темы.\n * Он будет объединён с темой из контекста.\n */\n theme?: ThemeIn;\n}\n\nexport const BUTTON_DEFAULT_COMPONENT = 'button';\n\nexport type ButtonProps<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> =\n PolymorphicPropsWithoutRef<ButtonInnerProps, C>;\n\nexport interface ButtonState {\n focusedByTab: boolean;\n}\n\nexport const ButtonDataTids = {\n rootElement: 'Button__rootElement',\n root: 'Button__root',\n spinner: 'Button__spinner',\n} as const;\n\ntype DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'size' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@rootNode\nexport class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<\n ButtonProps<C>,\n ButtonState\n> {\n public static __KONTUR_REACT_UI__ = 'Button';\n public static displayName = 'Button';\n public static __BUTTON__ = true;\n\n public static defaultProps: DefaultProps = {\n use: 'default',\n size: 'small',\n // By default the type attribute is 'submit'. IE8 will fire a click event\n // on this button if somewhere on the page user presses Enter while some\n // input is focused. So we set type to 'button' by default.\n type: 'button',\n component: BUTTON_DEFAULT_COMPONENT,\n };\n\n private getProps = createPropsGetter(Button.defaultProps);\n\n public state = {\n focusedByTab: false,\n };\n\n private theme!: Theme;\n private node: HTMLElement | null = null;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.autoFocus) {\n keyListener.isTabPressed = true;\n this.focus();\n }\n // warning(\n // this.props.use !== 'link',\n // `[Button]: Use 'Link' has been deprecated. Please, use Link with 'component=button' prop instead.`,\n // );\n }\n\n public static getDerivedStateFromProps(props: ButtonProps) {\n if (props.loading || props.disabled) {\n return { focusedByTab: false };\n }\n return null;\n }\n\n /**\n * @public\n */\n public focus() {\n this.node?.focus();\n }\n\n /**\n * @public\n */\n public blur() {\n this.node?.blur();\n }\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = this.props.theme ? ThemeFactory.create(this.props.theme as Theme, theme) : theme;\n return (\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private getTabIndex({\n disableFocus,\n disabled,\n tabIndex = 0,\n }: Pick<ButtonProps, 'disableFocus' | 'disabled' | 'tabIndex'>) {\n if (disableFocus || disabled) {\n return -1;\n }\n\n return tabIndex;\n }\n\n private renderMain = (props: CommonWrapperRestProps<ButtonProps>) => {\n const {\n corners,\n active,\n disabled,\n borderless,\n checked,\n error,\n warning,\n loading,\n narrow,\n arrow,\n icon,\n rightIcon,\n _noPadding,\n _noRightPadding,\n visuallyFocused,\n align,\n disableFocus,\n width,\n tabIndex,\n component: _component,\n use: useProp,\n size: sizeProp,\n theme,\n ...rest\n } = props;\n const { use, size, component, children } = this.getProps();\n\n const sizeClass = this.getSizeClassName();\n\n const isFocused = this.state.focusedByTab || visuallyFocused;\n const isLink = use === 'link';\n\n const [rootClassNameWithArrow, arrowNode] = useButtonArrow(\n { ...this.props, isFocused: Boolean(isFocused) },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const trueDisabled = disabled || loading;\n const rootClassName = cx(\n styles.root(this.theme),\n styles[use](this.theme),\n sizeClass,\n narrow && styles.narrow(),\n _noPadding && styles.noPadding(),\n _noRightPadding && styles.noRightPadding(),\n rootClassNameWithArrow,\n ...(trueDisabled\n ? [\n styles.disabled(this.theme),\n isUseStateWithoutOutlineInDisabledState && styles.disabledWithoutOutline(this.theme),\n checked && styles.checkedDisabled(this.theme),\n borderless && styles.borderless(),\n use === 'backless' && styles.backlessDisabled(this.theme),\n use === 'text' && styles.textDisabled(),\n globalClasses.disabled,\n ]\n : [\n active && !checked && activeStyles[use](this.theme),\n isFocused && styles.focus(this.theme),\n checked && styles.checked(this.theme),\n checked && isFocused && styles.checkedFocused(this.theme),\n borderless && !checked && !isFocused && styles.borderless(),\n ]),\n );\n\n const rootProps = {\n ...rest,\n className: rootClassName,\n style: {\n textAlign: align,\n ...corners,\n },\n disabled: trueDisabled,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: trueDisabled, tabIndex }),\n };\n\n const wrapProps = {\n className: cx(globalClasses.root, {\n [styles.wrap(this.theme)]: true,\n [this.getSizeWrapClassName()]: true,\n }),\n style: {\n width,\n },\n };\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !trueDisabled) {\n outlineNode = (\n <div\n className={cx(styles.outline(), {\n [styles.outlineWarning(this.theme)]: warning,\n [styles.outlineError(this.theme)]: error,\n [styles.outlineLink()]: isLink,\n [styles.outlineLinkWarning(this.theme)]: isLink && warning,\n [styles.outlineLinkError(this.theme)]: isLink && error,\n })}\n />\n );\n }\n\n const iconProps: Omit<ButtonIconProps, 'position'> = {\n use,\n size: this.getProps().size,\n hasChildren: !!children,\n loading: loading || false,\n };\n const leftIconNode = icon && <ButtonIcon {...iconProps} position=\"left\" icon={icon} />;\n const rightIconNode = rightIcon && (\n <ButtonIcon {...iconProps} hasBothIcons={!!icon && !!rightIcon} position=\"right\" icon={rightIcon} />\n );\n\n // Force disable all props and features, that cannot be use with Link\n if (isLink) {\n rootProps.className = cx({\n [styles.root(this.theme)]: true,\n [sizeClass]: true,\n [styles.link(this.theme)]: true,\n [styles.linkLineHeight()]: !isSafari,\n [styles.linkLineHeightSafariFallback()]: isSafari,\n [styles.linkFocus(this.theme)]: isFocused,\n [styles.linkDisabled(this.theme)]: trueDisabled,\n });\n Object.assign(wrapProps, {\n className: cx(styles.wrap(this.theme), styles.wrapLink()),\n style: { width: wrapProps.style.width },\n });\n\n rootProps.style.textAlign = undefined;\n }\n\n const hasLoadingNode = loading && !icon && !rightIcon;\n const loadingNode = hasLoadingNode && <LoadingButtonIcon size={size} />;\n\n let captionNode = (\n <div\n className={cx(styles.caption(), globalClasses.caption, {\n [styles.captionLink()]: isLink,\n [styles.captionDisabled()]: !checked && disabled,\n })}\n >\n {loadingNode}\n {leftIconNode}\n <span\n className={cx(globalClasses.text, {\n [styles.visibilityHidden()]: hasLoadingNode,\n })}\n >\n {children}\n </span>\n {rightIconNode}\n </div>\n );\n if (isLink && !loading) {\n captionNode = (\n <ThemeContext.Provider value={getInnerLinkTheme(this.theme)}>\n {\n <Link<typeof SpanComponent>\n focused={isFocused}\n disabled={disabled}\n icon={this.renderIcon2022(icon)}\n rightIcon={this.renderIcon2022(rightIcon)}\n tabIndex={-1}\n component={SpanComponent}\n >\n {children}\n </Link>\n }\n </ThemeContext.Provider>\n );\n }\n\n const Root: React.ElementType = component;\n\n return (\n <span {...wrapProps} data-tid={ButtonDataTids.root}>\n <Root data-tid={ButtonDataTids.rootElement} ref={this._ref} {...rootProps}>\n {innerShadowNode}\n {outlineNode}\n {arrowNode}\n {captionNode}\n </Root>\n </span>\n );\n };\n\n private renderIcon2022(icon: React.ReactElement | undefined) {\n if (icon && isKonturIcon(icon)) {\n const sizes = getButtonIconSizes(this.theme);\n return React.cloneElement(icon, { size: icon.props.size ?? sizes[this.getProps().size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n switch (this.getProps().size) {\n case 'large':\n return cx(styles.sizeLarge(this.theme), {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'medium':\n return cx(styles.sizeMedium(this.theme), {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n case 'small':\n default:\n return cx(styles.sizeSmall(this.theme), {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!this.props.icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!this.props.icon && !this.props.children,\n });\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.getProps().size) {\n case 'large':\n return styles.wrapLarge(this.theme);\n case 'medium':\n return styles.wrapMedium(this.theme);\n case 'small':\n default:\n return styles.wrapSmall(this.theme);\n }\n }\n\n private handleFocus = (e: React.FocusEvent) => {\n if (!this.props.disabled && !this.props.disableFocus) {\n // focus event fires before keyDown eventlistener\n // so we should check tabPressed in async way\n globalObject.requestAnimationFrame?.(() => {\n if (keyListener.isTabPressed) {\n this.setState({ focusedByTab: true });\n }\n });\n this.props.onFocus?.(e);\n }\n };\n\n private handleBlur = (e: React.FocusEvent) => {\n this.setState({ focusedByTab: false });\n if (!this.props.disabled && !this.props.disableFocus) {\n this.props.onBlur?.(e);\n }\n };\n\n private _ref = (node: HTMLElement | null) => {\n this.node = node;\n };\n}\n\nexport const isButton = isReactUIComponent<ButtonProps>('Button');\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -174,7 +174,8 @@ const [value, setValue] = React.useState(null);
|
|
|
174
174
|
|
|
175
175
|
<ThemeContext.Provider
|
|
176
176
|
value={ThemeFactory.create({
|
|
177
|
-
|
|
177
|
+
calendarCellWidth: '56px',
|
|
178
|
+
calendarCellHeight: '56px',
|
|
178
179
|
calendarCellLineHeight: '1.5',
|
|
179
180
|
calendarWrapperHeight: '600px',
|
|
180
181
|
calendarCellBorderRadius: '8px'
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
Вывод элементов с горизонтальным расположением
|
|
2
|
-
|
|
3
|
-
```jsx harmony
|
|
4
|
-
import { Button } from '@skbkontur/react-ui';
|
|
5
|
-
|
|
6
|
-
<Gapped gap={20}>
|
|
7
|
-
<Button use="primary">Сохранить</Button>
|
|
8
|
-
<Button>Отмена</Button>
|
|
9
|
-
</Gapped>;
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Вертикальное расположение
|
|
13
|
-
|
|
14
|
-
```jsx harmony
|
|
15
|
-
import { Checkbox } from '@skbkontur/react-ui';
|
|
16
|
-
|
|
17
|
-
<Gapped vertical gap={20}>
|
|
18
|
-
<Checkbox checked>Write todos</Checkbox>
|
|
19
|
-
<Checkbox initialIndeterminate>Work in progress</Checkbox>
|
|
20
|
-
<Checkbox>Make things done</Checkbox>
|
|
21
|
-
</Gapped>;
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
По умолчанию `Gapped` выстраивает элементы в одну строчку, но с помощью свойства `wrap` можно включить перенос элементов на новую строку.
|
|
25
|
-
При этом между строчками будет отступ равный значению свойста `gap`
|
|
26
|
-
В таком случае из-за особенности верстки `Gapped` может перекрывать элементы расположенные сверху-слева.
|
|
27
|
-
|
|
28
|
-
```jsx harmony
|
|
29
|
-
import { Button, Checkbox, Toggle } from '@skbkontur/react-ui';
|
|
30
|
-
|
|
31
|
-
<>
|
|
32
|
-
{"U Can't Touch This! => "}
|
|
33
|
-
<Toggle />
|
|
34
|
-
|
|
35
|
-
<div style={{ paddingTop: '10px', position: 'relative', width: '250px' }}>
|
|
36
|
-
<Gapped wrap gap={50}>
|
|
37
|
-
<Button use="primary">Сохранить</Button>
|
|
38
|
-
<Button>Отмена</Button>
|
|
39
|
-
<Checkbox>Я не робот</Checkbox>
|
|
40
|
-
</Gapped>
|
|
41
|
-
</div>
|
|
42
|
-
</>;
|
|
43
|
-
```
|
|
1
|
+
Вывод элементов с горизонтальным расположением
|
|
2
|
+
|
|
3
|
+
```jsx harmony
|
|
4
|
+
import { Button } from '@skbkontur/react-ui';
|
|
5
|
+
|
|
6
|
+
<Gapped gap={20}>
|
|
7
|
+
<Button use="primary">Сохранить</Button>
|
|
8
|
+
<Button>Отмена</Button>
|
|
9
|
+
</Gapped>;
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Вертикальное расположение
|
|
13
|
+
|
|
14
|
+
```jsx harmony
|
|
15
|
+
import { Checkbox } from '@skbkontur/react-ui';
|
|
16
|
+
|
|
17
|
+
<Gapped vertical gap={20}>
|
|
18
|
+
<Checkbox checked>Write todos</Checkbox>
|
|
19
|
+
<Checkbox initialIndeterminate>Work in progress</Checkbox>
|
|
20
|
+
<Checkbox>Make things done</Checkbox>
|
|
21
|
+
</Gapped>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
По умолчанию `Gapped` выстраивает элементы в одну строчку, но с помощью свойства `wrap` можно включить перенос элементов на новую строку.
|
|
25
|
+
При этом между строчками будет отступ равный значению свойста `gap`
|
|
26
|
+
В таком случае из-за особенности верстки `Gapped` может перекрывать элементы расположенные сверху-слева.
|
|
27
|
+
|
|
28
|
+
```jsx harmony
|
|
29
|
+
import { Button, Checkbox, Toggle } from '@skbkontur/react-ui';
|
|
30
|
+
|
|
31
|
+
<>
|
|
32
|
+
{"U Can't Touch This! => "}
|
|
33
|
+
<Toggle />
|
|
34
|
+
|
|
35
|
+
<div style={{ paddingTop: '10px', position: 'relative', width: '250px' }}>
|
|
36
|
+
<Gapped wrap gap={50}>
|
|
37
|
+
<Button use="primary">Сохранить</Button>
|
|
38
|
+
<Button>Отмена</Button>
|
|
39
|
+
<Checkbox>Я не робот</Checkbox>
|
|
40
|
+
</Gapped>
|
|
41
|
+
</div>
|
|
42
|
+
</>;
|
|
43
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InputMask, MaskedPatternOptions } from 'imask';
|
|
2
|
-
import { IMaskInputProps } from '
|
|
1
|
+
import type { InputMask, MaskedPatternOptions } from 'imask';
|
|
2
|
+
import { type IMaskInputProps } from './IMaskInput';
|
|
3
3
|
export type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;
|
|
4
4
|
interface IMaskRefType {
|
|
5
5
|
maskRef: InputMask<MaskedPatternOptions>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.FixedIMaskInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
|
|
2
2
|
|
|
3
|
-
var _reactImask = require("react-imask");
|
|
4
3
|
|
|
5
4
|
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
6
5
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
@@ -15,7 +14,9 @@ var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
|
15
14
|
|
|
16
15
|
|
|
17
16
|
|
|
18
|
-
var _MouseDrag = require("../../lib/events/MouseDrag");
|
|
17
|
+
var _MouseDrag = require("../../lib/events/MouseDrag");
|
|
18
|
+
|
|
19
|
+
var _IMaskInput = require("./IMaskInput");var _excluded = ["inputRef"];
|
|
19
20
|
|
|
20
21
|
|
|
21
22
|
|
|
@@ -57,7 +58,7 @@ var FixedIMaskInput = exports.FixedIMaskInput = (0, _forwardRefAndName.forwardRe
|
|
|
57
58
|
(0, _react.useImperativeHandle)(ref, function () {return imaskRef.current;}, []);
|
|
58
59
|
|
|
59
60
|
return /*#__PURE__*/(
|
|
60
|
-
_react.default.createElement(
|
|
61
|
+
_react.default.createElement(_IMaskInput.IMaskInput, (0, _extends2.default)({},
|
|
61
62
|
restProps, {
|
|
62
63
|
ref: imaskRef,
|
|
63
64
|
inputRef: inputRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactImask","_forwardRefAndName","_identifiers","_MouseDrag","_excluded","FixedIMaskInput","exports","forwardRefAndName","props","ref","inputRef","restProps","_objectWithoutPropertiesLoose2","default","imaskRef","useRef","focused","useEffect","_imaskRef$current","current","element","fillTypedValue","mouseDrag","MouseDrag","listen","onMouseDragEnd","e","_imaskRef$current2","_imaskRef$current3","direction","mouseDragStartEvent","selectionStart","selectionEnd","pageX","_getSelection","getSelection","start","end","setSelection","useImperativeHandle","createElement","IMaskInput","_extends2","onKeyDown","handleKeyDown","onFocus","handleFocus","onBlur","handleBlur","onMouseUp","handleMouseUp","onAccept","handleAccept","onInput","handleInput","getTypedValue","_imaskRef$current4","_ref","maskRef","masked","_ref$_value","_value","_ref$displayValue","displayValue","getMaxCaretPosition","value","slice","_imaskRef$current5","_imaskRef$current6","_imaskRef$current7","setAttribute","unmaskedValue","maskChars","push","placeholderChar","blocks","Object","values","forEach","_ref2","split","RegExp","join","length","Infinity","normalizeSelection","_getSelection2","max","getNormalizedRange","calc","Math","min","selectionDirection","_imaskRef$current8","_len","arguments","_ref3","Array","_key","setSelectionRange","jumpCaret","prev","headDirection","_imaskRef$current9","word","valueOf","wordRegExp","next","match","reduce","s","a","pos","concat","calcSelection","_getSelection3","isSelectionMode","isModShift","tail","head","someKeys","isKeyArrowLeft","isKeyArrowUp","isKeyHome","step","isKeyArrowHorizontal","increment","isShortcutJumpCaret","setTimeout","_len2","args","_key2","apply","_imaskRef$current10","unmask","rawInputValue","nativeEvent","nearest","isShortcutSelectAll","preventDefault","isKeyArrow","isKeyEnd","_calcSelection"],"sources":["FixedIMaskInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { InputMask, MaskedPatternOptions } from 'imask';\nimport { IMaskInput, IMaskInputProps } from 'react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n });\n }\n }, []);\n\n useImperativeHandle(ref, () => imaskRef.current, []);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (restProps.unmask && maskRef && maskRef.rawInputValue === '' && maskRef.unmaskedValue !== '') {\n // Для случаев, когда в value остаются только зафиксированные - {} - очищаем value полностью\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_identifiers","_MouseDrag","_IMaskInput","_excluded","FixedIMaskInput","exports","forwardRefAndName","props","ref","inputRef","restProps","_objectWithoutPropertiesLoose2","default","imaskRef","useRef","focused","useEffect","_imaskRef$current","current","element","fillTypedValue","mouseDrag","MouseDrag","listen","onMouseDragEnd","e","_imaskRef$current2","_imaskRef$current3","direction","mouseDragStartEvent","selectionStart","selectionEnd","pageX","_getSelection","getSelection","start","end","setSelection","useImperativeHandle","createElement","IMaskInput","_extends2","onKeyDown","handleKeyDown","onFocus","handleFocus","onBlur","handleBlur","onMouseUp","handleMouseUp","onAccept","handleAccept","onInput","handleInput","getTypedValue","_imaskRef$current4","_ref","maskRef","masked","_ref$_value","_value","_ref$displayValue","displayValue","getMaxCaretPosition","value","slice","_imaskRef$current5","_imaskRef$current6","_imaskRef$current7","setAttribute","unmaskedValue","maskChars","push","placeholderChar","blocks","Object","values","forEach","_ref2","split","RegExp","join","length","Infinity","normalizeSelection","_getSelection2","max","getNormalizedRange","calc","Math","min","selectionDirection","_imaskRef$current8","_len","arguments","_ref3","Array","_key","setSelectionRange","jumpCaret","prev","headDirection","_imaskRef$current9","word","valueOf","wordRegExp","next","match","reduce","s","a","pos","concat","calcSelection","_getSelection3","isSelectionMode","isModShift","tail","head","someKeys","isKeyArrowLeft","isKeyArrowUp","isKeyHome","step","isKeyArrowHorizontal","increment","isShortcutJumpCaret","setTimeout","_len2","args","_key2","apply","_imaskRef$current10","unmask","rawInputValue","nativeEvent","nearest","isShortcutSelectAll","preventDefault","isKeyArrow","isKeyEnd","_calcSelection"],"sources":["FixedIMaskInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport type { InputMask, MaskedPatternOptions } from 'imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\n\nimport { IMaskInput, type IMaskInputProps } from './IMaskInput';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n });\n }\n }, []);\n\n useImperativeHandle(ref, () => imaskRef.current, []);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (restProps.unmask && maskRef && maskRef.rawInputValue === '' && maskRef.unmaskedValue !== '') {\n // Для случаев, когда в value остаются только зафиксированные - {} - очищаем value полностью\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|