@skbkontur/react-ui 5.3.7 → 5.3.9

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 CHANGED
@@ -3,6 +3,28 @@
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.3.9](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.8...@skbkontur/react-ui@5.3.9) (2025-10-03)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * **SidePage:** add support for overlays from widgets ([8a968cb](https://github.com/skbkontur/retail-ui/commit/8a968cb3b896d4ca22f9ed5116bb600a036426b4))
12
+
13
+
14
+
15
+
16
+
17
+ ## [5.3.8](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.7...@skbkontur/react-ui@5.3.8) (2025-10-01)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **TokenInput:** create token on blur in "withoutReference" mode (feature flag) ([10ebcbb](https://github.com/skbkontur/retail-ui/commit/10ebcbb58e3736f5c4887ea8daca148b55b6c6d6))
23
+
24
+
25
+
26
+
27
+
6
28
  ## [5.3.7](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.3.6...@skbkontur/react-ui@5.3.7) (2025-09-24)
7
29
 
8
30
 
@@ -327,7 +327,9 @@ SidePage = exports.SidePage = /*#__PURE__*/function (_React$Component) {function
327
327
 
328
328
 
329
329
  handleStackChange = function (stack) {
330
- var sidePages = stack.filter(function (x) {return x instanceof SidePage && x.props.fromLeft === _this.props.fromLeft;});
330
+ var sidePages = stack.filter(
331
+ function (x) {return (0, _utils.isReactUIInstance)(x, 'SidePage') && x.props.fromLeft === _this.props.fromLeft;}
332
+ );
331
333
  var currentSidePagePosition = sidePages.indexOf(_this);
332
334
 
333
335
  var hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_reactFocusLock","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_RenderContainer","_RenderLayer","_ZIndex","_ThemeContext","_CommonWrapper","_Emotion","_currentEnvironment","_ResponsiveLayout","_createPropsGetter","_isInstanceOf","_ThemeHelpers","_SidePageBody","_SidePageContainer","_SidePageContext","_SidePageFooter","_SidePageHeader","_SidePage2","SidePageDataTids","exports","root","container","TRANSITION_TIMEOUT","SidePage","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","React","createRef","updateLayout","_this$header","_this$footer","update","getProps","createPropsGetter","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","ModalStack","isBlocking","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","isInstanceOf","globalObject","MouseEvent","document","clientX","documentElement","handleKeyDown","isKeyEscape","stopPropagation","disableClose","onClose","ref","layoutRef","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","versionGTE5_2","isThemeGTE","ResponsiveLayout","_ref","isMobile","RenderContainer","CommonWrapper","ZIndex","priority","onScroll","emit","createStackingContext","style","position","renderShadow","CSSTransition","in","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","HideBodyVerticalScroll","_cx","_cx2","_this$props2","mobileWidth","ariaLabel","_this$getProps","offset","role","widthDesktop","width","widthMobile","className","cx","styles","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","RenderLayer","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","SidePageContext","Provider","value","children","_cx3","overlay","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass2","get","_this$getProps2","disableFocusLock","undefined","Component","__KONTUR_REACT_UI__","displayName","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","isTestEnv"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает ширину сайдпейджаю на мобилке. По умолчанию ширина во весь экран. */\n mobileWidth?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n public rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender();\n this.setState({\n hasBackground: ModalStack.isBlocking(this),\n });\n }\n }\n\n public componentWillUnmount() {\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{ position: 'absolute' }}\n >\n {(versionGTE5_2 || !isMobile) && blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { mobileWidth, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n const widthDesktop = this.props.width || (blockBackground ? 800 : 500);\n const widthMobile = this.props.mobileWidth || '100%';\n const width = isMobile ? widthMobile : widthDesktop;\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={cx({\n [styles.root()]: true,\n })}\n ref={this.rootRef}\n onScroll={LayoutEvents.emit}\n style={\n isMobile && !isThemeGTE(this.theme, '5.2')\n ? {\n width: mobileWidth || '100%',\n }\n : {\n width,\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }\n }\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <div className={styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter((x) => x instanceof SidePage && x.props.fromLeft === this.props.fromLeft);\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, globalObject.MouseEvent) &&\n globalObject.document &&\n e.clientX > globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactTransitionGroup","_reactFocusLock","_globalObject","_utils","_identifiers","LayoutEvents","_interopRequireWildcard","_stopPropagation","_HideBodyVerticalScroll","_ModalStack","_RenderContainer","_RenderLayer","_ZIndex","_ThemeContext","_CommonWrapper","_Emotion","_currentEnvironment","_ResponsiveLayout","_createPropsGetter","_isInstanceOf","_ThemeHelpers","_SidePageBody","_SidePageContainer","_SidePageContext","_SidePageFooter","_SidePageHeader","_SidePage2","SidePageDataTids","exports","root","container","TRANSITION_TIMEOUT","SidePage","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","hasHeader","hasFooter","hasPanel","stackSubscription","layout","header","footer","rootRef","React","createRef","updateLayout","_this$header","_this$footer","update","getProps","createPropsGetter","defaultProps","getSidePageContextProps","requestClose","getWidth","headerRef","footerRef","setHasHeader","setHasFooter","setHasPanel","clientWidth","handleStackChange","stack","sidePages","filter","x","isReactUIInstance","props","fromLeft","currentSidePagePosition","indexOf","hasMargin","hasShadow","hasBackground","ModalStack","isBlocking","setState","stackPosition","handleClickOutside","e","ignoreBackgroundClick","isInstanceOf","globalObject","MouseEvent","document","clientX","documentElement","handleKeyDown","isKeyEscape","stopPropagation","disableClose","onClose","ref","layoutRef","_inheritsLoose2","default","_proto","prototype","componentDidMount","addEventListener","add","componentDidUpdate","prevProps","blockBackground","rerender","componentWillUnmount","removeEventListener","isNonNullable","remove","render","_this2","createElement","ThemeContext","Consumer","theme","renderMain","_this3","_this$props","onOpened","disableAnimations","versionGTE5_2","isThemeGTE","ResponsiveLayout","_ref","isMobile","RenderContainer","CommonWrapper","ZIndex","priority","onScroll","emit","createStackingContext","style","position","renderShadow","CSSTransition","in","classNames","getTransitionNames","appear","enter","exit","timeout","nodeRef","onEntered","renderContainer","HideBodyVerticalScroll","_cx","_cx2","_this$props2","mobileWidth","ariaLabel","_this$getProps","offset","role","widthDesktop","width","widthMobile","className","cx","styles","right","left","disabled","isFocusLockDisabled","autoFocus","focusLock","RenderLayer","onClickOutside","active","wrapper","wrapperLeft","wrapperMarginLeft","wrapperMarginRight","shadow","SidePageContext","Provider","value","children","_cx3","overlay","key","background","backgroundGray","transition","transitionRight","transitionLeft","enterActive","transitionActive","transitionLeave","exitActive","transitionLeaveActive","appearActive","_createClass2","get","_this$getProps2","disableFocusLock","undefined","Component","__KONTUR_REACT_UI__","displayName","Header","SidePageHeader","Body","SidePageBody","Footer","SidePageFooter","Container","SidePageContainer","isTestEnv"],"sources":["SidePage.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport FocusLock from 'react-focus-lock';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport { isNonNullable, isReactUIInstance } from '../../lib/utils';\nimport { isKeyEscape } from '../../lib/events/keyboard/identifiers';\nimport * as LayoutEvents from '../../lib/LayoutEvents';\nimport { stopPropagation } from '../../lib/events/stopPropagation';\nimport { HideBodyVerticalScroll } from '../../internal/HideBodyVerticalScroll';\nimport type { ModalStackSubscription } from '../../lib/ModalStack';\nimport { ModalStack } from '../../lib/ModalStack';\nimport { RenderContainer } from '../../internal/RenderContainer';\nimport { RenderLayer } from '../../internal/RenderLayer';\nimport { ZIndex } from '../../internal/ZIndex';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport { CommonWrapper } from '../../internal/CommonWrapper';\nimport { cx } from '../../lib/theming/Emotion';\nimport { isTestEnv } from '../../lib/currentEnvironment';\nimport { ResponsiveLayout } from '../ResponsiveLayout';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { isInstanceOf } from '../../lib/isInstanceOf';\nimport { isThemeGTE } from '../../lib/theming/ThemeHelpers';\n\nimport { SidePageBody } from './SidePageBody';\nimport { SidePageContainer } from './SidePageContainer';\nimport type { SidePageContextType } from './SidePageContext';\nimport { SidePageContext } from './SidePageContext';\nimport { SidePageFooter } from './SidePageFooter';\nimport { SidePageHeader } from './SidePageHeader';\nimport { styles } from './SidePage.styles';\n\nexport interface SidePageProps\n extends CommonProps,\n Pick<HTMLAttributes<unknown>, 'role'>,\n Pick<AriaAttributes, 'aria-label'> {\n /** Добавляет блокирующий фон, когда сайдпейдж открыт. */\n blockBackground?: boolean;\n\n /** Отключает событие onClose, также дизейблит кнопку закрытия сайдпейджа. */\n disableClose?: boolean;\n\n /** Оставляет окно открытым при клике на фон. */\n ignoreBackgroundClick?: boolean;\n\n /** Задает ширину сайдпейджа. */\n width?: number | string;\n\n /** Задает ширину сайдпейджаю на мобилке. По умолчанию ширина во весь экран. */\n mobileWidth?: number | string;\n\n /** Задает функцию, которая вызывается при запросе закрытия сайдпейджа пользователем (нажал на фон, на Escape или на крестик). */\n onClose?: () => void;\n\n /** Задает функцию, которая вызывается при завершении анимации открытия сайдпейджа. */\n onOpened?: () => void;\n\n /** Отображает сайдпэйдж слева. */\n fromLeft?: boolean;\n\n /** Отключает анимацию. */\n disableAnimations?: boolean;\n\n /** Отключает фокус-лок внутри сайдпейджа.\n * Работает только при заблокированном фоне: `blockBackground = true`.*/\n disableFocusLock?: boolean;\n\n /** Задает отступ от края экрана. */\n offset?: number | string;\n}\n\nexport interface SidePageState {\n stackPosition?: number;\n hasMargin?: boolean;\n hasShadow?: boolean;\n hasBackground?: boolean;\n hasHeader: boolean;\n hasFooter: boolean;\n hasPanel: boolean;\n}\n\nexport const SidePageDataTids = {\n root: 'SidePage__root',\n container: 'SidePage__container',\n} as const;\n\ntype DefaultProps = Required<Pick<SidePageProps, 'disableAnimations' | 'offset' | 'role'>>;\n\nconst TRANSITION_TIMEOUT = 200;\n\n/**\n * `SidePage` — это модальное окно, которое открывается поверх основной страницы и занимает всю высоту окна браузера.\n *\n * Используйте его, когда нужно сохранить контекст и показать большое количество данных.\n *\n * Содержит в себе три компоненты: `SidePage.Header`, `SidePage.Body` и `SidePage.Footer`.\n *\n * Для отображения серой плашки в футере в компонент `Footer` необходимо передать пропс `panel`.\n */\nexport class SidePage extends React.Component<SidePageProps, SidePageState> {\n public static __KONTUR_REACT_UI__ = 'SidePage';\n public static displayName = 'SidePage';\n\n public static Header = SidePageHeader;\n public static Body = SidePageBody;\n public static Footer = SidePageFooter;\n public static Container = SidePageContainer;\n public state: SidePageState = {\n hasHeader: false,\n hasFooter: false,\n hasPanel: false,\n };\n private theme!: Theme;\n private stackSubscription: ModalStackSubscription | null = null;\n private layout: HTMLElement | null = null;\n private header: SidePageHeader | null = null;\n private footer: SidePageFooter | null = null;\n public rootRef = React.createRef<HTMLDivElement>();\n\n public componentDidMount() {\n globalObject.addEventListener?.('keydown', this.handleKeyDown);\n this.stackSubscription = ModalStack.add(this, this.handleStackChange);\n }\n\n public componentDidUpdate(prevProps: SidePageProps) {\n if (prevProps.blockBackground !== this.props.blockBackground) {\n ModalStack.rerender();\n this.setState({\n hasBackground: ModalStack.isBlocking(this),\n });\n }\n }\n\n public componentWillUnmount() {\n globalObject.removeEventListener?.('keydown', this.handleKeyDown);\n if (isNonNullable(this.stackSubscription)) {\n this.stackSubscription.remove();\n }\n ModalStack.remove(this);\n }\n\n /**\n * Обновляет разметку компонента.\n * @public\n */\n public updateLayout = (): void => {\n this.header?.update();\n this.footer?.update();\n };\n\n public static defaultProps: DefaultProps = {\n disableAnimations: isTestEnv,\n offset: 0,\n role: 'dialog',\n };\n\n private getProps = createPropsGetter(SidePage.defaultProps);\n\n public render(): JSX.Element {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderMain();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderMain() {\n const { blockBackground, onOpened } = this.props;\n const disableAnimations = this.getProps().disableAnimations;\n const versionGTE5_2 = isThemeGTE(this.theme, '5.2');\n return (\n <ResponsiveLayout>\n {({ isMobile }) => (\n <RenderContainer>\n <CommonWrapper {...this.props}>\n <ZIndex\n priority={'Sidepage'}\n onScroll={LayoutEvents.emit}\n createStackingContext\n style={{ position: 'absolute' }}\n >\n {(versionGTE5_2 || !isMobile) && blockBackground && this.renderShadow()}\n <CSSTransition\n in\n classNames={this.getTransitionNames()}\n appear={!disableAnimations}\n enter={!disableAnimations}\n exit={false}\n timeout={{\n enter: TRANSITION_TIMEOUT,\n exit: TRANSITION_TIMEOUT,\n }}\n nodeRef={this.rootRef}\n onEntered={onOpened}\n >\n {this.renderContainer(isMobile)}\n </CSSTransition>\n {isMobile && <HideBodyVerticalScroll />}\n </ZIndex>\n </CommonWrapper>\n </RenderContainer>\n )}\n </ResponsiveLayout>\n );\n }\n\n private get isFocusLockDisabled() {\n const { disableFocusLock } = this.getProps();\n const { blockBackground } = this.props;\n if (!blockBackground) {\n return true;\n }\n if (disableFocusLock !== undefined) {\n return disableFocusLock;\n }\n return false;\n }\n\n private renderContainer(isMobile: boolean): JSX.Element {\n const { mobileWidth, blockBackground, fromLeft, 'aria-label': ariaLabel } = this.props;\n const { offset, role } = this.getProps();\n\n const widthDesktop = this.props.width || (blockBackground ? 800 : 500);\n const widthMobile = this.props.mobileWidth || '100%';\n const width = isMobile ? widthMobile : widthDesktop;\n\n return (\n <div\n aria-modal\n role={role}\n aria-label={ariaLabel}\n data-tid={SidePageDataTids.root}\n className={cx({\n [styles.root()]: true,\n })}\n ref={this.rootRef}\n onScroll={LayoutEvents.emit}\n style={\n isMobile && !isThemeGTE(this.theme, '5.2')\n ? {\n width: mobileWidth || '100%',\n }\n : {\n width,\n right: fromLeft ? 'auto' : offset,\n left: fromLeft ? offset : 'auto',\n }\n }\n >\n <FocusLock disabled={this.isFocusLockDisabled} autoFocus={false} className={styles.focusLock()}>\n <RenderLayer onClickOutside={this.handleClickOutside} active>\n <div\n data-tid={SidePageDataTids.container}\n className={cx(styles.wrapper(this.theme), {\n [styles.wrapperLeft()]: fromLeft,\n [styles.wrapperMarginLeft()]: this.state.hasMargin && fromLeft,\n [styles.wrapperMarginRight()]: this.state.hasMargin && !fromLeft,\n [styles.shadow(this.theme)]: this.state.hasShadow,\n })}\n ref={this.layoutRef}\n >\n <SidePageContext.Provider value={this.getSidePageContextProps()}>\n {this.props.children}\n </SidePageContext.Provider>\n </div>\n </RenderLayer>\n </FocusLock>\n </div>\n );\n }\n\n private getSidePageContextProps = (): SidePageContextType => {\n return {\n hasHeader: this.state.hasHeader,\n hasFooter: this.state.hasFooter,\n hasPanel: this.state.hasPanel,\n requestClose: this.requestClose,\n getWidth: this.getWidth,\n updateLayout: this.updateLayout,\n headerRef: this.headerRef,\n footerRef: this.footerRef,\n setHasHeader: this.setHasHeader,\n setHasFooter: this.setHasFooter,\n setHasPanel: this.setHasPanel,\n };\n };\n\n private getWidth = () => {\n if (!this.layout) {\n return 'auto';\n }\n return this.layout.clientWidth;\n };\n\n private renderShadow(): JSX.Element {\n return (\n <div className={styles.overlay()} onScroll={LayoutEvents.emit}>\n <HideBodyVerticalScroll key=\"hbvs\" />\n <div\n key=\"overlay\"\n className={cx({\n [styles.background()]: true,\n [styles.backgroundGray(this.theme)]: this.state.hasBackground,\n })}\n />\n </div>\n );\n }\n\n private getTransitionNames(): Record<string, string> {\n const transition = this.props.fromLeft ? styles.transitionRight : styles.transitionLeft;\n\n return {\n enter: transition(),\n enterActive: styles.transitionActive(),\n exit: styles.transitionLeave(),\n exitActive: styles.transitionLeaveActive(),\n appear: transition(),\n appearActive: styles.transitionActive(),\n };\n }\n\n private handleStackChange = (stack: readonly React.Component[]) => {\n const sidePages = stack.filter(\n (x) => isReactUIInstance<SidePage>(x, 'SidePage') && x.props.fromLeft === this.props.fromLeft,\n );\n const currentSidePagePosition = sidePages.indexOf(this);\n\n const hasMargin = sidePages.length > 1 && currentSidePagePosition === sidePages.length - 1;\n const hasShadow = sidePages.length < 3 || currentSidePagePosition > sidePages.length - 3;\n const hasBackground = ModalStack.isBlocking(this);\n\n this.setState({\n stackPosition: stack.indexOf(this),\n hasMargin,\n hasShadow,\n hasBackground,\n });\n };\n\n private handleClickOutside = (e: Event) => {\n if (this.state.stackPosition === 0 && !this.props.ignoreBackgroundClick) {\n // ignore mousedown on window scrollbar\n if (\n isInstanceOf(e, globalObject.MouseEvent) &&\n globalObject.document &&\n e.clientX > globalObject.document.documentElement.clientWidth\n ) {\n return;\n }\n this.requestClose();\n }\n };\n\n private handleKeyDown = (e: KeyboardEvent) => {\n if (this.state.stackPosition !== 0) {\n return;\n }\n if (isKeyEscape(e)) {\n stopPropagation(e);\n this.requestClose();\n }\n };\n\n private requestClose = () => {\n if (this.props.disableClose) {\n return;\n }\n if (this.props.onClose) {\n this.props.onClose();\n }\n };\n\n private headerRef = (ref: SidePageHeader | null) => {\n this.header = ref;\n };\n\n private footerRef = (ref: SidePageFooter | null) => {\n this.footer = ref;\n };\n\n private layoutRef = (ref: HTMLDivElement | null) => {\n this.layout = ref;\n };\n\n private setHasHeader = (hasHeader = true) => {\n this.state.hasHeader !== hasHeader && this.setState({ hasHeader });\n };\n\n private setHasFooter = (hasFooter = true) => {\n this.state.hasFooter !== hasFooter && this.setState({ hasFooter });\n };\n\n private setHasPanel = (hasPanel = false) => {\n this.state.hasPanel !== hasPanel && this.setState({ hasPanel });\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import type { TokenProps, TokenSize } from '../Token';
4
4
  import type { MenuItemState } from '../MenuItem';
5
5
  import type { CommonProps } from '../../internal/CommonWrapper';
6
6
  import type { TGetRootNode } from '../../lib/rootNode';
7
+ import type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';
7
8
  export declare enum TokenInputType {
8
9
  WithReference = 0,
9
10
  WithoutReference = 1,
@@ -146,6 +147,7 @@ export declare class TokenInput<T = string> extends React.PureComponent<TokenInp
146
147
  private rootId;
147
148
  private readonly locale;
148
149
  private theme;
150
+ featureFlags: ReactUIFeatureFlags;
149
151
  private input;
150
152
  private tokensInputMenu;
151
153
  private textHelper;
@@ -46,6 +46,8 @@ var _createPropsGetter = require("../../lib/createPropsGetter");
46
46
  var _uidUtils = require("../../lib/uidUtils");
47
47
  var _TokenView = require("../Token/TokenView");
48
48
 
49
+ var _featureFlagsContext = require("../../lib/featureFlagsContext");
50
+
49
51
 
50
52
  var _locale = require("./locale");
51
53
  var _TokenInput2 = require("./TokenInput.styles");
@@ -318,6 +320,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
318
320
  rootId = _Popup.PopupIds.root + (0, _utils.getRandomID)();_this.
319
321
 
320
322
 
323
+
321
324
  input = null;_this.
322
325
  tokensInputMenu = null;_this.
323
326
  textHelper = null;_this.
@@ -551,6 +554,13 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
551
554
 
552
555
 
553
556
 
557
+
558
+
559
+
560
+
561
+
562
+
563
+
554
564
 
555
565
 
556
566
 
@@ -772,7 +782,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
772
782
  };_this.
773
783
 
774
784
  tryGetItems = /*#__PURE__*/function () {var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(query) {var autocompleteItems, _this$getProps3, selectedItems, valueToItem, valueToString, isSelectedItem, isEditingItem, autocompleteItemsUnique, editingItem, selectItemIndex;return _regenerator.default.wrap(function _callee$(_context) {while (1) switch (_context.prev = _context.next) {case 0:if (query === void 0) {query = '';}if (!(
775
- _this.props.getItems && (_this.state.inputValue !== '' || !_this.props.hideMenuIfEmptyInputValue))) {_context.next = 15;break;}
785
+ _this.props.getItems && (_this.isInputValueChanged || !_this.props.hideMenuIfEmptyInputValue))) {_context.next = 15;break;}
776
786
  _this.dispatch({ type: 'SET_LOADING', payload: true });_context.next = 5;return (
777
787
  _this.props.getItems(query));case 5:autocompleteItems = _context.sent;
778
788
  _this.dispatch({ type: 'SET_LOADING', payload: false });_this$getProps3 =
@@ -796,7 +806,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
796
806
  }
797
807
  }
798
808
 
799
- if (query === '' || _this.state.inputValue !== '') {
809
+ if (query === '' || _this.isInputValueChanged) {
800
810
  _this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: autocompleteItemsUnique }, function () {
801
811
  LayoutEvents.emit();
802
812
  _this.highlightMenuItem();
@@ -1018,7 +1028,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
1018
1028
  var editingTokenIndex = selectedItems.findIndex(function (item) {return item === itemNew;});
1019
1029
  _this.dispatch({ type: 'SET_EDITING_TOKEN_INDEX', payload: editingTokenIndex });
1020
1030
 
1021
- if (_this.state.inputValue !== '') {
1031
+ if (_this.isInputValueChanged) {
1022
1032
  if (_this.state.reservedInputValue === undefined) {
1023
1033
  _this.dispatch({ type: 'SET_TEMPORARY_QUERY', payload: _this.state.inputValue });
1024
1034
  }
@@ -1036,7 +1046,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
1036
1046
  var newItems = selectedItems.concat([]);
1037
1047
 
1038
1048
  if (!_this.hasValueInItems(selectedItems, editedItem)) {
1039
- newItems.splice.apply(newItems, [editingTokenIndex, 1].concat(inputValue !== '' ? [editedItem] : []));
1049
+ newItems.splice.apply(newItems, [editingTokenIndex, 1].concat(_this.isInputValueChanged ? [editedItem] : []));
1040
1050
  _this.handleValueChange(newItems);
1041
1051
  }
1042
1052
 
@@ -1058,27 +1068,32 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
1058
1068
  var inputValue = _this.state.inputValue;
1059
1069
  var onUnexpectedInput = _this.props.onUnexpectedInput;
1060
1070
 
1061
- if (onUnexpectedInput) {
1062
- // чекаем не возвращает ли что-нибудь обработчик
1063
- var returnedValue = onUnexpectedInput(inputValue);
1071
+ // чекаем не возвращает ли что-нибудь обработчик
1072
+ var returnedValue = onUnexpectedInput == null ? void 0 : onUnexpectedInput(inputValue);
1064
1073
 
1065
- if (returnedValue === undefined) {
1066
- return;
1074
+ if (returnedValue === undefined) {
1075
+ if (
1076
+ _this.featureFlags.tokenInputCreateTokenOnBlurInWithoutReferenceMode &&
1077
+ _this.type === TokenInputType.WithoutReference)
1078
+ {
1079
+ _this.handleAddItem();
1067
1080
  }
1068
1081
 
1069
- if (returnedValue === null) {
1070
- _this.dispatch({ type: 'CLEAR_INPUT' }, function () {
1071
- if (_this.isEditingMode) {
1072
- _this.finishTokenEdit();
1073
- }
1074
- });
1082
+ return;
1083
+ }
1075
1084
 
1076
- return;
1077
- }
1085
+ if (returnedValue === null) {
1086
+ _this.dispatch({ type: 'CLEAR_INPUT' }, function () {
1087
+ if (_this.isEditingMode) {
1088
+ _this.finishTokenEdit();
1089
+ }
1090
+ });
1078
1091
 
1079
- if (returnedValue) {
1080
- _this.selectItem(returnedValue);
1081
- }
1092
+ return;
1093
+ }
1094
+
1095
+ if (returnedValue) {
1096
+ _this.selectItem(returnedValue);
1082
1097
  }
1083
1098
  };_this.
1084
1099
 
@@ -1089,7 +1104,7 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
1089
1104
  if (query.endsWith(' ')) {
1090
1105
  query = query.trimRight() + ' ';
1091
1106
  }
1092
- if (_this.state.inputValue !== '' && query === '') {
1107
+ if (_this.isInputValueChanged && query === '') {
1093
1108
  _this.dispatch({ type: 'SET_AUTOCOMPLETE_ITEMS', payload: undefined });
1094
1109
  }
1095
1110
  _this.dispatch({ type: 'UPDATE_QUERY', payload: query }, function () {
@@ -1218,12 +1233,12 @@ TokenInput = exports.TokenInput = (_dec = (0, _decorators.locale)('TokenInput',
1218
1233
  * @public
1219
1234
  */;_proto.focus = function focus() {var _this$input8;(_this$input8 = this.input) == null || _this$input8.focus();} /**
1220
1235
  * @public
1221
- */;_proto.blur = function blur() {var _this$input9;(_this$input9 = this.input) == null || _this$input9.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});};_proto.getLabelSizeClassName = function getLabelSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.labelLarge(this.theme);case 'medium':return _TokenInput2.styles.labelMedium(this.theme);case 'small':default:return _TokenInput2.styles.labelSmall(this.theme);}};_proto.getInputSizeClassName = function getInputSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.inputLarge(this.theme);case 'medium':return _TokenInput2.styles.inputMedium(this.theme);case 'small':default:return _TokenInput2.styles.inputSmall(this.theme);}};_proto.renderMain = function renderMain() {var _cx, _cx2, _cx3;if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {throw Error('Missed getItems for type ' + this.type);}var _this$props2 = this.props,maxMenuHeight = _this$props2.maxMenuHeight,error = _this$props2.error,warning = _this$props2.warning,disabled = _this$props2.disabled,renderNotFound = _this$props2.renderNotFound,hideMenuIfEmptyInputValue = _this$props2.hideMenuIfEmptyInputValue,inputMode = _this$props2.inputMode,renderTotalCount = _this$props2.renderTotalCount,totalCount = _this$props2.totalCount,ariaDescribedby = _this$props2['aria-describedby'],ariaLabel = _this$props2['aria-label'];var _this$getProps8 = this.getProps(),selectedItems = _this$getProps8.selectedItems,width = _this$getProps8.width,onMouseEnter = _this$getProps8.onMouseEnter,onMouseLeave = _this$getProps8.onMouseLeave,menuWidth = _this$getProps8.menuWidth,menuAlign = _this$getProps8.menuAlign,renderItem = _this$getProps8.renderItem;var _this$state3 = this.state,activeTokens = _this$state3.activeTokens,inFocus = _this$state3.inFocus,inputValueWidth = _this$state3.inputValueWidth,inputValueHeight = _this$state3.inputValueHeight,inputValue = _this$state3.inputValue,reservedInputValue = _this$state3.reservedInputValue,autocompleteItems = _this$state3.autocompleteItems,loading = _this$state3.loading;var showMenu = this.type !== TokenInputType.WithoutReference && this.isCursorVisible && activeTokens.length === 0 && (inputValue !== '' || !hideMenuIfEmptyInputValue);var theme = this.theme;var inputInlineStyles = { // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости
1236
+ */;_proto.blur = function blur() {var _this$input9;(_this$input9 = this.input) == null || _this$input9.blur();};_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this2.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return _this2.renderMain();});});};_proto.getLabelSizeClassName = function getLabelSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.labelLarge(this.theme);case 'medium':return _TokenInput2.styles.labelMedium(this.theme);case 'small':default:return _TokenInput2.styles.labelSmall(this.theme);}};_proto.getInputSizeClassName = function getInputSizeClassName() {switch (this.getProps().size) {case 'large':return _TokenInput2.styles.inputLarge(this.theme);case 'medium':return _TokenInput2.styles.inputMedium(this.theme);case 'small':default:return _TokenInput2.styles.inputSmall(this.theme);}};_proto.renderMain = function renderMain() {var _cx, _cx2, _cx3;if (this.type !== TokenInputType.WithoutReference && !this.props.getItems) {throw Error('Missed getItems for type ' + this.type);}var _this$props2 = this.props,maxMenuHeight = _this$props2.maxMenuHeight,error = _this$props2.error,warning = _this$props2.warning,disabled = _this$props2.disabled,renderNotFound = _this$props2.renderNotFound,hideMenuIfEmptyInputValue = _this$props2.hideMenuIfEmptyInputValue,inputMode = _this$props2.inputMode,renderTotalCount = _this$props2.renderTotalCount,totalCount = _this$props2.totalCount,ariaDescribedby = _this$props2['aria-describedby'],ariaLabel = _this$props2['aria-label'];var _this$getProps8 = this.getProps(),selectedItems = _this$getProps8.selectedItems,width = _this$getProps8.width,onMouseEnter = _this$getProps8.onMouseEnter,onMouseLeave = _this$getProps8.onMouseLeave,menuWidth = _this$getProps8.menuWidth,menuAlign = _this$getProps8.menuAlign,renderItem = _this$getProps8.renderItem;var _this$state3 = this.state,activeTokens = _this$state3.activeTokens,inFocus = _this$state3.inFocus,inputValueWidth = _this$state3.inputValueWidth,inputValueHeight = _this$state3.inputValueHeight,inputValue = _this$state3.inputValue,reservedInputValue = _this$state3.reservedInputValue,autocompleteItems = _this$state3.autocompleteItems,loading = _this$state3.loading;var showMenu = this.type !== TokenInputType.WithoutReference && this.isCursorVisible && activeTokens.length === 0 && (this.isInputValueChanged || !hideMenuIfEmptyInputValue);var theme = this.theme;var inputInlineStyles = { // вычисляем ширину чтобы input автоматически перенёсся на следующую строку при необходимости
1222
1237
  width: inputValueWidth, height: inputValueHeight, // в ie не работает, но альтернативный способ --- дать tabindex для label --- предположительно ещё сложнее
1223
1238
  caretColor: this.isCursorVisible ? undefined : 'transparent' };var labelClassName = (0, _Emotion.cx)(_TokenInput2.styles.label(theme), this.getLabelSizeClassName(), (_cx = {}, _cx[_TokenInput2.styles.hovering(this.theme)] = !inFocus && !disabled && !warning && !error, _cx[_TokenInput2.styles.labelDisabled(theme)] = !!disabled, _cx[_TokenInput2.styles.labelFocused(theme)] = !!inFocus, _cx[_TokenInput2.styles.error(theme)] = !!error, _cx[_TokenInput2.styles.warning(theme)] = !!warning, _cx));var inputClassName = (0, _Emotion.cx)(_TokenInput2.styles.input(theme), this.getInputSizeClassName(), (_cx2 = {}, _cx2[_TokenInput2.styles.inputDisabled(theme)] = !!disabled, _cx2));var placeholder = selectedItems.length === 0 && !inputValue ? this.props.placeholder : '';var inputNode = /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.getProps().size, className: (0, _Emotion.cx)((_cx3 = {}, _cx3[_TokenInput2.styles.inputPlaceholderWrapper()] = Boolean(placeholder), _cx3)), hideCloseButton: Boolean(placeholder) }, /*#__PURE__*/_react.default.createElement("textarea", { id: this.textareaId, ref: this.inputRef, value: inputValue, style: inputInlineStyles, spellCheck: false, disabled: disabled, className: inputClassName, placeholder: placeholder, onFocus: this.handleInputFocus, onBlur: this.handleInputBlur, onChange: this.handleChangeInputValue, onKeyDown: this.handleKeyDown, onPaste: this.handleInputPaste, inputMode: inputMode, "aria-label": ariaLabel, "aria-describedby": ariaDescribedby }));return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, (0, _extends2.default)({ rootNodeRef: this.setRootNode }, this.props), /*#__PURE__*/_react.default.createElement("div", { "data-tid": TokenInputDataTids.root, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave }, /*#__PURE__*/_react.default.createElement("label", { ref: this.wrapperRef, style: { width: width }, className: labelClassName, onMouseDown: this.handleWrapperMouseDown, onMouseUp: this.handleWrapperMouseUp, htmlFor: this.textareaId, "aria-controls": this.rootId, "data-tid": TokenInputDataTids.label }, /*#__PURE__*/_react.default.createElement(_TextWidthHelper.TextWidthHelper, { ref: this.textHelperRef, text: inputValue, theme: this.theme, size: this.getProps().size }), this.renderTokensStart(), inputNode, showMenu && /*#__PURE__*/_react.default.createElement(_TokenInputMenu.TokenInputMenu, { popupMenuId: this.rootId, ref: this.tokensInputMenuRef, items: autocompleteItems, loading: loading, opened: showMenu, maxMenuHeight: maxMenuHeight, anchorElementForCursor: this.input, anchorElementRoot: this.wrapper, renderNotFound: renderNotFound, renderItem: renderItem, onValueChange: this.selectItem, renderAddButton: this.renderAddButton, menuWidth: menuWidth, menuAlign: menuAlign, renderTotalCount: renderTotalCount, totalCount: totalCount, size: this.getProps().size }), this.renderTokensEnd(), this.isEditingMode ? /*#__PURE__*/_react.default.createElement(_TokenView.TokenView, { size: this.props.size }, /*#__PURE__*/_react.default.createElement("span", { className: _TokenInput2.styles.reservedInput(theme) }, reservedInputValue)) : null)));} /**
1224
1239
  * Сбрасывает введенное пользователем значение
1225
1240
  * @public
1226
- */;_proto.reset = function reset() {this.dispatch({ type: 'RESET' });};_proto.isCursorVisibleForState = function isCursorVisibleForState(state) {return state.inFocus && (state.inputValue !== '' || state.activeTokens.length === 0);};_proto.updateInputTextWidth = function updateInputTextWidth() {if (this.textHelper) {// в IE текст иногда не помещается в input
1241
+ */;_proto.reset = function reset() {this.dispatch({ type: 'RESET' });};_proto.isCursorVisibleForState = function isCursorVisibleForState(state) {return state.inFocus && (this.isInputValueChanged || state.activeTokens.length === 0);};_proto.updateInputTextWidth = function updateInputTextWidth() {if (this.textHelper) {// в IE текст иногда не помещается в input
1227
1242
  // из-за округления, поэтому округляем явно
1228
- var inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));var inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);}};_proto.moveFocusToLastToken = function moveFocusToLastToken() {var items = this.getProps().selectedItems;if (this.state.inputValue === '' && items && items.length > 0) {this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });}};return (0, _createClass2.default)(TokenInput, [{ key: "textareaId", get: function get() {var _this$props$id;return (_this$props$id = this.props.id) != null ? _this$props$id : this._textareaId;} }, { key: "showAddItemHint", get: function get() {var items = this.state.autocompleteItems;var value = this.getProps().valueToItem(this.state.inputValue);if (items && this.hasValueInItems(items, value)) {return false;}var selectedItems = this.getProps().selectedItems;if (selectedItems && this.hasValueInItems(selectedItems, value)) {return false;}if (this.type === TokenInputType.Combined && this.state.inputValue !== '') {return true;}} }, { key: "type", get: function get() {return this.props.type ? this.props.type : TokenInputType.WithReference;} }, { key: "menuRef", get: function get() {return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();} }, { key: "isCursorVisible", get: function get() {return this.isCursorVisibleForState(this.state);} }, { key: "isEditingMode", get: function get() {return this.state.editingTokenIndex > -1;} }, { key: "isInputChanged", get: function get() {if (this.isEditingMode) {return this.isTokenValueChanged;}return this.isInputValueChanged;} }, { key: "isInputValueChanged", get: function get() {var inputValue = this.state.inputValue;return inputValue !== '';} }, { key: "isTokenValueChanged", get: function get() {var _this$state4 = this.state,inputValue = _this$state4.inputValue,editingTokenIndex = _this$state4.editingTokenIndex;var _this$getProps9 = this.getProps(),valueToString = _this$getProps9.valueToString,selectedItems = _this$getProps9.selectedItems;if (this.isEditingMode) {return valueToString(selectedItems[editingTokenIndex]) !== inputValue;}return false;} }]);}(_react.default.PureComponent), _TokenInput.__KONTUR_REACT_UI__ = 'TokenInput', _TokenInput.displayName = 'TokenInput', _TokenInput.defaultProps = { selectedItems: [], // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.
1243
+ var inputValueWidth = parseFloat(this.textHelper.getTextWidth().toFixed(2));var inputValueHeight = parseFloat(this.textHelper.getTextHeight().toFixed(2));this.dispatch({ type: 'SET_INPUT_VALUE_WIDTH', payload: inputValueWidth }, LayoutEvents.emit);this.dispatch({ type: 'SET_INPUT_VALUE_HEIGHT', payload: inputValueHeight }, LayoutEvents.emit);}};_proto.moveFocusToLastToken = function moveFocusToLastToken() {var items = this.getProps().selectedItems;if (this.state.inputValue === '' && items && items.length > 0) {this.dispatch({ type: 'SET_ACTIVE_TOKENS', payload: items.slice(-1) });}};return (0, _createClass2.default)(TokenInput, [{ key: "textareaId", get: function get() {var _this$props$id;return (_this$props$id = this.props.id) != null ? _this$props$id : this._textareaId;} }, { key: "showAddItemHint", get: function get() {var items = this.state.autocompleteItems;var value = this.getProps().valueToItem(this.state.inputValue);if (items && this.hasValueInItems(items, value)) {return false;}var selectedItems = this.getProps().selectedItems;if (selectedItems && this.hasValueInItems(selectedItems, value)) {return false;}if (this.type === TokenInputType.Combined && this.isInputValueChanged) {return true;}} }, { key: "type", get: function get() {return this.props.type ? this.props.type : TokenInputType.WithReference;} }, { key: "menuRef", get: function get() {return this.tokensInputMenu && this.tokensInputMenu.getMenuRef();} }, { key: "isCursorVisible", get: function get() {return this.isCursorVisibleForState(this.state);} }, { key: "isEditingMode", get: function get() {return this.state.editingTokenIndex > -1;} }, { key: "isInputChanged", get: function get() {if (this.isEditingMode) {return this.isTokenValueChanged;}return this.isInputValueChanged;} }, { key: "isInputValueChanged", get: function get() {var inputValue = this.state.inputValue;return inputValue !== '';} }, { key: "isTokenValueChanged", get: function get() {var _this$state4 = this.state,inputValue = _this$state4.inputValue,editingTokenIndex = _this$state4.editingTokenIndex;var _this$getProps9 = this.getProps(),valueToString = _this$getProps9.valueToString,selectedItems = _this$getProps9.selectedItems;if (this.isEditingMode) {return valueToString(selectedItems[editingTokenIndex]) !== inputValue;}return false;} }]);}(_react.default.PureComponent), _TokenInput.__KONTUR_REACT_UI__ = 'TokenInput', _TokenInput.displayName = 'TokenInput', _TokenInput.defaultProps = { selectedItems: [], // TEMP_FAKE_FLAG помогает узнать, остались ли разделители дефолтными или пользователь передал их равными дефолтным.
1229
1244
  delimiters: [',', TEMP_FAKE_FLAG], renderItem: identity, renderValue: identity, valueToString: identity, valueToItem: function valueToItem(item) {return item;}, toKey: defaultToKey, onValueChange: function onValueChange() {return void 0;}, width: 250, onBlur: _utils.emptyHandler, onFocus: _utils.emptyHandler, onMouseEnter: _utils.emptyHandler, onMouseLeave: _utils.emptyHandler, menuWidth: 'auto', menuAlign: 'cursor', size: 'small' }, _TokenInput)) || _class) || _class);