@skbkontur/react-ui 5.3.4 → 5.3.6

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 (29) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/cjs/components/ComboBox/ComboBox.d.ts +4 -1
  3. package/cjs/components/ComboBox/ComboBox.js +5 -0
  4. package/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/cjs/components/FileUploader/FileUploader.js +1 -0
  6. package/cjs/components/FileUploader/FileUploader.js.map +1 -1
  7. package/cjs/components/MaskedInput/MaskedInput.d.ts +8 -0
  8. package/cjs/components/MaskedInput/MaskedInput.js +23 -2
  9. package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
  10. package/cjs/internal/CustomComboBox/ComboBoxView.d.ts +3 -1
  11. package/cjs/internal/CustomComboBox/ComboBoxView.js +23 -1
  12. package/cjs/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  13. package/cjs/internal/CustomComboBox/CustomComboBox.d.ts +3 -1
  14. package/cjs/internal/CustomComboBox/CustomComboBox.js +8 -1
  15. package/cjs/internal/CustomComboBox/CustomComboBox.js.map +1 -1
  16. package/components/ComboBox/ComboBox/ComboBox.js.map +1 -1
  17. package/components/ComboBox/ComboBox.d.ts +4 -1
  18. package/components/FileUploader/FileUploader/FileUploader.js +1 -0
  19. package/components/FileUploader/FileUploader/FileUploader.js.map +1 -1
  20. package/components/MaskedInput/MaskedInput/MaskedInput.js +11 -1
  21. package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
  22. package/components/MaskedInput/MaskedInput.d.ts +8 -0
  23. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js +33 -12
  24. package/internal/CustomComboBox/ComboBoxView/ComboBoxView.js.map +1 -1
  25. package/internal/CustomComboBox/ComboBoxView.d.ts +3 -1
  26. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js +4 -0
  27. package/internal/CustomComboBox/CustomComboBox/CustomComboBox.js.map +1 -1
  28. package/internal/CustomComboBox/CustomComboBox.d.ts +3 -1
  29. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_utils","_Input","_InputLikeText","_RenderLayer","_Spinner","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_createPropsGetter","_ThemeContext","_LoadingIcon","_Popup","_getMenuPositions","_ZIndex","_ArrowDownIcon","_ComboBoxMenu","_CustomComboBoxTypes","_CustomComboBox","_CustomComboBox2","_getComboBoxTheme","_class","_ComboBoxView","ComboBoxViewIds","exports","menu","ComboBoxView","responsiveLayout","rootNode","_React$Component","_this$props$value","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","mobileInput","dropdownContainerRef","React","createRef","menuId","getRandomID","state","anchorElement","clearCrossShowed","props","showClearIcon","value","toString","getComboBoxMenu","_this$props","items","loading","opened","refMenu","maxMenuHeight","renderTotalCount","renderNotFound","totalCount","size","_this$getProps","repeatRequest","requestStatus","renderItem","itemWrapper","default","createElement","ComboBoxMenu","hasMargin","onValueChange","handleItemSelect","renderAddButton","isMobile","isMobileLayout","renderMenu","_this$getProps2","menuPos","menuAlign","Popup","hasShadow","minWidth","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","disablePortal","margin","parseInt","theme","menuOffsetY","ref","renderMobileMenu","rightIcon","_this$props2","onFocus","onInputValueChange","onInputKeyDown","placeholder","textValue","renderSpinner","inputProps","autoComplete","autoFocus","width","onKeyDown","MobilePopup","headerChildComponent","Input","_extends2","refMobileInput","onCloseRequest","onMobileClose","getParent","getRootNode","handleMobileFocus","_this$mobileInput","onInputClick","focus","item","refInput","input","className","styles","spinnerWrapper","Spinner","type","caption","dimmed","getRightIcon","_this$props3","drawArrow","LoadingIcon","ArrowDownIcon","_inheritsLoose2","_proto","prototype","componentDidMount","updateAnchorElement","parent","setState","componentDidUpdate","prevProps","editing","render","_this2","ThemeContext","Consumer","getComboBoxTheme","Provider","renderMain","_this$props4","onMouseEnter","onMouseLeave","onMouseOver","_this$getProps3","onClickOutside","onFocusOutside","renderInput","CommonWrapper","RenderLayer","active","CustomComboBoxDataTids","comboBoxView","style","root","setRootNode","_this$props5","id","align","borderless","disabled","error","onInputBlur","onInputFocus","warning","refInputLikeText","leftIcon","inputMode","ariaDescribedby","ariaLabel","_this$getProps4","renderValue","maxLength","onBlur","undefined","onClick","InputLikeText","onClearCrossClick","isNonNullable","Component","__KONTUR_REACT_UI__","displayName","ComboBoxRequestStatus","Unknown"],"sources":["ComboBoxView.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport type { InputIconType, InputProps, ShowClearIcon } from '../../components/Input';\nimport { Input } from '../../components/Input';\nimport { InputLikeText } from '../InputLikeText';\nimport type { Menu } from '../Menu';\nimport type { MenuItemState } from '../../components/MenuItem';\nimport { RenderLayer } from '../RenderLayer';\nimport { Spinner } from '../../components/Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { MobilePopup } from '../MobilePopup';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode, getRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { LoadingIcon } from '../icons2022/LoadingIcon';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../ZIndex';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { ComboBoxMenu } from './ComboBoxMenu';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { styles } from './CustomComboBox.styles';\nimport { CustomComboBoxDataTids } from './CustomComboBox';\nimport { getComboBoxTheme } from './getComboBoxTheme';\n\ninterface ComboBoxViewProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n editing?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n loading?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n opened?: boolean;\n drawArrow?: boolean;\n placeholder?: string;\n size?: SizeProp;\n textValue?: string;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxLength?: number;\n maxMenuHeight?: number | string;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n onValueChange?: (value: T) => void;\n onClickOutside?: (e: Event) => void;\n onFocus?: () => void;\n onMobileClose?: () => void;\n onFocusOutside?: () => void;\n onInputBlur?: () => void;\n onInputValueChange?: (value: string) => void;\n onInputFocus?: () => void;\n onInputClick?: () => void;\n onClearCrossClick?: () => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderValue?: (item: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n refInput?: (input: Nullable<Input>) => void;\n refMenu?: (menu: Nullable<Menu>) => void;\n refInputLikeText?: (inputLikeText: Nullable<InputLikeText>) => void;\n}\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxViewProps<T>,\n | 'renderItem'\n | 'renderValue'\n | 'renderAddButton'\n | 'repeatRequest'\n | 'requestStatus'\n | 'onClickOutside'\n | 'onFocusOutside'\n | 'size'\n | 'width'\n | 'showClearIcon'\n >\n>;\n\nexport const ComboBoxViewIds = {\n menu: 'ComboBoxView__menu',\n};\n\ninterface ComboBoxViewState {\n anchorElement: Nullable<Element>;\n clearCrossShowed: boolean;\n}\n\n@responsiveLayout\n@rootNode\nexport class ComboBoxView<T> extends React.Component<ComboBoxViewProps<T>, ComboBoxViewState> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxView';\n public static displayName = 'ComboBoxView';\n\n public static defaultProps: DefaultProps<unknown> = {\n renderItem: (item: any) => item,\n renderValue: (item: any) => item,\n renderAddButton: () => null,\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n onClickOutside: () => {\n /**/\n },\n onFocusOutside: () => {\n /**/\n },\n size: 'small',\n width: 250,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBoxView.defaultProps);\n\n private input: Nullable<Input>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private mobileInput: Nullable<Input> = null;\n private isMobileLayout!: boolean;\n private dropdownContainerRef = React.createRef<Popup>();\n private theme!: Theme;\n private menuId = ComboBoxViewIds.menu + getRandomID();\n\n public state = {\n anchorElement: null,\n clearCrossShowed: this.props.showClearIcon === 'always' && !!this.props.value?.toString(),\n };\n\n public componentDidMount() {\n this.updateAnchorElement();\n\n if (this.props.autoFocus && this.props.onFocus) {\n this.props.onFocus();\n }\n }\n\n updateAnchorElement() {\n const parent = this.getParent();\n const anchorElement = this.state.anchorElement;\n\n if (anchorElement !== parent) {\n this.setState({\n anchorElement: parent,\n });\n }\n }\n\n public componentDidUpdate(prevProps: ComboBoxViewProps<T>) {\n const { input, props } = this;\n\n this.updateAnchorElement();\n\n if (props.editing && !prevProps.editing && input) {\n input.focus();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getComboBoxTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { onMouseEnter, onMouseLeave, onMouseOver, opened } = this.props;\n const { onClickOutside, onFocusOutside, width } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n const input = this.renderInput();\n\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer onClickOutside={onClickOutside} onFocusOutside={onFocusOutside} active={opened}>\n <span\n data-tid={CustomComboBoxDataTids.comboBoxView}\n style={{ width }}\n className={styles.root()}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n ref={this.setRootNode}\n >\n {input}\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getComboBoxMenu = () => {\n const { items, loading, opened, refMenu, maxMenuHeight, renderTotalCount, renderNotFound, totalCount, size } =\n this.props;\n\n const { repeatRequest, requestStatus, renderItem, itemWrapper } = this.getProps();\n return (\n <ComboBoxMenu\n hasMargin={false}\n menuId={this.menuId}\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={this.handleItemSelect}\n opened={opened}\n refMenu={refMenu}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n itemWrapper={itemWrapper}\n renderAddButton={this.renderAddButton}\n repeatRequest={repeatRequest}\n requestStatus={requestStatus}\n totalCount={totalCount}\n isMobile={this.isMobileLayout}\n size={size}\n />\n );\n };\n\n private renderMenu = () => {\n const { opened, menuPos, menuAlign } = this.getProps();\n const { anchorElement } = this.state;\n\n return (\n opened &&\n anchorElement && (\n <Popup\n opened\n hasShadow\n minWidth=\"100%\"\n anchorElement={anchorElement}\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n ref={this.dropdownContainerRef}\n >\n {this.getComboBoxMenu()}\n </Popup>\n )\n );\n };\n\n private renderMobileMenu = () => {\n let rightIcon = null;\n\n const { loading, items, opened, onFocus, onInputValueChange, onInputKeyDown, placeholder, textValue } = this.props;\n if (loading && items && !!items.length) {\n rightIcon = this.renderSpinner();\n }\n\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onFocus,\n onValueChange: onInputValueChange,\n onKeyDown: onInputKeyDown,\n value: textValue,\n placeholder,\n rightIcon,\n };\n\n return (\n opened && (\n <MobilePopup\n headerChildComponent={<Input ref={this.refMobileInput} {...inputProps} />}\n onCloseRequest={this.props.onMobileClose}\n opened\n >\n {this.getComboBoxMenu()}\n </MobilePopup>\n )\n );\n };\n\n private getParent = () => {\n return getRootNode(this);\n };\n\n private renderAddButton = (): React.ReactNode => {\n return this.getProps().renderAddButton(this.props.textValue);\n };\n\n private renderInput(): React.ReactNode {\n const isMobile = this.isMobileLayout;\n\n const {\n id,\n align,\n borderless,\n disabled,\n editing,\n error,\n onFocus,\n onInputBlur,\n onInputValueChange,\n onInputFocus,\n onInputClick,\n onInputKeyDown,\n placeholder,\n textValue,\n value,\n warning,\n refInputLikeText,\n leftIcon,\n inputMode,\n size,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n showClearIcon,\n } = this.props;\n\n const { renderValue } = this.getProps();\n\n const rightIcon = this.getRightIcon();\n\n if (editing) {\n return (\n <Input\n id={id}\n align={align}\n borderless={borderless}\n disabled={disabled}\n error={error}\n maxLength={this.props.maxLength}\n onBlur={isMobile ? undefined : onInputBlur}\n onValueChange={onInputValueChange}\n onFocus={onInputFocus}\n onClick={isMobile ? this.handleMobileFocus : onInputClick}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n value={textValue || ''}\n onKeyDown={onInputKeyDown}\n placeholder={placeholder}\n width=\"100%\"\n size={size}\n ref={this.refInput}\n warning={warning}\n inputMode={inputMode}\n autoComplete=\"off\"\n aria-describedby={ariaDescribedby}\n aria-controls={this.menuId}\n aria-label={ariaLabel}\n showClearIcon={showClearIcon}\n />\n );\n }\n\n return (\n <InputLikeText\n id={id}\n align={align}\n borderless={borderless}\n error={error}\n onFocus={onFocus}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n disabled={disabled}\n warning={warning}\n placeholder={placeholder}\n size={size}\n width=\"100%\"\n ref={refInputLikeText}\n aria-describedby={ariaDescribedby}\n aria-controls={this.menuId}\n showClearIcon={showClearIcon}\n onClearCrossClick={this.props.onClearCrossClick}\n >\n {isNonNullable(value) && renderValue ? renderValue(value) : null}\n </InputLikeText>\n );\n }\n\n private handleMobileFocus = () => {\n this.props.onInputClick?.();\n\n this.mobileInput?.focus();\n };\n\n private handleItemSelect = (item: T) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(item);\n }\n\n if (this.isMobileLayout) {\n this.props.onMobileClose?.();\n }\n };\n\n private refInput = (input: Nullable<Input>) => {\n if (this.props.refInput) {\n this.props.refInput(input);\n }\n this.input = input;\n };\n\n private renderSpinner = () => (\n <span className={styles.spinnerWrapper()}>\n <Spinner type=\"mini\" caption=\"\" dimmed />\n </span>\n );\n\n private getRightIcon = () => {\n const { loading, items, drawArrow, rightIcon, size } = this.props;\n\n if (loading && items && !!items.length) {\n return <LoadingIcon size={size} />;\n }\n\n if (rightIcon || drawArrow) {\n return rightIcon || <ArrowDownIcon size={size} />;\n }\n\n return null;\n };\n\n private refMobileInput = (input: Nullable<Input>) => {\n this.mobileInput = input;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_utils","_Input","_InputLikeText","_RenderLayer","_Spinner","_CommonWrapper","_MobilePopup","_decorator","_rootNode","_createPropsGetter","_ThemeContext","_LoadingIcon","_Popup","_getMenuPositions","_ZIndex","_MaskedInput","_MaskedInput2","_Emotion","_ArrowDownIcon","_ComboBoxMenu","_CustomComboBoxTypes","_CustomComboBox","_CustomComboBox2","_getComboBoxTheme","_class","_ComboBoxView","ComboBoxViewIds","exports","menu","ComboBoxView","responsiveLayout","rootNode","_React$Component","_this$props$value","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","mobileInput","dropdownContainerRef","React","createRef","menuId","getRandomID","state","anchorElement","clearCrossShowed","props","showClearIcon","value","toString","getComboBoxMenu","_this$props","items","loading","opened","refMenu","maxMenuHeight","renderTotalCount","renderNotFound","totalCount","size","_this$getProps","repeatRequest","requestStatus","renderItem","itemWrapper","default","createElement","ComboBoxMenu","hasMargin","onValueChange","handleItemSelect","renderAddButton","isMobile","isMobileLayout","renderMenu","_this$getProps2","menuPos","menuAlign","Popup","hasShadow","minWidth","priority","ZIndex","priorities","PopupMenu","positions","getMenuPositions","disablePortal","margin","parseInt","theme","menuOffsetY","ref","renderMobileMenu","rightIcon","_this$props2","onFocus","onInputValueChange","onInputKeyDown","placeholder","textValue","renderSpinner","inputProps","autoComplete","autoFocus","width","onKeyDown","MobilePopup","headerChildComponent","Input","_extends2","refMobileInput","onCloseRequest","onMobileClose","getParent","getRootNode","handleMobileFocus","_this$mobileInput","onInputClick","focus","item","refInput","input","className","styles","spinnerWrapper","Spinner","type","caption","dimmed","getRightIcon","_this$props3","drawArrow","LoadingIcon","ArrowDownIcon","_inheritsLoose2","_proto","prototype","componentDidMount","updateAnchorElement","parent","setState","componentDidUpdate","prevProps","editing","render","_this2","ThemeContext","Consumer","getComboBoxTheme","Provider","renderMain","_this$props4","onMouseEnter","onMouseLeave","onMouseOver","_this$getProps3","onClickOutside","onFocusOutside","renderInput","CommonWrapper","RenderLayer","active","CustomComboBoxDataTids","comboBoxView","style","root","setRootNode","_this$props5","id","align","borderless","disabled","error","onInputBlur","onInputFocus","warning","refInputLikeText","leftIcon","inputMode","ariaDescribedby","ariaLabel","mask","maskChar","formatChars","onBeforePasteInMask","onBlur","undefined","onClick","MaskedInput","onBeforePasteValue","maxLength","_this$getProps4","renderValue","InputLikeText","cx","MaskedInputStyles","onClearCrossClick","isNonNullable","Component","__KONTUR_REACT_UI__","displayName","ComboBoxRequestStatus","Unknown"],"sources":["ComboBoxView.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { getRandomID, isNonNullable } from '../../lib/utils';\nimport type { InputIconType, InputProps, ShowClearIcon } from '../../components/Input';\nimport { Input } from '../../components/Input';\nimport { InputLikeText } from '../InputLikeText';\nimport type { Menu } from '../Menu';\nimport type { MenuItemState } from '../../components/MenuItem';\nimport { RenderLayer } from '../RenderLayer';\nimport { Spinner } from '../../components/Spinner';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { MobilePopup } from '../MobilePopup';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode, getRootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport type { Theme } from '../../lib/theming/Theme';\nimport { LoadingIcon } from '../icons2022/LoadingIcon';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport type { SizeProp } from '../../lib/types/props';\nimport { Popup } from '../Popup';\nimport { getMenuPositions } from '../../lib/getMenuPositions';\nimport { ZIndex } from '../ZIndex';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput';\nimport { MaskedInput } from '../../components/MaskedInput';\nimport { styles as MaskedInputStyles } from '../../components/MaskedInput/MaskedInput.styles';\nimport { cx } from '../../lib/theming/Emotion';\n\nimport { ArrowDownIcon } from './ArrowDownIcon';\nimport { ComboBoxMenu } from './ComboBoxMenu';\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { styles } from './CustomComboBox.styles';\nimport { CustomComboBoxDataTids } from './CustomComboBox';\nimport { getComboBoxTheme } from './getComboBoxTheme';\n\ninterface ComboBoxViewProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>> {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n editing?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n loading?: boolean;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n opened?: boolean;\n drawArrow?: boolean;\n placeholder?: string;\n size?: SizeProp;\n textValue?: string;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxLength?: number;\n maxMenuHeight?: number | string;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n onValueChange?: (value: T) => void;\n onClickOutside?: (e: Event) => void;\n onFocus?: () => void;\n onMobileClose?: () => void;\n onFocusOutside?: () => void;\n onInputBlur?: () => void;\n onInputValueChange?: (value: string) => void;\n onInputFocus?: () => void;\n onInputClick?: () => void;\n onClearCrossClick?: () => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n renderItem?: (item: T, state: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderValue?: (item: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n refInput?: (input: Nullable<Input>) => void;\n refMenu?: (menu: Nullable<Menu>) => void;\n refInputLikeText?: (inputLikeText: Nullable<InputLikeText>) => void;\n}\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxViewProps<T>,\n | 'renderItem'\n | 'renderValue'\n | 'renderAddButton'\n | 'repeatRequest'\n | 'requestStatus'\n | 'onClickOutside'\n | 'onFocusOutside'\n | 'size'\n | 'width'\n | 'showClearIcon'\n >\n>;\n\nexport const ComboBoxViewIds = {\n menu: 'ComboBoxView__menu',\n};\n\ninterface ComboBoxViewState {\n anchorElement: Nullable<Element>;\n clearCrossShowed: boolean;\n}\n\n@responsiveLayout\n@rootNode\nexport class ComboBoxView<T> extends React.Component<ComboBoxViewProps<T>, ComboBoxViewState> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxView';\n public static displayName = 'ComboBoxView';\n\n public static defaultProps: DefaultProps<unknown> = {\n renderItem: (item: any) => item,\n renderValue: (item: any) => item,\n renderAddButton: () => null,\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n onClickOutside: () => {\n /**/\n },\n onFocusOutside: () => {\n /**/\n },\n size: 'small',\n width: 250,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBoxView.defaultProps);\n\n private input: Nullable<Input>;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n private mobileInput: Nullable<Input> = null;\n private isMobileLayout!: boolean;\n private dropdownContainerRef = React.createRef<Popup>();\n private theme!: Theme;\n private menuId = ComboBoxViewIds.menu + getRandomID();\n\n public state = {\n anchorElement: null,\n clearCrossShowed: this.props.showClearIcon === 'always' && !!this.props.value?.toString(),\n };\n\n public componentDidMount() {\n this.updateAnchorElement();\n\n if (this.props.autoFocus && this.props.onFocus) {\n this.props.onFocus();\n }\n }\n\n updateAnchorElement() {\n const parent = this.getParent();\n const anchorElement = this.state.anchorElement;\n\n if (anchorElement !== parent) {\n this.setState({\n anchorElement: parent,\n });\n }\n }\n\n public componentDidUpdate(prevProps: ComboBoxViewProps<T>) {\n const { input, props } = this;\n\n this.updateAnchorElement();\n\n if (props.editing && !prevProps.editing && input) {\n input.focus();\n }\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = getComboBoxTheme(theme);\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const { onMouseEnter, onMouseLeave, onMouseOver, opened } = this.props;\n const { onClickOutside, onFocusOutside, width } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n const input = this.renderInput();\n\n return (\n <CommonWrapper {...this.props}>\n <RenderLayer onClickOutside={onClickOutside} onFocusOutside={onFocusOutside} active={opened}>\n <span\n data-tid={CustomComboBoxDataTids.comboBoxView}\n style={{ width }}\n className={styles.root()}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onMouseOver={onMouseOver}\n ref={this.setRootNode}\n >\n {input}\n {isMobile ? this.renderMobileMenu() : this.renderMenu()}\n </span>\n </RenderLayer>\n </CommonWrapper>\n );\n }\n\n private getComboBoxMenu = () => {\n const { items, loading, opened, refMenu, maxMenuHeight, renderTotalCount, renderNotFound, totalCount, size } =\n this.props;\n\n const { repeatRequest, requestStatus, renderItem, itemWrapper } = this.getProps();\n return (\n <ComboBoxMenu\n hasMargin={false}\n menuId={this.menuId}\n items={items}\n loading={loading}\n maxMenuHeight={maxMenuHeight}\n onValueChange={this.handleItemSelect}\n opened={opened}\n refMenu={refMenu}\n renderTotalCount={renderTotalCount}\n renderItem={renderItem}\n renderNotFound={renderNotFound}\n itemWrapper={itemWrapper}\n renderAddButton={this.renderAddButton}\n repeatRequest={repeatRequest}\n requestStatus={requestStatus}\n totalCount={totalCount}\n isMobile={this.isMobileLayout}\n size={size}\n />\n );\n };\n\n private renderMenu = () => {\n const { opened, menuPos, menuAlign } = this.getProps();\n const { anchorElement } = this.state;\n\n return (\n opened &&\n anchorElement && (\n <Popup\n opened\n hasShadow\n minWidth=\"100%\"\n anchorElement={anchorElement}\n priority={ZIndex.priorities.PopupMenu}\n positions={getMenuPositions(menuPos, menuAlign)}\n disablePortal={this.props.disablePortal}\n margin={parseInt(this.theme.menuOffsetY) - 1}\n ref={this.dropdownContainerRef}\n >\n {this.getComboBoxMenu()}\n </Popup>\n )\n );\n };\n\n private renderMobileMenu = () => {\n let rightIcon = null;\n\n const { loading, items, opened, onFocus, onInputValueChange, onInputKeyDown, placeholder, textValue } = this.props;\n if (loading && items && !!items.length) {\n rightIcon = this.renderSpinner();\n }\n\n const inputProps: InputProps = {\n autoComplete: 'off',\n autoFocus: true,\n width: '100%',\n onFocus,\n onValueChange: onInputValueChange,\n onKeyDown: onInputKeyDown,\n value: textValue,\n placeholder,\n rightIcon,\n };\n\n return (\n opened && (\n <MobilePopup\n headerChildComponent={<Input ref={this.refMobileInput} {...inputProps} />}\n onCloseRequest={this.props.onMobileClose}\n opened\n >\n {this.getComboBoxMenu()}\n </MobilePopup>\n )\n );\n };\n\n private getParent = () => {\n return getRootNode(this);\n };\n\n private renderAddButton = (): React.ReactNode => {\n return this.getProps().renderAddButton(this.props.textValue);\n };\n\n private renderInput(): React.ReactNode {\n const isMobile = this.isMobileLayout;\n\n const {\n id,\n align,\n borderless,\n disabled,\n editing,\n error,\n onFocus,\n onInputBlur,\n onInputValueChange,\n onInputFocus,\n onInputClick,\n onInputKeyDown,\n placeholder,\n textValue,\n value,\n warning,\n refInputLikeText,\n leftIcon,\n inputMode,\n size,\n 'aria-describedby': ariaDescribedby,\n 'aria-label': ariaLabel,\n showClearIcon,\n mask,\n maskChar,\n formatChars,\n onBeforePasteInMask,\n } = this.props;\n\n const rightIcon = this.getRightIcon();\n\n if (editing) {\n const inputProps: InputProps = {\n id,\n align,\n borderless,\n disabled,\n error,\n onBlur: isMobile ? undefined : onInputBlur,\n onValueChange: onInputValueChange,\n onFocus: onInputFocus,\n onClick: isMobile ? this.handleMobileFocus : onInputClick,\n leftIcon,\n rightIcon,\n value: textValue || '',\n onKeyDown: onInputKeyDown,\n placeholder,\n width: '100%',\n size,\n warning,\n inputMode,\n autoComplete: 'off',\n 'aria-describedby': ariaDescribedby,\n 'aria-controls': this.menuId,\n 'aria-label': ariaLabel,\n showClearIcon,\n };\n\n if (mask) {\n return (\n <MaskedInput\n ref={this.refInput}\n {...inputProps}\n type=\"text\"\n mask={mask}\n maskChar={maskChar}\n formatChars={formatChars}\n onBeforePasteValue={onBeforePasteInMask}\n />\n );\n }\n\n return <Input ref={this.refInput} maxLength={this.props.maxLength} {...inputProps} />;\n }\n\n const { renderValue } = this.getProps();\n return (\n <InputLikeText\n id={id}\n align={align}\n borderless={borderless}\n error={error}\n onFocus={onFocus}\n leftIcon={leftIcon}\n rightIcon={rightIcon}\n disabled={disabled}\n warning={warning}\n placeholder={placeholder}\n size={size}\n width=\"100%\"\n ref={refInputLikeText}\n aria-describedby={ariaDescribedby}\n aria-controls={this.menuId}\n showClearIcon={showClearIcon}\n className={cx(mask && MaskedInputStyles.root(this.theme))}\n onClearCrossClick={this.props.onClearCrossClick}\n >\n {isNonNullable(value) && renderValue ? renderValue(value) : null}\n </InputLikeText>\n );\n }\n\n private handleMobileFocus = () => {\n this.props.onInputClick?.();\n\n this.mobileInput?.focus();\n };\n\n private handleItemSelect = (item: T) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(item);\n }\n\n if (this.isMobileLayout) {\n this.props.onMobileClose?.();\n }\n };\n\n private refInput = (input: Nullable<Input>) => {\n if (this.props.refInput) {\n this.props.refInput(input);\n }\n this.input = input;\n };\n\n private renderSpinner = () => (\n <span className={styles.spinnerWrapper()}>\n <Spinner type=\"mini\" caption=\"\" dimmed />\n </span>\n );\n\n private getRightIcon = () => {\n const { loading, items, drawArrow, rightIcon, size } = this.props;\n\n if (loading && items && !!items.length) {\n return <LoadingIcon size={size} />;\n }\n\n if (rightIcon || drawArrow) {\n return rightIcon || <ArrowDownIcon size={size} />;\n }\n\n return null;\n };\n\n private refMobileInput = (input: Nullable<Input>) => {\n this.mobileInput = input;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,10 @@ import type { CommonProps } from '../CommonWrapper';
9
9
  import type { TGetRootNode } from '../../lib/rootNode';
10
10
  import type { ComboBoxExtendedItem } from '../../components/ComboBox';
11
11
  import type { SizeProp } from '../../lib/types/props';
12
+ import type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput';
12
13
  import { ComboBoxRequestStatus } from './CustomComboBoxTypes';
13
14
  export * from './tids';
14
- export interface CustomComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
15
+ export interface CustomComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps, Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>> {
15
16
  align?: 'left' | 'center' | 'right';
16
17
  autoFocus?: boolean;
17
18
  borderless?: boolean;
@@ -61,6 +62,7 @@ export interface CustomComboBoxProps<T> extends Pick<AriaAttributes, 'aria-descr
61
62
  itemToValue: (item: T) => string | number;
62
63
  getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;
63
64
  inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];
65
+ onBeforePasteInMask?: MaskedInputOnBeforePasteValue;
64
66
  }
65
67
  export interface CustomComboBoxState<T> {
66
68
  editing: boolean;
@@ -20,6 +20,7 @@ var _rootNode = require("../../lib/rootNode");
20
20
 
21
21
  var _featureFlagsContext = require("../../lib/featureFlagsContext");
22
22
 
23
+
23
24
  var _CustomComboBoxTypes = require("./CustomComboBoxTypes");
24
25
 
25
26
  var _CustomComboBoxReducer = require("./CustomComboBoxReducer");
@@ -91,6 +92,8 @@ var _tids = require("./tids");Object.keys(_tids).forEach(function (key) {if (key
91
92
 
92
93
 
93
94
 
95
+
96
+
94
97
 
95
98
 
96
99
 
@@ -366,6 +369,10 @@ CustomComboBox = exports.CustomComboBox = (0, _decorator.responsiveLayout)(_clas
366
369
 
367
370
 
368
371
 
372
+
373
+
374
+
375
+
369
376
 
370
377
 
371
378
 
@@ -475,6 +482,6 @@ CustomComboBox = exports.CustomComboBox = (0, _decorator.responsiveLayout)(_clas
475
482
  * @public
476
483
  */;_proto.open = function open() {this.dispatch({ type: 'Open' });} /**
477
484
  * @public
478
- */;_proto.close = function close() {this.dispatch({ type: 'Close' });};_proto.render = function render() {var _this3 = this;var viewProps = { align: this.props.align, borderless: this.props.borderless, disabled: this.props.disabled, disablePortal: this.props.disablePortal, editing: this.state.editing, error: this.props.error, items: this.state.items, loading: this.state.loading, opened: this.state.opened, drawArrow: this.props.drawArrow, menuPos: this.props.menuPos, menuAlign: this.props.menuAlign, placeholder: this.props.placeholder, size: this.props.size, textValue: this.state.textValue, totalCount: this.props.totalCount, value: this.props.value, showClearIcon: this.props.showClearIcon, warning: this.props.warning, 'aria-describedby': this.props['aria-describedby'], 'aria-label': this.props['aria-label'], id: this.props.id, width: this.props.width, maxLength: this.props.maxLength, maxMenuHeight: this.props.maxMenuHeight, leftIcon: this.props.leftIcon, rightIcon: this.props.rightIcon, inputMode: this.props.inputMode, onValueChange: this.handleValueChange, onClickOutside: this.handleClickOutside, onFocus: this.handleFocus, onMobileClose: this.handleMobileClose, onFocusOutside: this.handleBlur, onInputBlur: this.handleInputBlur, onInputValueChange: function onInputValueChange(value) {return _this3.dispatch({ type: 'TextChange', value: value });}, onInputFocus: this.handleFocus, onInputClick: this.handleInputClick, onClearCrossClick: function onClearCrossClick() {return _this3.dispatch({ type: 'ClearCrossClick' });}, onInputKeyDown: function onInputKeyDown(event) {event.persist();_this3.dispatch({ type: 'KeyPress', event: event });}, onMouseEnter: this.props.onMouseEnter, onMouseOver: this.props.onMouseOver, onMouseLeave: this.props.onMouseLeave, renderItem: this.props.renderItem, renderNotFound: this.props.renderNotFound, itemWrapper: this.props.itemWrapper, renderValue: this.props.renderValue, renderTotalCount: this.props.renderTotalCount, renderAddButton: this.props.renderAddButton, repeatRequest: this.state.repeatRequest, requestStatus: this.state.requestStatus, refInput: function refInput(input) {_this3.input = input;}, refMenu: function refMenu(menu) {_this3.menu = menu;}, refInputLikeText: function refInputLikeText(inputLikeText) {_this3.inputLikeText = inputLikeText;} };return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this3.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/_react.default.createElement(_ComboBoxView.ComboBoxView, (0, _extends2.default)({}, viewProps, { size: _this3.props.size, ref: _this3.setRootNode })));});};_proto.componentDidMount = function componentDidMount() {this.dispatch({ type: 'Mount' }, false);if (this.props.autoFocus) {this.focus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevState.editing && !this.state.editing) {this.handleBlur();}this.dispatch({ type: 'DidUpdate', prevProps: prevProps, prevState: prevState, fixValueChange: this.featureFlags.comboBoxAllowValueChangeInEditingState }, false);} /**
485
+ */;_proto.close = function close() {this.dispatch({ type: 'Close' });};_proto.render = function render() {var _this3 = this;var viewProps = { align: this.props.align, borderless: this.props.borderless, disabled: this.props.disabled, disablePortal: this.props.disablePortal, editing: this.state.editing, error: this.props.error, items: this.state.items, loading: this.state.loading, opened: this.state.opened, drawArrow: this.props.drawArrow, menuPos: this.props.menuPos, menuAlign: this.props.menuAlign, placeholder: this.props.placeholder, size: this.props.size, textValue: this.state.textValue, totalCount: this.props.totalCount, value: this.props.value, showClearIcon: this.props.showClearIcon, warning: this.props.warning, 'aria-describedby': this.props['aria-describedby'], 'aria-label': this.props['aria-label'], id: this.props.id, width: this.props.width, maxLength: this.props.maxLength, maxMenuHeight: this.props.maxMenuHeight, leftIcon: this.props.leftIcon, rightIcon: this.props.rightIcon, inputMode: this.props.inputMode, mask: this.props.mask, maskChar: this.props.maskChar, formatChars: this.props.formatChars, onBeforePasteInMask: this.props.onBeforePasteInMask, onValueChange: this.handleValueChange, onClickOutside: this.handleClickOutside, onFocus: this.handleFocus, onMobileClose: this.handleMobileClose, onFocusOutside: this.handleBlur, onInputBlur: this.handleInputBlur, onInputValueChange: function onInputValueChange(value) {return _this3.dispatch({ type: 'TextChange', value: value });}, onInputFocus: this.handleFocus, onInputClick: this.handleInputClick, onClearCrossClick: function onClearCrossClick() {return _this3.dispatch({ type: 'ClearCrossClick' });}, onInputKeyDown: function onInputKeyDown(event) {event.persist();_this3.dispatch({ type: 'KeyPress', event: event });}, onMouseEnter: this.props.onMouseEnter, onMouseOver: this.props.onMouseOver, onMouseLeave: this.props.onMouseLeave, renderItem: this.props.renderItem, renderNotFound: this.props.renderNotFound, itemWrapper: this.props.itemWrapper, renderValue: this.props.renderValue, renderTotalCount: this.props.renderTotalCount, renderAddButton: this.props.renderAddButton, repeatRequest: this.state.repeatRequest, requestStatus: this.state.requestStatus, refInput: function refInput(input) {_this3.input = input;}, refMenu: function refMenu(menu) {_this3.menu = menu;}, refInputLikeText: function refInputLikeText(inputLikeText) {_this3.inputLikeText = inputLikeText;} };return /*#__PURE__*/_react.default.createElement(_featureFlagsContext.ReactUIFeatureFlagsContext.Consumer, null, function (flags) {_this3.featureFlags = (0, _featureFlagsContext.getFullReactUIFlagsContext)(flags);return /*#__PURE__*/_react.default.createElement(_CommonWrapper.CommonWrapper, _this3.props, /*#__PURE__*/_react.default.createElement(_ComboBoxView.ComboBoxView, (0, _extends2.default)({}, viewProps, { size: _this3.props.size, ref: _this3.setRootNode })));});};_proto.componentDidMount = function componentDidMount() {this.dispatch({ type: 'Mount' }, false);if (this.props.autoFocus) {this.focus();}};_proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {if (prevState.editing && !this.state.editing) {this.handleBlur();}this.dispatch({ type: 'DidUpdate', prevProps: prevProps, prevState: prevState, fixValueChange: this.featureFlags.comboBoxAllowValueChangeInEditingState }, false);} /**
479
486
  * @public
480
487
  */;_proto.reset = function reset() {this.dispatch({ type: 'Reset' });};return CustomComboBox;}(_react.default.PureComponent), _CustomComboBox.__KONTUR_REACT_UI__ = 'CustomComboBox', _CustomComboBox.displayName = 'CustomComboBox', _CustomComboBox)) || _class) || _class;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_utils","_fixClickFocusIE","_CommonWrapper","_decorator","_rootNode","_featureFlagsContext","_CustomComboBoxTypes","_CustomComboBoxReducer","_ComboBoxView","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_class","_CustomComboBox","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","size","CustomComboBox","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","apply","concat","state","requestId","cancelationToken","canOpenPopup","reducer","cancelLoaderDelay","focus","opts","props","disabled","withoutOpenDropdown","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","_ref","handleEffect","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","searchOnFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","fixClickFocusIE","close","globalObject","setTimeout","handleInputClick","_inheritsLoose2","default","_proto","_search","_asyncToGenerator2","_regenerator","mark","_callee","query","_this2","getItems","cancelPromise","expectingId","wrap","_callee$","_context","prev","next","Promise","_","reject","loaderShowDelay","resolve","cancelLoader","taskWithDelay","catch","race","sent","t0","code","finish","stop","_x","cancelSearch","CancelationError","open","render","_this3","viewProps","align","borderless","disablePortal","error","drawArrow","menuPos","menuAlign","placeholder","totalCount","showClearIcon","warning","id","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","onValueChange","onClickOutside","onFocus","onMobileClose","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onClearCrossClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","createElement","ReactUIFeatureFlagsContext","Consumer","flags","featureFlags","getFullReactUIFlagsContext","CommonWrapper","ComboBoxView","_extends2","ref","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","fixValueChange","comboBoxAllowValueChangeInEditingState","reset","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["CustomComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport type { InputIconType, Input, ShowClearIcon } from '../../components/Input';\nimport type { Menu } from '../Menu';\nimport type { InputLikeText } from '../InputLikeText';\nimport type { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext, getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport type { CustomComboBoxAction, CustomComboBoxEffect } from './CustomComboBoxReducer';\nimport { reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport * from './tids';\n\nexport interface CustomComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: SizeProp;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<Array<ComboBoxExtendedItem<T>>>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n size: 'small',\n};\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n public static displayName = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n private featureFlags!: ReactUIFeatureFlags;\n private canOpenPopup = true;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = (opts?: { withoutOpenDropdown?: boolean }) => {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n globalObject.setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n menuAlign: this.props.menuAlign,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n showClearIcon: this.props.showClearIcon,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-label': this.props['aria-label'],\n id: this.props.id,\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onMobileClose: this.handleMobileClose,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onClearCrossClick: () => this.dispatch({ type: 'ClearCrossClick' }),\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} size={this.props.size} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch(\n {\n type: 'DidUpdate',\n prevProps,\n prevState,\n fixValueChange: this.featureFlags.comboBoxAllowValueChangeInEditingState,\n },\n false,\n );\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n this.dispatch({ type: 'Focus', searchOnFocus: this.canOpenPopup && this.props.searchOnFocus });\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n }\n };\n\n private handleMobileClose = () => {\n this.handleInputBlur();\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n globalObject.setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n }, 0);\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n if (this.state.opened && !this.isMobileLayout) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactDom","_globalObject","_utils","_fixClickFocusIE","_CommonWrapper","_decorator","_rootNode","_featureFlagsContext","_CustomComboBoxTypes","_CustomComboBoxReducer","_ComboBoxView","_tids","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","_class","_CustomComboBox","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","ComboBoxRequestStatus","Unknown","size","CustomComboBox","responsiveLayout","rootNode","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","apply","concat","state","requestId","cancelationToken","canOpenPopup","reducer","cancelLoaderDelay","focus","opts","props","disabled","withoutOpenDropdown","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","_ref","handleEffect","React","version","search","ReactDOM","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","searchOnFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","fixClickFocusIE","close","globalObject","setTimeout","handleInputClick","_inheritsLoose2","default","_proto","_search","_asyncToGenerator2","_regenerator","mark","_callee","query","_this2","getItems","cancelPromise","expectingId","wrap","_callee$","_context","prev","next","Promise","_","reject","loaderShowDelay","resolve","cancelLoader","taskWithDelay","catch","race","sent","t0","code","finish","stop","_x","cancelSearch","CancelationError","open","render","_this3","viewProps","align","borderless","disablePortal","error","drawArrow","menuPos","menuAlign","placeholder","totalCount","showClearIcon","warning","id","width","maxLength","maxMenuHeight","leftIcon","rightIcon","inputMode","mask","maskChar","formatChars","onBeforePasteInMask","onValueChange","onClickOutside","onFocus","onMobileClose","onFocusOutside","onInputBlur","onInputValueChange","onInputFocus","onInputClick","onClearCrossClick","onInputKeyDown","event","persist","onMouseEnter","onMouseOver","onMouseLeave","renderItem","renderNotFound","itemWrapper","renderValue","renderTotalCount","renderAddButton","refInput","refMenu","menu","refInputLikeText","createElement","ReactUIFeatureFlagsContext","Consumer","flags","featureFlags","getFullReactUIFlagsContext","CommonWrapper","ComboBoxView","_extends2","ref","setRootNode","componentDidMount","autoFocus","componentDidUpdate","prevProps","prevState","fixValueChange","comboBoxAllowValueChangeInEditingState","reset","PureComponent","__KONTUR_REACT_UI__","displayName"],"sources":["CustomComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { globalObject } from '@skbkontur/global-object';\n\nimport type { Nullable } from '../../typings/utility-types';\nimport type { InputIconType, Input, ShowClearIcon } from '../../components/Input';\nimport type { Menu } from '../Menu';\nimport type { InputLikeText } from '../InputLikeText';\nimport type { MenuItemState } from '../../components/MenuItem';\nimport { CancelationError, taskWithDelay } from '../../lib/utils';\nimport { fixClickFocusIE } from '../../lib/events/fixClickFocusIE';\nimport type { CommonProps } from '../CommonWrapper';\nimport { CommonWrapper } from '../CommonWrapper';\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport type { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { ReactUIFeatureFlags } from '../../lib/featureFlagsContext';\nimport { ReactUIFeatureFlagsContext, getFullReactUIFlagsContext } from '../../lib/featureFlagsContext';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport type { CustomComboBoxAction, CustomComboBoxEffect } from './CustomComboBoxReducer';\nimport { reducer } from './CustomComboBoxReducer';\nimport { ComboBoxView } from './ComboBoxView';\n\nexport * from './tids';\n\nexport interface CustomComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>> {\n align?: 'left' | 'center' | 'right';\n autoFocus?: boolean;\n borderless?: boolean;\n disablePortal?: boolean;\n disabled?: boolean;\n /**\n * Cостояние валидации при ошибке.\n */\n error?: boolean;\n maxLength?: number;\n /**\n * Позволяет вручную задать текущую позицию выпадающего окна\n */\n menuPos?: 'top' | 'bottom';\n menuAlign?: 'left' | 'right';\n drawArrow?: boolean;\n leftIcon?: InputIconType;\n rightIcon?: InputIconType;\n searchOnFocus?: boolean;\n onValueChange?: (value: T) => void;\n onInputValueChange?: (value: string) => Nullable<string> | void;\n onUnexpectedInput?: (value: string) => void | null | T;\n onFocus?: () => void;\n onBlur?: () => void;\n onMouseEnter?: (e: React.MouseEvent) => void;\n onMouseOver?: (e: React.MouseEvent) => void;\n onMouseLeave?: (e: React.MouseEvent) => void;\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n placeholder?: string;\n size?: SizeProp;\n totalCount?: number;\n value?: Nullable<T>;\n showClearIcon?: ShowClearIcon;\n /**\n * Cостояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: string | number;\n maxMenuHeight?: number | string;\n renderNotFound?: () => React.ReactNode;\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n renderItem: (item: T, state?: MenuItemState) => React.ReactNode;\n itemWrapper?: (item: T) => React.ComponentType;\n renderValue: (value: T) => React.ReactNode;\n renderAddButton?: (query?: string) => React.ReactNode;\n valueToString: (value: T) => string;\n itemToValue: (item: T) => string | number;\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n}\n\nexport interface CustomComboBoxState<T> {\n editing: boolean;\n loading: boolean;\n opened: boolean;\n textValue: string;\n items: Nullable<Array<ComboBoxExtendedItem<T>>>;\n inputChanged: boolean;\n focused: boolean;\n repeatRequest: () => void;\n requestStatus: ComboBoxRequestStatus;\n}\n\nexport const DELAY_BEFORE_SHOW_LOADER = 300;\nexport const LOADER_SHOW_TIME = 1000;\n\nexport const DefaultState = {\n inputChanged: false,\n editing: false,\n items: null,\n loading: false,\n opened: false,\n focused: false,\n textValue: '',\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n size: 'small',\n};\n\n@responsiveLayout\n@rootNode\nexport class CustomComboBox<T> extends React.PureComponent<CustomComboBoxProps<T>, CustomComboBoxState<T>> {\n public static __KONTUR_REACT_UI__ = 'CustomComboBox';\n public static displayName = 'CustomComboBox';\n\n public state: CustomComboBoxState<T> = DefaultState;\n public input: Nullable<Input>;\n public menu: Nullable<Menu>;\n public inputLikeText: Nullable<InputLikeText>;\n public requestId = 0;\n public loaderShowDelay: Nullable<Promise<void>>;\n private focused = false;\n private cancelationToken: Nullable<(reason?: Error) => void> = null;\n private isMobileLayout!: boolean;\n private featureFlags!: ReactUIFeatureFlags;\n private canOpenPopup = true;\n\n private reducer = reducer;\n public cancelLoaderDelay: () => void = () => null;\n\n /**\n * @public\n */\n public focus = (opts?: { withoutOpenDropdown?: boolean }) => {\n if (this.props.disabled) {\n return;\n }\n\n if (opts?.withoutOpenDropdown) {\n this.canOpenPopup = false;\n }\n\n if (this.input) {\n this.input.focus();\n } else if (this.inputLikeText) {\n this.inputLikeText.focus();\n }\n };\n\n /**\n * @public\n */\n public selectInputText = () => {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.selectAll();\n }\n };\n\n /**\n * @public\n */\n public blur = () => {\n if (this.props.disabled) {\n return;\n }\n\n this.handleBlur();\n };\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public async search(query: string = this.state.textValue) {\n const { getItems } = this.props;\n\n const cancelPromise: Promise<never> = new Promise((_, reject) => (this.cancelationToken = reject));\n this.requestId += 1;\n const expectingId = this.requestId;\n\n if (!this.loaderShowDelay) {\n this.loaderShowDelay = new Promise<void>((resolve) => {\n const cancelLoader = taskWithDelay(() => {\n this.dispatch({ type: 'RequestItems' });\n globalObject.setTimeout(resolve, LOADER_SHOW_TIME);\n }, DELAY_BEFORE_SHOW_LOADER);\n\n cancelPromise.catch(() => cancelLoader());\n\n this.cancelLoaderDelay = () => {\n cancelLoader();\n resolve();\n };\n });\n }\n\n try {\n const items = await Promise.race([getItems(query), cancelPromise]);\n if (this.state.loading) {\n await Promise.race([this.loaderShowDelay, cancelPromise]);\n }\n if (expectingId === this.requestId) {\n this.dispatch({\n type: 'ReceiveItems',\n items,\n });\n }\n } catch (error) {\n if (error && error.code === 'CancelationError') {\n this.dispatch({ type: 'CancelRequest' });\n } else if (expectingId === this.requestId) {\n this.dispatch({\n type: 'RequestFailure',\n repeatRequest: () => {\n this.search(query);\n if (this.input) {\n this.input.focus();\n }\n },\n });\n }\n } finally {\n if (expectingId === this.requestId) {\n if (!this.state.loading) {\n this.cancelLoaderDelay();\n }\n this.cancelationToken = null;\n this.loaderShowDelay = null;\n }\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.cancelationToken) {\n this.cancelationToken(new CancelationError());\n }\n }\n\n /**\n * @public\n */\n public open() {\n this.dispatch({ type: 'Open' });\n }\n\n /**\n * @public\n */\n public close() {\n this.dispatch({ type: 'Close' });\n }\n\n public render() {\n const viewProps = {\n align: this.props.align,\n borderless: this.props.borderless,\n disabled: this.props.disabled,\n disablePortal: this.props.disablePortal,\n editing: this.state.editing,\n error: this.props.error,\n items: this.state.items,\n loading: this.state.loading,\n opened: this.state.opened,\n drawArrow: this.props.drawArrow,\n menuPos: this.props.menuPos,\n menuAlign: this.props.menuAlign,\n placeholder: this.props.placeholder,\n size: this.props.size,\n textValue: this.state.textValue,\n totalCount: this.props.totalCount,\n value: this.props.value,\n showClearIcon: this.props.showClearIcon,\n warning: this.props.warning,\n 'aria-describedby': this.props['aria-describedby'],\n 'aria-label': this.props['aria-label'],\n id: this.props.id,\n width: this.props.width,\n maxLength: this.props.maxLength,\n maxMenuHeight: this.props.maxMenuHeight,\n leftIcon: this.props.leftIcon,\n rightIcon: this.props.rightIcon,\n inputMode: this.props.inputMode,\n mask: this.props.mask,\n maskChar: this.props.maskChar,\n formatChars: this.props.formatChars,\n onBeforePasteInMask: this.props.onBeforePasteInMask,\n\n onValueChange: this.handleValueChange,\n onClickOutside: this.handleClickOutside,\n onFocus: this.handleFocus,\n onMobileClose: this.handleMobileClose,\n onFocusOutside: this.handleBlur,\n onInputBlur: this.handleInputBlur,\n onInputValueChange: (value: string) => this.dispatch({ type: 'TextChange', value }),\n onInputFocus: this.handleFocus,\n onInputClick: this.handleInputClick,\n onClearCrossClick: () => this.dispatch({ type: 'ClearCrossClick' }),\n onInputKeyDown: (event: React.KeyboardEvent) => {\n event.persist();\n this.dispatch({ type: 'KeyPress', event });\n },\n onMouseEnter: this.props.onMouseEnter,\n onMouseOver: this.props.onMouseOver,\n onMouseLeave: this.props.onMouseLeave,\n renderItem: this.props.renderItem,\n renderNotFound: this.props.renderNotFound,\n itemWrapper: this.props.itemWrapper,\n renderValue: this.props.renderValue,\n renderTotalCount: this.props.renderTotalCount,\n renderAddButton: this.props.renderAddButton,\n repeatRequest: this.state.repeatRequest,\n requestStatus: this.state.requestStatus,\n\n refInput: (input: Nullable<Input>) => {\n this.input = input;\n },\n refMenu: (menu: Nullable<Menu>) => {\n this.menu = menu;\n },\n refInputLikeText: (inputLikeText: Nullable<InputLikeText>) => {\n this.inputLikeText = inputLikeText;\n },\n };\n\n return (\n <ReactUIFeatureFlagsContext.Consumer>\n {(flags) => {\n this.featureFlags = getFullReactUIFlagsContext(flags);\n return (\n <CommonWrapper {...this.props}>\n <ComboBoxView {...viewProps} size={this.props.size} ref={this.setRootNode} />\n </CommonWrapper>\n );\n }}\n </ReactUIFeatureFlagsContext.Consumer>\n );\n }\n\n public componentDidMount() {\n this.dispatch({ type: 'Mount' }, false);\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate(prevProps: CustomComboBoxProps<T>, prevState: CustomComboBoxState<T>) {\n if (prevState.editing && !this.state.editing) {\n this.handleBlur();\n }\n this.dispatch(\n {\n type: 'DidUpdate',\n prevProps,\n prevState,\n fixValueChange: this.featureFlags.comboBoxAllowValueChangeInEditingState,\n },\n false,\n );\n }\n\n /**\n * @public\n */\n public reset() {\n this.dispatch({ type: 'Reset' });\n }\n\n private dispatch = (action: CustomComboBoxAction<T>, sync = true) => {\n const updateState = (action: CustomComboBoxAction<T>) => {\n let effects: Array<CustomComboBoxEffect<T>>;\n let nextState: Pick<CustomComboBoxState<T>, never>;\n\n this.setState(\n (state) => {\n const stateAndEffect = this.reducer(state, this.props, action);\n [nextState, effects] = stateAndEffect instanceof Array ? stateAndEffect : [stateAndEffect, []];\n return nextState;\n },\n () => {\n effects.forEach(this.handleEffect);\n },\n );\n };\n\n // Auto-batching React@18 creates problems that are fixed with flushSync\n // https://github.com/skbkontur/retail-ui/pull/3144#issuecomment-1535235366\n if (sync && React.version.search('18') === 0) {\n ReactDOM.flushSync(() => updateState(action));\n } else {\n updateState(action);\n }\n };\n\n private handleEffect = (effect: CustomComboBoxEffect<T>) => {\n effect(this.dispatch, this.getState, this.getProps, () => this);\n };\n\n private getProps = () => this.props;\n\n private getState = () => this.state;\n\n private handleValueChange = (value: T) => {\n this.dispatch({\n type: 'ValueChange',\n value,\n keepFocus: !this.isMobileLayout,\n });\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n this.dispatch({ type: 'Focus', searchOnFocus: this.canOpenPopup && this.props.searchOnFocus });\n\n if (!this.canOpenPopup) {\n this.canOpenPopup = true;\n }\n };\n\n private handleMobileClose = () => {\n this.handleInputBlur();\n };\n\n private handleClickOutside = (e: Event) => {\n fixClickFocusIE(e);\n this.handleBlur();\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n if (this.state.opened) {\n this.close();\n }\n return;\n }\n\n this.focused = false;\n // workaround for the similar bug with focusout\n // in Firefox, Chrome and IE\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1363964\n globalObject.setTimeout(() => {\n this.dispatch({ type: 'Blur' });\n }, 0);\n };\n\n private handleInputBlur = () => {\n // If menu opened, RenderLayer is active and\n // it would call handleFocusOutside\n // In that way handleBlur would be called\n\n if (this.state.opened && !this.isMobileLayout) {\n return;\n }\n this.handleBlur();\n };\n\n private handleInputClick = () => {\n if (!this.cancelationToken) {\n this.dispatch({ type: 'InputClick' });\n }\n };\n}\n"],"mappings":";AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;;;;;;;AAOA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;;AAEA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,UAAA,GAAAN,OAAA;;AAEA,IAAAO,SAAA,GAAAP,OAAA;;;;AAIA,IAAAQ,oBAAA,GAAAR,OAAA;;;AAGA,IAAAS,oBAAA,GAAAT,OAAA;;AAEA,IAAAU,sBAAA,GAAAV,OAAA;AACA,IAAAW,aAAA,GAAAX,OAAA;;AAEA,IAAAY,KAAA,GAAAZ,OAAA,WAAAa,MAAA,CAAAC,IAAA,CAAAF,KAAA,EAAAG,OAAA,WAAAC,GAAA,OAAAA,GAAA,kBAAAA,GAAA,8BAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA,cAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,KAAA,CAAAI,GAAA,UAAAK,OAAA,CAAAL,GAAA,IAAAJ,KAAA,CAAAI,GAAA,KAAuB,IAAAM,MAAA,EAAAC,eAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEhB,IAAMC,wBAAwB,GAAAH,OAAA,CAAAG,wBAAA,GAAG,GAAG;AACpC,IAAMC,gBAAgB,GAAAJ,OAAA,CAAAI,gBAAA,GAAG,IAAI;;AAE7B,IAAMC,YAAY,GAAAL,OAAA,CAAAK,YAAA,GAAG;EAC1BC,YAAY,EAAE,KAAK;EACnBC,OAAO,EAAE,KAAK;EACdC,KAAK,EAAE,IAAI;EACXC,OAAO,EAAE,KAAK;EACdC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,KAAK;EACdC,SAAS,EAAE,EAAE;EACbC,aAAa,EAAE,SAAAA,cAAA,UAAMC,SAAS;EAC9BC,aAAa,EAAEC,0CAAqB,CAACC,OAAO;EAC5CC,IAAI,EAAE;AACR,CAAC,CAAC;;;;AAIWC,cAAc,GAAAnB,OAAA,CAAAmB,cAAA,OAF1BC,2BAAgB,EAAAnB,MAAA,OAChBoB,kBAAQ,EAAApB,MAAA,IAAAC,eAAA,0BAAAoB,oBAAA,YAAAH,eAAA,OAAAI,KAAA,UAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA,GAAAN,KAAA,GAAAD,oBAAA,CAAAxB,IAAA,CAAAgC,KAAA,CAAAR,oBAAA,SAAAS,MAAA,CAAAJ,IAAA,WAAAJ,KAAA;;;;IAKAS,KAAK,GAA2B3B,YAAY,CAAAkB,KAAA;;;;IAI5CU,SAAS,GAAG,CAAC,CAAAV,KAAA;;IAEZZ,OAAO,GAAG,KAAK,CAAAY,KAAA;IACfW,gBAAgB,GAAuC,IAAI,CAAAX,KAAA;;;IAG3DY,YAAY,GAAG,IAAI,CAAAZ,KAAA;;IAEnBa,OAAO,GAAGA,8BAAO,CAAAb,KAAA;IAClBc,iBAAiB,GAAe,oBAAM,IAAI;;IAEjD;AACF;AACA,OAFEd,KAAA;IAGOe,KAAK,GAAG,UAACC,IAAwC,EAAK;MAC3D,IAAIhB,KAAA,CAAKiB,KAAK,CAACC,QAAQ,EAAE;QACvB;MACF;;MAEA,IAAIF,IAAI,YAAJA,IAAI,CAAEG,mBAAmB,EAAE;QAC7BnB,KAAA,CAAKY,YAAY,GAAG,KAAK;MAC3B;;MAEA,IAAIZ,KAAA,CAAKoB,KAAK,EAAE;QACdpB,KAAA,CAAKoB,KAAK,CAACL,KAAK,CAAC,CAAC;MACpB,CAAC,MAAM,IAAIf,KAAA,CAAKqB,aAAa,EAAE;QAC7BrB,KAAA,CAAKqB,aAAa,CAACN,KAAK,CAAC,CAAC;MAC5B;IACF,CAAC;;IAED;AACF;AACA,OAFEf,KAAA;IAGOsB,eAAe,GAAG,YAAM;MAC7B,IAAItB,KAAA,CAAKiB,KAAK,CAACC,QAAQ,EAAE;QACvB;MACF;MACA,IAAIlB,KAAA,CAAKoB,KAAK,EAAE;QACdpB,KAAA,CAAKoB,KAAK,CAACG,SAAS,CAAC,CAAC;MACxB;IACF,CAAC;;IAED;AACF;AACA,OAFEvB,KAAA;IAGOwB,IAAI,GAAG,YAAM;MAClB,IAAIxB,KAAA,CAAKiB,KAAK,CAACC,QAAQ,EAAE;QACvB;MACF;;MAEAlB,KAAA,CAAKyB,UAAU,CAAC,CAAC;IACnB,CAAC,CAAAzB,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4MO0B,QAAQ,GAAG,UAACC,MAA+B,EAAEC,IAAI,EAAY,KAAhBA,IAAI,cAAJA,IAAI,GAAG,IAAI;MAC9D,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIF,MAA+B,EAAK;QACvD,IAAIG,OAAuC;QAC3C,IAAIC,SAA8C;;QAElD/B,KAAA,CAAKgC,QAAQ;UACX,UAACvB,KAAK,EAAK;YACT,IAAMwB,cAAc,GAAGjC,KAAA,CAAKa,OAAO,CAACJ,KAAK,EAAET,KAAA,CAAKiB,KAAK,EAAEU,MAAM,CAAC,CAAC,IAAAO,IAAA;YACxCD,cAAc,YAAY5B,KAAK,GAAG4B,cAAc,GAAG,CAACA,cAAc,EAAE,EAAE,CAAC,CAA7FF,SAAS,GAAAG,IAAA,IAAEJ,OAAO,GAAAI,IAAA;YACnB,OAAOH,SAAS;UAClB,CAAC;UACD,YAAM;YACJD,OAAO,CAAC3D,OAAO,CAAC6B,KAAA,CAAKmC,YAAY,CAAC;UACpC;QACF,CAAC;MACH,CAAC;;MAED;MACA;MACA,IAAIP,IAAI,IAAIQ,cAAK,CAACC,OAAO,CAACC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5CC,iBAAQ,CAACC,SAAS,CAAC,oBAAMX,WAAW,CAACF,MAAM,CAAC,GAAC;MAC/C,CAAC,MAAM;QACLE,WAAW,CAACF,MAAM,CAAC;MACrB;IACF,CAAC,CAAA3B,KAAA;;IAEOmC,YAAY,GAAG,UAACM,MAA+B,EAAK;MAC1DA,MAAM,CAACzC,KAAA,CAAK0B,QAAQ,EAAE1B,KAAA,CAAK0C,QAAQ,EAAE1C,KAAA,CAAK2C,QAAQ,EAAE,oBAAA3C,KAAA,EAAU,CAAC;IACjE,CAAC,CAAAA,KAAA;;IAEO2C,QAAQ,GAAG,oBAAM3C,KAAA,CAAKiB,KAAK,GAAAjB,KAAA;;IAE3B0C,QAAQ,GAAG,oBAAM1C,KAAA,CAAKS,KAAK,GAAAT,KAAA;;IAE3B4C,iBAAiB,GAAG,UAACC,KAAQ,EAAK;MACxC7C,KAAA,CAAK0B,QAAQ,CAAC;QACZoB,IAAI,EAAE,aAAa;QACnBD,KAAK,EAALA,KAAK;QACLE,SAAS,EAAE,CAAC/C,KAAA,CAAKgD;MACnB,CAAC,CAAC;IACJ,CAAC,CAAAhD,KAAA;;IAEOiD,WAAW,GAAG,YAAM;MAC1B,IAAIjD,KAAA,CAAKZ,OAAO,EAAE;QAChB;MACF;;MAEAY,KAAA,CAAKZ,OAAO,GAAG,IAAI;MACnBY,KAAA,CAAK0B,QAAQ,CAAC,EAAEoB,IAAI,EAAE,OAAO,EAAEI,aAAa,EAAElD,KAAA,CAAKY,YAAY,IAAIZ,KAAA,CAAKiB,KAAK,CAACiC,aAAa,CAAC,CAAC,CAAC;;MAE9F,IAAI,CAAClD,KAAA,CAAKY,YAAY,EAAE;QACtBZ,KAAA,CAAKY,YAAY,GAAG,IAAI;MAC1B;IACF,CAAC,CAAAZ,KAAA;;IAEOmD,iBAAiB,GAAG,YAAM;MAChCnD,KAAA,CAAKoD,eAAe,CAAC,CAAC;IACxB,CAAC,CAAApD,KAAA;;IAEOqD,kBAAkB,GAAG,UAACC,CAAQ,EAAK;MACzC,IAAAC,gCAAe,EAACD,CAAC,CAAC;MAClBtD,KAAA,CAAKyB,UAAU,CAAC,CAAC;IACnB,CAAC,CAAAzB,KAAA;;IAEOyB,UAAU,GAAG,YAAM;MACzB,IAAI,CAACzB,KAAA,CAAKZ,OAAO,EAAE;QACjB,IAAIY,KAAA,CAAKS,KAAK,CAACtB,MAAM,EAAE;UACrBa,KAAA,CAAKwD,KAAK,CAAC,CAAC;QACd;QACA;MACF;;MAEAxD,KAAA,CAAKZ,OAAO,GAAG,KAAK;MACpB;MACA;MACA;MACAqE,0BAAY,CAACC,UAAU,CAAC,YAAM;QAC5B1D,KAAA,CAAK0B,QAAQ,CAAC,EAAEoB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;MACjC,CAAC,EAAE,CAAC,CAAC;IACP,CAAC,CAAA9C,KAAA;;IAEOoD,eAAe,GAAG,YAAM;MAC9B;MACA;MACA;;MAEA,IAAIpD,KAAA,CAAKS,KAAK,CAACtB,MAAM,IAAI,CAACa,KAAA,CAAKgD,cAAc,EAAE;QAC7C;MACF;MACAhD,KAAA,CAAKyB,UAAU,CAAC,CAAC;IACnB,CAAC,CAAAzB,KAAA;;IAEO2D,gBAAgB,GAAG,YAAM;MAC/B,IAAI,CAAC3D,KAAA,CAAKW,gBAAgB,EAAE;QAC1BX,KAAA,CAAK0B,QAAQ,CAAC,EAAEoB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;MACvC;IACF,CAAC,QAAA9C,KAAA,MAAA4D,eAAA,CAAAC,OAAA,EAAAjE,cAAA,EAAAG,oBAAA,MAAA+D,MAAA,GAAAlE,cAAA,CAAAvB,SAAA,EAxSD;AACF;AACA,KAFEyF,MAAA,CAGaxB,MAAM,iCAAAyB,OAAA,OAAAC,kBAAA,CAAAH,OAAA,gBAAAI,YAAA,CAAAJ,OAAA,CAAAK,IAAA,CAAnB,SAAAC,QAAoBC,KAAa,OAAAC,MAAA,YAAAC,QAAA,EAAAC,aAAA,EAAAC,WAAA,EAAAvF,KAAA,QAAAgF,YAAA,CAAAJ,OAAA,CAAAY,IAAA,UAAAC,SAAAC,QAAA,qBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA,cAAbT,KAAa,cAAbA,KAAa,GAAG,IAAI,CAAC3D,KAAK,CAACpB,SAAS,EAC9CiF,QAAQ,GAAK,IAAI,CAACrD,KAAK,CAAvBqD,QAAQ,CAEVC,aAA6B,GAAG,IAAIO,OAAO,CAAC,UAACC,CAAC,EAAEC,MAAM,UAAMX,MAAI,CAAC1D,gBAAgB,GAAGqE,MAAM,EAAC,CAAC,CAClG,IAAI,CAACtE,SAAS,IAAI,CAAC,CACb8D,WAAW,GAAG,IAAI,CAAC9D,SAAS,CAElC,IAAI,CAAC,IAAI,CAACuE,eAAe,EAAE,CACzB,IAAI,CAACA,eAAe,GAAG,IAAIH,OAAO,CAAO,UAACI,OAAO,EAAK,CACpD,IAAMC,YAAY,GAAG,IAAAC,oBAAa,EAAC,YAAM,CACvCf,MAAI,CAAC3C,QAAQ,CAAC,EAAEoB,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CACvCW,0BAAY,CAACC,UAAU,CAACwB,OAAO,EAAErG,gBAAgB,CAAC,CACpD,CAAC,EAAED,wBAAwB,CAAC,CAE5B2F,aAAa,CAACc,KAAK,CAAC,oBAAMF,YAAY,CAAC,CAAC,GAAC,CAEzCd,MAAI,CAACvD,iBAAiB,GAAG,YAAM,CAC7BqE,YAAY,CAAC,CAAC,CACdD,OAAO,CAAC,CAAC,CACX,CAAC,CACH,CAAC,CAAC,CACJ,CAACP,QAAA,CAAAC,IAAA,KAAAD,QAAA,CAAAE,IAAA,YAGqBC,OAAO,CAACQ,IAAI,CAAC,CAAChB,QAAQ,CAACF,KAAK,CAAC,EAAEG,aAAa,CAAC,CAAC,QAA5DtF,KAAK,GAAA0F,QAAA,CAAAY,IAAA,MACP,IAAI,CAAC9E,KAAK,CAACvB,OAAO,GAAAyF,QAAA,CAAAE,IAAA,aAAAF,QAAA,CAAAE,IAAA,aACdC,OAAO,CAACQ,IAAI,CAAC,CAAC,IAAI,CAACL,eAAe,EAAEV,aAAa,CAAC,CAAC,SAE3D,IAAIC,WAAW,KAAK,IAAI,CAAC9D,SAAS,EAAE,CAClC,IAAI,CAACgB,QAAQ,CAAC,EACZoB,IAAI,EAAE,cAAc,EACpB7D,KAAK,EAALA,KAAK,CACP,CAAC,CAAC,CACJ,CAAC0F,QAAA,CAAAE,IAAA,oBAAAF,QAAA,CAAAC,IAAA,MAAAD,QAAA,CAAAa,EAAA,GAAAb,QAAA,aAED,IAAIA,QAAA,CAAAa,EAAA,IAASb,QAAA,CAAAa,EAAA,CAAMC,IAAI,KAAK,kBAAkB,EAAE,CAC9C,IAAI,CAAC/D,QAAQ,CAAC,EAAEoB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAC1C,CAAC,MAAM,IAAI0B,WAAW,KAAK,IAAI,CAAC9D,SAAS,EAAE,CACzC,IAAI,CAACgB,QAAQ,CAAC,EACZoB,IAAI,EAAE,gBAAgB,EACtBxD,aAAa,EAAE,SAAAA,cAAA,EAAM,CACnB+E,MAAI,CAAC/B,MAAM,CAAC8B,KAAK,CAAC,CAClB,IAAIC,MAAI,CAACjD,KAAK,EAAE,CACdiD,MAAI,CAACjD,KAAK,CAACL,KAAK,CAAC,CAAC,CACpB,CACF,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,QAAA4D,QAAA,CAAAC,IAAA,MAED,IAAIJ,WAAW,KAAK,IAAI,CAAC9D,SAAS,EAAE,CAClC,IAAI,CAAC,IAAI,CAACD,KAAK,CAACvB,OAAO,EAAE,CACvB,IAAI,CAAC4B,iBAAiB,CAAC,CAAC,CAC1B,CACA,IAAI,CAACH,gBAAgB,GAAG,IAAI,CAC5B,IAAI,CAACsE,eAAe,GAAG,IAAI,CAC7B,CAAC,OAAAN,QAAA,CAAAe,MAAA,+BAAAf,QAAA,CAAAgB,IAAA,OAAAxB,OAAA,4BAEJ,YAAA7B,OAAAsD,EAAA,UAAA7B,OAAA,CAAAxD,KAAA,OAAAL,SAAA,UAAAoC,MAAA,KAED;AACF;AACA,KAFE,CAAAwB,MAAA,CAGO+B,YAAY,GAAnB,SAAAA,aAAA,EAAsB,CACpB,IAAI,IAAI,CAAClF,gBAAgB,EAAE,CACzB,IAAI,CAACA,gBAAgB,CAAC,IAAImF,uBAAgB,CAAC,CAAC,CAAC,CAC/C,CACF,CAAC,CAED;AACF;AACA,KAFE,CAAAhC,MAAA,CAGOiC,IAAI,GAAX,SAAAA,KAAA,EAAc,CACZ,IAAI,CAACrE,QAAQ,CAAC,EAAEoB,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CACjC,CAAC,CAED;AACF;AACA,KAFE,CAAAgB,MAAA,CAGON,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,CAAC9B,QAAQ,CAAC,EAAEoB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAClC,CAAC,CAAAgB,MAAA,CAEMkC,MAAM,GAAb,SAAAA,OAAA,EAAgB,KAAAC,MAAA,QACd,IAAMC,SAAS,GAAG,EAChBC,KAAK,EAAE,IAAI,CAAClF,KAAK,CAACkF,KAAK,EACvBC,UAAU,EAAE,IAAI,CAACnF,KAAK,CAACmF,UAAU,EACjClF,QAAQ,EAAE,IAAI,CAACD,KAAK,CAACC,QAAQ,EAC7BmF,aAAa,EAAE,IAAI,CAACpF,KAAK,CAACoF,aAAa,EACvCrH,OAAO,EAAE,IAAI,CAACyB,KAAK,CAACzB,OAAO,EAC3BsH,KAAK,EAAE,IAAI,CAACrF,KAAK,CAACqF,KAAK,EACvBrH,KAAK,EAAE,IAAI,CAACwB,KAAK,CAACxB,KAAK,EACvBC,OAAO,EAAE,IAAI,CAACuB,KAAK,CAACvB,OAAO,EAC3BC,MAAM,EAAE,IAAI,CAACsB,KAAK,CAACtB,MAAM,EACzBoH,SAAS,EAAE,IAAI,CAACtF,KAAK,CAACsF,SAAS,EAC/BC,OAAO,EAAE,IAAI,CAACvF,KAAK,CAACuF,OAAO,EAC3BC,SAAS,EAAE,IAAI,CAACxF,KAAK,CAACwF,SAAS,EAC/BC,WAAW,EAAE,IAAI,CAACzF,KAAK,CAACyF,WAAW,EACnC/G,IAAI,EAAE,IAAI,CAACsB,KAAK,CAACtB,IAAI,EACrBN,SAAS,EAAE,IAAI,CAACoB,KAAK,CAACpB,SAAS,EAC/BsH,UAAU,EAAE,IAAI,CAAC1F,KAAK,CAAC0F,UAAU,EACjC9D,KAAK,EAAE,IAAI,CAAC5B,KAAK,CAAC4B,KAAK,EACvB+D,aAAa,EAAE,IAAI,CAAC3F,KAAK,CAAC2F,aAAa,EACvCC,OAAO,EAAE,IAAI,CAAC5F,KAAK,CAAC4F,OAAO,EAC3B,kBAAkB,EAAE,IAAI,CAAC5F,KAAK,CAAC,kBAAkB,CAAC,EAClD,YAAY,EAAE,IAAI,CAACA,KAAK,CAAC,YAAY,CAAC,EACtC6F,EAAE,EAAE,IAAI,CAAC7F,KAAK,CAAC6F,EAAE,EACjBC,KAAK,EAAE,IAAI,CAAC9F,KAAK,CAAC8F,KAAK,EACvBC,SAAS,EAAE,IAAI,CAAC/F,KAAK,CAAC+F,SAAS,EAC/BC,aAAa,EAAE,IAAI,CAAChG,KAAK,CAACgG,aAAa,EACvCC,QAAQ,EAAE,IAAI,CAACjG,KAAK,CAACiG,QAAQ,EAC7BC,SAAS,EAAE,IAAI,CAAClG,KAAK,CAACkG,SAAS,EAC/BC,SAAS,EAAE,IAAI,CAACnG,KAAK,CAACmG,SAAS,EAC/BC,IAAI,EAAE,IAAI,CAACpG,KAAK,CAACoG,IAAI,EACrBC,QAAQ,EAAE,IAAI,CAACrG,KAAK,CAACqG,QAAQ,EAC7BC,WAAW,EAAE,IAAI,CAACtG,KAAK,CAACsG,WAAW,EACnCC,mBAAmB,EAAE,IAAI,CAACvG,KAAK,CAACuG,mBAAmB,EAEnDC,aAAa,EAAE,IAAI,CAAC7E,iBAAiB,EACrC8E,cAAc,EAAE,IAAI,CAACrE,kBAAkB,EACvCsE,OAAO,EAAE,IAAI,CAAC1E,WAAW,EACzB2E,aAAa,EAAE,IAAI,CAACzE,iBAAiB,EACrC0E,cAAc,EAAE,IAAI,CAACpG,UAAU,EAC/BqG,WAAW,EAAE,IAAI,CAAC1E,eAAe,EACjC2E,kBAAkB,EAAE,SAAAA,mBAAClF,KAAa,UAAKoD,MAAI,CAACvE,QAAQ,CAAC,EAAEoB,IAAI,EAAE,YAAY,EAAED,KAAK,EAALA,KAAK,CAAC,CAAC,CAAC,IACnFmF,YAAY,EAAE,IAAI,CAAC/E,WAAW,EAC9BgF,YAAY,EAAE,IAAI,CAACtE,gBAAgB,EACnCuE,iBAAiB,EAAE,SAAAA,kBAAA,UAAMjC,MAAI,CAACvE,QAAQ,CAAC,EAAEoB,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,IACnEqF,cAAc,EAAE,SAAAA,eAACC,KAA0B,EAAK,CAC9CA,KAAK,CAACC,OAAO,CAAC,CAAC,CACfpC,MAAI,CAACvE,QAAQ,CAAC,EAAEoB,IAAI,EAAE,UAAU,EAAEsF,KAAK,EAALA,KAAK,CAAC,CAAC,CAAC,CAC5C,CAAC,EACDE,YAAY,EAAE,IAAI,CAACrH,KAAK,CAACqH,YAAY,EACrCC,WAAW,EAAE,IAAI,CAACtH,KAAK,CAACsH,WAAW,EACnCC,YAAY,EAAE,IAAI,CAACvH,KAAK,CAACuH,YAAY,EACrCC,UAAU,EAAE,IAAI,CAACxH,KAAK,CAACwH,UAAU,EACjCC,cAAc,EAAE,IAAI,CAACzH,KAAK,CAACyH,cAAc,EACzCC,WAAW,EAAE,IAAI,CAAC1H,KAAK,CAAC0H,WAAW,EACnCC,WAAW,EAAE,IAAI,CAAC3H,KAAK,CAAC2H,WAAW,EACnCC,gBAAgB,EAAE,IAAI,CAAC5H,KAAK,CAAC4H,gBAAgB,EAC7CC,eAAe,EAAE,IAAI,CAAC7H,KAAK,CAAC6H,eAAe,EAC3CxJ,aAAa,EAAE,IAAI,CAACmB,KAAK,CAACnB,aAAa,EACvCE,aAAa,EAAE,IAAI,CAACiB,KAAK,CAACjB,aAAa,EAEvCuJ,QAAQ,EAAE,SAAAA,SAAC3H,KAAsB,EAAK,CACpC6E,MAAI,CAAC7E,KAAK,GAAGA,KAAK,CACpB,CAAC,EACD4H,OAAO,EAAE,SAAAA,QAACC,IAAoB,EAAK,CACjChD,MAAI,CAACgD,IAAI,GAAGA,IAAI,CAClB,CAAC,EACDC,gBAAgB,EAAE,SAAAA,iBAAC7H,aAAsC,EAAK,CAC5D4E,MAAI,CAAC5E,aAAa,GAAGA,aAAa,CACpC,CAAC,CACH,CAAC,CAED,oBACEnE,MAAA,CAAA2G,OAAA,CAAAsF,aAAA,CAACvL,oBAAA,CAAAwL,0BAA0B,CAACC,QAAQ,QACjC,UAACC,KAAK,EAAK,CACVrD,MAAI,CAACsD,YAAY,GAAG,IAAAC,+CAA0B,EAACF,KAAK,CAAC,CACrD,oBACEpM,MAAA,CAAA2G,OAAA,CAAAsF,aAAA,CAAC1L,cAAA,CAAAgM,aAAa,EAAKxD,MAAI,CAAChF,KAAK,eAC3B/D,MAAA,CAAA2G,OAAA,CAAAsF,aAAA,CAACpL,aAAA,CAAA2L,YAAY,MAAAC,SAAA,CAAA9F,OAAA,MAAKqC,SAAS,IAAEvG,IAAI,EAAEsG,MAAI,CAAChF,KAAK,CAACtB,IAAK,EAACiK,GAAG,EAAE3D,MAAI,CAAC4D,WAAY,GAAE,CAC/D,CAAC,CAEpB,CACmC,CAAC,CAE1C,CAAC,CAAA/F,MAAA,CAEMgG,iBAAiB,GAAxB,SAAAA,kBAAA,EAA2B,CACzB,IAAI,CAACpI,QAAQ,CAAC,EAAEoB,IAAI,EAAE,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,CACvC,IAAI,IAAI,CAAC7B,KAAK,CAAC8I,SAAS,EAAE,CACxB,IAAI,CAAChJ,KAAK,CAAC,CAAC,CACd,CACF,CAAC,CAAA+C,MAAA,CAEMkG,kBAAkB,GAAzB,SAAAA,mBAA0BC,SAAiC,EAAEC,SAAiC,EAAE,CAC9F,IAAIA,SAAS,CAAClL,OAAO,IAAI,CAAC,IAAI,CAACyB,KAAK,CAACzB,OAAO,EAAE,CAC5C,IAAI,CAACyC,UAAU,CAAC,CAAC,CACnB,CACA,IAAI,CAACC,QAAQ,CACX,EACEoB,IAAI,EAAE,WAAW,EACjBmH,SAAS,EAATA,SAAS,EACTC,SAAS,EAATA,SAAS,EACTC,cAAc,EAAE,IAAI,CAACZ,YAAY,CAACa,sCAAsC,CAC1E,CAAC,EACD,KACF,CAAC,CACH,CAAC,CAED;AACF;AACA,KAFE,CAAAtG,MAAA,CAGOuG,KAAK,GAAZ,SAAAA,MAAA,EAAe,CACb,IAAI,CAAC3I,QAAQ,CAAC,EAAEoB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAClC,CAAC,QAAAlD,cAAA,GArQoCwC,cAAK,CAACkI,aAAa,GAAA3L,eAAA,CAC1C4L,mBAAmB,GAAG,gBAAgB,EAAA5L,eAAA,CACtC6L,WAAW,GAAG,gBAAgB,EAAA7L,eAAA,MAAAD,MAAA,KAAAA,MAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","CustomComboBox","rootNode","createPropsGetter","ComboBox","_class","_ComboBox","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","_extends","size","props","ref","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","CustomComboBox","rootNode","createPropsGetter","ComboBox","_class","_ComboBox","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","comboboxElement","customComboBoxRef","element","setRootNode","_inheritsLoose","_proto","prototype","focus","opts","blur","search","query","cancelSearch","open","close","selectInputText","reset","render","createElement","_extends","size","props","ref","Component","__KONTUR_REACT_UI__","displayName","itemToValue","item","value","valueToString","label","renderValue","renderItem","menuAlign","searchOnFocus","drawArrow","showClearIcon"],"sources":["ComboBox.tsx"],"sourcesContent":["import type { AriaAttributes, HTMLAttributes } from 'react';\nimport React from 'react';\n\nimport { CustomComboBox } from '../../internal/CustomComboBox';\nimport type { Nullable } from '../../typings/utility-types';\nimport type { MenuItemState } from '../MenuItem';\nimport type { ShowClearIcon, InputIconType } from '../Input';\nimport type { CommonProps } from '../../internal/CommonWrapper';\nimport type { TGetRootNode, TSetRootNode } from '../../lib/rootNode';\nimport { rootNode } from '../../lib/rootNode';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport type { SizeProp } from '../../lib/types/props';\nimport type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput';\n\nexport interface ComboBoxProps<T>\n extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>,\n Pick<HTMLAttributes<HTMLElement>, 'id'>,\n Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>,\n CommonProps {\n /** Показывать иконку очистки значения в непустом поле:\n * - `always` — всегда показывать иконку\n * - `auto` — показывать иконку при hover/focus\n * - `never` — не показывать иконку\n * При одновременной настройке `showClearIcon` и `rightIcon` показывается иконка очистки.\n * @default never */\n showClearIcon?: ShowClearIcon;\n\n /** Задает выравнивание контента. */\n align?: 'left' | 'center' | 'right';\n\n /** Вызывает функцию поиска getItems при фокусе и очистке поля ввода. */\n searchOnFocus?: boolean;\n\n /** Отображает справа иконку в виде стрелки. */\n drawArrow?: boolean;\n\n /** Устанавливает фокус на контроле после окончания загрузки страницы. */\n autoFocus?: boolean;\n\n /** Убирает обводку. */\n borderless?: boolean;\n\n /** Отключает использование портала для рендеринга меню.\n * См. https://github.com/skbkontur/retail-ui/issues/15 */\n disablePortal?: boolean;\n\n /** Делает компонент недоступным. */\n disabled?: boolean;\n\n /** Переводит контрол в состояние валидации \"ошибка\". */\n error?: boolean;\n\n /** Добавляет иконку слева.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n leftIcon?: InputIconType;\n\n /** Добавляет иконку справа.\n При использовании `ReactNode` применяются дефолтные стили для иконки.\n При использовании `() => ReactNode` применяются только стили для позиционирования. */\n rightIcon?: InputIconType;\n\n /** Задает функцию поиска элементов, которая должна возвращать Promise с массивом элементов.\n * По умолчанию ожидаются объекты с типом `{ value: string, label: string }`.\n * Элементы могут быть любого типа. В этом случае необходимо определить свойства `itemToValue`, `renderValue`, `renderItem`, `valueToString`. */\n getItems: (query: string) => Promise<Array<ComboBoxExtendedItem<T>>>;\n\n /** Задает функцию сравнения полученных результатов с value. */\n itemToValue?: (item: T) => string | number;\n\n /** Задает максимальную длину инпута. */\n maxLength?: number;\n\n /** Задает текущую позицию выпадающего окна вручную.\n */\n menuPos?: 'top' | 'bottom';\n\n /** Задает выравнивание выпадающего меню. */\n menuAlign?: 'left' | 'right';\n\n /** Задает функцию, которая вызывается при потере комбобоксом фокуса. */\n onBlur?: () => void;\n\n /** Вызывается при изменении `value` */\n onValueChange?: (value: T) => void;\n\n /** Задает функцию, которая вызывается при получении комбобоксом фокуса. */\n onFocus?: () => void;\n\n /** Задает функцию, которая вызывается при изменении текста в поле ввода, если результатом функции будет строка, то она станет следующим состоянием полем ввода. */\n onInputValueChange?: (value: string) => Nullable<string> | void;\n\n /** Задает функцию для обработки ввода строки в инпут и последующей потерей фокуса компонентом.\n * Функция срабатывает с аргументом инпута строки.\n * Если при потере фокуса в выпадающем списке будет только один элемент и результат valueToString с этим элементом будет совпадать со значение в текстовом поле, то сработает onValueChange со значением данного элемента.\n * Сама функция также может вернуть значение, неравное undefined, с которым будет вызван onValueChange. Если возвращаемое значение будет равно null, то сработает очистка текущего значения инпута, а в режиме редактирования токен будет удален. */\n onUnexpectedInput?: (value: string) => void | null | T;\n\n /** Задает текст, который отображается если не введено никакое значение. */\n placeholder?: string;\n\n /** Задает функцию отрисовки элементов результата поиска.\n * Не применяется если элемент является функцией или React-элементом\n * @default item => item.label\n * @param {T} item - элемент из результата поиска.\n * @param {MenuItemState} state? - состояние элемента.\n * @returns {React.ReactNode} React-элемент. */\n renderItem?: (item: T, state?: MenuItemState) => React.ReactNode;\n\n /** Устанавливает компонент, заменяющий собой обёртку элементов результата поиска.\n * По умолчанию все элементы результата поиска оборачиваются в тег <button />.\n * @example\n * itemWrapper={(item) => {\n * if (item.value === 3) {\n * return (props) => {\n * return <a {...props} />\n * }\n * }\n * }}\n */\n itemWrapper?: (item: T) => React.ComponentType;\n\n /** Задает функцию, которая отображает сообщение о пустом результате поиска. При renderAddButton не работает. */\n renderNotFound?: () => React.ReactNode;\n\n /** Задает функцию, которая отображает сообщение об общем количестве элементов.\n * @param {number} found - количество элементов по результатам поиска. Учитывает только компонент MenuItem. Им \"оборачиваются\" элементы, возвращаемые getItems().\n * @param {number} total - количество всех элементов. */\n renderTotalCount?: (found: number, total: number) => React.ReactNode;\n\n /** Задает функцию, которая отображает выбранное значение.\n * @default item => item.label */\n renderValue?: (item: T) => React.ReactNode;\n\n /** Задает функцию отрисовки кнопки добавления в выпадающем списке. */\n renderAddButton?: (query?: string) => React.ReactNode;\n\n /** Определяет общее количество элементов. Необходим для работы renderTotalCount. */\n totalCount?: number;\n\n /** Устанавливает выбранное в комбобоксе значение. Тип `value` совпадает с типом элементов в массиве, возвращаемом в `getItems`. */\n value?: Nullable<T>;\n\n /** Задает функцию, которая возвращает строковое представление value. Необходимо при фокусировке. */\n valueToString?: (item: T) => string;\n\n /** Задает размер компонента. */\n size?: SizeProp;\n\n /** Переводит контрол в состояние валидации \"предупреждение\". */\n warning?: boolean;\n\n /** Задает длину комбобокса. */\n width?: string | number;\n\n /** Задает максимальную высоту меню. */\n maxMenuHeight?: number | string;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseenter`). См разницу с onMouseOver в [документации](https://learn.javascript.ru/mousemove-mouseover-mouseout-mouseenter-mouseleave) */\n onMouseEnter?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при наведении мышкой (событие `onmouseover`). */\n onMouseOver?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при уходе мышки с объекта (событие `onmouseleave`). */\n onMouseLeave?: (e: React.MouseEvent) => void;\n\n /** Задает функцию, которая вызывается при нажатии кнопки на клавиатуре. */\n onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;\n\n /** Задает типы вводимых данных. */\n inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];\n\n /** Задает функцию, которая вызывается при вставке значения в инпут с маской. */\n onBeforePasteInMask?: MaskedInputOnBeforePasteValue;\n}\n\nexport interface ComboBoxItem {\n value: string;\n label: string;\n}\n\nexport type ComboBoxExtendedItem<T> = T | (() => React.ReactElement<T>) | React.ReactElement<T>;\n\ntype DefaultProps<T> = Required<\n Pick<\n ComboBoxProps<T>,\n | 'itemToValue'\n | 'valueToString'\n | 'renderValue'\n | 'renderItem'\n | 'menuAlign'\n | 'searchOnFocus'\n | 'drawArrow'\n | 'showClearIcon'\n >\n>;\n\n/**\n * `ComboBox` — это поле ввода со списком подсказок.\n *\n * `ComboBox` используют:\n * * для выбора значения из справочника.\n * * для добавления своего значения в справочник.\n *\n * `ComboBox` может работать в двух режимах — обычном и в режиме автокомплита.\n * Основное их отличие в том, что в режиме автокомплита список вариантов появляется только после ввода первого символа или изменении уже введенного значения.\n */\n@rootNode\nexport class ComboBox<T = ComboBoxItem> extends React.Component<ComboBoxProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBox';\n public static displayName = 'ComboBox';\n\n public static defaultProps: DefaultProps<any> = {\n itemToValue: (item: ComboBoxItem) => item.value,\n valueToString: (item: ComboBoxItem) => item.label,\n renderValue: (item: ComboBoxItem) => item.label,\n renderItem: (item: ComboBoxItem) => item.label,\n menuAlign: 'left',\n searchOnFocus: true,\n drawArrow: true,\n showClearIcon: 'never',\n };\n\n private getProps = createPropsGetter(ComboBox.defaultProps);\n\n private comboboxElement: Nullable<CustomComboBox<T>> = null;\n public getRootNode!: TGetRootNode;\n private setRootNode!: TSetRootNode;\n\n /**\n * @public\n */\n public focus(opts?: { withoutOpenDropdown?: boolean }) {\n if (this.comboboxElement) {\n this.comboboxElement.focus(opts);\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.comboboxElement) {\n this.comboboxElement.blur();\n }\n }\n\n /**\n * Открывает выпадающий список и запускает поиск элементов\n *\n * @public\n * @param {string} [query] Текст поиска. По умолчанию берется\n * текст из инпута или результат `valueToString(value)`\n */\n public search(query?: string) {\n if (this.comboboxElement) {\n this.comboboxElement.search(query);\n }\n }\n\n /**\n * @public\n */\n public cancelSearch() {\n if (this.comboboxElement) {\n this.comboboxElement.cancelSearch();\n }\n }\n\n /**\n * @public Открывает выпадающий список\n */\n public open() {\n if (this.comboboxElement) {\n this.comboboxElement.open();\n }\n }\n\n /**\n * @public Закрывает выпадающий список\n */\n public close() {\n if (this.comboboxElement) {\n this.comboboxElement.close();\n }\n }\n\n /**\n * Выделяет текст внутри input\n * @public\n */\n public selectInputText() {\n if (this.comboboxElement) {\n this.comboboxElement.selectInputText();\n }\n }\n\n /**\n * Сбрасывает введенное пользователем значение\n * @public\n */\n public reset() {\n if (this.comboboxElement) {\n this.comboboxElement.reset();\n }\n }\n\n public render() {\n return <CustomComboBox {...this.getProps()} size={this.props.size} ref={this.customComboBoxRef} />;\n }\n\n private customComboBoxRef = (element: Nullable<CustomComboBox<T>>) => {\n this.setRootNode(element);\n this.comboboxElement = element;\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,7 +6,8 @@ import type { ShowClearIcon, InputIconType } from '../Input';
6
6
  import type { CommonProps } from '../../internal/CommonWrapper';
7
7
  import type { TGetRootNode } from '../../lib/rootNode';
8
8
  import type { SizeProp } from '../../lib/types/props';
9
- export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
9
+ import type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../MaskedInput';
10
+ export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, Partial<Pick<MaskedInputProps, 'mask' | 'maskChar' | 'formatChars'>>, CommonProps {
10
11
  /** Показывать иконку очистки значения в непустом поле:
11
12
  * - `always` — всегда показывать иконку
12
13
  * - `auto` — показывать иконку при hover/focus
@@ -121,6 +122,8 @@ export interface ComboBoxProps<T> extends Pick<AriaAttributes, 'aria-describedby
121
122
  onInputKeyDown?: (e: React.KeyboardEvent<HTMLElement>) => void;
122
123
  /** Задает типы вводимых данных. */
123
124
  inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];
125
+ /** Задает функцию, которая вызывается при вставке значения в инпут с маской. */
126
+ onBeforePasteInMask?: MaskedInputOnBeforePasteValue;
124
127
  }
125
128
  export interface ComboBoxItem {
126
129
  value: string;
@@ -153,6 +153,7 @@ var _FileUploader = forwardRefAndName('FileUploader', function (props, ref) {
153
153
  if (dataTransfer) {
154
154
  var _dataTransfer$files;
155
155
  if (((_dataTransfer$files = dataTransfer.files) == null ? void 0 : _dataTransfer$files.length) > 0) {
156
+ inputRef.current && (inputRef.current.files = dataTransfer.files);
156
157
  handleChange(dataTransfer.files);
157
158
  }
158
159
  }