@skbkontur/react-ui 5.1.1 → 5.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/cjs/components/MaskedInput/FixedIMaskInput.d.ts +2 -2
- package/cjs/components/MaskedInput/FixedIMaskInput.js +1 -1
- package/cjs/components/MaskedInput/FixedIMaskInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.d.ts +1 -1
- package/cjs/components/MaskedInput/MaskedInput.helpers.d.ts +1 -1
- package/cjs/components/MaskedInput/MaskedInput.helpers.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.js +7 -2
- package/cjs/components/MaskedInput/MaskedInput.js.map +1 -1
- package/cjs/components/MaskedInput/MaskedInput.styles.d.ts +4 -0
- package/cjs/components/MaskedInput/MaskedInput.styles.js +12 -1
- package/cjs/components/MaskedInput/MaskedInput.styles.js.map +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js +1 -1
- package/cjs/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js +9 -5
- package/cjs/internal/CustomComboBox/CustomComboBoxReducer.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/BasicTheme.d.ts +1 -0
- package/cjs/internal/themes/BasicTheme.js +2 -1
- package/cjs/internal/themes/BasicTheme.js.map +1 -1
- package/cjs/lib/styles/UiFont.d.ts +1 -4
- package/cjs/lib/styles/UiFont.js +5 -47
- package/cjs/lib/styles/UiFont.js.map +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js +1 -1
- package/components/MaskedInput/FixedIMaskInput/FixedIMaskInput.js.map +1 -1
- package/components/MaskedInput/FixedIMaskInput.d.ts +2 -2
- package/components/MaskedInput/MaskedInput/MaskedInput.js +9 -4
- package/components/MaskedInput/MaskedInput/MaskedInput.js.map +1 -1
- package/components/MaskedInput/MaskedInput.d.ts +1 -1
- package/components/MaskedInput/MaskedInput.helpers/MaskedInput.helpers.js.map +1 -1
- package/components/MaskedInput/MaskedInput.helpers.d.ts +1 -1
- package/components/MaskedInput/MaskedInput.styles/MaskedInput.styles.js +9 -1
- package/components/MaskedInput/MaskedInput.styles/MaskedInput.styles.js.map +1 -1
- package/components/MaskedInput/MaskedInput.styles.d.ts +4 -0
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js +4 -4
- package/internal/CustomComboBox/ComboBoxMenu/ComboBoxMenu.js.map +1 -1
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js +9 -5
- package/internal/CustomComboBox/CustomComboBoxReducer/CustomComboBoxReducer.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/BasicTheme/BasicTheme.js +1 -0
- package/internal/themes/BasicTheme/BasicTheme.js.map +1 -1
- package/internal/themes/BasicTheme.d.ts +1 -0
- package/lib/styles/UiFont/UiFont.js +4 -20
- package/lib/styles/UiFont/UiFont.js.map +1 -1
- package/lib/styles/UiFont.d.ts +1 -4
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.1.2](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.1...@skbkontur/react-ui@5.1.2) (2025-04-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **Combobox:** highlightMenuItem works correctly ([7724a8d](https://github.com/skbkontur/retail-ui/commit/7724a8dd19565737edf1aab348173349ccbe6686))
|
|
12
|
+
* **ComboBox:** restore root data-tid in ComboBoxMenu ([85f99c5](https://github.com/skbkontur/retail-ui/commit/85f99c52aab4d9bf8e11a13bc0538181f6e7894e))
|
|
13
|
+
* **MaskedInput:** use `@skbkontur/react-imask` ([37311af](https://github.com/skbkontur/retail-ui/commit/37311af2874c62abdfff535f49a5a6159ee812e8))
|
|
14
|
+
* **MaskedInput:** use ThemeContext to apply ui-font ([8b1e574](https://github.com/skbkontur/retail-ui/commit/8b1e574bc943c047e28e10a5649af28b946d1c5a))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
6
20
|
## [5.1.1](https://github.com/skbkontur/retail-ui/compare/@skbkontur/react-ui@5.1.0...@skbkontur/react-ui@5.1.1) (2025-04-15)
|
|
7
21
|
|
|
8
22
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { InputMask, MaskedPatternOptions } from 'imask';
|
|
2
|
-
import { IMaskInputProps } from 'react-imask';
|
|
1
|
+
import { type InputMask, type MaskedPatternOptions } from '@skbkontur/imask';
|
|
2
|
+
import { type IMaskInputProps } from '@skbkontur/react-imask';
|
|
3
3
|
export type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;
|
|
4
4
|
interface IMaskRefType {
|
|
5
5
|
maskRef: InputMask<MaskedPatternOptions>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;exports.__esModule = true;exports.FixedIMaskInput = void 0;var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));var _react = _interopRequireWildcard(require("react"));
|
|
2
2
|
|
|
3
|
-
var _reactImask = require("react-imask");
|
|
3
|
+
var _reactImask = require("@skbkontur/react-imask");
|
|
4
4
|
|
|
5
5
|
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
6
6
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactImask","_forwardRefAndName","_identifiers","_MouseDrag","_excluded","FixedIMaskInput","exports","forwardRefAndName","props","ref","inputRef","restProps","_objectWithoutPropertiesLoose2","default","imaskRef","useRef","focused","useEffect","_imaskRef$current","current","element","fillTypedValue","mouseDrag","MouseDrag","listen","onMouseDragEnd","e","_imaskRef$current2","_imaskRef$current3","direction","mouseDragStartEvent","selectionStart","selectionEnd","pageX","_getSelection","getSelection","start","end","setSelection","useImperativeHandle","createElement","IMaskInput","_extends2","onKeyDown","handleKeyDown","onFocus","handleFocus","onBlur","handleBlur","onMouseUp","handleMouseUp","onAccept","handleAccept","onInput","handleInput","getTypedValue","_imaskRef$current4","_ref","maskRef","masked","_ref$_value","_value","_ref$displayValue","displayValue","getMaxCaretPosition","value","slice","_imaskRef$current5","_imaskRef$current6","_imaskRef$current7","setAttribute","unmaskedValue","maskChars","push","placeholderChar","blocks","Object","values","forEach","_ref2","split","RegExp","join","length","Infinity","normalizeSelection","_getSelection2","max","getNormalizedRange","calc","Math","min","selectionDirection","_imaskRef$current8","_len","arguments","_ref3","Array","_key","setSelectionRange","jumpCaret","prev","headDirection","_imaskRef$current9","word","valueOf","wordRegExp","next","match","reduce","s","a","pos","concat","calcSelection","_getSelection3","isSelectionMode","isModShift","tail","head","someKeys","isKeyArrowLeft","isKeyArrowUp","isKeyHome","step","isKeyArrowHorizontal","increment","isShortcutJumpCaret","setTimeout","_len2","args","_key2","apply","_imaskRef$current10","unmask","rawInputValue","nativeEvent","nearest","isShortcutSelectAll","preventDefault","isKeyArrow","isKeyEnd","_calcSelection"],"sources":["FixedIMaskInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { InputMask, MaskedPatternOptions } from 'imask';\nimport { IMaskInput, IMaskInputProps } from 'react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n });\n }\n }, []);\n\n useImperativeHandle(ref, () => imaskRef.current, []);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (restProps.unmask && maskRef && maskRef.rawInputValue === '' && maskRef.unmaskedValue !== '') {\n // Для случаев, когда в value остаются только зафиксированные - {} - очищаем value полностью\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactImask","_forwardRefAndName","_identifiers","_MouseDrag","_excluded","FixedIMaskInput","exports","forwardRefAndName","props","ref","inputRef","restProps","_objectWithoutPropertiesLoose2","default","imaskRef","useRef","focused","useEffect","_imaskRef$current","current","element","fillTypedValue","mouseDrag","MouseDrag","listen","onMouseDragEnd","e","_imaskRef$current2","_imaskRef$current3","direction","mouseDragStartEvent","selectionStart","selectionEnd","pageX","_getSelection","getSelection","start","end","setSelection","useImperativeHandle","createElement","IMaskInput","_extends2","onKeyDown","handleKeyDown","onFocus","handleFocus","onBlur","handleBlur","onMouseUp","handleMouseUp","onAccept","handleAccept","onInput","handleInput","getTypedValue","_imaskRef$current4","_ref","maskRef","masked","_ref$_value","_value","_ref$displayValue","displayValue","getMaxCaretPosition","value","slice","_imaskRef$current5","_imaskRef$current6","_imaskRef$current7","setAttribute","unmaskedValue","maskChars","push","placeholderChar","blocks","Object","values","forEach","_ref2","split","RegExp","join","length","Infinity","normalizeSelection","_getSelection2","max","getNormalizedRange","calc","Math","min","selectionDirection","_imaskRef$current8","_len","arguments","_ref3","Array","_key","setSelectionRange","jumpCaret","prev","headDirection","_imaskRef$current9","word","valueOf","wordRegExp","next","match","reduce","s","a","pos","concat","calcSelection","_getSelection3","isSelectionMode","isModShift","tail","head","someKeys","isKeyArrowLeft","isKeyArrowUp","isKeyHome","step","isKeyArrowHorizontal","increment","isShortcutJumpCaret","setTimeout","_len2","args","_key2","apply","_imaskRef$current10","unmask","rawInputValue","nativeEvent","nearest","isShortcutSelectAll","preventDefault","isKeyArrow","isKeyEnd","_calcSelection"],"sources":["FixedIMaskInput.tsx"],"sourcesContent":["import React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { type InputMask, type MaskedPatternOptions } from '@skbkontur/imask';\nimport { IMaskInput, type IMaskInputProps } from '@skbkontur/react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport {\n isKeyArrow,\n isKeyArrowHorizontal,\n isKeyArrowLeft,\n isKeyArrowUp,\n isKeyEnd,\n isKeyHome,\n isModShift,\n isShortcutJumpCaret,\n isShortcutSelectAll,\n someKeys,\n} from '../../lib/events/keyboard/identifiers';\nimport { MouseDrag } from '../../lib/events/MouseDrag';\n\nexport type FixedIMaskInputProps = IMaskInputProps<HTMLInputElement>;\n\ntype HeadDirection = 'left' | 'right';\ntype SelectionDirection = 'forward' | 'backward' | 'none';\ntype SelectionSet = [number, number, SelectionDirection];\n\ninterface IMaskRefType {\n maskRef: InputMask<MaskedPatternOptions>;\n element: HTMLInputElement;\n}\n\nexport const FixedIMaskInput = forwardRefAndName(\n 'FixedIMaskInput',\n function FixedIMaskInput(props: FixedIMaskInputProps, ref: React.Ref<IMaskRefType | null>) {\n const { inputRef, ...restProps } = props;\n const imaskRef = useRef<IMaskRefType>(null);\n const focused = useRef(false);\n\n useEffect(() => {\n if (imaskRef.current?.element) {\n fillTypedValue();\n const mouseDrag = MouseDrag.listen(imaskRef.current.element).onMouseDragEnd((e) => {\n let direction: SelectionDirection = 'none';\n\n if (\n mouseDrag.mouseDragStartEvent &&\n imaskRef.current?.element.selectionStart !== imaskRef.current?.element.selectionEnd\n ) {\n direction = mouseDrag.mouseDragStartEvent.pageX > e.pageX ? 'backward' : 'forward';\n }\n\n const [start, end] = getSelection();\n setSelection(start, end, direction);\n });\n }\n }, []);\n\n useImperativeHandle(ref, () => imaskRef.current, []);\n\n return (\n <IMaskInput\n {...restProps}\n ref={imaskRef}\n inputRef={inputRef}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseUp={handleMouseUp}\n onAccept={handleAccept}\n onInput={handleInput}\n />\n );\n\n function getTypedValue() {\n const { _value = '', displayValue = '' } = imaskRef.current?.maskRef.masked || {};\n const end = getMaxCaretPosition();\n const value = _value !== '' || focused.current === true ? displayValue : '';\n\n return value.slice(0, end);\n }\n\n function fillTypedValue() {\n imaskRef.current?.element.setAttribute('data-typed-value', getTypedValue());\n imaskRef.current?.element.setAttribute('data-unmasked-value', imaskRef.current?.maskRef.unmaskedValue);\n }\n\n function getMaxCaretPosition(): number {\n const maskChars = [];\n if (imaskRef.current) {\n maskChars.push(imaskRef.current.maskRef.masked.placeholderChar);\n if (imaskRef.current.maskRef.masked.blocks) {\n (Object.values(imaskRef.current.maskRef.masked.blocks) as Array<{ placeholderChar?: string }>).forEach(\n ({ placeholderChar }) => placeholderChar && maskChars.push(placeholderChar),\n );\n }\n return imaskRef.current.element.value.split(new RegExp(maskChars.join('|')))[0].length;\n }\n\n return Infinity;\n }\n\n function normalizeSelection() {\n const [start, end] = getSelection();\n const max = getMaxCaretPosition();\n if (end > max) {\n setSelection(start, max);\n }\n }\n\n function getNormalizedRange(calc: number | unknown) {\n return typeof calc === 'number' ? Math.min(getMaxCaretPosition(), Math.max(0, calc)) : 0;\n }\n\n function getSelection(): SelectionSet {\n if (imaskRef.current) {\n return [\n imaskRef.current.element.selectionStart || 0,\n imaskRef.current.element.selectionEnd || 0,\n imaskRef.current.element.selectionDirection || 'none',\n ];\n }\n return [0, 0, 'none'];\n }\n\n function setSelection(...[start, end, direction]: Parameters<HTMLInputElement['setSelectionRange']>) {\n imaskRef.current?.element.setSelectionRange(\n getNormalizedRange(start),\n getNormalizedRange(end),\n direction || 'none',\n );\n }\n\n function jumpCaret(prev: number, headDirection: HeadDirection) {\n const word = /а-яa-z0-9_/.valueOf();\n const wordRegExp = new RegExp(`([${word}])+[\\\\s]*|([^${word}])+`, 'gi');\n let next = headDirection === 'right' ? prev : 0;\n imaskRef.current?.element.value.match(wordRegExp)?.reduce<number[]>((s, a) => {\n const pos = a.length + (s.slice(-1)[0] || 0);\n if (headDirection === 'right' && next === prev && next < pos) {\n next = getNormalizedRange(pos);\n } else if (headDirection === 'left' && prev > pos) {\n next = getNormalizedRange(pos);\n }\n return [...s, pos];\n }, []);\n return next;\n }\n\n /**\n * Вычислят положение каретки при управлении клавишами\n * @param e\n */\n function calcSelection(e: React.KeyboardEvent<HTMLInputElement>): SelectionSet {\n const [start, end, direction] = getSelection();\n const isSelectionMode = isModShift()(e);\n let tail = start !== end && direction === 'backward' ? end : start;\n let head = start !== end && direction === 'backward' ? start : end;\n const headDirection: HeadDirection = someKeys(isKeyArrowLeft, isKeyArrowUp, isKeyHome)(e) ? 'left' : 'right';\n const step = isKeyArrowHorizontal(e) ? 1 : Infinity;\n const increment = headDirection === 'left' ? -step : step;\n if (isShortcutJumpCaret(e)) {\n head = jumpCaret(head, headDirection);\n } else if (head !== tail && !isSelectionMode && isKeyArrowHorizontal(e)) {\n head = headDirection === 'right' ? Math.max(tail, head) : Math.min(tail, head);\n } else {\n head = head + increment;\n }\n if (isSelectionMode) {\n const start = Math.min(tail, head);\n const end = Math.max(tail, head);\n return [getNormalizedRange(start), getNormalizedRange(end), end === head ? 'forward' : 'backward'];\n }\n tail = head;\n return [getNormalizedRange(tail), getNormalizedRange(head), 'none'];\n }\n\n function handleMouseUp(e: React.MouseEvent<HTMLInputElement>) {\n normalizeSelection();\n\n props.onMouseUp?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = true;\n fillTypedValue();\n\n setTimeout(normalizeSelection);\n\n props.onFocus?.(e);\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n focused.current = false;\n fillTypedValue();\n\n props.onBlur?.(e);\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n fillTypedValue();\n\n props.onAccept?.(...args);\n }\n\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const maskRef = imaskRef.current?.maskRef;\n if (restProps.unmask && maskRef && maskRef.rawInputValue === '' && maskRef.unmaskedValue !== '') {\n // Для случаев, когда в value остаются только зафиксированные - {} - очищаем value полностью\n props.onAccept?.('', maskRef, e.nativeEvent as InputEvent);\n }\n\n props.onInput?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const nearest = getMaxCaretPosition();\n if (isShortcutSelectAll(e)) {\n e.preventDefault();\n setSelection(0, nearest);\n } else if (isKeyArrow(e) || isKeyEnd(e) || isKeyHome(e)) {\n e.preventDefault();\n const [start, end, direction] = calcSelection(e);\n setSelection(start, end, direction);\n }\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","DEFAULT_MASK_CHAR","exports","DEFINITIONS","Object","freeze","a","getDefinitions","formatChars","isNonNullable","chars","key","RegExp","getMaskChar","maskChar"],"sources":["MaskedInput.helpers.ts"],"sourcesContent":["import { Definitions } from 'imask';\n\nimport { isNonNullable } from '../../lib/utils';\n\nexport const DEFAULT_MASK_CHAR = '_';\nexport const DEFINITIONS = Object.freeze({ '9': /[0-9]/, a: /[A-Za-z]/, '*': /[A-Za-z0-9]/ });\n\nexport function getDefinitions(formatChars: Record<string, string> | undefined): Definitions {\n if (isNonNullable(formatChars)) {\n const chars: Record<string, RegExp> = {};\n\n for (const key in formatChars) {\n chars[key] = new RegExp(formatChars[key]);\n }\n\n return chars;\n }\n\n return DEFINITIONS;\n}\n\nexport function getMaskChar(maskChar: string | undefined): string {\n return !maskChar ? DEFAULT_MASK_CHAR : maskChar;\n}\n"],"mappings":";;AAEA,IAAAA,MAAA,GAAAC,OAAA;;AAEO,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,GAAG;AAC7B,IAAME,WAAW,GAAAD,OAAA,CAAAC,WAAA,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAEC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;;AAEtF,SAASC,cAAcA,CAACC,WAA+C,EAAe;EAC3F,IAAI,IAAAC,oBAAa,EAACD,WAAW,CAAC,EAAE;IAC9B,IAAME,KAA6B,GAAG,CAAC,CAAC;;IAExC,KAAK,IAAMC,GAAG,IAAIH,WAAW,EAAE;MAC7BE,KAAK,CAACC,GAAG,CAAC,GAAG,IAAIC,MAAM,CAACJ,WAAW,CAACG,GAAG,CAAC,CAAC;IAC3C;;IAEA,OAAOD,KAAK;EACd;;EAEA,OAAOP,WAAW;AACpB;;AAEO,SAASU,WAAWA,CAACC,QAA4B,EAAU;EAChE,OAAO,CAACA,QAAQ,GAAGb,iBAAiB,GAAGa,QAAQ;AACjD","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_utils","require","DEFAULT_MASK_CHAR","exports","DEFINITIONS","Object","freeze","a","getDefinitions","formatChars","isNonNullable","chars","key","RegExp","getMaskChar","maskChar"],"sources":["MaskedInput.helpers.ts"],"sourcesContent":["import { type Definitions } from '@skbkontur/imask';\n\nimport { isNonNullable } from '../../lib/utils';\n\nexport const DEFAULT_MASK_CHAR = '_';\nexport const DEFINITIONS = Object.freeze({ '9': /[0-9]/, a: /[A-Za-z]/, '*': /[A-Za-z0-9]/ });\n\nexport function getDefinitions(formatChars: Record<string, string> | undefined): Definitions {\n if (isNonNullable(formatChars)) {\n const chars: Record<string, RegExp> = {};\n\n for (const key in formatChars) {\n chars[key] = new RegExp(formatChars[key]);\n }\n\n return chars;\n }\n\n return DEFINITIONS;\n}\n\nexport function getMaskChar(maskChar: string | undefined): string {\n return !maskChar ? DEFAULT_MASK_CHAR : maskChar;\n}\n"],"mappings":";;AAEA,IAAAA,MAAA,GAAAC,OAAA;;AAEO,IAAMC,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAG,GAAG;AAC7B,IAAME,WAAW,GAAAD,OAAA,CAAAC,WAAA,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAEC,CAAC,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;;AAEtF,SAASC,cAAcA,CAACC,WAA+C,EAAe;EAC3F,IAAI,IAAAC,oBAAa,EAACD,WAAW,CAAC,EAAE;IAC9B,IAAME,KAA6B,GAAG,CAAC,CAAC;;IAExC,KAAK,IAAMC,GAAG,IAAIH,WAAW,EAAE;MAC7BE,KAAK,CAACC,GAAG,CAAC,GAAG,IAAIC,MAAM,CAACJ,WAAW,CAACG,GAAG,CAAC,CAAC;IAC3C;;IAEA,OAAOD,KAAK;EACd;;EAEA,OAAOP,WAAW;AACpB;;AAEO,SAASU,WAAWA,CAACC,QAA4B,EAAU;EAChE,OAAO,CAACA,QAAQ,GAAGb,iBAAiB,GAAGa,QAAQ;AACjD","ignoreList":[]}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
|
|
4
4
|
var _forwardRefAndName = require("../../lib/forwardRefAndName");
|
|
5
5
|
var _Emotion = require("../../lib/theming/Emotion");
|
|
6
|
-
var _UiFont = require("../../lib/styles/UiFont");
|
|
7
6
|
var _Input = require("../Input");
|
|
8
7
|
var _identifiers = require("../../lib/events/keyboard/identifiers");
|
|
8
|
+
var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
9
9
|
|
|
10
10
|
var _MaskedInput = require("./MaskedInput.styles");
|
|
11
11
|
var _MaskedInput2 = require("./MaskedInput.helpers");
|
|
@@ -84,6 +84,7 @@ var MaskedInput = exports.MaskedInput = (0, _forwardRefAndName.forwardRefAndName
|
|
|
84
84
|
|
|
85
85
|
|
|
86
86
|
props.mask,maskChar = props.maskChar,formatChars = props.formatChars,_props$alwaysShowMask = props.alwaysShowMask,alwaysShowMask = _props$alwaysShowMask === void 0 ? false : _props$alwaysShowMask,_props$colored = props.colored,colored = _props$colored === void 0 ? true : _props$colored,_props$imaskProps = props.imaskProps,customIMaskProps = _props$imaskProps === void 0 ? {} : _props$imaskProps,_props$unmask = props.unmask,unmask = _props$unmask === void 0 ? false : _props$unmask,onValueChange = props.onValueChange,onUnexpectedInput = props.onUnexpectedInput,onChange = props.onChange,element = props.element,className = props.className,inputProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
87
|
+
var theme = (0, _react.useContext)(_ThemeContext.ThemeContext);
|
|
87
88
|
|
|
88
89
|
var inputRef = (0, _react.useRef)(null);
|
|
89
90
|
|
|
@@ -116,6 +117,10 @@ var MaskedInput = exports.MaskedInput = (0, _forwardRefAndName.forwardRefAndName
|
|
|
116
117
|
|
|
117
118
|
var imaskProps = getCompatibleIMaskProps();
|
|
118
119
|
|
|
120
|
+
// TODO: Удалить в следующем мажоре
|
|
121
|
+
// Селекторы могут ожидать определённый порядок классов
|
|
122
|
+
var uiFontGlobalClassesRoot = 'react-ui-ui-font-root';
|
|
123
|
+
|
|
119
124
|
return /*#__PURE__*/(
|
|
120
125
|
_react.default.createElement(_Input.Input, (0, _extends2.default)({
|
|
121
126
|
ref: inputRef },
|
|
@@ -124,7 +129,7 @@ var MaskedInput = exports.MaskedInput = (0, _forwardRefAndName.forwardRefAndName
|
|
|
124
129
|
onBlur: handleBlur,
|
|
125
130
|
onInput: handleInput,
|
|
126
131
|
onKeyDown: handleKeyDown,
|
|
127
|
-
className: (0, _Emotion.cx)(_MaskedInput.globalClasses.root,
|
|
132
|
+
className: (0, _Emotion.cx)(_MaskedInput.globalClasses.root, uiFontGlobalClassesRoot, className, _MaskedInput.styles.root(theme)),
|
|
128
133
|
element:
|
|
129
134
|
colored ? /*#__PURE__*/
|
|
130
135
|
_react.default.createElement(_ColorableInputElement.ColorableInputElement, { showOnFocus: false }, /*#__PURE__*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_Emotion","_UiFont","_Input","_identifiers","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","MaskedInput","exports","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose2","default","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","cx","globalClasses","root","uiFontGlobalClasses","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { Ref, useImperativeHandle, useRef, useState, useEffect } from 'react';\nimport { IMaskInputProps } from 'react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport { uiFontGlobalClasses } from '../../lib/styles/UiFont';\nimport { Input, InputProps, InputType } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\n\nimport { globalClasses } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n\n /** Устанавливает символ маски\n * @default _ */\n maskChar?: string;\n\n /** Задает словарь символов-регулярок для задания маски.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Задает обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /** Убирает из value символы, не введённые пользователем\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClasses.root, className)}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"8cAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;;;AAGA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,YAAA,GAAAL,OAAA;;AAEA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,sBAAA,GAAAR,OAAA;AACA,IAAAS,gBAAA,GAAAT,OAAA,sBAAoD,IAAAU,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDpD;AACA;AACA;AACA;AACO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,IAAAE,oCAAiB;EAC1C,aAAa;EACb,SAASF,WAAWA,CAACG,KAAuB,EAAEC,GAAsB,EAAE;IACpE;MACEC,IAAI;;;;;;;;;;;;;MAaFF,KAAK,CAbPE,IAAI,CACJC,QAAQ,GAYNH,KAAK,CAZPG,QAAQ,CACRC,WAAW,GAWTJ,KAAK,CAXPI,WAAW,CAAAC,qBAAA,GAWTL,KAAK,CAVPM,cAAc,CAAdA,cAAc,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA,CAAAE,cAAA,GAUpBP,KAAK,CATPQ,OAAO,CAAPA,OAAO,GAAAD,cAAA,cAAG,IAAI,GAAAA,cAAA,CAAAE,iBAAA,GASZT,KAAK,CARPU,UAAU,CAAEC,gBAAgB,GAAAF,iBAAA,cAAG,CAAC,CAAC,GAAAA,iBAAA,CAAAG,aAAA,GAQ/BZ,KAAK,CAPPa,MAAM,CAANA,MAAM,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA,CACdE,aAAa,GAMXd,KAAK,CANPc,aAAa,CACbC,iBAAiB,GAKff,KAAK,CALPe,iBAAiB,CACjBC,QAAQ,GAINhB,KAAK,CAJPgB,QAAQ,CACRC,OAAO,GAGLjB,KAAK,CAHPiB,OAAO,CACPC,SAAS,GAEPlB,KAAK,CAFPkB,SAAS,CACNC,UAAU,OAAAC,8BAAA,CAAAC,OAAA,EACXrB,KAAK,EAAAJ,SAAA;;IAET,IAAM0B,QAAQ,GAAG,IAAAC,aAAM,EAAQ,IAAI,CAAC;;IAEpC,IAAAC,SAAA,GAA8B,IAAAC,eAAQ,EAAC,KAAK,CAAC,CAAtCC,OAAO,GAAAF,SAAA,IAAEG,UAAU,GAAAH,SAAA;IAC1B,IAAMI,SAAS,GAAG,IAAAL,aAAM,EAASvB,KAAK,CAAC6B,KAAK,IAAIC,MAAM,CAAC9B,KAAK,CAAC+B,YAAY,CAAC,IAAI,EAAE,CAAC;IACjF,IAAMC,kBAAkB,GAAG,IAAAT,aAAM,EAAgB,IAAI,CAAC;;IAEtD,IAAAU,0BAAmB;MACjBhC,GAAG;MACH;UACEqB,QAAQ,CAACY,OAAO;UAChBC,MAAM,CAACC,MAAM,CAACd,QAAQ,CAACY,OAAO,EAAE;YAC9BG,SAAS,EAAE,SAAAA,UAAA,EAAM,KAAAC,iBAAA,EAAAC,kBAAA;cACf,CAAAD,iBAAA,GAAAhB,QAAQ,CAACY,OAAO,aAAhBI,iBAAA,CAAkBE,KAAK,CAAC,CAAC;cACzB,CAAAD,kBAAA,GAAAjB,QAAQ,CAACY,OAAO,aAAhBK,kBAAA,CAAkBE,cAAc,CAAC,CAAC;YACpC;UACF,CAAC,CAAC;MACJ;IACF,CAAC;;IAED,IAAAC,gBAAS,EAAC,YAAM,KAAAC,kBAAA;MACd;MACA;MACA;MACA,KAAAA,kBAAA,GAAIrB,QAAQ,CAACY,OAAO,aAAhBS,kBAAA,CAAkBC,KAAK,EAAE;QAC3BhB,SAAS,CAACM,OAAO,GAAGZ,QAAQ,CAACY,OAAO,CAACU,KAAK,CAACf,KAAK;QAChDG,kBAAkB,CAACE,OAAO,GAAGZ,QAAQ,CAACY,OAAO,CAACU,KAAK,CAACC,cAAc;MACpE;IACF,CAAC,EAAE,EAAE,CAAC;;IAEN,IAAMnC,UAAU,GAAGoC,uBAAuB,CAAC,CAAC;;IAE5C;MACE9D,MAAA,CAAAqC,OAAA,CAAA0B,aAAA,CAACzD,MAAA,CAAA0D,KAAK,MAAAC,SAAA,CAAA5B,OAAA;QACJpB,GAAG,EAAEqB,QAAS;MACVH,UAAU;QACd+B,OAAO,EAAEC,WAAY;QACrBC,MAAM,EAAEC,UAAW;QACnBC,OAAO,EAAEC,WAAY;QACrBC,SAAS,EAAEC,aAAc;QACzBvC,SAAS,EAAE,IAAAwC,WAAE,EAACC,0BAAa,CAACC,IAAI,EAAEC,2BAAmB,CAACD,IAAI,EAAE1C,SAAS,CAAE;QACvED,OAAO;QACLT,OAAO;QACLxB,MAAA,CAAAqC,OAAA,CAAA0B,aAAA,CAACrD,sBAAA,CAAAoE,qBAAqB,IAACC,WAAW,EAAE,KAAM;QACxC/E,MAAA,CAAAqC,OAAA,CAAA0B,aAAA,CAACpD,gBAAA,CAAAqE,eAAe,MAAAf,SAAA,CAAA5B,OAAA,MAAKX,UAAU,IAAEuD,QAAQ,EAAEC,YAAa,GAAE;QACrC,CAAC;;QAExBlF,MAAA,CAAAqC,OAAA,CAAA0B,aAAA,CAACpD,gBAAA,CAAAqE,eAAe,MAAAf,SAAA,CAAA5B,OAAA,MAAKX,UAAU,IAAEuD,QAAQ,EAAEC,YAAa,GAAE,CAE7D;;;MACF,CAAC;;;IAGJ,SAASpB,uBAAuBA,CAAA,EAAsC;MACpE,WAAAG,SAAA,CAAA5B,OAAA;QACEnB,IAAI,EAAEA,IAAI,CAACiE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAQ;QACxCC,eAAe,EAAE,IAAAC,yBAAW,EAAClE,QAAQ,CAAC;QACtCmE,WAAW,EAAE,IAAAC,4BAAc,EAACnE,WAAW,CAAC;QACxC;QACAoE,KAAK,EAAE,QAAQ;QACfC,SAAS,EAAE,OAAO;QAClBC,IAAI,EAAE,CAACpE,cAAc,KAAKN,KAAK,CAAC2E,QAAQ,IAAI,CAACjD,OAAO,CAAC;QACrDb,MAAM,EAANA,MAAM;MACHF,gBAAgB;;IAEvB;;IAEA,SAASuD,YAAYA,CAAA,EAA+E,UAAAU,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAA3EC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,KAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAC3B,IAAOpD,KAAK,GAASkD,IAAI,IAATG,CAAC,GAAIH,IAAI;;MAEzB;MACA;MACA;MACA;MACA;MACAG,CAAC,KAAIpE,aAAa,oBAAbA,aAAa,CAAGe,KAAK,CAAC;MAC3B,CAACqD,CAAC,KAAKtD,SAAS,CAACM,OAAO,GAAGL,KAAK,CAAC;IACnC;;IAEA;AACJ;AACA;AACA;AACA;IACI,SAAS0B,WAAWA,CAAC2B,CAAsC,EAAE;MAC3D,IAAAC,gBAAA,GAAkCD,CAAC,CAACE,aAAa,CAAzCvD,KAAK,GAAAsD,gBAAA,CAALtD,KAAK,CAAEgB,cAAc,GAAAsC,gBAAA,CAAdtC,cAAc;;MAE7B;MACA;MACA,IAAIjB,SAAS,CAACM,OAAO,KAAKL,KAAK,IAAIgB,cAAc,KAAKb,kBAAkB,CAACE,OAAO,EAAE;QAChFmD,qBAAqB,CAACxD,KAAK,CAAC;MAC9B;MACAD,SAAS,CAACM,OAAO,GAAGL,KAAK;MACzBG,kBAAkB,CAACE,OAAO,GAAGW,cAAc;;MAE3C7C,KAAK,CAACsD,OAAO,YAAbtD,KAAK,CAACsD,OAAO,CAAG4B,CAAC,CAAC;IACpB;;IAEA,SAAS/B,WAAWA,CAAC+B,CAAqC,EAAE,KAAAI,kBAAA;MAC1D3D,UAAU,CAAC,IAAI,CAAC;MAChB3B,KAAK,CAACkD,OAAO,YAAblD,KAAK,CAACkD,OAAO,CAAGgC,CAAC,CAAC;;MAElB;MACA;MACAlF,KAAK,CAACuF,gBAAgB,MAAAD,kBAAA,GAAIhE,QAAQ,CAACY,OAAO,qBAAhBoD,kBAAA,CAAkB7C,cAAc,CAAC,CAAC;IAC9D;;IAEA,SAAS4C,qBAAqBA,CAACxD,KAAa,EAAE,KAAA2D,kBAAA;MAC5C,IAAMC,KAAK,GAAG,EAAAD,kBAAA,GAAAlE,QAAQ,CAACY,OAAO,qBAAhBsD,kBAAA,CAAkBC,KAAK,CAACC,IAAI,CAACpE,QAAQ,CAACY,OAAO,CAAC,KAAK,oBAAMyD,SAAS,EAAC;MACjF5E,iBAAiB,GAAGA,iBAAiB,CAACc,KAAK,EAAE4D,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC;IAC/D;;IAEA,SAASpC,UAAUA,CAAC6B,CAAqC,EAAE;MACzDvD,UAAU,CAAC,KAAK,CAAC;MACjB3B,KAAK,CAACoD,MAAM,YAAZpD,KAAK,CAACoD,MAAM,CAAG8B,CAAC,CAAC;IACnB;;IAEA,SAASzB,aAAaA,CAACyB,CAAwC,EAAE;MAC/D,IAAAU,iBAAA,GAAgDV,CAAC,CAACE,aAAa,CAAvDvD,KAAK,GAAA+D,iBAAA,CAAL/D,KAAK,CAAEgB,cAAc,GAAA+C,iBAAA,CAAd/C,cAAc,CAAEgD,YAAY,GAAAD,iBAAA,CAAZC,YAAY;;MAE3C;MACG,IAAAC,2BAAc,EAACZ,CAAC,CAAC,IAAIrC,cAAc,KAAK,CAAC,IAAIgD,YAAY,KAAK,CAAC;MAC/D,IAAAE,wBAAW,EAACb,CAAC,CAAC,IAAIlD,kBAAkB,CAACE,OAAO,KAAKL,KAAK,CAACiD,MAAO;MAC/D;QACA;QACAO,qBAAqB,CAACxD,KAAK,CAAC;QAC5BD,SAAS,CAACM,OAAO,GAAGgD,CAAC,CAACE,aAAa,CAACvD,KAAK;MAC3C;MACAG,kBAAkB,CAACE,OAAO,GAAGW,cAAc;;MAE3C7C,KAAK,CAACwD,SAAS,YAAfxD,KAAK,CAACwD,SAAS,CAAG0B,CAAC,CAAC;IACtB;EACF;AACF,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_forwardRefAndName","_Emotion","_Input","_identifiers","_ThemeContext","_MaskedInput","_MaskedInput2","_ColorableInputElement","_FixedIMaskInput","_excluded","MaskedInput","exports","forwardRefAndName","props","ref","mask","maskChar","formatChars","_props$alwaysShowMask","alwaysShowMask","_props$colored","colored","_props$imaskProps","imaskProps","customIMaskProps","_props$unmask","unmask","onValueChange","onUnexpectedInput","onChange","element","className","inputProps","_objectWithoutPropertiesLoose2","default","theme","useContext","ThemeContext","inputRef","useRef","_useState","useState","focused","setFocused","prevValue","value","String","defaultValue","prevSelectionStart","useImperativeHandle","current","Object","assign","selectAll","_inputRef$current","_inputRef$current2","focus","delaySelectAll","useEffect","_inputRef$current3","input","selectionStart","getCompatibleIMaskProps","uiFontGlobalClassesRoot","createElement","Input","_extends2","onFocus","handleFocus","onBlur","handleBlur","onInput","handleInput","onKeyDown","handleKeyDown","cx","globalClasses","root","styles","ColorableInputElement","showOnFocus","FixedIMaskInput","onAccept","handleAccept","replace","placeholderChar","getMaskChar","definitions","getDefinitions","eager","overwrite","lazy","disabled","_len","arguments","length","args","Array","_key","e","_e$currentTarget","currentTarget","handleUnexpectedInput","_inputRef$current4","selectAllOnFocus","_inputRef$current5","blink","bind","undefined","_e$currentTarget2","selectionEnd","isKeyBackspace","isKeyDelete"],"sources":["MaskedInput.tsx"],"sourcesContent":["import React, { Ref, useImperativeHandle, useRef, useState, useEffect, useContext } from 'react';\nimport { type IMaskInputProps } from '@skbkontur/react-imask';\n\nimport { forwardRefAndName } from '../../lib/forwardRefAndName';\nimport { cx } from '../../lib/theming/Emotion';\nimport { Input, InputProps, InputType } from '../Input';\nimport { isKeyBackspace, isKeyDelete } from '../../lib/events/keyboard/identifiers';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\n\nimport { globalClasses, styles } from './MaskedInput.styles';\nimport { getDefinitions, getMaskChar } from './MaskedInput.helpers';\nimport { ColorableInputElement } from './ColorableInputElement';\nimport { FixedIMaskInput } from './FixedIMaskInput';\n\nexport interface MaskedProps {\n /** Паттерн маски */\n mask: string;\n\n /** Устанавливает символ маски\n * @default _ */\n maskChar?: string;\n\n /** Задает словарь символов-регулярок для задания маски.\n * @default { '9': '[0-9]', 'a': '[A-Za-z]', '*': '[A-Za-z0-9]' } */\n formatChars?: Record<string, string>;\n\n /** Включает показ символов маски.\n * @default false */\n alwaysShowMask?: boolean;\n\n /** Задает обработчик неправильного ввода.\n * Вторым агрументом будет передан метод вспыхивания акцентным цветом.\n *\n * Если обработчик не задан, то инпут вспыхивает по-умолчанию.\n * @param value значение инпута.\n * @param blink вспыхнуть акцентным цвтетом.\n */\n onUnexpectedInput?: (value: string, blink: () => void) => void;\n\n /** Убирает из value символы, не введённые пользователем\n * @default false */\n unmask?: boolean;\n\n /** Раскрашивает символы маски.\n * @default true\n * @ignore */\n colored?: boolean;\n\n /** Задает пропы для компонента `IMaskInput`. Необходимы для юнит-тестов\n * @ignore */\n imaskProps?: IMaskInputProps<HTMLInputElement>;\n}\n\nexport type MaskInputType = Exclude<InputType, 'number' | 'date' | 'time' | 'password'>;\n\nexport interface MaskedInputProps\n extends MaskedProps,\n Omit<\n InputProps,\n 'showClearIcon' | 'mask' | 'maxLength' | 'type' | 'alwaysShowMask' | 'onUnexpectedInput' | 'maskChar'\n > {\n type?: MaskInputType;\n}\n\n/**\n * Интерфейс пропсов наследуется от `Input`.\n * Из пропсов `Input` исключены некоторые не применимые к полю с маской пропсы и сокращен список возможных значений в type.\n */\nexport const MaskedInput = forwardRefAndName(\n 'MaskedInput',\n function MaskedInput(props: MaskedInputProps, ref: Ref<Input | null>) {\n const {\n mask,\n maskChar,\n formatChars,\n alwaysShowMask = false,\n colored = true,\n imaskProps: customIMaskProps = {},\n unmask = false,\n onValueChange,\n onUnexpectedInput,\n onChange,\n element,\n className,\n ...inputProps\n } = props;\n const theme = useContext(ThemeContext);\n\n const inputRef = useRef<Input>(null);\n\n const [focused, setFocused] = useState(false);\n const prevValue = useRef<string>(props.value || String(props.defaultValue) || '');\n const prevSelectionStart = useRef<number | null>(null);\n\n useImperativeHandle(\n ref,\n () =>\n inputRef.current &&\n Object.assign(inputRef.current, {\n selectAll: () => {\n inputRef.current?.focus();\n inputRef.current?.delaySelectAll();\n },\n }),\n [],\n );\n\n useEffect(() => {\n // Для корректной работы onUnexpectedInput надо знать предыдущий value,\n // но imask при монтировании не вызывает onAccept, если value невалиден или laze=false.\n // Поэтому актуальный value при монтировании надо получать вручную\n if (inputRef.current?.input) {\n prevValue.current = inputRef.current.input.value;\n prevSelectionStart.current = inputRef.current.input.selectionStart;\n }\n }, []);\n\n const imaskProps = getCompatibleIMaskProps();\n\n // TODO: Удалить в следующем мажоре\n // Селекторы могут ожидать определённый порядок классов\n const uiFontGlobalClassesRoot = 'react-ui-ui-font-root';\n\n return (\n <Input\n ref={inputRef}\n {...inputProps}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onInput={handleInput}\n onKeyDown={handleKeyDown}\n className={cx(globalClasses.root, uiFontGlobalClassesRoot, className, styles.root(theme))}\n element={\n colored ? (\n <ColorableInputElement showOnFocus={false}>\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n </ColorableInputElement>\n ) : (\n <FixedIMaskInput {...imaskProps} onAccept={handleAccept} />\n )\n }\n />\n );\n\n function getCompatibleIMaskProps(): IMaskInputProps<HTMLInputElement> {\n return {\n mask: mask.replace(/0/g, '{\\\\0}') as any,\n placeholderChar: getMaskChar(maskChar),\n definitions: getDefinitions(formatChars),\n // FIXME: Должно быть eager=true, но в imask ломается удаление по delete\n eager: 'append',\n overwrite: 'shift',\n lazy: !alwaysShowMask && (props.disabled || !focused),\n unmask,\n ...customIMaskProps,\n } as IMaskInputProps<HTMLInputElement>;\n }\n\n function handleAccept(...args: Parameters<Required<IMaskInputProps<HTMLInputElement>>['onAccept']>) {\n const [value, , e] = args;\n\n // Метод onAccept может вызываться при монтировании, если не задан проп defaultValue.\n // Но нативный input никогда не вызывает onChange при монтировании.\n // Наше событие onValueChange в Input вывается в тех же случаях, что и нативный onChange,\n // поэтому чтобы сохранить консинстентность будем ориентироваться на наличие аргумента e.\n // Он содержит нативное событие, вызвавшее изменение.\n e && onValueChange?.(value);\n !e && (prevValue.current = value);\n }\n\n /**\n * Отслеживаем неожиданные нажатия\n * handleAccept не вызывается когда значение с маской не меняется\n * Сначала вызывается handleAccept, затем handleInput\n */\n function handleInput(e: React.ChangeEvent<HTMLInputElement>) {\n const { value, selectionStart } = e.currentTarget;\n\n // При вводе неожиданных символов или удалении каретка может перепрыгивать фиксированные символы.\n // Такие случаи не расцениваем как неожиданный ввод, т.к. пользователь может намеренно их вводить.\n if (prevValue.current === value && selectionStart === prevSelectionStart.current) {\n handleUnexpectedInput(value);\n }\n prevValue.current = value;\n prevSelectionStart.current = selectionStart;\n\n props.onInput?.(e);\n }\n\n function handleFocus(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(true);\n props.onFocus?.(e);\n\n // Если value из пропов отличается от value, которое получит input после обработки,\n // то imask будет ставить каретку за последним валидным символом.\n props.selectAllOnFocus && inputRef.current?.delaySelectAll();\n }\n\n function handleUnexpectedInput(value: string) {\n const blink = inputRef.current?.blink.bind(inputRef.current) || (() => undefined);\n onUnexpectedInput ? onUnexpectedInput(value, blink) : blink();\n }\n\n function handleBlur(e: React.FocusEvent<HTMLInputElement>) {\n setFocused(false);\n props.onBlur?.(e);\n }\n\n function handleKeyDown(e: React.KeyboardEvent<HTMLInputElement>) {\n const { value, selectionStart, selectionEnd } = e.currentTarget;\n\n if (\n (isKeyBackspace(e) && selectionStart === 0 && selectionEnd === 0) ||\n (isKeyDelete(e) && prevSelectionStart.current === value.length)\n ) {\n // Случаи, когда нажатие клавиш не тригерит `onInput`\n handleUnexpectedInput(value);\n prevValue.current = e.currentTarget.value;\n }\n prevSelectionStart.current = selectionStart;\n\n props.onKeyDown?.(e);\n }\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
|
-
"use strict";exports.__esModule = true;exports.globalClasses = void 0;var _Emotion = require("../../lib/theming/Emotion");
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;exports.__esModule = true;exports.styles = exports.globalClasses = void 0;var _taggedTemplateLiteralLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteralLoose"));var _Emotion = require("../../lib/theming/Emotion");
|
|
2
|
+
|
|
3
|
+
var _UiFont = require("../../lib/styles/UiFont");var _templateObject;
|
|
2
4
|
|
|
3
5
|
var globalClasses = exports.globalClasses = (0, _Emotion.prefix)('masked-input')({
|
|
4
6
|
root: 'root'
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
var styles = exports.styles = (0, _Emotion.memoizeStyle)({
|
|
10
|
+
root: function root(t) {
|
|
11
|
+
return (0, _Emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteralLoose2.default)(["\n font-family: ", ", ", ";\n font-variant-numeric: tabular-nums;\n "])),
|
|
12
|
+
_UiFont.UI_FONT_NAME, t.baseFontFamily);
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
}
|
|
5
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Emotion","require","globalClasses","exports","prefix","root"],"sources":["MaskedInput.styles.ts"],"sourcesContent":["import { prefix } from '../../lib/theming/Emotion';\n\nexport const globalClasses = prefix('masked-input')({\n root: 'root',\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_Emotion","require","_UiFont","_templateObject","globalClasses","exports","prefix","root","styles","memoizeStyle","t","css","_taggedTemplateLiteralLoose2","default","UI_FONT_NAME","baseFontFamily"],"sources":["MaskedInput.styles.ts"],"sourcesContent":["import { css, memoizeStyle, prefix } from '../../lib/theming/Emotion';\nimport { Theme } from '../../lib/theming/Theme';\nimport { UI_FONT_NAME } from '../../lib/styles/UiFont';\n\nexport const globalClasses = prefix('masked-input')({\n root: 'root',\n});\n\nexport const styles = memoizeStyle({\n root(t: Theme) {\n return css`\n font-family: ${UI_FONT_NAME}, ${t.baseFontFamily};\n font-variant-numeric: tabular-nums;\n `;\n },\n});\n"],"mappings":"4SAAA,IAAAA,QAAA,GAAAC,OAAA;;AAEA,IAAAC,OAAA,GAAAD,OAAA,4BAAuD,IAAAE,eAAA;;AAEhD,IAAMC,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,IAAAE,eAAM,EAAC,cAAc,CAAC,CAAC;EAClDC,IAAI,EAAE;AACR,CAAC,CAAC;;AAEK,IAAMC,MAAM,GAAAH,OAAA,CAAAG,MAAA,GAAG,IAAAC,qBAAY,EAAC;EACjCF,IAAI,WAAAA,KAACG,CAAQ,EAAE;IACb,WAAOC,YAAG,EAAAR,eAAA,KAAAA,eAAA,OAAAS,4BAAA,CAAAC,OAAA;IACOC,oBAAY,EAAKJ,CAAC,CAACK,cAAc;;;EAGpD;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -235,7 +235,7 @@ ComboBoxMenu = exports.ComboBoxMenu = (_dec = (0, _decorators.locale)('ComboBox'
|
|
|
235
235
|
function (state) {return renderItem(item, state);}
|
|
236
236
|
));
|
|
237
237
|
|
|
238
|
-
};return _this;}(0, _inheritsLoose2.default)(ComboBoxMenu, _React$Component);var _proto = ComboBoxMenu.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this$props2 = this.props,opened = _this$props2.opened,items = _this$props2.items,totalCount = _this$props2.totalCount,loading = _this$props2.loading,refMenu = _this$props2.refMenu,_this$props2$renderNo = _this$props2.renderNotFound,renderNotFound = _this$props2$renderNo === void 0 ? function () {return notFound;} : _this$props2$renderNo,renderTotalCount = _this$props2.renderTotalCount,maxMenuHeight = _this$props2.maxMenuHeight,isMobile = _this$props2.isMobile;var requestStatus = this.getProps().requestStatus;var _this$locale = this.locale,notFound = _this$locale.notFound,errorNetworkButton = _this$locale.errorNetworkButton,errorNetworkMessage = _this$locale.errorNetworkMessage;if (!opened) {return null;}var renderAddButton = null;if (this.props.renderAddButton) {renderAddButton = this.props.renderAddButton();}var maxHeight = isMobile ? 'auto' : maxMenuHeight;if (loading && (!items || !items.length)) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.loading }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, as: "div" }, /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: "mini", dimmed: true })));}if (items === null && requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { ref: refMenu, maxHeight: maxHeight, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.failed }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, key: "message" }, /*#__PURE__*/_react.default.createElement("div", { style: { maxWidth: 300, whiteSpace: 'normal' } }, errorNetworkMessage)), /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { link: true, onClick: this.getProps().repeatRequest, size: this.props.size, key: "retry", isMobile: isMobile }, errorNetworkButton));}if (((0, _utils.isNullable)(items) || items.length === 0) && renderNotFound) {var notFoundValue = renderNotFound();if (renderAddButton) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, hasMargin: this.props.hasMargin, maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, renderAddButton);}if (notFoundValue) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, hasMargin: this.props.hasMargin, maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, "data-tid": ComboBoxMenuDataTids.notFound }, notFoundValue));}return null;}var total = null;var renderedItems = items && items.map(this.renderItem);var menuItems = renderedItems == null ? void 0 : renderedItems.filter(function (item) {return (0, _MenuItem.isMenuItem)(item);});var countItems = menuItems == null ? void 0 : menuItems.length;if (countItems && renderTotalCount && totalCount && countItems < totalCount) {total = /*#__PURE__*/_react.default.createElement(_MenuFooter.MenuFooter, { size: this.props.size, key: "total" }, /*#__PURE__*/_react.default.createElement("div", null, renderTotalCount(countItems, totalCount)));}return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.items, ref: refMenu, maxHeight: maxHeight, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile }, renderedItems, total, renderAddButton && [/*#__PURE__*/_react.default.createElement(_MenuSeparator.MenuSeparator, { key: "separator" }), renderAddButton]);};return ComboBoxMenu;}(_react.default.Component), _ComboBoxMenu.__KONTUR_REACT_UI__ = 'ComboBoxMenu', _ComboBoxMenu.displayName = 'ComboBoxMenu', _ComboBoxMenu.defaultProps = { repeatRequest: function repeatRequest() {return undefined;}, requestStatus: _CustomComboBoxTypes.ComboBoxRequestStatus.Unknown }, _ComboBoxMenu)) || _class);
|
|
238
|
+
};return _this;}(0, _inheritsLoose2.default)(ComboBoxMenu, _React$Component);var _proto = ComboBoxMenu.prototype;_proto.render = function render() {var _this2 = this;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Consumer, null, function (theme) {_this2.theme = theme;return /*#__PURE__*/_react.default.createElement(_ThemeContext.ThemeContext.Provider, { value: _this2.theme }, _this2.renderMain());});};_proto.renderMain = function renderMain() {var _this$props2 = this.props,opened = _this$props2.opened,items = _this$props2.items,totalCount = _this$props2.totalCount,loading = _this$props2.loading,refMenu = _this$props2.refMenu,_this$props2$renderNo = _this$props2.renderNotFound,renderNotFound = _this$props2$renderNo === void 0 ? function () {return notFound;} : _this$props2$renderNo,renderTotalCount = _this$props2.renderTotalCount,maxMenuHeight = _this$props2.maxMenuHeight,isMobile = _this$props2.isMobile;var requestStatus = this.getProps().requestStatus;var _this$locale = this.locale,notFound = _this$locale.notFound,errorNetworkButton = _this$locale.errorNetworkButton,errorNetworkMessage = _this$locale.errorNetworkMessage;if (!opened) {return null;}var renderAddButton = null;if (this.props.renderAddButton) {renderAddButton = this.props.renderAddButton();}var maxHeight = isMobile ? 'auto' : maxMenuHeight;if (loading && (!items || !items.length)) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { maxHeight: maxHeight, ref: refMenu, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.loading + " " + _Menu.MenuDataTids.root }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, as: "div" }, /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, { type: "mini", dimmed: true })));}if (items === null && requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { ref: refMenu, maxHeight: maxHeight, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile, id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.failed + " " + _Menu.MenuDataTids.root }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, key: "message" }, /*#__PURE__*/_react.default.createElement("div", { style: { maxWidth: 300, whiteSpace: 'normal' } }, errorNetworkMessage)), /*#__PURE__*/_react.default.createElement(_MenuItem.MenuItem, { link: true, onClick: this.getProps().repeatRequest, size: this.props.size, key: "retry", isMobile: isMobile }, errorNetworkButton));}if (((0, _utils.isNullable)(items) || items.length === 0) && renderNotFound) {var notFoundValue = renderNotFound();if (renderAddButton) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, hasMargin: this.props.hasMargin, maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, renderAddButton);}if (notFoundValue) {return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, hasMargin: this.props.hasMargin, maxHeight: maxHeight, ref: refMenu, disableScrollContainer: isMobile }, /*#__PURE__*/_react.default.createElement(_MenuMessage.MenuMessage, { size: this.props.size, "data-tid": ComboBoxMenuDataTids.notFound }, notFoundValue));}return null;}var total = null;var renderedItems = items && items.map(this.renderItem);var menuItems = renderedItems == null ? void 0 : renderedItems.filter(function (item) {return (0, _MenuItem.isMenuItem)(item);});var countItems = menuItems == null ? void 0 : menuItems.length;if (countItems && renderTotalCount && totalCount && countItems < totalCount) {total = /*#__PURE__*/_react.default.createElement(_MenuFooter.MenuFooter, { size: this.props.size, key: "total" }, /*#__PURE__*/_react.default.createElement("div", null, renderTotalCount(countItems, totalCount)));}return /*#__PURE__*/_react.default.createElement(_Menu.Menu, { id: this.props.menuId, "data-tid": ComboBoxMenuDataTids.items + " " + _Menu.MenuDataTids.root, ref: refMenu, maxHeight: maxHeight, hasMargin: this.props.hasMargin, disableScrollContainer: isMobile }, renderedItems, total, renderAddButton && [/*#__PURE__*/_react.default.createElement(_MenuSeparator.MenuSeparator, { key: "separator" }), renderAddButton]);};return ComboBoxMenu;}(_react.default.Component), _ComboBoxMenu.__KONTUR_REACT_UI__ = 'ComboBoxMenu', _ComboBoxMenu.displayName = 'ComboBoxMenu', _ComboBoxMenu.defaultProps = { repeatRequest: function repeatRequest() {return undefined;}, requestStatus: _CustomComboBoxTypes.ComboBoxRequestStatus.Unknown }, _ComboBoxMenu)) || _class);
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
function isSimpleItem(item) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_utils","_decorators","_Menu","_MenuItem","_Spinner","_MenuSeparator","_createPropsGetter","_MenuMessage","_ThemeContext","_MenuFooter","_CustomComboBoxTypes","_locale","_dec","_class","_ComboBoxMenu","ComboBoxMenuDataTids","exports","loading","failed","notFound","items","item","ComboBoxMenu","locale","CustomComboBoxLocaleHelper","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderItem","index","_this$props","props","onValueChange","itemWrapper","isSimpleItem","element","isFunction","Object","assign","key","onClick","React","cloneElement","default","createElement","MenuItem","component","size","isMobile","state","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","theme","Provider","value","renderMain","_this$props2","opened","totalCount","refMenu","_this$props2$renderNo","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","_this$locale","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","Menu","ref","hasMargin","disableScrollContainer","id","menuId","MenuMessage","as","Spinner","type","dimmed","ComboBoxRequestStatus","Failed","style","maxWidth","whiteSpace","link","repeatRequest","isNullable","notFoundValue","total","renderedItems","map","menuItems","filter","isMenuItem","countItems","MenuFooter","MenuSeparator","Component","__KONTUR_REACT_UI__","displayName","undefined","Unknown","isValidElement"],"sources":["ComboBoxMenu.tsx"],"sourcesContent":["import React from 'react';\n\nimport { isFunction, isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu } from '../Menu';\nimport { isMenuItem, MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { MenuMessage } from '../MenuMessage';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MenuFooter } from '../../components/MenuFooter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n totalCount?: number;\n loading?: boolean;\n hasMargin?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\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 onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n menuId?: string;\n size?: SizeProp;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n public static displayName = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n private theme!: Theme;\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={ComboBoxMenuDataTids.loading}\n >\n <MenuMessage size={this.props.size} as=\"div\">\n <Spinner type=\"mini\" dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={ComboBoxMenuDataTids.failed}\n >\n <MenuMessage size={this.props.size} key=\"message\">\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem link onClick={this.getProps().repeatRequest} size={this.props.size} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n <MenuMessage size={this.props.size} data-tid={ComboBoxMenuDataTids.notFound}>\n {notFoundValue}\n </MenuMessage>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.length;\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuFooter size={this.props.size} key=\"total\">\n <div>{renderTotalCount(countItems, totalCount)}</div>\n </MenuFooter>\n );\n }\n\n return (\n <Menu\n id={this.props.menuId}\n data-tid={ComboBoxMenuDataTids.items}\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n >\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: ComboBoxExtendedItem<T>, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange, itemWrapper } = this.props;\n\n if (!isSimpleItem<T>(item)) {\n const element = isFunction(item) ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n component={itemWrapper?.(item)}\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n size={this.props.size}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n\nfunction isSimpleItem<T>(item: ComboBoxExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_utils","_decorators","_Menu","_MenuItem","_Spinner","_MenuSeparator","_createPropsGetter","_MenuMessage","_ThemeContext","_MenuFooter","_CustomComboBoxTypes","_locale","_dec","_class","_ComboBoxMenu","ComboBoxMenuDataTids","exports","loading","failed","notFound","items","item","ComboBoxMenu","locale","CustomComboBoxLocaleHelper","_React$Component","_this","_len","arguments","length","args","Array","_key","call","apply","concat","getProps","createPropsGetter","defaultProps","renderItem","index","_this$props","props","onValueChange","itemWrapper","isSimpleItem","element","isFunction","Object","assign","key","onClick","React","cloneElement","default","createElement","MenuItem","component","size","isMobile","state","_inheritsLoose2","_proto","prototype","render","_this2","ThemeContext","Consumer","theme","Provider","value","renderMain","_this$props2","opened","totalCount","refMenu","_this$props2$renderNo","renderNotFound","renderTotalCount","maxMenuHeight","requestStatus","_this$locale","errorNetworkButton","errorNetworkMessage","renderAddButton","maxHeight","Menu","ref","hasMargin","disableScrollContainer","id","menuId","MenuDataTids","root","MenuMessage","as","Spinner","type","dimmed","ComboBoxRequestStatus","Failed","style","maxWidth","whiteSpace","link","repeatRequest","isNullable","notFoundValue","total","renderedItems","map","menuItems","filter","isMenuItem","countItems","MenuFooter","MenuSeparator","Component","__KONTUR_REACT_UI__","displayName","undefined","Unknown","isValidElement"],"sources":["ComboBoxMenu.tsx"],"sourcesContent":["import React from 'react';\n\nimport { isFunction, isNullable } from '../../lib/utils';\nimport { locale } from '../../lib/locale/decorators';\nimport { Menu, MenuDataTids } from '../Menu';\nimport { isMenuItem, MenuItem, MenuItemState } from '../../components/MenuItem';\nimport { Spinner } from '../../components/Spinner';\nimport { Nullable } from '../../typings/utility-types';\nimport { MenuSeparator } from '../../components/MenuSeparator';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { MenuMessage } from '../MenuMessage';\nimport { ComboBoxExtendedItem } from '../../components/ComboBox';\nimport { Theme } from '../../lib/theming/Theme';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { MenuFooter } from '../../components/MenuFooter';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { ComboBoxRequestStatus } from './CustomComboBoxTypes';\nimport { ComboBoxLocale, CustomComboBoxLocaleHelper } from './locale';\n\nexport interface ComboBoxMenuProps<T> {\n opened?: boolean;\n items?: Nullable<Array<ComboBoxExtendedItem<T>>>;\n totalCount?: number;\n loading?: boolean;\n hasMargin?: boolean;\n maxMenuHeight?: number | string;\n refMenu?: (menu: Nullable<Menu>) => void;\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 onValueChange: (value: T) => any;\n renderAddButton?: () => React.ReactNode;\n caption?: React.ReactNode;\n repeatRequest?: () => void;\n requestStatus?: ComboBoxRequestStatus;\n isMobile?: boolean;\n menuId?: string;\n size?: SizeProp;\n}\n\nexport const ComboBoxMenuDataTids = {\n loading: 'ComboBoxMenu__loading',\n failed: 'ComboBoxMenu__failed',\n notFound: 'ComboBoxMenu__notFound',\n items: 'ComboBoxMenu__items',\n item: 'ComboBoxMenu__item',\n} as const;\n\ntype DefaultProps<T> = Required<Pick<ComboBoxMenuProps<T>, 'repeatRequest' | 'requestStatus'>>;\n\n@locale('ComboBox', CustomComboBoxLocaleHelper)\nexport class ComboBoxMenu<T> extends React.Component<ComboBoxMenuProps<T>> {\n public static __KONTUR_REACT_UI__ = 'ComboBoxMenu';\n public static displayName = 'ComboBoxMenu';\n\n public static defaultProps: DefaultProps<unknown> = {\n repeatRequest: () => undefined,\n requestStatus: ComboBoxRequestStatus.Unknown,\n };\n\n private getProps = createPropsGetter(ComboBoxMenu.defaultProps);\n\n private readonly locale!: ComboBoxLocale;\n\n private theme!: Theme;\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return <ThemeContext.Provider value={this.theme}>{this.renderMain()}</ThemeContext.Provider>;\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain() {\n const {\n opened,\n items,\n totalCount,\n loading,\n refMenu,\n renderNotFound = () => notFound,\n renderTotalCount,\n maxMenuHeight,\n isMobile,\n } = this.props;\n\n const requestStatus = this.getProps().requestStatus;\n\n const { notFound, errorNetworkButton, errorNetworkMessage } = this.locale;\n\n if (!opened) {\n return null;\n }\n\n let renderAddButton = null;\n if (this.props.renderAddButton) {\n renderAddButton = this.props.renderAddButton();\n }\n\n const maxHeight = isMobile ? 'auto' : maxMenuHeight;\n\n if (loading && (!items || !items.length)) {\n return (\n <Menu\n maxHeight={maxHeight}\n ref={refMenu}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.loading} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} as=\"div\">\n <Spinner type=\"mini\" dimmed />\n </MenuMessage>\n </Menu>\n );\n }\n\n if (items === null && requestStatus === ComboBoxRequestStatus.Failed) {\n return (\n <Menu\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.failed} ${MenuDataTids.root}`}\n >\n <MenuMessage size={this.props.size} key=\"message\">\n <div style={{ maxWidth: 300, whiteSpace: 'normal' }}>{errorNetworkMessage}</div>\n </MenuMessage>\n <MenuItem link onClick={this.getProps().repeatRequest} size={this.props.size} key=\"retry\" isMobile={isMobile}>\n {errorNetworkButton}\n </MenuItem>\n </Menu>\n );\n }\n\n if ((isNullable(items) || items.length === 0) && renderNotFound) {\n const notFoundValue = renderNotFound();\n if (renderAddButton) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n {renderAddButton}\n </Menu>\n );\n }\n\n if (notFoundValue) {\n return (\n <Menu\n id={this.props.menuId}\n hasMargin={this.props.hasMargin}\n maxHeight={maxHeight}\n ref={refMenu}\n disableScrollContainer={isMobile}\n >\n <MenuMessage size={this.props.size} data-tid={ComboBoxMenuDataTids.notFound}>\n {notFoundValue}\n </MenuMessage>\n </Menu>\n );\n }\n\n return null;\n }\n\n let total = null;\n const renderedItems = items && items.map(this.renderItem);\n const menuItems = renderedItems?.filter((item) => {\n return isMenuItem(item);\n });\n const countItems = menuItems?.length;\n if (countItems && renderTotalCount && totalCount && countItems < totalCount) {\n total = (\n <MenuFooter size={this.props.size} key=\"total\">\n <div>{renderTotalCount(countItems, totalCount)}</div>\n </MenuFooter>\n );\n }\n\n return (\n <Menu\n id={this.props.menuId}\n data-tid={`${ComboBoxMenuDataTids.items} ${MenuDataTids.root}`}\n ref={refMenu}\n maxHeight={maxHeight}\n hasMargin={this.props.hasMargin}\n disableScrollContainer={isMobile}\n >\n {renderedItems}\n {total}\n {renderAddButton && [<MenuSeparator key=\"separator\" />, renderAddButton]}\n </Menu>\n );\n }\n\n private renderItem = (item: ComboBoxExtendedItem<T>, index: number): React.ReactNode => {\n // NOTE this is undesireable feature, better\n // to remove it from further versions\n const { renderItem, onValueChange, itemWrapper } = this.props;\n\n if (!isSimpleItem<T>(item)) {\n const element = isFunction(item) ? item() : item;\n const props = Object.assign(\n {\n key: index,\n onClick: () => onValueChange(element.props),\n },\n element.props,\n );\n return React.cloneElement(element, props);\n }\n\n return (\n <MenuItem\n component={itemWrapper?.(item)}\n data-tid={ComboBoxMenuDataTids.item}\n onClick={() => onValueChange(item)}\n key={index}\n size={this.props.size}\n isMobile={this.props.isMobile}\n >\n {(state) => renderItem(item, state)}\n </MenuItem>\n );\n };\n}\n\nfunction isSimpleItem<T>(item: ComboBoxExtendedItem<T>): item is T {\n return !isFunction(item) && !React.isValidElement(item);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -161,19 +161,23 @@ var Effect = exports.Effect = {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
var index = -1;
|
|
164
|
-
if (items && items.length && (0, _utils.isNonNullable)(value)) {
|
|
164
|
+
if (items != null && items.length && (0, _utils.isNonNullable)(value)) {
|
|
165
165
|
index = items.findIndex(function (x) {return itemToValue(x) === itemToValue(value);});
|
|
166
|
+
menu.highlightItem(index);
|
|
167
|
+
} else {
|
|
168
|
+
menu.reset();
|
|
166
169
|
}
|
|
167
|
-
menu.highlightItem(index);
|
|
168
170
|
|
|
169
171
|
if (index >= 0) {
|
|
170
172
|
// @ts-expect-error: Use of private property.
|
|
171
|
-
_globalObject.globalObject.requestAnimationFrame == null || _globalObject.globalObject.requestAnimationFrame(function () {return menu
|
|
173
|
+
_globalObject.globalObject.requestAnimationFrame == null || _globalObject.globalObject.requestAnimationFrame(function () {return menu == null ? void 0 : menu.scrollToSelected();});
|
|
172
174
|
return;
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
+
var queryTextDifferenceOfSavedValue = textValue !== valueString;
|
|
178
|
+
var needFocusToRefreshButton = requestStatus === _CustomComboBoxTypes.ComboBoxRequestStatus.Failed;
|
|
179
|
+
if (queryTextDifferenceOfSavedValue || needFocusToRefreshButton) {
|
|
180
|
+
_globalObject.globalObject.requestAnimationFrame == null || _globalObject.globalObject.requestAnimationFrame(function () {return menu == null ? void 0 : menu.highlightItem(0);});
|
|
177
181
|
}
|
|
178
182
|
},
|
|
179
183
|
selectMenuItem: function selectMenuItem(event) {return function (dispatch, getState, getProps, getInstance) {
|