@pega/cosmos-react-core 7.0.0-build.10.13 → 7.0.0-build.10.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/PartInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"PartInput.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/PartInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,iBAAiB,EAAqC,MAAM,OAAO,CAAC;AAG9F,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAWpD,MAAM,WAAW,cAAe,SAAQ,UAAU,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,QAAA,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,GAAG,YAAY,CAoE9D,CAAC;AAEH,eAAe,SAAS,CAAC"}
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef, useCallback, useEffect } from 'react';
|
|
3
|
-
import { useConsolidatedRef } from '../../../hooks';
|
|
3
|
+
import { useConsolidatedRef, useEvent } from '../../../hooks';
|
|
4
4
|
import { BareInput } from './DateTime.styles';
|
|
5
|
+
const regexPattern = /[0-9]/;
|
|
5
6
|
const padNumberWithZeros = (maxLength, value = '') => {
|
|
6
7
|
if (value === '')
|
|
7
8
|
return '';
|
|
8
9
|
return value.padStart(Number.isFinite(maxLength) ? maxLength : 0, '0');
|
|
9
10
|
};
|
|
10
11
|
const PartInput = forwardRef(function PartInput({ value, onChange, readOnly, min = 0, max = Infinity, size = 2, maxLength = Infinity, padWithZeros = true, ...restProps }, ref) {
|
|
11
|
-
const onKeyDown = useCallback((ev) => {
|
|
12
|
-
if (['+', '-', 'e', 'E', '.', ','].includes(ev.key))
|
|
13
|
-
ev.preventDefault();
|
|
14
|
-
}, []);
|
|
15
12
|
const inputRef = useConsolidatedRef(ref);
|
|
16
13
|
useEffect(() => {
|
|
17
14
|
if (inputRef.current && !Number.isNaN(value)) {
|
|
18
15
|
inputRef.current.value = padNumberWithZeros(maxLength, value?.toString());
|
|
19
16
|
}
|
|
20
17
|
}, [value, inputRef.current]);
|
|
18
|
+
useEvent('beforeinput', (event) => {
|
|
19
|
+
if (event.data && !regexPattern.test(event.data)) {
|
|
20
|
+
event.preventDefault();
|
|
21
|
+
}
|
|
22
|
+
}, { target: inputRef });
|
|
21
23
|
const onInputChange = useCallback((ev) => {
|
|
22
24
|
const targetEl = ev.target;
|
|
23
25
|
if (targetEl.value.length > maxLength)
|
|
@@ -30,7 +32,7 @@ const PartInput = forwardRef(function PartInput({ value, onChange, readOnly, min
|
|
|
30
32
|
onChange?.(padWithZeros ? padNumberWithZeros(maxLength, targetElValue) : targetElValue);
|
|
31
33
|
}, [onChange]);
|
|
32
34
|
const defaultValue = value !== undefined ? padNumberWithZeros(maxLength, value?.toString()) : '';
|
|
33
|
-
return (_jsx(BareInput, { type: 'number', defaultValue: defaultValue, onBlur: onBlur,
|
|
35
|
+
return (_jsx(BareInput, { type: 'number', defaultValue: defaultValue, onBlur: onBlur, onChange: onInputChange, step: 1, min: min, max: max, maxLength: maxLength, readOnly: readOnly, ref: inputRef, size: size, ...restProps }));
|
|
34
36
|
});
|
|
35
37
|
export default PartInput;
|
|
36
38
|
//# sourceMappingURL=PartInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PartInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/PartInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"PartInput.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Input/PartInput.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,YAAY,GAAG,OAAO,CAAC;AAE7B,MAAM,kBAAkB,GAAG,CAAC,SAAiB,EAAE,QAAgB,EAAE,EAAE,EAAE;IACnE,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAE5B,OAAO,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzE,CAAC,CAAC;AAWF,MAAM,SAAS,GAAqD,UAAU,CAAC,SAAS,SAAS,CAC/F,EACE,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,GAAG,GAAG,CAAC,EACP,GAAG,GAAG,QAAQ,EACd,IAAI,GAAG,CAAC,EACR,SAAS,GAAG,QAAQ,EACpB,YAAY,GAAG,IAAI,EACnB,GAAG,SAAS,EACoB,EAClC,GAA0B;IAE1B,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAEzC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC5C,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;SAC3E;IACH,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAE9B,QAAQ,CACN,aAAa,EACb,CAAC,KAAiB,EAAE,EAAE;QACpB,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAChD,KAAK,CAAC,cAAc,EAAE,CAAC;SACxB;IACH,CAAC,EACD,EAAE,MAAM,EAAE,QAAQ,EAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,EAAiC,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC;QAC3B,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS;YAAE,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;aACtF,IAAI,IAAI,KAAK,SAAS;YACzB,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;IACxE,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,EAAgC,EAAE,EAAE;QACnC,MAAM,aAAa,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC1F,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjG,OAAO,CACL,KAAC,SAAS,IACR,IAAI,EAAC,QAAQ,EACb,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,CAAC,EACP,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE,IAAI,KACN,SAAS,GACb,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,SAAS,CAAC","sourcesContent":["import { forwardRef, useCallback, useEffect } from 'react';\nimport type { FocusEvent, FunctionComponent, PropsWithoutRef, Ref, ChangeEvent } from 'react';\n\nimport { useConsolidatedRef, useEvent } from '../../../hooks';\nimport type { ForwardProps, OmitStrict } from '../../../types';\nimport type { InputProps } from '../../Input/Input';\n\nimport { BareInput } from './DateTime.styles';\n\nconst regexPattern = /[0-9]/;\n\nconst padNumberWithZeros = (maxLength: number, value: string = '') => {\n if (value === '') return '';\n\n return value.padStart(Number.isFinite(maxLength) ? maxLength : 0, '0');\n};\nexport interface PartInputProps extends OmitStrict<InputProps, 'defaultValue' | 'value'> {\n value?: number;\n min?: number;\n max?: number;\n maxLength?: number;\n padWithZeros?: boolean;\n size?: number;\n onChange?: (value?: string) => void;\n}\n\nconst PartInput: FunctionComponent<PartInputProps & ForwardProps> = forwardRef(function PartInput(\n {\n value,\n onChange,\n readOnly,\n min = 0,\n max = Infinity,\n size = 2,\n maxLength = Infinity,\n padWithZeros = true,\n ...restProps\n }: PropsWithoutRef<PartInputProps>,\n ref: Ref<HTMLInputElement>\n) {\n const inputRef = useConsolidatedRef(ref);\n\n useEffect(() => {\n if (inputRef.current && !Number.isNaN(value)) {\n inputRef.current.value = padNumberWithZeros(maxLength, value?.toString());\n }\n }, [value, inputRef.current]);\n\n useEvent(\n 'beforeinput',\n (event: InputEvent) => {\n if (event.data && !regexPattern.test(event.data)) {\n event.preventDefault();\n }\n },\n { target: inputRef }\n );\n\n const onInputChange = useCallback(\n (ev: ChangeEvent<HTMLInputElement>) => {\n const targetEl = ev.target;\n if (targetEl.value.length > maxLength) targetEl.value = targetEl.value.slice(0, maxLength);\n else if (size !== maxLength)\n targetEl.style.width = `${Math.max(targetEl.value.length, size)}ch`;\n },\n [maxLength]\n );\n\n const onBlur = useCallback(\n (ev: FocusEvent<HTMLInputElement>) => {\n const targetElValue = ev.target.value;\n onChange?.(padWithZeros ? padNumberWithZeros(maxLength, targetElValue) : targetElValue);\n },\n [onChange]\n );\n\n const defaultValue = value !== undefined ? padNumberWithZeros(maxLength, value?.toString()) : '';\n\n return (\n <BareInput\n type='number'\n defaultValue={defaultValue}\n onBlur={onBlur}\n onChange={onInputChange}\n step={1}\n min={min}\n max={max}\n maxLength={maxLength}\n readOnly={readOnly}\n ref={inputRef}\n size={size}\n {...restProps}\n />\n );\n});\n\nexport default PartInput;\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-core",
|
|
3
|
-
"version": "7.0.0-build.10.
|
|
3
|
+
"version": "7.0.0-build.10.14",
|
|
4
4
|
"description": "Cosmos is a visual design system and UI component collection. Its goal is to empower application developers in their pursuit to create engaging and rewarding user experiences.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|