@skbkontur/react-ui 5.3.5 → 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.
@@ -1 +1 @@
1
- {"version":3,"names":["React","getRandomID","isNonNullable","Input","InputLikeText","RenderLayer","Spinner","CommonWrapper","MobilePopup","responsiveLayout","rootNode","getRootNode","createPropsGetter","ThemeContext","LoadingIcon","Popup","getMenuPositions","ZIndex","ArrowDownIcon","ComboBoxMenu","ComboBoxRequestStatus","styles","CustomComboBoxDataTids","getComboBoxTheme","ComboBoxViewIds","menu","ComboBoxView","_class","_ComboBoxView","_React$Component","_this$props$value","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","mobileInput","dropdownContainerRef","createRef","menuId","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","createElement","hasMargin","onValueChange","handleItemSelect","renderAddButton","isMobile","isMobileLayout","renderMenu","_this$getProps2","menuPos","menuAlign","hasShadow","minWidth","priority","priorities","PopupMenu","positions","disablePortal","margin","parseInt","theme","menuOffsetY","ref","renderMobileMenu","rightIcon","_this$props2","onFocus","onInputValueChange","onInputKeyDown","placeholder","textValue","renderSpinner","inputProps","autoComplete","autoFocus","width","onKeyDown","headerChildComponent","_extends","refMobileInput","onCloseRequest","onMobileClose","getParent","handleMobileFocus","_this$mobileInput","onInputClick","focus","item","refInput","input","className","spinnerWrapper","type","caption","dimmed","getRightIcon","_this$props3","drawArrow","_inheritsLoose","_proto","prototype","componentDidMount","updateAnchorElement","parent","setState","componentDidUpdate","prevProps","editing","render","_this2","Consumer","Provider","renderMain","_this$props4","onMouseEnter","onMouseLeave","onMouseOver","_this$getProps3","onClickOutside","onFocusOutside","renderInput","active","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","onClearCrossClick","Component","__KONTUR_REACT_UI__","displayName","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","getRandomID","isNonNullable","Input","InputLikeText","RenderLayer","Spinner","CommonWrapper","MobilePopup","responsiveLayout","rootNode","getRootNode","createPropsGetter","ThemeContext","LoadingIcon","Popup","getMenuPositions","ZIndex","MaskedInput","styles","MaskedInputStyles","cx","ArrowDownIcon","ComboBoxMenu","ComboBoxRequestStatus","CustomComboBoxDataTids","getComboBoxTheme","ComboBoxViewIds","menu","ComboBoxView","_class","_ComboBoxView","_React$Component","_this$props$value","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","defaultProps","mobileInput","dropdownContainerRef","createRef","menuId","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","createElement","hasMargin","onValueChange","handleItemSelect","renderAddButton","isMobile","isMobileLayout","renderMenu","_this$getProps2","menuPos","menuAlign","hasShadow","minWidth","priority","priorities","PopupMenu","positions","disablePortal","margin","parseInt","theme","menuOffsetY","ref","renderMobileMenu","rightIcon","_this$props2","onFocus","onInputValueChange","onInputKeyDown","placeholder","textValue","renderSpinner","inputProps","autoComplete","autoFocus","width","onKeyDown","headerChildComponent","_extends","refMobileInput","onCloseRequest","onMobileClose","getParent","handleMobileFocus","_this$mobileInput","onInputClick","focus","item","refInput","input","className","spinnerWrapper","type","caption","dimmed","getRightIcon","_this$props3","drawArrow","_inheritsLoose","_proto","prototype","componentDidMount","updateAnchorElement","parent","setState","componentDidUpdate","prevProps","editing","render","_this2","Consumer","Provider","renderMain","_this$props4","onMouseEnter","onMouseLeave","onMouseOver","_this$getProps3","onClickOutside","onFocusOutside","renderInput","active","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","onBeforePasteValue","maxLength","_this$getProps4","renderValue","onClearCrossClick","Component","__KONTUR_REACT_UI__","displayName","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":[]}
@@ -10,8 +10,9 @@ import type { CommonProps } from '../CommonWrapper';
10
10
  import type { TGetRootNode } from '../../lib/rootNode';
11
11
  import type { ComboBoxExtendedItem } from '../../components/ComboBox';
12
12
  import type { SizeProp } from '../../lib/types/props';
13
+ import type { MaskedInputOnBeforePasteValue, MaskedInputProps } from '../../components/MaskedInput';
13
14
  import { ComboBoxRequestStatus } from './CustomComboBoxTypes';
14
- interface ComboBoxViewProps<T> extends Pick<AriaAttributes, 'aria-describedby' | 'aria-label'>, Pick<HTMLAttributes<HTMLElement>, 'id'>, CommonProps {
15
+ interface ComboBoxViewProps<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;
@@ -47,6 +48,7 @@ interface ComboBoxViewProps<T> extends Pick<AriaAttributes, 'aria-describedby' |
47
48
  leftIcon?: InputIconType;
48
49
  rightIcon?: InputIconType;
49
50
  inputMode?: React.HTMLAttributes<HTMLInputElement>['inputMode'];
51
+ onBeforePasteInMask?: MaskedInputOnBeforePasteValue;
50
52
  onValueChange?: (value: T) => void;
51
53
  onClickOutside?: (e: Event) => void;
52
54
  onFocus?: () => void;
@@ -337,6 +337,10 @@ export var CustomComboBox = responsiveLayout(_class = rootNode(_class = (_Custom
337
337
  leftIcon: this.props.leftIcon,
338
338
  rightIcon: this.props.rightIcon,
339
339
  inputMode: this.props.inputMode,
340
+ mask: this.props.mask,
341
+ maskChar: this.props.maskChar,
342
+ formatChars: this.props.formatChars,
343
+ onBeforePasteInMask: this.props.onBeforePasteInMask,
340
344
  onValueChange: this.handleValueChange,
341
345
  onClickOutside: this.handleClickOutside,
342
346
  onFocus: this.handleFocus,
@@ -1 +1 @@
1
- {"version":3,"names":["React","ReactDOM","globalObject","CancelationError","taskWithDelay","fixClickFocusIE","CommonWrapper","responsiveLayout","rootNode","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","ComboBoxRequestStatus","reducer","ComboBoxView","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","Unknown","size","CustomComboBox","_class","_CustomComboBox","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","requestId","cancelationToken","canOpenPopup","cancelLoaderDelay","focus","opts","props","disabled","withoutOpenDropdown","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","_ref","forEach","handleEffect","version","search","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","searchOnFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","close","setTimeout","handleInputClick","_inheritsLoose","_proto","prototype","_search","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this2","getItems","cancelPromise","expectingId","wrap","_callee$","_context","prev","next","Promise","_","reject","loaderShowDelay","resolve","cancelLoader","race","sent","t0","code","finish","stop","_x","cancelSearch","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","Consumer","flags","featureFlags","_extends","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","ReactDOM","globalObject","CancelationError","taskWithDelay","fixClickFocusIE","CommonWrapper","responsiveLayout","rootNode","ReactUIFeatureFlagsContext","getFullReactUIFlagsContext","ComboBoxRequestStatus","reducer","ComboBoxView","DELAY_BEFORE_SHOW_LOADER","LOADER_SHOW_TIME","DefaultState","inputChanged","editing","items","loading","opened","focused","textValue","repeatRequest","undefined","requestStatus","Unknown","size","CustomComboBox","_class","_CustomComboBox","_React$PureComponent","_this","_len","arguments","length","args","Array","_key","call","apply","concat","state","requestId","cancelationToken","canOpenPopup","cancelLoaderDelay","focus","opts","props","disabled","withoutOpenDropdown","input","inputLikeText","selectInputText","selectAll","blur","handleBlur","dispatch","action","sync","updateState","effects","nextState","setState","stateAndEffect","_ref","forEach","handleEffect","version","search","flushSync","effect","getState","getProps","handleValueChange","value","type","keepFocus","isMobileLayout","handleFocus","searchOnFocus","handleMobileClose","handleInputBlur","handleClickOutside","e","close","setTimeout","handleInputClick","_inheritsLoose","_proto","prototype","_search","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","_this2","getItems","cancelPromise","expectingId","wrap","_callee$","_context","prev","next","Promise","_","reject","loaderShowDelay","resolve","cancelLoader","race","sent","t0","code","finish","stop","_x","cancelSearch","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","Consumer","flags","featureFlags","_extends","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":"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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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skbkontur/react-ui",
3
- "version": "5.3.5",
3
+ "version": "5.3.6",
4
4
  "description": "UI Components",
5
5
  "main": "cjs/index.js",
6
6
  "module": "index.js",