@hh.ru/magritte-ui-input 7.2.23 → 8.0.0
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/BaseInput.js +21 -10
- package/BaseInput.js.map +1 -1
- package/DateTimeInput.js +1 -1
- package/NumberInput.js +13 -4
- package/NumberInput.js.map +1 -1
- package/UncontrolledDateTimeInput.js +1 -1
- package/index.css +99 -99
- package/{index.esm-BffbEFkA.js → index.esm-BbHYsWD7.js} +1 -1
- package/{index.esm-BffbEFkA.js.map → index.esm-BbHYsWD7.js.map} +1 -1
- package/index.js +1 -1
- package/maskito-exports.js +1 -1
- package/numberFormatter.d.ts +5 -1
- package/numberFormatter.js +15 -15
- package/numberFormatter.js.map +1 -1
- package/package.json +3 -3
- package/types.d.ts +2 -2
- package/useDateTimeMask.js +1 -1
- package/useFocus.d.ts +2 -2
- package/useFocus.js +1 -1
- package/useFocus.js.map +1 -1
package/index.js
CHANGED
|
@@ -27,6 +27,6 @@ import './useFocus.js';
|
|
|
27
27
|
import '@hh.ru/magritte-ui-typography';
|
|
28
28
|
import '@hh.ru/magritte-common-number-formatter';
|
|
29
29
|
import './useDateTimeMask.js';
|
|
30
|
-
import './index.esm-
|
|
30
|
+
import './index.esm-BbHYsWD7.js';
|
|
31
31
|
import './useUncontrolledInput.js';
|
|
32
32
|
//# sourceMappingURL=index.js.map
|
package/maskito-exports.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import './index.css';
|
|
2
|
-
export { M as MASKITO_DEFAULT_OPTIONS, m as maskitoDateOptionsGenerator, a as maskitoDateTimeOptionsGenerator, b as maskitoTimeOptionsGenerator, u as useMaskito } from './index.esm-
|
|
2
|
+
export { M as MASKITO_DEFAULT_OPTIONS, m as maskitoDateOptionsGenerator, a as maskitoDateTimeOptionsGenerator, b as maskitoTimeOptionsGenerator, u as useMaskito } from './index.esm-BbHYsWD7.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
//# sourceMappingURL=maskito-exports.js.map
|
package/numberFormatter.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import { type FormatParams } from '@hh.ru/magritte-common-number-formatter';
|
|
2
2
|
import { InputFormatter } from '@hh.ru/magritte-ui-input/types';
|
|
3
|
-
|
|
3
|
+
type Params = FormatParams & {
|
|
4
|
+
maxLength?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const numberFormatterFactory: (params?: Params) => InputFormatter;
|
|
7
|
+
export {};
|
package/numberFormatter.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { defaults, format } from '@hh.ru/magritte-common-number-formatter';
|
|
3
3
|
|
|
4
|
-
const calculateDelimiters = (rawText, formatted, groupSeparator) => formatted.
|
|
4
|
+
const calculateDelimiters = (rawText, formatted, groupSeparator, caretPosition) => formatted.substring(0, caretPosition).split(groupSeparator).length -
|
|
5
|
+
rawText.trim().substring(0, caretPosition).split(groupSeparator).length;
|
|
5
6
|
const numberFormatterFactory = (passedParams = {}) => {
|
|
6
7
|
const filteredParams = Object.keys(passedParams).reduce((acc, key) => passedParams[key] === undefined
|
|
7
8
|
? acc
|
|
@@ -17,10 +18,16 @@ const numberFormatterFactory = (passedParams = {}) => {
|
|
|
17
18
|
decimalLength: params.decimalLength,
|
|
18
19
|
};
|
|
19
20
|
const decimalDelimitersRegExp = new RegExp(`[${params.decimalMark?.join('')}]`, 'g');
|
|
21
|
+
const allowedChars = [...params.decimalMark];
|
|
22
|
+
if (params.allowNegative) {
|
|
23
|
+
allowedChars.push('-');
|
|
24
|
+
}
|
|
25
|
+
const disallowedCharsRegExp = new RegExp(`[^\\d${allowedChars.join('')}]`, 'g');
|
|
20
26
|
return (prevValue, value, caretPosition) => {
|
|
21
|
-
const
|
|
27
|
+
const val = params.maxLength ? value.replace(disallowedCharsRegExp, '').substring(0, params.maxLength) : value;
|
|
28
|
+
const decimalDelimitersCount = val.match(decimalDelimitersRegExp)?.length || 0;
|
|
22
29
|
if (decimalDelimitersCount > 1) {
|
|
23
|
-
const lastChar = prevValue.charAt(
|
|
30
|
+
const lastChar = prevValue.charAt(val.length - 1);
|
|
24
31
|
const formattedValue = format(prevValue, params) + (params.decimalMark.includes(lastChar) ? lastChar : '');
|
|
25
32
|
const decimalDelimitersPosition = formattedValue.search(decimalDelimitersRegExp);
|
|
26
33
|
return {
|
|
@@ -29,21 +36,14 @@ const numberFormatterFactory = (passedParams = {}) => {
|
|
|
29
36
|
caretPosition: decimalDelimitersPosition + 1,
|
|
30
37
|
};
|
|
31
38
|
}
|
|
32
|
-
const lastChar =
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const outputValue = format(value, ouputFormatParams) + (params.decimalMark.includes(lastChar) ? lastChar : '');
|
|
37
|
-
// разница вы количестве разделителей разрядов между предыдушим и текущим значениями
|
|
38
|
-
const delimitersDelta = calculateDelimiters(formattedPrevValue, formattedValue, params.groupSeparator);
|
|
39
|
-
const prevValueFirstDelimiterPosition = formattedPrevValue.indexOf(params.groupSeparator) + 1;
|
|
40
|
-
// если каретка находится левее первого символа разделителя разрядов, то не применяем сдвиг с учетом
|
|
41
|
-
// разницы в количестве разделителей, т.к. сдвигаются только символы справа от первого разделителя
|
|
42
|
-
const caret = caretPosition < prevValueFirstDelimiterPosition ? caretPosition : caretPosition + delimitersDelta;
|
|
39
|
+
const lastChar = val.charAt(val.length - 1);
|
|
40
|
+
const formattedValue = format(val, params) + (params.decimalMark.includes(lastChar) ? lastChar : '');
|
|
41
|
+
const outputValue = format(val, ouputFormatParams) + (params.decimalMark.includes(lastChar) ? lastChar : '');
|
|
42
|
+
const caret = caretPosition + calculateDelimiters(value, formattedValue, params.groupSeparator, caretPosition);
|
|
43
43
|
return {
|
|
44
44
|
formattedValue,
|
|
45
45
|
outputValue,
|
|
46
|
-
caretPosition:
|
|
46
|
+
caretPosition: caret,
|
|
47
47
|
};
|
|
48
48
|
};
|
|
49
49
|
};
|
package/numberFormatter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberFormatter.js","sources":["../src/numberFormatter.ts"],"sourcesContent":["import { format, type FormatParams, defaults } from '@hh.ru/magritte-common-number-formatter';\nimport { InputFormatter } from '@hh.ru/magritte-ui-input/types';\n\nconst calculateDelimiters = (rawText: string
|
|
1
|
+
{"version":3,"file":"numberFormatter.js","sources":["../src/numberFormatter.ts"],"sourcesContent":["import { format, type FormatParams, defaults } from '@hh.ru/magritte-common-number-formatter';\nimport { InputFormatter } from '@hh.ru/magritte-ui-input/types';\n\nconst calculateDelimiters = (\n rawText: string,\n formatted: string,\n groupSeparator: string,\n caretPosition: number\n): number =>\n formatted.substring(0, caretPosition).split(groupSeparator).length -\n rawText.trim().substring(0, caretPosition).split(groupSeparator).length;\n\ntype Params = FormatParams & { maxLength?: number };\n\nexport const numberFormatterFactory: (params?: Params) => InputFormatter = (passedParams = {}) => {\n const filteredParams = (Object.keys(passedParams) as Array<keyof typeof passedParams>).reduce<Params>(\n (acc, key) =>\n passedParams[key] === undefined\n ? acc\n : {\n ...acc,\n [key]: passedParams[key],\n },\n {}\n );\n const params = { ...defaults, ...filteredParams };\n const ouputFormatParams = {\n groupSeparator: '',\n decimalMark: ['.', ...params.decimalMark],\n allowNegative: params.allowNegative,\n decimalLength: params.decimalLength,\n };\n const decimalDelimitersRegExp = new RegExp(`[${params.decimalMark?.join('')}]`, 'g');\n const allowedChars = [...params.decimalMark];\n if (params.allowNegative) {\n allowedChars.push('-');\n }\n const disallowedCharsRegExp = new RegExp(`[^\\\\d${allowedChars.join('')}]`, 'g');\n\n return (prevValue: string, value: string, caretPosition: number) => {\n const val = params.maxLength ? value.replace(disallowedCharsRegExp, '').substring(0, params.maxLength) : value;\n const decimalDelimitersCount = val.match(decimalDelimitersRegExp)?.length || 0;\n if (decimalDelimitersCount > 1) {\n const lastChar = prevValue.charAt(val.length - 1);\n const formattedValue = format(prevValue, params) + (params.decimalMark.includes(lastChar) ? lastChar : '');\n const decimalDelimitersPosition = formattedValue.search(decimalDelimitersRegExp);\n return {\n formattedValue,\n outputValue:\n format(prevValue, ouputFormatParams) + (params.decimalMark.includes(lastChar) ? lastChar : ''),\n caretPosition: decimalDelimitersPosition + 1,\n };\n }\n const lastChar = val.charAt(val.length - 1);\n const formattedValue = format(val, params) + (params.decimalMark.includes(lastChar) ? lastChar : '');\n const outputValue = format(val, ouputFormatParams) + (params.decimalMark.includes(lastChar) ? lastChar : '');\n const caret = caretPosition + calculateDelimiters(value, formattedValue, params.groupSeparator, caretPosition);\n\n return {\n formattedValue,\n outputValue,\n caretPosition: caret,\n };\n };\n};\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hh.ru/magritte-ui-input",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"sideEffects": [
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@hh.ru/magritte-common-focus-visible": "0.1.8",
|
|
27
27
|
"@hh.ru/magritte-common-mouse": "1.1.15",
|
|
28
|
-
"@hh.ru/magritte-common-number-formatter": "1.0.
|
|
28
|
+
"@hh.ru/magritte-common-number-formatter": "1.0.9",
|
|
29
29
|
"@hh.ru/magritte-common-text-selection": "0.1.7",
|
|
30
30
|
"@hh.ru/magritte-common-use-disabled": "1.0.12",
|
|
31
31
|
"@hh.ru/magritte-common-use-multiple-refs": "1.1.7",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "52463f1d519348dca8eb38014a272f152a30b42e"
|
|
49
49
|
}
|
package/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FocusEventHandler, ForwardedRef, MouseEventHandler, ReactNode } from 'react';
|
|
1
|
+
import type { ChangeEvent, FocusEventHandler, ForwardedRef, MouseEventHandler, ReactNode } from 'react';
|
|
2
2
|
import type { FormatParams } from '@hh.ru/magritte-common-number-formatter';
|
|
3
3
|
import type { IconWrapperComponentSize16, IconWrapperComponentSize24 } from '@hh.ru/magritte-ui-icon/iconTypes';
|
|
4
4
|
export type InputSize = 'medium' | 'large' | 'small';
|
|
@@ -20,7 +20,7 @@ export interface InputFormatterResult {
|
|
|
20
20
|
}
|
|
21
21
|
export interface ControlledProps {
|
|
22
22
|
/** Обработчик события изменения */
|
|
23
|
-
onChange: (value: string) => void;
|
|
23
|
+
onChange: (value: string, event?: ChangeEvent<HTMLInputElement>) => void;
|
|
24
24
|
/** Значение инпута */
|
|
25
25
|
value: string;
|
|
26
26
|
}
|
package/useDateTimeMask.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import './index.css';
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
|
-
import { M as MASKITO_DEFAULT_OPTIONS, a as maskitoDateTimeOptionsGenerator, m as maskitoDateOptionsGenerator, b as maskitoTimeOptionsGenerator, u as useMaskito } from './index.esm-
|
|
3
|
+
import { M as MASKITO_DEFAULT_OPTIONS, a as maskitoDateTimeOptionsGenerator, m as maskitoDateOptionsGenerator, b as maskitoTimeOptionsGenerator, u as useMaskito } from './index.esm-BbHYsWD7.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Округление времени (в формате 00:00) до ближайшего заданного шага
|
package/useFocus.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FocusEventHandler, ChangeEventHandler } from 'react';
|
|
2
|
-
export declare const useFocus: <T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement>(onChange: (value: string) => void, onFocus: FocusEventHandler<T> | undefined, onBlur: FocusEventHandler<T> | undefined) => {
|
|
1
|
+
import { FocusEventHandler, ChangeEventHandler, type ChangeEvent } from 'react';
|
|
2
|
+
export declare const useFocus: <T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement>(onChange: (value: string, event: ChangeEvent<T>) => void, onFocus: FocusEventHandler<T> | undefined, onBlur: FocusEventHandler<T> | undefined) => {
|
|
3
3
|
changeHandler: ChangeEventHandler<T>;
|
|
4
4
|
focusHandler: FocusEventHandler<T>;
|
|
5
5
|
blurHandler: FocusEventHandler<T>;
|
package/useFocus.js
CHANGED
|
@@ -4,7 +4,7 @@ import { useState, useCallback } from 'react';
|
|
|
4
4
|
const useFocus = (onChange, onFocus, onBlur) => {
|
|
5
5
|
const [isFocused, setFocused] = useState(false);
|
|
6
6
|
const changeHandler = useCallback((event) => {
|
|
7
|
-
onChange(event.target.value);
|
|
7
|
+
onChange(event.target.value, event);
|
|
8
8
|
}, [onChange]);
|
|
9
9
|
const focusHandler = useCallback((event) => {
|
|
10
10
|
setFocused(true);
|
package/useFocus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFocus.js","sources":["../src/useFocus.ts"],"sourcesContent":["import { useCallback, useState, FocusEventHandler, ChangeEventHandler } from 'react';\n\nexport const useFocus = <T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement>(\n onChange: (value: string) => void,\n onFocus: FocusEventHandler<T> | undefined,\n onBlur: FocusEventHandler<T> | undefined\n): {\n changeHandler: ChangeEventHandler<T>;\n focusHandler: FocusEventHandler<T>;\n blurHandler: FocusEventHandler<T>;\n isFocused: boolean;\n} => {\n const [isFocused, setFocused] = useState(false);\n\n const changeHandler = useCallback<ChangeEventHandler<T>>(\n (event) => {\n onChange(event.target.value);\n },\n [onChange]\n );\n\n const focusHandler = useCallback<FocusEventHandler<T>>(\n (event) => {\n setFocused(true);\n onFocus?.(event);\n },\n [setFocused, onFocus]\n );\n\n const blurHandler = useCallback<FocusEventHandler<T>>(\n (event) => {\n setFocused(false);\n onBlur?.(event);\n },\n [setFocused, onBlur]\n );\n\n return { changeHandler, focusHandler, blurHandler, isFocused };\n};\n"],"names":[],"mappings":";;AAEa,MAAA,QAAQ,GAAG,CACpB,
|
|
1
|
+
{"version":3,"file":"useFocus.js","sources":["../src/useFocus.ts"],"sourcesContent":["import { useCallback, useState, FocusEventHandler, ChangeEventHandler, type ChangeEvent } from 'react';\n\nexport const useFocus = <T extends HTMLInputElement | HTMLTextAreaElement = HTMLInputElement>(\n onChange: (value: string, event: ChangeEvent<T>) => void,\n onFocus: FocusEventHandler<T> | undefined,\n onBlur: FocusEventHandler<T> | undefined\n): {\n changeHandler: ChangeEventHandler<T>;\n focusHandler: FocusEventHandler<T>;\n blurHandler: FocusEventHandler<T>;\n isFocused: boolean;\n} => {\n const [isFocused, setFocused] = useState(false);\n\n const changeHandler = useCallback<ChangeEventHandler<T>>(\n (event) => {\n onChange(event.target.value, event);\n },\n [onChange]\n );\n\n const focusHandler = useCallback<FocusEventHandler<T>>(\n (event) => {\n setFocused(true);\n onFocus?.(event);\n },\n [setFocused, onFocus]\n );\n\n const blurHandler = useCallback<FocusEventHandler<T>>(\n (event) => {\n setFocused(false);\n onBlur?.(event);\n },\n [setFocused, onBlur]\n );\n\n return { changeHandler, focusHandler, blurHandler, isFocused };\n};\n"],"names":[],"mappings":";;AAEa,MAAA,QAAQ,GAAG,CACpB,QAAwD,EACxD,OAAyC,EACzC,MAAwC,KAMxC;IACA,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAEhD,IAAA,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,KAAK,KAAI;QACN,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxC,KAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;AAEF,IAAA,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,KAAK,KAAI;QACN,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,QAAA,OAAO,GAAG,KAAK,CAAC,CAAC;AACrB,KAAC,EACD,CAAC,UAAU,EAAE,OAAO,CAAC,CACxB,CAAC;AAEF,IAAA,MAAM,WAAW,GAAG,WAAW,CAC3B,CAAC,KAAK,KAAI;QACN,UAAU,CAAC,KAAK,CAAC,CAAC;AAClB,QAAA,MAAM,GAAG,KAAK,CAAC,CAAC;AACpB,KAAC,EACD,CAAC,UAAU,EAAE,MAAM,CAAC,CACvB,CAAC;IAEF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACnE;;;;"}
|