@servicetitan/form 38.3.2 → 38.4.1
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":"phone-number-input-a2.d.ts","sourceRoot":"","sources":["../../src/phone-number-input/phone-number-input-a2.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,EAAE,EAAe,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAiB,MAAM,uBAAuB,CAAC;AAG/D,KAAK,uBAAuB,GAAG,cAAc,GAAG;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"phone-number-input-a2.d.ts","sourceRoot":"","sources":["../../src/phone-number-input/phone-number-input-a2.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,EAAE,EAAe,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAiB,MAAM,uBAAuB,CAAC;AAG/D,KAAK,uBAAuB,GAAG,cAAc,GAAG;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CA6E1D,CAAC"}
|
|
@@ -6,7 +6,7 @@ import { CULTURE_TOKEN } from '@servicetitan/culture';
|
|
|
6
6
|
import { useOptionalDependencies } from '@servicetitan/react-ioc';
|
|
7
7
|
export const PhoneNumberInputA2 = (props)=>{
|
|
8
8
|
var _ref;
|
|
9
|
-
const { value, onChange, placeholder: propPlaceholder, culture: propCulture, sip, ...restProps } = props;
|
|
9
|
+
const { value, onChange, placeholder: propPlaceholder, culture: propCulture, sip, onFocus, onBlur, disabled, readOnly, ...restProps } = props;
|
|
10
10
|
const [injectedCulture] = useOptionalDependencies(CULTURE_TOKEN);
|
|
11
11
|
const culture = propCulture !== null && propCulture !== void 0 ? propCulture : injectedCulture;
|
|
12
12
|
const { SimplePhoneMask = '?9999999999', SimplePhonePlaceholder = '' } = (_ref = culture === null || culture === void 0 ? void 0 : culture.PhoneFormat) !== null && _ref !== void 0 ? _ref : {};
|
|
@@ -38,6 +38,10 @@ export const PhoneNumberInputA2 = (props)=>{
|
|
|
38
38
|
...restProps,
|
|
39
39
|
value: displayValue,
|
|
40
40
|
onChange: handleChange,
|
|
41
|
+
onFocus: onFocus,
|
|
42
|
+
onBlur: onBlur,
|
|
43
|
+
disabled: disabled,
|
|
44
|
+
readOnly: readOnly,
|
|
41
45
|
type: "tel",
|
|
42
46
|
placeholder: placeholder
|
|
43
47
|
});
|
|
@@ -57,6 +61,10 @@ export const PhoneNumberInputA2 = (props)=>{
|
|
|
57
61
|
onChange: handleChange,
|
|
58
62
|
mask: mask,
|
|
59
63
|
maskChar: null,
|
|
64
|
+
onFocus: onFocus,
|
|
65
|
+
onBlur: onBlur,
|
|
66
|
+
disabled: disabled,
|
|
67
|
+
readOnly: readOnly,
|
|
60
68
|
children: renderTextField
|
|
61
69
|
});
|
|
62
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/phone-number-input/phone-number-input-a2.tsx"],"sourcesContent":["import { ChangeEvent, FC, useCallback } from 'react';\nimport ReactInputMask from 'react-input-mask';\n\nimport { TextField, TextFieldProps } from '@servicetitan/anvil2';\nimport { Culture, CULTURE_TOKEN } from '@servicetitan/culture';\nimport { useOptionalDependencies } from '@servicetitan/react-ioc';\n\ntype PhoneNumberInputA2Props = TextFieldProps & {\n sip?: boolean;\n culture?: Culture;\n};\n\nexport const PhoneNumberInputA2: FC<PhoneNumberInputA2Props> = props => {\n const {\n value,\n onChange,\n placeholder: propPlaceholder,\n culture: propCulture,\n sip,\n ...restProps\n } = props;\n\n const [injectedCulture] = useOptionalDependencies(CULTURE_TOKEN);\n const culture = propCulture ?? injectedCulture;\n const { SimplePhoneMask = '?9999999999', SimplePhonePlaceholder = '' } =\n culture?.PhoneFormat ?? {};\n\n const mask = SimplePhoneMask.replace(/\\?/g, '');\n const placeholder = propPlaceholder ?? SimplePhonePlaceholder;\n const displayValue = String(value ?? '').replace(/\\D/g, '');\n\n // Transform output value to digits-only (unmasked)\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n const digitsOnly = event.target.value.replace(/\\D/g, '');\n\n const unmaskedEvent = {\n ...event,\n target: { ...event.target, value: digitsOnly },\n currentTarget: { ...event.currentTarget, value: digitsOnly },\n } as ChangeEvent<HTMLInputElement>;\n\n onChange(unmaskedEvent);\n }\n },\n [onChange]\n );\n\n if (sip) {\n return (\n <TextField\n {...restProps}\n value={displayValue}\n onChange={handleChange}\n type=\"tel\"\n placeholder={placeholder}\n />\n );\n }\n\n const renderTextField = (inputProps: Record<string, unknown>) => {\n // Exclude 'size' as it conflicts with TextField's size prop type\n const { size: UNUSED_SIZE, ...filteredProps } = inputProps;\n return <TextField {...filteredProps} {...restProps} type=\"tel\" placeholder={placeholder} />;\n };\n\n return (\n <ReactInputMask
|
|
1
|
+
{"version":3,"sources":["../../src/phone-number-input/phone-number-input-a2.tsx"],"sourcesContent":["import { ChangeEvent, FC, useCallback } from 'react';\nimport ReactInputMask from 'react-input-mask';\n\nimport { TextField, TextFieldProps } from '@servicetitan/anvil2';\nimport { Culture, CULTURE_TOKEN } from '@servicetitan/culture';\nimport { useOptionalDependencies } from '@servicetitan/react-ioc';\n\ntype PhoneNumberInputA2Props = TextFieldProps & {\n sip?: boolean;\n culture?: Culture;\n};\n\nexport const PhoneNumberInputA2: FC<PhoneNumberInputA2Props> = props => {\n const {\n value,\n onChange,\n placeholder: propPlaceholder,\n culture: propCulture,\n sip,\n onFocus,\n onBlur,\n disabled,\n readOnly,\n ...restProps\n } = props;\n\n const [injectedCulture] = useOptionalDependencies(CULTURE_TOKEN);\n const culture = propCulture ?? injectedCulture;\n const { SimplePhoneMask = '?9999999999', SimplePhonePlaceholder = '' } =\n culture?.PhoneFormat ?? {};\n\n const mask = SimplePhoneMask.replace(/\\?/g, '');\n const placeholder = propPlaceholder ?? SimplePhonePlaceholder;\n const displayValue = String(value ?? '').replace(/\\D/g, '');\n\n // Transform output value to digits-only (unmasked)\n const handleChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n if (onChange) {\n const digitsOnly = event.target.value.replace(/\\D/g, '');\n\n const unmaskedEvent = {\n ...event,\n target: { ...event.target, value: digitsOnly },\n currentTarget: { ...event.currentTarget, value: digitsOnly },\n } as ChangeEvent<HTMLInputElement>;\n\n onChange(unmaskedEvent);\n }\n },\n [onChange]\n );\n\n if (sip) {\n return (\n <TextField\n {...restProps}\n value={displayValue}\n onChange={handleChange}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={disabled}\n readOnly={readOnly}\n type=\"tel\"\n placeholder={placeholder}\n />\n );\n }\n\n const renderTextField = (inputProps: Record<string, unknown>) => {\n // Exclude 'size' as it conflicts with TextField's size prop type\n const { size: UNUSED_SIZE, ...filteredProps } = inputProps;\n return <TextField {...filteredProps} {...restProps} type=\"tel\" placeholder={placeholder} />;\n };\n\n return (\n <ReactInputMask\n value={displayValue}\n onChange={handleChange}\n mask={mask}\n maskChar={null}\n onFocus={onFocus}\n onBlur={onBlur}\n disabled={disabled}\n readOnly={readOnly}\n >\n {renderTextField as any}\n </ReactInputMask>\n );\n};\n"],"names":["useCallback","ReactInputMask","TextField","CULTURE_TOKEN","useOptionalDependencies","PhoneNumberInputA2","props","value","onChange","placeholder","propPlaceholder","culture","propCulture","sip","onFocus","onBlur","disabled","readOnly","restProps","injectedCulture","SimplePhoneMask","SimplePhonePlaceholder","PhoneFormat","mask","replace","displayValue","String","handleChange","event","digitsOnly","target","unmaskedEvent","currentTarget","type","renderTextField","inputProps","size","UNUSED_SIZE","filteredProps","maskChar"],"mappings":";AAAA,SAA0BA,WAAW,QAAQ,QAAQ;AACrD,OAAOC,oBAAoB,mBAAmB;AAE9C,SAASC,SAAS,QAAwB,uBAAuB;AACjE,SAAkBC,aAAa,QAAQ,wBAAwB;AAC/D,SAASC,uBAAuB,QAAQ,0BAA0B;AAOlE,OAAO,MAAMC,qBAAkDC,CAAAA;;IAC3D,MAAM,EACFC,KAAK,EACLC,QAAQ,EACRC,aAAaC,eAAe,EAC5BC,SAASC,WAAW,EACpBC,GAAG,EACHC,OAAO,EACPC,MAAM,EACNC,QAAQ,EACRC,QAAQ,EACR,GAAGC,WACN,GAAGZ;IAEJ,MAAM,CAACa,gBAAgB,GAAGf,wBAAwBD;IAClD,MAAMQ,UAAUC,wBAAAA,yBAAAA,cAAeO;IAC/B,MAAM,EAAEC,kBAAkB,aAAa,EAAEC,yBAAyB,EAAE,EAAE,WAClEV,oBAAAA,8BAAAA,QAASW,WAAW,uCAAI,CAAC;IAE7B,MAAMC,OAAOH,gBAAgBI,OAAO,CAAC,OAAO;IAC5C,MAAMf,cAAcC,4BAAAA,6BAAAA,kBAAmBW;IACvC,MAAMI,eAAeC,OAAOnB,kBAAAA,mBAAAA,QAAS,IAAIiB,OAAO,CAAC,OAAO;IAExD,mDAAmD;IACnD,MAAMG,eAAe3B,YACjB,CAAC4B;QACG,IAAIpB,UAAU;YACV,MAAMqB,aAAaD,MAAME,MAAM,CAACvB,KAAK,CAACiB,OAAO,CAAC,OAAO;YAErD,MAAMO,gBAAgB;gBAClB,GAAGH,KAAK;gBACRE,QAAQ;oBAAE,GAAGF,MAAME,MAAM;oBAAEvB,OAAOsB;gBAAW;gBAC7CG,eAAe;oBAAE,GAAGJ,MAAMI,aAAa;oBAAEzB,OAAOsB;gBAAW;YAC/D;YAEArB,SAASuB;QACb;IACJ,GACA;QAACvB;KAAS;IAGd,IAAIK,KAAK;QACL,qBACI,KAACX;YACI,GAAGgB,SAAS;YACbX,OAAOkB;YACPjB,UAAUmB;YACVb,SAASA;YACTC,QAAQA;YACRC,UAAUA;YACVC,UAAUA;YACVgB,MAAK;YACLxB,aAAaA;;IAGzB;IAEA,MAAMyB,kBAAkB,CAACC;QACrB,iEAAiE;QACjE,MAAM,EAAEC,MAAMC,WAAW,EAAE,GAAGC,eAAe,GAAGH;QAChD,qBAAO,KAACjC;YAAW,GAAGoC,aAAa;YAAG,GAAGpB,SAAS;YAAEe,MAAK;YAAMxB,aAAaA;;IAChF;IAEA,qBACI,KAACR;QACGM,OAAOkB;QACPjB,UAAUmB;QACVJ,MAAMA;QACNgB,UAAU;QACVzB,SAASA;QACTC,QAAQA;QACRC,UAAUA;QACVC,UAAUA;kBAETiB;;AAGb,EAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/form",
|
|
3
|
-
"version": "38.
|
|
3
|
+
"version": "38.4.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"homepage": "https://docs.st.dev/docs/frontend/form",
|
|
6
6
|
"repository": {
|
|
@@ -18,10 +18,10 @@
|
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@progress/kendo-react-dateinputs": "~5.5.0",
|
|
20
20
|
"@servicetitan/anvil2": "^2.0.1",
|
|
21
|
-
"@servicetitan/confirm": "^38.
|
|
22
|
-
"@servicetitan/culture": "^38.
|
|
21
|
+
"@servicetitan/confirm": "^38.4.1",
|
|
22
|
+
"@servicetitan/culture": "^38.4.1",
|
|
23
23
|
"@servicetitan/design-system": "~14.5.1",
|
|
24
|
-
"@servicetitan/form-state": "^38.
|
|
24
|
+
"@servicetitan/form-state": "^38.4.1",
|
|
25
25
|
"@servicetitan/hash-browser-router": "^34.0.1",
|
|
26
26
|
"@servicetitan/react-ioc": "^34.0.1",
|
|
27
27
|
"@servicetitan/tokens": ">=12.2.1",
|
|
@@ -41,10 +41,10 @@
|
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@progress/kendo-react-dateinputs": "~5.5.0",
|
|
43
43
|
"@servicetitan/anvil2": ">=1.42.0",
|
|
44
|
-
"@servicetitan/confirm": "^38.
|
|
45
|
-
"@servicetitan/culture": "^38.
|
|
44
|
+
"@servicetitan/confirm": "^38.4.1",
|
|
45
|
+
"@servicetitan/culture": "^38.4.1",
|
|
46
46
|
"@servicetitan/design-system": ">=13.2.1",
|
|
47
|
-
"@servicetitan/form-state": "^38.
|
|
47
|
+
"@servicetitan/form-state": "^38.4.1",
|
|
48
48
|
"@servicetitan/react-ioc": ">21.0.0",
|
|
49
49
|
"@servicetitan/tokens": ">=12.2.1",
|
|
50
50
|
"accounting": "~0.4.1",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"less": true,
|
|
70
70
|
"webpack": false
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "a52024e5de9ff42a62abc334a25204b964312744"
|
|
73
73
|
}
|
|
@@ -17,6 +17,10 @@ export const PhoneNumberInputA2: FC<PhoneNumberInputA2Props> = props => {
|
|
|
17
17
|
placeholder: propPlaceholder,
|
|
18
18
|
culture: propCulture,
|
|
19
19
|
sip,
|
|
20
|
+
onFocus,
|
|
21
|
+
onBlur,
|
|
22
|
+
disabled,
|
|
23
|
+
readOnly,
|
|
20
24
|
...restProps
|
|
21
25
|
} = props;
|
|
22
26
|
|
|
@@ -53,6 +57,10 @@ export const PhoneNumberInputA2: FC<PhoneNumberInputA2Props> = props => {
|
|
|
53
57
|
{...restProps}
|
|
54
58
|
value={displayValue}
|
|
55
59
|
onChange={handleChange}
|
|
60
|
+
onFocus={onFocus}
|
|
61
|
+
onBlur={onBlur}
|
|
62
|
+
disabled={disabled}
|
|
63
|
+
readOnly={readOnly}
|
|
56
64
|
type="tel"
|
|
57
65
|
placeholder={placeholder}
|
|
58
66
|
/>
|
|
@@ -66,7 +74,16 @@ export const PhoneNumberInputA2: FC<PhoneNumberInputA2Props> = props => {
|
|
|
66
74
|
};
|
|
67
75
|
|
|
68
76
|
return (
|
|
69
|
-
<ReactInputMask
|
|
77
|
+
<ReactInputMask
|
|
78
|
+
value={displayValue}
|
|
79
|
+
onChange={handleChange}
|
|
80
|
+
mask={mask}
|
|
81
|
+
maskChar={null}
|
|
82
|
+
onFocus={onFocus}
|
|
83
|
+
onBlur={onBlur}
|
|
84
|
+
disabled={disabled}
|
|
85
|
+
readOnly={readOnly}
|
|
86
|
+
>
|
|
70
87
|
{renderTextField as any}
|
|
71
88
|
</ReactInputMask>
|
|
72
89
|
);
|