@alfalab/core-components-masked-input 7.0.1 → 7.0.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/Component.d.ts +1 -1
- package/Component.js.map +1 -1
- package/cssm/Component.d.ts +1 -1
- package/cssm/Component.js.map +1 -1
- package/esm/Component.d.ts +1 -1
- package/esm/Component.js.map +1 -1
- package/esm/index.css +1 -1
- package/esm/index.module.css.js +1 -1
- package/index.css +1 -1
- package/index.module.css.js +1 -1
- package/modern/Component.d.ts +1 -1
- package/modern/Component.js.map +1 -1
- package/modern/index.css +1 -1
- package/modern/index.module.css.js +1 -1
- package/moderncssm/Component.d.ts +1 -1
- package/moderncssm/Component.js.map +1 -1
- package/package.json +3 -3
- package/src/Component.tsx +10 -3
package/Component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input';
|
|
3
3
|
declare type Mask = Array<string | RegExp>;
|
|
4
4
|
export declare type TextMaskConfig = {
|
|
5
5
|
currentCaretPosition: number;
|
package/Component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["src/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';\n\nimport { Input, type InputProps } from '@alfalab/core-components-input';\n\nimport styles from './index.module.css';\n\n// TODO: заставить rollup добавлять кастомные декларации в сборку\ntype Mask = Array<string | RegExp>;\nexport type TextMaskConfig = {\n currentCaretPosition: number;\n rawValue: string;\n previousConformedValue: string;\n mask?: Mask | ((rawValue: string) => Mask);\n guide?: boolean;\n showMask?: boolean;\n placeholderChar?: string;\n keepCharPositions?: boolean;\n pipe?: (\n conformedValue: string,\n config: TextMaskConfig,\n ) => false | string | { value: string; indexesOfPipedChars: number[] };\n};\n\nexport type MaskedInputProps = InputProps & {\n /**\n * Маска для поля ввода\n * https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#mask-array\n */\n mask?: TextMaskConfig['mask'];\n\n /**\n * Управляет поведением компонента при удалении символов\n */\n keepCharPositions?: TextMaskConfig['keepCharPositions'];\n\n /**\n * Дает возможность изменить значение поля перед рендером\n */\n onBeforeDisplay?: TextMaskConfig['pipe'];\n};\n\n// Символ плейсхолдера не может входить в маску, поэтому вместо пробела используется \\u2000\nexport const PLACEHOLDER_CHAR = '\\u2000';\n\nexport const MaskedInput = React.forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n {\n mask,\n keepCharPositions = false,\n value,\n defaultValue,\n className,\n onBeforeDisplay,\n onChange,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const [inputNode, setInputNode] = useState<HTMLInputElement | null>(null);\n const textMask = useRef<TextMaskInputElement | null>(null);\n\n const [inputValue, setInputValue] = useState(value || defaultValue || '');\n // Не показываем сырое значение до применения маски\n const [textHidden, setTextHidden] = useState(true);\n\n const update = useCallback(\n (newValue = '') => {\n if (textMask.current && inputNode) {\n try {\n textMask.current.update(newValue);\n } catch (e) {\n // ignore masking errors\n }\n\n setInputValue(inputNode.value);\n }\n },\n [inputNode],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n update(event.target.value);\n\n if (onChange) {\n onChange(event, {\n value: event.target.value,\n });\n }\n },\n [onChange, update],\n );\n\n const handleClear = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n update('');\n if (onClear) onClear(event);\n },\n [onClear, update],\n );\n\n useEffect(() => {\n if (inputNode) {\n textMask.current = createTextMaskInputElement({\n mask,\n inputElement: inputNode,\n pipe: onBeforeDisplay,\n guide: false,\n keepCharPositions,\n showMask: false,\n placeholderChar: PLACEHOLDER_CHAR,\n rawValue: '',\n currentCaretPosition: 0,\n previousConformedValue: '',\n });\n }\n }, [onBeforeDisplay, mask, keepCharPositions, inputNode]);\n\n useEffect(() => {\n update(value || defaultValue);\n }, [value, update, defaultValue]);\n\n useEffect(() => {\n setTextHidden(false);\n }, []);\n\n return (\n <Input\n {...restProps}\n className={cn(className, { [styles.textHidden]: textHidden })}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClear}\n ref={mergeRefs([ref, setInputNode])}\n />\n );\n },\n);\n\nMaskedInput.displayName = 'MaskedInput';\n"],"names":["React","__rest","useState","useRef","useCallback","useEffect","createTextMaskInputElement","Input","__assign","cn","styles","mergeRefs"],"mappings":"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"}
|
package/cssm/Component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/cssm';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/cssm';
|
|
3
3
|
declare type Mask = Array<string | RegExp>;
|
|
4
4
|
export declare type TextMaskConfig = {
|
|
5
5
|
currentCaretPosition: number;
|
package/cssm/Component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';\n\nimport { Input, type InputProps } from '@alfalab/core-components-input';\n\nimport styles from './index.module.css';\n\n// TODO: заставить rollup добавлять кастомные декларации в сборку\ntype Mask = Array<string | RegExp>;\nexport type TextMaskConfig = {\n currentCaretPosition: number;\n rawValue: string;\n previousConformedValue: string;\n mask?: Mask | ((rawValue: string) => Mask);\n guide?: boolean;\n showMask?: boolean;\n placeholderChar?: string;\n keepCharPositions?: boolean;\n pipe?: (\n conformedValue: string,\n config: TextMaskConfig,\n ) => false | string | { value: string; indexesOfPipedChars: number[] };\n};\n\nexport type MaskedInputProps = InputProps & {\n /**\n * Маска для поля ввода\n * https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#mask-array\n */\n mask?: TextMaskConfig['mask'];\n\n /**\n * Управляет поведением компонента при удалении символов\n */\n keepCharPositions?: TextMaskConfig['keepCharPositions'];\n\n /**\n * Дает возможность изменить значение поля перед рендером\n */\n onBeforeDisplay?: TextMaskConfig['pipe'];\n};\n\n// Символ плейсхолдера не может входить в маску, поэтому вместо пробела используется \\u2000\nexport const PLACEHOLDER_CHAR = '\\u2000';\n\nexport const MaskedInput = React.forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n {\n mask,\n keepCharPositions = false,\n value,\n defaultValue,\n className,\n onBeforeDisplay,\n onChange,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const [inputNode, setInputNode] = useState<HTMLInputElement | null>(null);\n const textMask = useRef<TextMaskInputElement | null>(null);\n\n const [inputValue, setInputValue] = useState(value || defaultValue || '');\n // Не показываем сырое значение до применения маски\n const [textHidden, setTextHidden] = useState(true);\n\n const update = useCallback(\n (newValue = '') => {\n if (textMask.current && inputNode) {\n try {\n textMask.current.update(newValue);\n } catch (e) {\n // ignore masking errors\n }\n\n setInputValue(inputNode.value);\n }\n },\n [inputNode],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n update(event.target.value);\n\n if (onChange) {\n onChange(event, {\n value: event.target.value,\n });\n }\n },\n [onChange, update],\n );\n\n const handleClear = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n update('');\n if (onClear) onClear(event);\n },\n [onClear, update],\n );\n\n useEffect(() => {\n if (inputNode) {\n textMask.current = createTextMaskInputElement({\n mask,\n inputElement: inputNode,\n pipe: onBeforeDisplay,\n guide: false,\n keepCharPositions,\n showMask: false,\n placeholderChar: PLACEHOLDER_CHAR,\n rawValue: '',\n currentCaretPosition: 0,\n previousConformedValue: '',\n });\n }\n }, [onBeforeDisplay, mask, keepCharPositions, inputNode]);\n\n useEffect(() => {\n update(value || defaultValue);\n }, [value, update, defaultValue]);\n\n useEffect(() => {\n setTextHidden(false);\n }, []);\n\n return (\n <Input\n {...restProps}\n className={cn(className, { [styles.textHidden]: textHidden })}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClear}\n ref={mergeRefs([ref, setInputNode])}\n />\n );\n },\n);\n\nMaskedInput.displayName = 'MaskedInput';\n"],"names":["React","__rest","useState","useRef","useCallback","useEffect","createTextMaskInputElement","Input","__assign","cn","styles","mergeRefs"],"mappings":"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"}
|
package/esm/Component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/esm';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/esm';
|
|
3
3
|
declare type Mask = Array<string | RegExp>;
|
|
4
4
|
export declare type TextMaskConfig = {
|
|
5
5
|
currentCaretPosition: number;
|
package/esm/Component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';\n\nimport { Input, type InputProps } from '@alfalab/core-components-input';\n\nimport styles from './index.module.css';\n\n// TODO: заставить rollup добавлять кастомные декларации в сборку\ntype Mask = Array<string | RegExp>;\nexport type TextMaskConfig = {\n currentCaretPosition: number;\n rawValue: string;\n previousConformedValue: string;\n mask?: Mask | ((rawValue: string) => Mask);\n guide?: boolean;\n showMask?: boolean;\n placeholderChar?: string;\n keepCharPositions?: boolean;\n pipe?: (\n conformedValue: string,\n config: TextMaskConfig,\n ) => false | string | { value: string; indexesOfPipedChars: number[] };\n};\n\nexport type MaskedInputProps = InputProps & {\n /**\n * Маска для поля ввода\n * https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#mask-array\n */\n mask?: TextMaskConfig['mask'];\n\n /**\n * Управляет поведением компонента при удалении символов\n */\n keepCharPositions?: TextMaskConfig['keepCharPositions'];\n\n /**\n * Дает возможность изменить значение поля перед рендером\n */\n onBeforeDisplay?: TextMaskConfig['pipe'];\n};\n\n// Символ плейсхолдера не может входить в маску, поэтому вместо пробела используется \\u2000\nexport const PLACEHOLDER_CHAR = '\\u2000';\n\nexport const MaskedInput = React.forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n {\n mask,\n keepCharPositions = false,\n value,\n defaultValue,\n className,\n onBeforeDisplay,\n onChange,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const [inputNode, setInputNode] = useState<HTMLInputElement | null>(null);\n const textMask = useRef<TextMaskInputElement | null>(null);\n\n const [inputValue, setInputValue] = useState(value || defaultValue || '');\n // Не показываем сырое значение до применения маски\n const [textHidden, setTextHidden] = useState(true);\n\n const update = useCallback(\n (newValue = '') => {\n if (textMask.current && inputNode) {\n try {\n textMask.current.update(newValue);\n } catch (e) {\n // ignore masking errors\n }\n\n setInputValue(inputNode.value);\n }\n },\n [inputNode],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n update(event.target.value);\n\n if (onChange) {\n onChange(event, {\n value: event.target.value,\n });\n }\n },\n [onChange, update],\n );\n\n const handleClear = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n update('');\n if (onClear) onClear(event);\n },\n [onClear, update],\n );\n\n useEffect(() => {\n if (inputNode) {\n textMask.current = createTextMaskInputElement({\n mask,\n inputElement: inputNode,\n pipe: onBeforeDisplay,\n guide: false,\n keepCharPositions,\n showMask: false,\n placeholderChar: PLACEHOLDER_CHAR,\n rawValue: '',\n currentCaretPosition: 0,\n previousConformedValue: '',\n });\n }\n }, [onBeforeDisplay, mask, keepCharPositions, inputNode]);\n\n useEffect(() => {\n update(value || defaultValue);\n }, [value, update, defaultValue]);\n\n useEffect(() => {\n setTextHidden(false);\n }, []);\n\n return (\n <Input\n {...restProps}\n className={cn(className, { [styles.textHidden]: textHidden })}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClear}\n ref={mergeRefs([ref, setInputNode])}\n />\n );\n },\n);\n\nMaskedInput.displayName = 'MaskedInput';\n"],"names":[],"mappings":"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"}
|
package/esm/index.css
CHANGED
package/esm/index.module.css.js
CHANGED
package/index.css
CHANGED
package/index.module.css.js
CHANGED
package/modern/Component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/modern';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/modern';
|
|
3
3
|
declare type Mask = Array<string | RegExp>;
|
|
4
4
|
export declare type TextMaskConfig = {
|
|
5
5
|
currentCaretPosition: number;
|
package/modern/Component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';\n\nimport { Input, type InputProps } from '@alfalab/core-components-input';\n\nimport styles from './index.module.css';\n\n// TODO: заставить rollup добавлять кастомные декларации в сборку\ntype Mask = Array<string | RegExp>;\nexport type TextMaskConfig = {\n currentCaretPosition: number;\n rawValue: string;\n previousConformedValue: string;\n mask?: Mask | ((rawValue: string) => Mask);\n guide?: boolean;\n showMask?: boolean;\n placeholderChar?: string;\n keepCharPositions?: boolean;\n pipe?: (\n conformedValue: string,\n config: TextMaskConfig,\n ) => false | string | { value: string; indexesOfPipedChars: number[] };\n};\n\nexport type MaskedInputProps = InputProps & {\n /**\n * Маска для поля ввода\n * https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#mask-array\n */\n mask?: TextMaskConfig['mask'];\n\n /**\n * Управляет поведением компонента при удалении символов\n */\n keepCharPositions?: TextMaskConfig['keepCharPositions'];\n\n /**\n * Дает возможность изменить значение поля перед рендером\n */\n onBeforeDisplay?: TextMaskConfig['pipe'];\n};\n\n// Символ плейсхолдера не может входить в маску, поэтому вместо пробела используется \\u2000\nexport const PLACEHOLDER_CHAR = '\\u2000';\n\nexport const MaskedInput = React.forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n {\n mask,\n keepCharPositions = false,\n value,\n defaultValue,\n className,\n onBeforeDisplay,\n onChange,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const [inputNode, setInputNode] = useState<HTMLInputElement | null>(null);\n const textMask = useRef<TextMaskInputElement | null>(null);\n\n const [inputValue, setInputValue] = useState(value || defaultValue || '');\n // Не показываем сырое значение до применения маски\n const [textHidden, setTextHidden] = useState(true);\n\n const update = useCallback(\n (newValue = '') => {\n if (textMask.current && inputNode) {\n try {\n textMask.current.update(newValue);\n } catch (e) {\n // ignore masking errors\n }\n\n setInputValue(inputNode.value);\n }\n },\n [inputNode],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n update(event.target.value);\n\n if (onChange) {\n onChange(event, {\n value: event.target.value,\n });\n }\n },\n [onChange, update],\n );\n\n const handleClear = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n update('');\n if (onClear) onClear(event);\n },\n [onClear, update],\n );\n\n useEffect(() => {\n if (inputNode) {\n textMask.current = createTextMaskInputElement({\n mask,\n inputElement: inputNode,\n pipe: onBeforeDisplay,\n guide: false,\n keepCharPositions,\n showMask: false,\n placeholderChar: PLACEHOLDER_CHAR,\n rawValue: '',\n currentCaretPosition: 0,\n previousConformedValue: '',\n });\n }\n }, [onBeforeDisplay, mask, keepCharPositions, inputNode]);\n\n useEffect(() => {\n update(value || defaultValue);\n }, [value, update, defaultValue]);\n\n useEffect(() => {\n setTextHidden(false);\n }, []);\n\n return (\n <Input\n {...restProps}\n className={cn(className, { [styles.textHidden]: textHidden })}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClear}\n ref={mergeRefs([ref, setInputNode])}\n />\n );\n },\n);\n\nMaskedInput.displayName = 'MaskedInput';\n"],"names":[],"mappings":"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"}
|
package/modern/index.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/moderncssm';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/moderncssm';
|
|
3
3
|
declare type Mask = Array<string | RegExp>;
|
|
4
4
|
export declare type TextMaskConfig = {
|
|
5
5
|
currentCaretPosition: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { ChangeEvent
|
|
1
|
+
{"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, {\n type ChangeEvent,\n type MouseEvent,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport mergeRefs from 'react-merge-refs';\nimport cn from 'classnames';\nimport { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';\n\nimport { Input, type InputProps } from '@alfalab/core-components-input';\n\nimport styles from './index.module.css';\n\n// TODO: заставить rollup добавлять кастомные декларации в сборку\ntype Mask = Array<string | RegExp>;\nexport type TextMaskConfig = {\n currentCaretPosition: number;\n rawValue: string;\n previousConformedValue: string;\n mask?: Mask | ((rawValue: string) => Mask);\n guide?: boolean;\n showMask?: boolean;\n placeholderChar?: string;\n keepCharPositions?: boolean;\n pipe?: (\n conformedValue: string,\n config: TextMaskConfig,\n ) => false | string | { value: string; indexesOfPipedChars: number[] };\n};\n\nexport type MaskedInputProps = InputProps & {\n /**\n * Маска для поля ввода\n * https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md#mask-array\n */\n mask?: TextMaskConfig['mask'];\n\n /**\n * Управляет поведением компонента при удалении символов\n */\n keepCharPositions?: TextMaskConfig['keepCharPositions'];\n\n /**\n * Дает возможность изменить значение поля перед рендером\n */\n onBeforeDisplay?: TextMaskConfig['pipe'];\n};\n\n// Символ плейсхолдера не может входить в маску, поэтому вместо пробела используется \\u2000\nexport const PLACEHOLDER_CHAR = '\\u2000';\n\nexport const MaskedInput = React.forwardRef<HTMLInputElement, MaskedInputProps>(\n (\n {\n mask,\n keepCharPositions = false,\n value,\n defaultValue,\n className,\n onBeforeDisplay,\n onChange,\n onClear,\n ...restProps\n },\n ref,\n ) => {\n const [inputNode, setInputNode] = useState<HTMLInputElement | null>(null);\n const textMask = useRef<TextMaskInputElement | null>(null);\n\n const [inputValue, setInputValue] = useState(value || defaultValue || '');\n // Не показываем сырое значение до применения маски\n const [textHidden, setTextHidden] = useState(true);\n\n const update = useCallback(\n (newValue = '') => {\n if (textMask.current && inputNode) {\n try {\n textMask.current.update(newValue);\n } catch (e) {\n // ignore masking errors\n }\n\n setInputValue(inputNode.value);\n }\n },\n [inputNode],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n update(event.target.value);\n\n if (onChange) {\n onChange(event, {\n value: event.target.value,\n });\n }\n },\n [onChange, update],\n );\n\n const handleClear = useCallback(\n (event: MouseEvent<HTMLButtonElement>) => {\n update('');\n if (onClear) onClear(event);\n },\n [onClear, update],\n );\n\n useEffect(() => {\n if (inputNode) {\n textMask.current = createTextMaskInputElement({\n mask,\n inputElement: inputNode,\n pipe: onBeforeDisplay,\n guide: false,\n keepCharPositions,\n showMask: false,\n placeholderChar: PLACEHOLDER_CHAR,\n rawValue: '',\n currentCaretPosition: 0,\n previousConformedValue: '',\n });\n }\n }, [onBeforeDisplay, mask, keepCharPositions, inputNode]);\n\n useEffect(() => {\n update(value || defaultValue);\n }, [value, update, defaultValue]);\n\n useEffect(() => {\n setTextHidden(false);\n }, []);\n\n return (\n <Input\n {...restProps}\n className={cn(className, { [styles.textHidden]: textHidden })}\n value={inputValue}\n onChange={handleInputChange}\n onClear={handleClear}\n ref={mergeRefs([ref, setInputNode])}\n />\n );\n },\n);\n\nMaskedInput.displayName = 'MaskedInput';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-masked-input",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"main": "index.js",
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@alfalab/core-components-input": "^16.0.
|
|
13
|
+
"@alfalab/core-components-input": "^16.0.2",
|
|
14
14
|
"classnames": "^2.5.1",
|
|
15
15
|
"react-merge-refs": "^1.1.0",
|
|
16
16
|
"text-mask-core": "^5.1.2",
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"access": "public",
|
|
25
25
|
"directory": "dist"
|
|
26
26
|
},
|
|
27
|
-
"themesVersion": "14.1.
|
|
27
|
+
"themesVersion": "14.1.2",
|
|
28
28
|
"varsVersion": "10.1.0"
|
|
29
29
|
}
|
package/src/Component.tsx
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, {
|
|
2
|
+
type ChangeEvent,
|
|
3
|
+
type MouseEvent,
|
|
4
|
+
useCallback,
|
|
5
|
+
useEffect,
|
|
6
|
+
useRef,
|
|
7
|
+
useState,
|
|
8
|
+
} from 'react';
|
|
2
9
|
import mergeRefs from 'react-merge-refs';
|
|
3
10
|
import cn from 'classnames';
|
|
4
|
-
import { createTextMaskInputElement, TextMaskInputElement } from 'text-mask-core';
|
|
11
|
+
import { createTextMaskInputElement, type TextMaskInputElement } from 'text-mask-core';
|
|
5
12
|
|
|
6
|
-
import { Input, InputProps } from '@alfalab/core-components-input';
|
|
13
|
+
import { Input, type InputProps } from '@alfalab/core-components-input';
|
|
7
14
|
|
|
8
15
|
import styles from './index.module.css';
|
|
9
16
|
|