@skbkontur/react-ui 5.4.0 → 5.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cjs/components/Autocomplete/Autocomplete.d.ts +10 -2
  3. package/cjs/components/Autocomplete/Autocomplete.js +18 -2
  4. package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  5. package/cjs/components/Button/Button.d.ts +23 -13
  6. package/cjs/components/Button/Button.js +13 -3
  7. package/cjs/components/Button/Button.js.map +1 -1
  8. package/cjs/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  9. package/cjs/components/CurrencyInput/CurrencyInput.js +10 -17
  10. package/cjs/components/CurrencyInput/CurrencyInput.js.map +1 -1
  11. package/cjs/components/FxInput/FxInput.d.ts +23 -16
  12. package/cjs/components/FxInput/FxInput.js +142 -65
  13. package/cjs/components/FxInput/FxInput.js.map +1 -1
  14. package/cjs/components/Input/Input.d.ts +27 -37
  15. package/cjs/components/Input/Input.js +9 -19
  16. package/cjs/components/Input/Input.js.map +1 -1
  17. package/cjs/components/Link/Link.d.ts +10 -10
  18. package/cjs/components/Link/Link.js +1 -1
  19. package/cjs/components/Link/Link.js.map +1 -1
  20. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  21. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js +107 -78
  22. package/cjs/components/MaskedInput/ColorableInputElement/ColorableInputElement.js.map +1 -1
  23. package/cjs/components/MaskedInput/MaskedInput.js +5 -3
  24. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  25. package/cjs/components/PasswordInput/PasswordInput.d.ts +5 -6
  26. package/cjs/components/PasswordInput/PasswordInput.js +4 -5
  27. package/cjs/components/PasswordInput/PasswordInput.js.map +1 -1
  28. package/cjs/components/__stories__/Form.js +95 -0
  29. package/cjs/components/__stories__/Form.js.map +1 -0
  30. package/cjs/internal/CommonWrapper/types.d.ts +1 -1
  31. package/cjs/internal/CommonWrapper/types.js.map +1 -1
  32. package/cjs/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  33. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  34. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js +2 -0
  35. package/cjs/lib/featureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  36. package/cjs/lib/utils.d.ts +5 -1
  37. package/cjs/lib/utils.js +20 -4
  38. package/cjs/lib/utils.js.map +1 -1
  39. package/cjs/test-setup.d.ts +1 -0
  40. package/cjs/vitest.config.d.ts +2 -0
  41. package/components/Autocomplete/Autocomplete/Autocomplete.js +10 -2
  42. package/components/Autocomplete/Autocomplete/Autocomplete.js.map +1 -1
  43. package/components/Autocomplete/Autocomplete.d.ts +10 -2
  44. package/components/Button/Button/Button.js +4 -2
  45. package/components/Button/Button/Button.js.map +1 -1
  46. package/components/Button/Button.d.ts +23 -13
  47. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js +6 -17
  48. package/components/CurrencyInput/CurrencyInput/CurrencyInput.js.map +1 -1
  49. package/components/CurrencyInput/CurrencyInput.d.ts +11 -22
  50. package/components/FxInput/FxInput/FxInput.js +122 -71
  51. package/components/FxInput/FxInput/FxInput.js.map +1 -1
  52. package/components/FxInput/FxInput.d.ts +23 -16
  53. package/components/Input/Input/Input.js +8 -16
  54. package/components/Input/Input/Input.js.map +1 -1
  55. package/components/Input/Input.d.ts +27 -37
  56. package/components/Link/Link/Link.js +1 -1
  57. package/components/Link/Link/Link.js.map +1 -1
  58. package/components/Link/Link.d.ts +10 -10
  59. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js +81 -66
  60. package/components/MaskedInput/ColorableInputElement/ColorableInputElement/ColorableInputElement.js.map +1 -1
  61. package/components/MaskedInput/ColorableInputElement/ColorableInputElement.d.ts +1 -0
  62. package/components/MaskedInput/MaskedInput/MaskedInput.js +4 -2
  63. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  64. package/components/PasswordInput/PasswordInput/PasswordInput.js +4 -5
  65. package/components/PasswordInput/PasswordInput/PasswordInput.js.map +1 -1
  66. package/components/PasswordInput/PasswordInput.d.ts +5 -6
  67. package/components/__stories__/Form/Form.js +98 -0
  68. package/components/__stories__/Form/Form.js.map +1 -0
  69. package/components/__stories__/Form/package.json +6 -0
  70. package/internal/CommonWrapper/types/types.js.map +1 -1
  71. package/internal/CommonWrapper/types.d.ts +1 -1
  72. package/lib/featureFlagsContext/FeatureFlagsHelpers.d.ts +1 -0
  73. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js +1 -0
  74. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext/ReactUIFeatureFlagsContext.js.map +1 -1
  75. package/lib/featureFlagsContext/ReactUIFeatureFlagsContext.d.ts +1 -0
  76. package/lib/utils/utils.js +18 -2
  77. package/lib/utils/utils.js.map +1 -1
  78. package/lib/utils.d.ts +5 -1
  79. package/package.json +8 -14
  80. package/test-setup.d.ts +1 -0
  81. package/vitest.config.d.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","MenuMessage","locale","getRandomID","isNullable","ThemeContext","cx","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","Popup","getMenuPositions","ZIndex","getSafeMaskInputType","MaskedInput","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","withSize","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","_dec","_class","_Autocomplete","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","_cx","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","_props$width","width","theme","inputWidth","mobileMenuHeaderText","type","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","noPortal","style","refRootSpan","getInput","renderMobileMenu","renderMenu","featureFlags","autocompleteUseMaskedInput","mask","maskChar","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","inputMode","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","_inheritsLoose","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","Consumer","flags","Provider","rootNodeRef","setRootNode","notFound","updateValue","_this$getProps","menuWidth","calculatedMenuWidth","menuProps","hasMargin","priority","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","setTimeout","_this5","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Autocomplete.tsx"],"sourcesContent":["import type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../../internal/Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getSafeMaskInputType, MaskedInput, type MaskedProps } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Autocomplete.styles';\nimport type { AutocompleteLocale } from './locale';\nimport { AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Задает функцию, которая отрисовывает элементы меню. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задает промис, который резолвит элементы меню. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего меню. */\n hasShadow?: boolean;\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает максимальную высоту выпадающего меню. */\n menuMaxHeight?: number | string;\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда меню открыто. */\n preventWindowScroll?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при потере автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Задаёт размер инпута. */\n size?: SizeProp;\n\n /** Задает значение автокомплита. */\n value: string;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>\n>;\n\n/**\n * `Autocomplete` — стандартный инпут с подсказками.\n *\n * Подсказки определяются в пропе `source`.\n * Все свойства передаются во внутренний `Input`.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\n@withSize\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n private featureFlags!: ReactUIFeatureFlags;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={cx(styles.root(this.theme), {\n [styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.featureFlags.autocompleteUseMaskedInput && this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} mask={this.props.mask} maskChar={this.props.maskChar} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={this.getInput(inputProps)}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n globalObject.setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","MenuMessage","locale","getRandomID","isNullable","ThemeContext","cx","isKeyArrowDown","isKeyArrowUp","isKeyEnter","isKeyEscape","Input","Menu","MenuItem","RenderLayer","createPropsGetter","fixClickFocusIE","CommonWrapper","MobilePopup","responsiveLayout","getRootNode","rootNode","getDOMRect","Popup","getMenuPositions","ZIndex","getSafeMaskInputType","MaskedInput","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","withSize","styles","AutocompleteLocaleHelper","getAutocompleteTheme","match","pattern","items","Promise","resolve","lowerCasedPattern","toLowerCase","itemsMatchingPattern","filter","item","includes","renderItem","AutocompleteDataTids","root","menu","AutocompleteIds","Autocomplete","_dec","_class","_Autocomplete","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","selected","focused","isMobileOpened","opened","input","menuId","requestId","getProps","defaultProps","renderMain","props","_cx","isMobile","isMobileLayout","onValueChange","onKeyDown","onFocus","onBlur","_renderItem","disablePortal","hasShadow","menuAlign","menuMaxHeight","preventWindowScroll","source","menuPos","_props$width","width","theme","inputWidth","mobileMenuHeaderText","type","rest","_objectWithoutPropertiesLoose","_excluded","inputProps","_extends","autoComplete","handleValueChange","handleKeyDown","handleFocus","ref","refInput","createElement","onFocusOutside","handleBlur","onClickOutside","handleClickOutside","active","className","noPortal","style","refRootSpan","getInput","renderMobileMenu","renderMenu","featureFlags","autocompleteUseMaskedInput","mask","maskChar","_this$mobilePopup","autoFocus","onKeyPress","handleKeyPressMobile","value","placeholder","enterValue","inputMode","id","headerChildComponent","caption","onCloseRequest","handleCloseMobile","refMobilePopup","refMenu","onItemClick","mobilePopup","close","disableScrollContainer","maxHeight","getItems","renderHints","map","i","onClick","handleMenuItemClick","key","size","fireChange","setState","e","_this$mobilePopup2","event","blur","preventDefault","up","down","enter","getAnchor","el","span","rootSpan","_inheritsLoose","_proto","prototype","focus","componentDidUpdate","prevProps","updateItems","render","_this2","Consumer","flags","Provider","rootNodeRef","setRootNode","notFound","updateValue","_this$getProps","menuWidth","calculatedMenuWidth","menuProps","hasMargin","priority","priorities","PopupMenu","anchorElement","minWidth","undefined","positions","margin","parseInt","menuOffsetY","_this3","handleItemClick","index","button","choose","_this4","setTimeout","_this5","trim","promise","expectingId","then","Component","__KONTUR_REACT_UI__","displayName"],"sources":["Autocomplete.tsx"],"sourcesContent":["import type { AriaAttributes, KeyboardEvent } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { MenuMessage } from '../../internal/MenuMessage';\nimport { locale } from '../../lib/locale/decorators';\nimport { getRandomID, isNullable } from '../../lib/utils';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isKeyArrowDown, isKeyArrowUp, isKeyEnter, isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport type { InputProps } from '../Input';\nimport { Input } from '../Input';\nimport { Menu } from '../../internal/Menu';\nimport { MenuItem } from '../MenuItem';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { Nullable, Override } from '../../typings/utility-types';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { MobilePopup } from '../../internal/MobilePopup';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { getRootNode, rootNode } from '../../lib/rootNode';\nimport { getDOMRect } from '../../lib/dom/getDOMRect';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../../internal/Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { getSafeMaskInputType, MaskedInput, type MaskedProps } from '../MaskedInput';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { ReactUIFeatureFlagsContext } from '../../lib/featureFlagsContext/ReactUIFeatureFlagsContext';\nimport { getFullReactUIFlagsContext } from '../../lib/featureFlagsContext/FeatureFlagsHelpers';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles } from './Autocomplete.styles';\nimport type { AutocompleteLocale } from './locale';\nimport { AutocompleteLocaleHelper } from './locale';\nimport { getAutocompleteTheme } from './getAutocompleteTheme';\n\nfunction match(pattern: string, items: string[]) {\n if (!pattern || !items) {\n return Promise.resolve([]);\n }\n\n const lowerCasedPattern = pattern.toLowerCase();\n const itemsMatchingPattern = items.filter((item) => {\n return item.toLowerCase().includes(lowerCasedPattern);\n });\n\n return Promise.resolve(itemsMatchingPattern);\n}\n\nfunction renderItem(item: any) {\n return item;\n}\n\nexport interface AutocompleteProps\n extends CommonProps,\n Pick<AriaAttributes, 'aria-label'>,\n Pick<Partial<MaskedProps>, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n Override<\n Omit<InputProps, 'alwaysShowMask' | 'mask' | 'maskChar'>,\n {\n /** Задает функцию, которая отрисовывает элементы меню. */\n renderItem?: (item: string) => React.ReactNode;\n\n /** Задает промис, который резолвит элементы меню. */\n source?: string[] | ((patter: string) => Promise<string[]>);\n\n /** Отключает использование портала. */\n disablePortal?: boolean;\n\n /** Определяет, нужно ли показывать тень у выпадающего меню. */\n hasShadow?: boolean;\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает максимальную высоту выпадающего меню. */\n menuMaxHeight?: number | string;\n\n /** Задает ширину выпадающего меню. */\n menuWidth?: number | string;\n\n /** Отключает скролл окна, когда меню открыто. */\n preventWindowScroll?: boolean;\n\n /** Задает функцию, которая вызывается при изменении value. */\n onValueChange: (value: string) => void;\n\n /** Задает функцию, которая вызывается при потере автокомплитом фокуса. */\n onBlur?: () => void;\n\n /** Задаёт размер инпута. */\n size?: SizeProp;\n\n /** Задает значение автокомплита. */\n value: string;\n\n /** Задает текст заголовка выпадающего меню в мобильной версии. */\n mobileMenuHeaderText?: string;\n }\n > {\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n}\n\nexport interface AutocompleteState {\n items: Nullable<string[]>;\n selected: number;\n focused: boolean;\n isMobileOpened: boolean;\n}\n\nexport const AutocompleteDataTids = {\n root: 'Autocomplete__root',\n menu: 'Autocomplete__menu',\n} as const;\n\nexport const AutocompleteIds = {\n menu: AutocompleteDataTids.menu,\n} as const;\n\ntype DefaultProps = Required<\n Pick<AutocompleteProps, 'renderItem' | 'disablePortal' | 'hasShadow' | 'menuMaxHeight' | 'preventWindowScroll'>\n>;\n\n/**\n * `Autocomplete` — стандартный инпут с подсказками.\n *\n * Подсказки определяются в пропе `source`.\n * Все свойства передаются во внутренний `Input`.\n */\n@responsiveLayout\n@rootNode\n@locale('Autocomplete', AutocompleteLocaleHelper)\n@withSize\nexport class Autocomplete extends React.Component<AutocompleteProps, AutocompleteState> {\n public static __KONTUR_REACT_UI__ = 'Autocomplete';\n public static displayName = 'Autocomplete';\n\n public static defaultProps: DefaultProps = {\n renderItem,\n disablePortal: false,\n hasShadow: true,\n menuMaxHeight: 300,\n preventWindowScroll: true,\n };\n\n public state: AutocompleteState = {\n items: null,\n selected: -1,\n focused: false,\n isMobileOpened: false,\n };\n\n private theme!: Theme;\n private size!: SizeProp;\n private readonly locale!: AutocompleteLocale;\n private isMobileLayout!: boolean;\n private opened = false;\n private input: Nullable<Input> = null;\n private menu: Nullable<Menu>;\n private menuId = AutocompleteIds.menu + getRandomID();\n private rootSpan: Nullable<HTMLSpanElement>;\n private mobilePopup: Nullable<MobilePopup>;\n private featureFlags!: ReactUIFeatureFlags;\n\n private requestId = 0;\n\n private getProps = createPropsGetter(Autocomplete.defaultProps);\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public focus method\n * @description Focuses the input.\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.focus()}>Focus</button>\n */\n public focus() {\n if (this.input) {\n this.input.focus();\n }\n }\n\n /**\n * @public blur method\n * @description Blurs the input.\n * @example\n * <Autocomplete ref={autocompleteRef} />\n * <button onClick={() => autocompleteRef.current?.blur()}>Blur</button>\n */\n public blur() {\n this.handleBlur();\n }\n\n public componentDidUpdate(prevProps: AutocompleteProps) {\n if (prevProps.value !== this.props.value) {\n this.updateItems(this.props.value || '');\n }\n }\n\n public render() {\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getAutocompleteTheme(theme);\n return (\n <ThemeContext.Provider value={this.theme}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.getProps()}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n public renderMain = (props: CommonWrapperRestProps<AutocompleteProps>) => {\n const { focused } = this.state;\n\n const isMobile = this.isMobileLayout;\n\n const {\n onValueChange,\n onKeyDown,\n onFocus,\n onBlur,\n renderItem: _renderItem,\n disablePortal,\n hasShadow,\n menuAlign,\n menuMaxHeight,\n preventWindowScroll,\n source,\n menuPos,\n width = this.theme.inputWidth,\n mobileMenuHeaderText,\n type,\n ...rest\n } = props;\n\n const inputProps = {\n ...rest,\n width: '100%',\n autoComplete: 'off',\n 'aria-controls': this.menuId,\n onValueChange: this.handleValueChange,\n onKeyDown: this.handleKeyDown,\n onFocus: this.handleFocus,\n ref: this.refInput,\n };\n\n return (\n <RenderLayer onFocusOutside={this.handleBlur} onClickOutside={this.handleClickOutside} active={focused}>\n <span\n data-tid={AutocompleteDataTids.root}\n className={cx(styles.root(this.theme), {\n [styles.noPortal()]: disablePortal,\n })}\n style={{ width }}\n ref={this.refRootSpan}\n >\n {this.getInput(inputProps)}\n\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n );\n };\n\n private renderHints(): React.ReactNode {\n const items = this.state.items;\n\n if (!this.props.value) {\n return <MenuMessage>{this.locale.enterValue}</MenuMessage>;\n }\n\n if (items?.length === 0 && this.props.value) {\n return <MenuMessage>{this.locale.notFound}</MenuMessage>;\n }\n\n if (isNullable(items) && this.props.value) {\n return <MenuMessage>{this.locale.updateValue}</MenuMessage>;\n }\n\n return null;\n }\n\n private renderMenu(): React.ReactNode {\n const items = this.state.items;\n const { menuPos, menuAlign, menuMaxHeight, hasShadow, menuWidth, width, preventWindowScroll, disablePortal } =\n this.getProps();\n const calculatedMenuWidth = menuWidth ? '100%' : width && getDOMRect(this.rootSpan).width;\n const menuProps = {\n ref: this.refMenu,\n maxHeight: menuMaxHeight,\n hasShadow: false,\n hasMargin: false,\n width: calculatedMenuWidth,\n preventWindowScroll,\n };\n if (!items || items.length === 0) {\n return null;\n }\n\n return (\n <Popup\n opened\n hasShadow={hasShadow}\n id={this.menuId}\n priority={ZIndex.priorities.PopupMenu}\n data-tid={AutocompleteDataTids.menu}\n anchorElement={this.getAnchor()}\n disablePortal={disablePortal}\n width={menuWidth}\n minWidth={menuWidth === undefined ? '100%' : undefined}\n positions={getMenuPositions(menuPos, menuAlign)}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n >\n <Menu {...menuProps}>{this.getItems()}</Menu>\n </Popup>\n );\n }\n\n private getInput = (inputProps: InputProps) => {\n return this.featureFlags.autocompleteUseMaskedInput && this.props.mask ? (\n <MaskedInput\n {...inputProps}\n type={getSafeMaskInputType(this.props.type)}\n mask={this.props.mask}\n maskChar={this.props.maskChar}\n />\n ) : (\n <Input {...inputProps} mask={this.props.mask} maskChar={this.props.maskChar} />\n );\n };\n\n private renderMobileMenu = () => {\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onValueChange: this.handleValueChange,\n onKeyPress: this.handleKeyPressMobile,\n value: this.props.value,\n placeholder: this.locale.enterValue,\n type: this.props.type,\n inputMode: this.props.inputMode,\n 'aria-label': this.props['aria-label'],\n 'aria-controls': this.menuId,\n };\n\n const items = this.state.items;\n\n return (\n <MobilePopup\n id={this.menuId}\n headerChildComponent={this.getInput(inputProps)}\n caption={this.props.mobileMenuHeaderText}\n opened={this.state.isMobileOpened}\n onCloseRequest={this.handleCloseMobile}\n ref={this.refMobilePopup}\n >\n <Menu ref={this.refMenu} onItemClick={this.mobilePopup?.close} disableScrollContainer maxHeight={'auto'}>\n {items && items.length > 0 && this.getItems()}\n {this.renderHints()}\n </Menu>\n </MobilePopup>\n );\n };\n\n private getItems = () => {\n const items = this.state.items;\n const isMobile = this.isMobileLayout;\n\n return items\n ? items.map((item, i) => {\n return (\n <MenuItem onClick={this.handleMenuItemClick(i)} key={i} isMobile={isMobile} size={this.size}>\n {this.getProps().renderItem(item)}\n </MenuItem>\n );\n })\n : null;\n };\n\n private handleValueChange = (value: string) => {\n this.opened = true;\n\n this.fireChange(value);\n };\n\n private handleCloseMobile = () => {\n this.setState({\n isMobileOpened: false,\n });\n\n this.handleBlur();\n };\n\n private handleKeyPressMobile = (e: KeyboardEvent) => {\n if (e.key === 'Enter') {\n this.mobilePopup?.close();\n }\n };\n\n private handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n if (this.isMobileLayout) {\n this.setState({ isMobileOpened: true });\n }\n\n if (this.state.focused) {\n return;\n }\n\n this.setState({ focused: true });\n\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n };\n\n private handleBlur = () => {\n if (!this.state.focused) {\n return;\n }\n\n this.opened = false;\n this.setState({ items: null, focused: false });\n\n if (this.input) {\n this.input.blur();\n }\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (this.props.onKeyDown) {\n this.props.onKeyDown(e);\n }\n switch (true) {\n case isKeyEscape(e):\n e.preventDefault();\n this.setState({ items: null });\n return;\n case isKeyArrowUp(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.up();\n }\n return;\n case isKeyArrowDown(e):\n e.preventDefault();\n if (this.menu) {\n this.menu.down();\n }\n return;\n case isKeyEnter(e):\n e.preventDefault(); // To prevent form submission.\n if (this.menu) {\n this.menu.enter(e);\n }\n return;\n }\n };\n\n private handleMenuItemClick(i: number) {\n return (event: React.SyntheticEvent<HTMLElement>) => this.handleItemClick(event, i);\n }\n\n private getAnchor = () => {\n return getRootNode(this);\n };\n\n private handleItemClick(event: React.SyntheticEvent<HTMLElement> | React.MouseEvent<HTMLElement>, index: number) {\n if ((event as React.MouseEvent<HTMLElement>).button) {\n return;\n }\n\n event.preventDefault();\n this.choose(index);\n }\n\n private choose(index: number) {\n if (!this.state.items) {\n return;\n }\n\n const value = this.state.items[index];\n this.opened = false;\n this.setState({\n selected: -1,\n items: null,\n });\n\n this.fireChange(value);\n\n // NOTE: этот таймаут - костыль. Проблема в старом ReactInputMask, он сеттит пустой value при потере фокуса.\n // Можно будет убрать после полного перехода на MaskedInput\n globalObject.setTimeout(() => {\n this.blur();\n }, 0);\n }\n\n private updateItems(value: string) {\n if (!this.opened) {\n return;\n }\n const pattern = value.trim();\n const source = this.props.source;\n\n if (!source) {\n return;\n }\n\n let promise;\n this.requestId += 1;\n const expectingId = this.requestId;\n if (typeof source === 'function') {\n promise = source(pattern);\n } else {\n promise = match(pattern, source);\n }\n promise.then((items) => {\n if (this.opened && expectingId === this.requestId) {\n this.setState({\n items,\n selected: -1,\n });\n }\n });\n }\n\n private fireChange(value: string) {\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n }\n\n private refInput = (el: Input | null) => {\n this.input = el;\n };\n\n private refMenu = (menu: Menu | null) => {\n this.menu = menu;\n };\n\n private refRootSpan = (span: HTMLSpanElement) => {\n this.rootSpan = span;\n };\n\n private refMobilePopup = (mobilePopup: MobilePopup | null) => {\n this.mobilePopup = mobilePopup;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -80,11 +80,19 @@ export declare class Autocomplete extends React.Component<AutocompleteProps, Aut
80
80
  getRootNode: TGetRootNode;
81
81
  private setRootNode;
82
82
  /**
83
- * @public
83
+ * @public focus method
84
+ * @description Focuses the input.
85
+ * @example
86
+ * <Autocomplete ref={autocompleteRef} />
87
+ * <button onClick={() => autocompleteRef.current?.focus()}>Focus</button>
84
88
  */
85
89
  focus(): void;
86
90
  /**
87
- * @public
91
+ * @public blur method
92
+ * @description Blurs the input.
93
+ * @example
94
+ * <Autocomplete ref={autocompleteRef} />
95
+ * <button onClick={() => autocompleteRef.current?.blur()}>Blur</button>
88
96
  */
89
97
  blur(): void;
90
98
  componentDidUpdate(prevProps: AutocompleteProps): void;
@@ -34,6 +34,8 @@ var SpanComponent = function SpanComponent(_ref) {
34
34
  rest = _objectWithoutPropertiesLoose(_ref, _excluded);
35
35
  return /*#__PURE__*/React.createElement("span", rest, children);
36
36
  };
37
+
38
+ /** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */
37
39
  export var Button = withSize(_class = rootNode(_class = (_Button = /*#__PURE__*/function (_React$Component) {
38
40
  function Button() {
39
41
  var _this;
@@ -229,13 +231,13 @@ export var Button = withSize(_class = rootNode(_class = (_Button = /*#__PURE__*/
229
231
  };
230
232
  }
231
233
  return null;
232
- } /**
234
+ } /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
233
235
  * @public
234
236
  */;
235
237
  _proto.focus = function focus() {
236
238
  var _this$node;
237
239
  (_this$node = this.node) == null || _this$node.focus();
238
- } /**
240
+ } /** Программно снимает фокус с кнопки.
239
241
  * @public
240
242
  */;
241
243
  _proto.blur = function blur() {
@@ -1 +1 @@
1
- {"version":3,"names":["React","globalObject","isKonturIcon","isIE11","isEdge","isSafari","keyListener","isThemeGTE","ThemeContext","CommonWrapper","cx","rootNode","ThemeFactory","createPropsGetter","Link","withSize","styles","activeStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","LoadingButtonIcon","BUTTON_DEFAULT_COMPONENT","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose","_excluded","createElement","Button","_class","_Button","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","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","theme","_excluded2","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","_extends","Boolean","size","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","Provider","value","focused","renderIcon2022","Root","ref","e","requestAnimationFrame","isTabPressed","setState","_inheritsLoose","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","create","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","_icon$props$size","sizes","cloneElement","_this$getProps2","isThemeGTE_5_3","_commonClasses","_themeSpecificClasses","commonClasses","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","themeSpecificClasses","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText5_3","sizeLarge","_commonClasses3","_themeSpecificClasses3","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText5_3","sizeMedium","_commonClasses5","_themeSpecificClasses5","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText5_3","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, 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 /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание тексту в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Превращает обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки. */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку. */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.**\n * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\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' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n@withSize\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 // 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 size!: SizeProp;\n public getRootNode!: TGetRootNode;\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 theme,\n ...rest\n } = props;\n const { use, 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), size: this.size },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = 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 ...(nonInteractive\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 onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, 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 buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\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.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)]: nonInteractive,\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={this.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} {...buttonOnlyProps}>\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.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n const isThemeGTE_5_3 = isThemeGTE(this.theme, '5.3');\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeLargeWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n return cx(styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'medium': {\n const commonClasses = {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeMediumWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeMedium(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeSmallWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeSmall(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","globalObject","isKonturIcon","isIE11","isEdge","isSafari","keyListener","isThemeGTE","ThemeContext","CommonWrapper","cx","rootNode","ThemeFactory","createPropsGetter","Link","withSize","styles","activeStyles","globalClasses","ButtonIcon","getButtonIconSizes","useButtonArrow","getInnerLinkTheme","LoadingButtonIcon","BUTTON_DEFAULT_COMPONENT","ButtonDataTids","rootElement","root","spinner","SpanComponent","_ref","children","rest","_objectWithoutPropertiesLoose","_excluded","createElement","Button","_class","_Button","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","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","theme","_excluded2","_this$getProps","sizeClass","getSizeClassName","isFocused","isLink","_useButtonArrow","_extends","Boolean","size","rootClassNameWithArrow","arrowNode","isUseStateWithoutOutlineInDisabledState","includes","nonInteractive","rootClassName","noPadding","noRightPadding","disabledWithoutOutline","checkedDisabled","backlessDisabled","textDisabled","focus","checkedFocused","rootProps","className","style","textAlign","onFocus","handleFocus","onBlur","handleBlur","getTabIndex","wrapProps","wrap","getSizeWrapClassName","buttonOnlyProps","innerShadowNode","outlineNode","_cx2","outline","outlineWarning","outlineError","outlineLink","outlineLinkWarning","outlineLinkError","iconProps","hasChildren","leftIconNode","position","rightIconNode","hasBothIcons","_cx3","link","linkLineHeight","linkLineHeightSafariFallback","linkFocus","linkDisabled","Object","assign","wrapLink","undefined","hasLoadingNode","loadingNode","captionNode","caption","captionLink","captionDisabled","text","visibilityHidden","Provider","value","focused","renderIcon2022","Root","ref","e","requestAnimationFrame","isTabPressed","setState","_inheritsLoose","_proto","prototype","componentDidMount","autoFocus","getDerivedStateFromProps","_this$node","blur","_this$node2","render","_this2","Consumer","create","rootNodeRef","setRootNode","_ref2","_ref2$tabIndex","_icon$props$size","sizes","cloneElement","_this$getProps2","isThemeGTE_5_3","_commonClasses","_themeSpecificClasses","commonClasses","sizeLargeIE11","sizeLargeWithIcon","sizeLargeWithIconWithoutText","themeSpecificClasses","sizeLargeWithRightIcon","sizeLargeWithIconWithoutText5_3","sizeLarge","_commonClasses3","_themeSpecificClasses3","sizeMediumIE11","sizeMediumWithIcon","sizeMediumWithIconWithoutText","sizeMediumWithRightIcon","sizeMediumWithIconWithoutText5_3","sizeMedium","_commonClasses5","_themeSpecificClasses5","sizeSmallIE11","sizeSmallWithIcon","sizeSmallWithIconWithoutText","sizeSmallWithRightIcon","sizeSmallWithIconWithoutText5_3","sizeSmall","wrapLarge","wrapMedium","wrapSmall","Component","__KONTUR_REACT_UI__","displayName","__BUTTON__","type"],"sources":["Button.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\nimport React from 'react';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { ButtonLinkAllowedValues } from '../../lib/types/button-link';\nimport { isKonturIcon } from '../../lib/utils';\nimport { isIE11, isEdge, isSafari } from '../../lib/client';\nimport { keyListener } from '../../lib/events/keyListener';\nimport type { Theme, ThemeIn } from '../../lib/theming/Theme';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Link } from '../Link';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { PolymorphicPropsWithoutRef } from '../../lib/types/polymorphic-component';\nimport { withSize } from '../../lib/size/SizeDecorator';\n\nimport { styles, activeStyles, globalClasses } from './Button.styles';\nimport type { ButtonIconProps } from './ButtonIcon';\nimport { ButtonIcon, 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 /** Применяет к кнопке стили псевдокласса `:active`. */\n active?: boolean;\n\n /** Задаёт выравнивание текста в кнопке. */\n align?: React.CSSProperties['textAlign'];\n\n /** Преобразует обычную кнопку в кнопку со стрелкой. */\n arrow?: boolean | 'left';\n\n /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/\n autoFocus?: boolean;\n\n /** Убирает обводку у кнопки.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.**\n */\n borderless?: boolean;\n\n /** @ignore */\n checked?: boolean;\n\n /** @ignore */\n children?: React.ReactNode;\n\n /** @ignore */\n corners?: React.CSSProperties;\n\n /** Блокирует кнопку и перекрашивает в серый. */\n disabled?: boolean;\n\n /** @ignore */\n disableFocus?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Ошибка\".\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */\n error?: boolean;\n\n /** Добавляет иконку слева от текста кнопки. */\n icon?: React.ReactElement;\n\n /** Добавляет иконку справа от текста кнопки. */\n rightIcon?: React.ReactElement;\n\n /** Переводит кнопку в состояние загрузки. */\n loading?: boolean;\n\n /** Сужает кнопку.\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */\n narrow?: boolean;\n\n /** Задаёт размер кнопки. */\n size?: SizeProp;\n\n /** Задаёт HTML-атрибут `type`. */\n type?: ButtonType;\n\n /** Задаёт HTML-атрибут `title`. */\n title?: string;\n\n /** Задаёт стиль кнопки.\n * **Вариант `link` устарел.** Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.\n */\n use?: ButtonUse;\n\n /** @ignore */\n visuallyFocused?: boolean;\n\n /** Переводит кнопку в состояние валидации \"Предупреждение\".\n *\n * **Не рекомендуем использовать, противоречит дизайн-требованиям.**\n */\n warning?: boolean;\n\n /** Задаёт ширину кнопки. */\n width?: number | string;\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' | 'type' | 'component'>>;\n\nconst SpanComponent: React.FunctionComponent<HTMLAttributes<HTMLSpanElement>> = ({ children, ...rest }) => {\n return <span {...rest}>{children}</span>;\n};\n\n/** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */\n@withSize\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 // 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 size!: SizeProp;\n public getRootNode!: TGetRootNode;\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 theme,\n ...rest\n } = props;\n const { use, 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), size: this.size },\n this.theme,\n );\n const isUseStateWithoutOutlineInDisabledState = !['default', 'backless'].includes(use);\n\n const nonInteractive = 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 ...(nonInteractive\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 onFocus: this.handleFocus,\n onBlur: this.handleBlur,\n tabIndex: this.getTabIndex({ disableFocus, disabled: nonInteractive, 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 buttonOnlyProps = component === 'button' ? { disabled: nonInteractive } : {};\n\n const innerShadowNode = null;\n\n let outlineNode = null;\n if ((!isFocused || isLink) && !nonInteractive) {\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.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)]: nonInteractive,\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={this.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} {...buttonOnlyProps}>\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.size] });\n }\n\n return icon;\n }\n\n private getSizeClassName() {\n const { icon, rightIcon, children } = this.getProps();\n const isThemeGTE_5_3 = isThemeGTE(this.theme, '5.3');\n\n switch (this.size) {\n case 'large': {\n const commonClasses = {\n [styles.sizeLargeIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeLargeWithIcon(this.theme)]: !!icon,\n [styles.sizeLargeWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeLargeWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeLargeWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n return cx(styles.sizeLarge(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'medium': {\n const commonClasses = {\n [styles.sizeMediumIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeMediumWithIcon(this.theme)]: !!icon,\n [styles.sizeMediumWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeMediumWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeMediumWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeMedium(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n case 'small':\n default: {\n const commonClasses = {\n [styles.sizeSmallIE11(this.theme)]: isIE11 || isEdge,\n [styles.sizeSmallWithIcon(this.theme)]: !!icon,\n [styles.sizeSmallWithIconWithoutText(this.theme)]: !!icon && !children,\n };\n\n const themeSpecificClasses = {\n [styles.sizeSmallWithRightIcon(this.theme)]: !!rightIcon,\n [styles.sizeSmallWithIconWithoutText5_3(this.theme)]: (!!icon || !!rightIcon) && !children,\n };\n\n return cx(styles.sizeSmall(this.theme), commonClasses, isThemeGTE_5_3 && themeSpecificClasses);\n }\n }\n }\n\n private getSizeWrapClassName() {\n switch (this.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"],"mappings":"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","ignoreList":[]}
@@ -14,13 +14,16 @@ export interface ButtonInnerProps extends CommonProps {
14
14
  _noRightPadding?: boolean;
15
15
  /** Применяет к кнопке стили псевдокласса `:active`. */
16
16
  active?: boolean;
17
- /** Задаёт выравнивание тексту в кнопке. */
17
+ /** Задаёт выравнивание текста в кнопке. */
18
18
  align?: React.CSSProperties['textAlign'];
19
- /** Превращает обычную кнопку в кнопку со стрелкой. */
19
+ /** Преобразует обычную кнопку в кнопку со стрелкой. */
20
20
  arrow?: boolean | 'left';
21
- /** Устанавливает фокус на контроле после окончания загрузки страницы.*/
21
+ /** Устанавливает фокус на кнопке после окончания загрузки страницы.*/
22
22
  autoFocus?: boolean;
23
- /** Убирает обводку у кнопки. */
23
+ /** Убирает обводку у кнопки.
24
+ *
25
+ * **Не рекомендуем использовать, противоречит дизайн-требованиям.**
26
+ */
24
27
  borderless?: boolean;
25
28
  /** @ignore */
26
29
  checked?: boolean;
@@ -28,11 +31,13 @@ export interface ButtonInnerProps extends CommonProps {
28
31
  children?: React.ReactNode;
29
32
  /** @ignore */
30
33
  corners?: React.CSSProperties;
31
- /** Делает компонент недоступным. */
34
+ /** Блокирует кнопку и перекрашивает в серый. */
32
35
  disabled?: boolean;
33
36
  /** @ignore */
34
37
  disableFocus?: boolean;
35
- /** Переводит контрол в состояние валидации "ошибка". */
38
+ /** Переводит кнопку в состояние валидации "Ошибка".
39
+ *
40
+ * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */
36
41
  error?: boolean;
37
42
  /** Добавляет иконку слева от текста кнопки. */
38
43
  icon?: React.ReactElement;
@@ -40,7 +45,9 @@ export interface ButtonInnerProps extends CommonProps {
40
45
  rightIcon?: React.ReactElement;
41
46
  /** Переводит кнопку в состояние загрузки. */
42
47
  loading?: boolean;
43
- /** Сужает кнопку. */
48
+ /** Сужает кнопку.
49
+ *
50
+ * **Не рекомендуем использовать, противоречит дизайн-требованиям.** */
44
51
  narrow?: boolean;
45
52
  /** Задаёт размер кнопки. */
46
53
  size?: SizeProp;
@@ -49,17 +56,19 @@ export interface ButtonInnerProps extends CommonProps {
49
56
  /** Задаёт HTML-атрибут `title`. */
50
57
  title?: string;
51
58
  /** Задаёт стиль кнопки.
52
- * **Вариант `link` устарел.**
53
- * Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.
59
+ * **Вариант `link` устарел.** Если нужна кнопка, выглядящая как ссылка, используйте `Link component=button`.
54
60
  */
55
61
  use?: ButtonUse;
56
62
  /** @ignore */
57
63
  visuallyFocused?: boolean;
58
- /** Переводит контрол в состояние валидации "предупреждение". */
64
+ /** Переводит кнопку в состояние валидации "Предупреждение".
65
+ *
66
+ * **Не рекомендуем использовать, противоречит дизайн-требованиям.**
67
+ */
59
68
  warning?: boolean;
60
69
  /** Задаёт ширину кнопки. */
61
70
  width?: number | string;
62
- /** Задает объект с переменными темы. Он будет объединён с темой из контекста. */
71
+ /** Задаёт объект с переменными темы. */
63
72
  theme?: ThemeIn;
64
73
  }
65
74
  export declare const BUTTON_DEFAULT_COMPONENT = "button";
@@ -73,6 +82,7 @@ export declare const ButtonDataTids: {
73
82
  readonly spinner: "Button__spinner";
74
83
  };
75
84
  type DefaultProps = Required<Pick<ButtonProps<ButtonLinkAllowedValues>, 'use' | 'type' | 'component'>>;
85
+ /** Кнопка запускает действие, сценарий или позволяет перейти на другую страницу. */
76
86
  export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DEFAULT_COMPONENT> extends React.Component<ButtonProps<C>, ButtonState> {
77
87
  static __KONTUR_REACT_UI__: string;
78
88
  static displayName: string;
@@ -91,11 +101,11 @@ export declare class Button<C extends ButtonLinkAllowedValues = typeof BUTTON_DE
91
101
  static getDerivedStateFromProps(props: ButtonProps): {
92
102
  focusedByTab: boolean;
93
103
  } | null;
94
- /**
104
+ /** Программно устанавливает фокус на кнопке. Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
95
105
  * @public
96
106
  */
97
107
  focus(): void;
98
- /**
108
+ /** Программно снимает фокус с кнопки.
99
109
  * @public
100
110
  */
101
111
  blur(): void;
@@ -24,20 +24,7 @@ export var CurrencyInputDataTids = {
24
24
  root: 'CurrencyInput__root'
25
25
  };
26
26
 
27
- /**
28
- * `CurrencyInput` — поле для денежных сумм (и других числовых значений).
29
- * Принимает любые свойства `Input`.
30
- *
31
- * Используйте такое поле, когда нужно вводить значение в рублях, долларах или другой валюте.
32
- * Оно форматирует введенное значение и помогает пользователю не ошибиться при вводе.
33
- *
34
- * Максимальная длина числа - **15 цифр** (с десятичным разделителем в любом месте).
35
- *
36
- * **Почему 15?** Максимальное безопасное целочисленное значение - 9007199254740991 (16 цифр). Убрав один разряд под знак, мы получим "новое" максимальное безопасное значение - 999999999999999 (15 цифр).
37
- * При этом десятичный резделитель может находиться в любом месте. Если целая часть равна 0, то она не учитывается. Детали можно почитать здесь - [MDN web docs](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER).
38
- *
39
- * Если `fractionDigits=15`, то в целой части допускается **0**.
40
- */
27
+ /** Поле для денежных сумм. */
41
28
  export var CurrencyInput = rootNode(_class = (_CurrencyInput = /*#__PURE__*/function (_React$PureComponent) {
42
29
  function CurrencyInput() {
43
30
  var _this;
@@ -84,7 +71,8 @@ export var CurrencyInput = rootNode(_class = (_CurrencyInput = /*#__PURE__*/func
84
71
  );
85
72
  };
86
73
 
87
- /**
74
+ /** Программно устанавливает фокус на поле.
75
+ * Появляется фокусная рамка, элемент получает клавиатурные события и воспринимается как текущий элемент для чтения скринридерами.
88
76
  * @public
89
77
  */
90
78
  _this.focus = function () {
@@ -93,7 +81,7 @@ export var CurrencyInput = rootNode(_class = (_CurrencyInput = /*#__PURE__*/func
93
81
  }
94
82
  };
95
83
 
96
- /**
84
+ /** Программно снимает фокус с кнопки.
97
85
  * @public
98
86
  */
99
87
  _this.blur = function () {
@@ -302,6 +290,7 @@ export var CurrencyInput = rootNode(_class = (_CurrencyInput = /*#__PURE__*/func
302
290
  var selection = _this.getSelection(event.target);
303
291
  _this.inputValue(selection.start, selection.end, data);
304
292
  event.preventDefault();
293
+ _this.props.onPaste == null || _this.props.onPaste(event);
305
294
  };
306
295
  _this.handleCopy = function (event) {
307
296
  var selection = _this.getSelection(event.target);
@@ -359,7 +348,7 @@ export var CurrencyInput = rootNode(_class = (_CurrencyInput = /*#__PURE__*/func
359
348
  _inheritsLoose(CurrencyInput, _React$PureComponent);
360
349
  var _proto = CurrencyInput.prototype;
361
350
  _proto.validateProps = function validateProps(props) {
362
- warning(isNumeric(props.value), '[CurrencyInput]: Prop `value` is not a valid number');
351
+ warning(isNumeric(props.value) || isNullable(props.value), '[CurrencyInput]: Prop `value` is not a valid number. Received value is `' + props.value + '`.');
363
352
  warning(props.maxLength === undefined, "[CurrencyInput]: Prop 'maxLength' has been deprecated. See 'integerDigits' and 'fractionDigits'");
364
353
  warning((props.integerDigits || 0) + (props.fractionDigits || 0) <= MAX_SAFE_DIGITS, "[CurrencyInput]: Sum of 'integerDigits' and 'fractionDigits' exceeds " + MAX_SAFE_DIGITS + "." + "\nSee CurrencyInput documentation");
365
354
  };