@servicetitan/form 38.3.1 → 38.4.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.
@@ -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,CA4D1D,CAAC"}
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 value={displayValue} onChange={handleChange} mask={mask} maskChar={null}>\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","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,EACH,GAAGC,WACN,GAAGR;IAEJ,MAAM,CAACS,gBAAgB,GAAGX,wBAAwBD;IAClD,MAAMQ,UAAUC,wBAAAA,yBAAAA,cAAeG;IAC/B,MAAM,EAAEC,kBAAkB,aAAa,EAAEC,yBAAyB,EAAE,EAAE,WAClEN,oBAAAA,8BAAAA,QAASO,WAAW,uCAAI,CAAC;IAE7B,MAAMC,OAAOH,gBAAgBI,OAAO,CAAC,OAAO;IAC5C,MAAMX,cAAcC,4BAAAA,6BAAAA,kBAAmBO;IACvC,MAAMI,eAAeC,OAAOf,kBAAAA,mBAAAA,QAAS,IAAIa,OAAO,CAAC,OAAO;IAExD,mDAAmD;IACnD,MAAMG,eAAevB,YACjB,CAACwB;QACG,IAAIhB,UAAU;YACV,MAAMiB,aAAaD,MAAME,MAAM,CAACnB,KAAK,CAACa,OAAO,CAAC,OAAO;YAErD,MAAMO,gBAAgB;gBAClB,GAAGH,KAAK;gBACRE,QAAQ;oBAAE,GAAGF,MAAME,MAAM;oBAAEnB,OAAOkB;gBAAW;gBAC7CG,eAAe;oBAAE,GAAGJ,MAAMI,aAAa;oBAAErB,OAAOkB;gBAAW;YAC/D;YAEAjB,SAASmB;QACb;IACJ,GACA;QAACnB;KAAS;IAGd,IAAIK,KAAK;QACL,qBACI,KAACX;YACI,GAAGY,SAAS;YACbP,OAAOc;YACPb,UAAUe;YACVM,MAAK;YACLpB,aAAaA;;IAGzB;IAEA,MAAMqB,kBAAkB,CAACC;QACrB,iEAAiE;QACjE,MAAM,EAAEC,MAAMC,WAAW,EAAE,GAAGC,eAAe,GAAGH;QAChD,qBAAO,KAAC7B;YAAW,GAAGgC,aAAa;YAAG,GAAGpB,SAAS;YAAEe,MAAK;YAAMpB,aAAaA;;IAChF;IAEA,qBACI,KAACR;QAAeM,OAAOc;QAAcb,UAAUe;QAAcJ,MAAMA;QAAMgB,UAAU;kBAC9EL;;AAGb,EAAE"}
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.1",
3
+ "version": "38.4.0",
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.3.1",
22
- "@servicetitan/culture": "^38.3.1",
21
+ "@servicetitan/confirm": "^38.4.0",
22
+ "@servicetitan/culture": "^38.4.0",
23
23
  "@servicetitan/design-system": "~14.5.1",
24
- "@servicetitan/form-state": "^38.3.1",
24
+ "@servicetitan/form-state": "^38.4.0",
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.3.1",
45
- "@servicetitan/culture": "^38.3.1",
44
+ "@servicetitan/confirm": "^38.4.0",
45
+ "@servicetitan/culture": "^38.4.0",
46
46
  "@servicetitan/design-system": ">=13.2.1",
47
- "@servicetitan/form-state": "^38.3.1",
47
+ "@servicetitan/form-state": "^38.4.0",
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": "c33341b3eafbc8851ad3c1c6a5ed913d8b555234"
72
+ "gitHead": "e9757a521f79780fefb41ae0b914721506490282"
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 value={displayValue} onChange={handleChange} mask={mask} maskChar={null}>
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
  );