use-phone-input 1.0.1 → 1.0.3
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/README.md +5 -15
- package/_chunks/cjs/{chunk-6QTKG4JQ.cjs → chunk-BNJXO6Y2.cjs} +12 -12
- package/_chunks/cjs/{chunk-Z3L4BW7E.cjs → chunk-HVPFB36H.cjs} +1 -1
- package/_chunks/cjs/chunk-HVPFB36H.cjs.map +1 -0
- package/_chunks/cjs/chunk-QQ4PXBPF.cjs +56 -0
- package/_chunks/cjs/chunk-QQ4PXBPF.cjs.map +1 -0
- package/_chunks/cjs/{chunk-TTYRYB7E.cjs → chunk-TMM3RFL7.cjs} +29 -29
- package/_chunks/cjs/{chunk-XMDSXXFO.cjs → chunk-TOZDRR2U.cjs} +2 -2
- package/_chunks/cjs/chunk-TOZDRR2U.cjs.map +1 -0
- package/_chunks/cjs/{chunk-V55O3DL5.cjs → chunk-Y6MM2SKH.cjs} +19 -29
- package/_chunks/cjs/chunk-Y6MM2SKH.cjs.map +1 -0
- package/_chunks/js/chunk-3SMH36OE.js +50 -0
- package/_chunks/js/chunk-3SMH36OE.js.map +1 -0
- package/_chunks/js/{chunk-LWRQEKTA.js → chunk-6O5MTMYZ.js} +1 -1
- package/_chunks/js/chunk-6O5MTMYZ.js.map +1 -0
- package/_chunks/js/{chunk-DCLYRG4P.js → chunk-A3SI5C2I.js} +2 -2
- package/_chunks/js/chunk-A3SI5C2I.js.map +1 -0
- package/_chunks/js/{chunk-SCT4B6F4.js → chunk-FVBNNAAU.js} +28 -28
- package/_chunks/js/{chunk-BPZLAFFZ.js → chunk-JBOKNAYN.js} +12 -12
- package/_chunks/js/{chunk-F6SB65OL.js → chunk-MV2NXZRX.js} +19 -29
- package/_chunks/js/chunk-MV2NXZRX.js.map +1 -0
- package/createPhoneNumberUtils/index.cjs +2 -2
- package/createPhoneNumberUtils/index.js +1 -1
- package/index.cjs +15 -15
- package/index.js +6 -6
- package/isPhoneNumberValid/index.cjs +2 -2
- package/isPhoneNumberValid/index.d.ts +1 -1
- package/isPhoneNumberValid/index.js +1 -1
- package/isPhoneNumberValidAsync/index.cjs +2 -2
- package/isPhoneNumberValidAsync/index.d.ts +1 -1
- package/isPhoneNumberValidAsync/index.js +1 -1
- package/package.json +1 -1
- package/phoneNumberUtils/index.cjs +2 -2
- package/phoneNumberUtils/index.js +1 -1
- package/phoneNumberValidationPatterns/index.cjs +2 -2
- package/phoneNumberValidationPatterns/index.js +1 -1
- package/types/index.d.ts +2 -1
- package/useInternationalPhoneInput/index.cjs +2 -2
- package/useInternationalPhoneInput/index.d.ts +3 -1
- package/useInternationalPhoneInput/index.js +1 -1
- package/_chunks/cjs/chunk-DVKYP35T.cjs +0 -36
- package/_chunks/cjs/chunk-DVKYP35T.cjs.map +0 -1
- package/_chunks/cjs/chunk-V55O3DL5.cjs.map +0 -1
- package/_chunks/cjs/chunk-XMDSXXFO.cjs.map +0 -1
- package/_chunks/cjs/chunk-Z3L4BW7E.cjs.map +0 -1
- package/_chunks/js/chunk-DCLYRG4P.js.map +0 -1
- package/_chunks/js/chunk-F6SB65OL.js.map +0 -1
- package/_chunks/js/chunk-H4P2ITTL.js +0 -30
- package/_chunks/js/chunk-H4P2ITTL.js.map +0 -1
- package/_chunks/js/chunk-LWRQEKTA.js.map +0 -1
- /package/_chunks/cjs/{chunk-6QTKG4JQ.cjs.map → chunk-BNJXO6Y2.cjs.map} +0 -0
- /package/_chunks/cjs/{chunk-TTYRYB7E.cjs.map → chunk-TMM3RFL7.cjs.map} +0 -0
- /package/_chunks/js/{chunk-SCT4B6F4.js.map → chunk-FVBNNAAU.js.map} +0 -0
- /package/_chunks/js/{chunk-BPZLAFFZ.js.map → chunk-JBOKNAYN.js.map} +0 -0
package/README.md
CHANGED
|
@@ -30,7 +30,6 @@ pnpm add use-phone-input
|
|
|
30
30
|
|
|
31
31
|
- [useInternationalPhoneInput](#useinternationalphoneinput)
|
|
32
32
|
- [createPhoneNumberUtils](#createphonenumberutils)
|
|
33
|
-
- [phoneNumberUtils](#phonenumberutils)
|
|
34
33
|
- [isPhoneNumberValid](#isphonenumbervalid)
|
|
35
34
|
- [isPhoneNumberValidAsync](#isphonenumbervalidasync)
|
|
36
35
|
|
|
@@ -90,6 +89,7 @@ const PhoneInput = () => {
|
|
|
90
89
|
setCountry(e.target.value);
|
|
91
90
|
}}
|
|
92
91
|
>
|
|
92
|
+
<option value=''>-</option>
|
|
93
93
|
{phoneNumberUtils.iso2List.map((iso2) => (
|
|
94
94
|
<option key={iso2} value={iso2}>
|
|
95
95
|
{iso2}
|
|
@@ -106,11 +106,11 @@ const PhoneInput = () => {
|
|
|
106
106
|
|
|
107
107
|
### createPhoneNumberUtils
|
|
108
108
|
|
|
109
|
-
Generate utils for specific list of countries, use it if you need to handle specific countries numbers, otherwise just use
|
|
109
|
+
Generate utils for specific list of countries, use it if you need to handle specific countries phone numbers, otherwise just use `phoneNumberUtils`, like in the example above
|
|
110
110
|
|
|
111
111
|
```ts
|
|
112
112
|
type PhoneNumberUtils = {
|
|
113
|
-
toPhoneNumber(value: string): PhoneNumber;
|
|
113
|
+
toPhoneNumber(value: string, estimatedIso2?: ISO2): PhoneNumber;
|
|
114
114
|
getCountryCode<T extends string>(
|
|
115
115
|
iso2: T
|
|
116
116
|
): T extends ISO2 ? string : undefined;
|
|
@@ -137,19 +137,9 @@ const phoneNumberUtils = createPhoneNumberUtils([CA, US]);
|
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|
|
140
|
-
### phoneNumberUtils
|
|
141
|
-
|
|
142
|
-
Utils for all countries
|
|
143
|
-
|
|
144
|
-
```ts
|
|
145
|
-
const phoneNumberUtils: PhoneNumberUtils;
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
140
|
### isPhoneNumberValid
|
|
151
141
|
|
|
152
|
-
|
|
142
|
+
Checks if the given international phone number is valid based on the provided phone verification patterns
|
|
153
143
|
|
|
154
144
|
```ts
|
|
155
145
|
const isPhoneNumberValid: (
|
|
@@ -177,7 +167,7 @@ isPhoneNumberValid({ CA, US }, value);
|
|
|
177
167
|
|
|
178
168
|
### isPhoneNumberValidAsync
|
|
179
169
|
|
|
180
|
-
|
|
170
|
+
Checks if a given international phone number is valid
|
|
181
171
|
|
|
182
172
|
> This method uses [dynamic import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) under the hood, use only if your builder supports it
|
|
183
173
|
|
|
@@ -2,40 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkOVCFPFUF_cjs = require('./chunk-OVCFPFUF.cjs');
|
|
4
4
|
var chunkCBBYCVXL_cjs = require('./chunk-CBBYCVXL.cjs');
|
|
5
|
-
var chunkMB4DLJXJ_cjs = require('./chunk-MB4DLJXJ.cjs');
|
|
6
5
|
var chunkMTSLQBSM_cjs = require('./chunk-MTSLQBSM.cjs');
|
|
6
|
+
var chunkMB4DLJXJ_cjs = require('./chunk-MB4DLJXJ.cjs');
|
|
7
7
|
var chunkLCQWIQ3J_cjs = require('./chunk-LCQWIQ3J.cjs');
|
|
8
8
|
var chunk6W4VJOEN_cjs = require('./chunk-6W4VJOEN.cjs');
|
|
9
9
|
var chunkTU5CEQRK_cjs = require('./chunk-TU5CEQRK.cjs');
|
|
10
10
|
var chunkTATWBDPL_cjs = require('./chunk-TATWBDPL.cjs');
|
|
11
11
|
var chunk5PLT62KZ_cjs = require('./chunk-5PLT62KZ.cjs');
|
|
12
12
|
var chunkHUREGWZX_cjs = require('./chunk-HUREGWZX.cjs');
|
|
13
|
-
var chunkEXKHPMOP_cjs = require('./chunk-EXKHPMOP.cjs');
|
|
14
13
|
var chunkWAAEVS7Y_cjs = require('./chunk-WAAEVS7Y.cjs');
|
|
14
|
+
var chunkEXKHPMOP_cjs = require('./chunk-EXKHPMOP.cjs');
|
|
15
15
|
var chunkCMBS4ALQ_cjs = require('./chunk-CMBS4ALQ.cjs');
|
|
16
16
|
var chunkJ7DEQTR7_cjs = require('./chunk-J7DEQTR7.cjs');
|
|
17
17
|
var chunkDDGPEWZZ_cjs = require('./chunk-DDGPEWZZ.cjs');
|
|
18
18
|
var chunkHCLR2ZL7_cjs = require('./chunk-HCLR2ZL7.cjs');
|
|
19
19
|
var chunkFRUF7AII_cjs = require('./chunk-FRUF7AII.cjs');
|
|
20
20
|
var chunkQAKR6VSY_cjs = require('./chunk-QAKR6VSY.cjs');
|
|
21
|
+
var chunk5XWAKIMO_cjs = require('./chunk-5XWAKIMO.cjs');
|
|
21
22
|
var chunkJT3EHOOK_cjs = require('./chunk-JT3EHOOK.cjs');
|
|
22
23
|
var chunkND44INTB_cjs = require('./chunk-ND44INTB.cjs');
|
|
23
|
-
var chunk5XWAKIMO_cjs = require('./chunk-5XWAKIMO.cjs');
|
|
24
24
|
var chunkC2S5TJSC_cjs = require('./chunk-C2S5TJSC.cjs');
|
|
25
25
|
var chunkXLKHNNBU_cjs = require('./chunk-XLKHNNBU.cjs');
|
|
26
26
|
var chunkOTREMAGY_cjs = require('./chunk-OTREMAGY.cjs');
|
|
27
27
|
var chunkLW6Y4JLR_cjs = require('./chunk-LW6Y4JLR.cjs');
|
|
28
28
|
var chunkQRVGX2UF_cjs = require('./chunk-QRVGX2UF.cjs');
|
|
29
29
|
var chunkZMREQEMC_cjs = require('./chunk-ZMREQEMC.cjs');
|
|
30
|
-
var chunk4GT6WLAE_cjs = require('./chunk-4GT6WLAE.cjs');
|
|
31
30
|
var chunkQCXWT6RR_cjs = require('./chunk-QCXWT6RR.cjs');
|
|
32
|
-
var
|
|
31
|
+
var chunk4GT6WLAE_cjs = require('./chunk-4GT6WLAE.cjs');
|
|
32
|
+
var chunk22SI5NON_cjs = require('./chunk-22SI5NON.cjs');
|
|
33
33
|
var chunkQVPNUFOW_cjs = require('./chunk-QVPNUFOW.cjs');
|
|
34
34
|
var chunkU56BZG3J_cjs = require('./chunk-U56BZG3J.cjs');
|
|
35
|
-
var chunkQRLLHRD3_cjs = require('./chunk-QRLLHRD3.cjs');
|
|
36
35
|
var chunkDV7YY3VE_cjs = require('./chunk-DV7YY3VE.cjs');
|
|
37
|
-
var
|
|
36
|
+
var chunkQRLLHRD3_cjs = require('./chunk-QRLLHRD3.cjs');
|
|
38
37
|
var chunkEEXZXI54_cjs = require('./chunk-EEXZXI54.cjs');
|
|
38
|
+
var chunkEHV7RTFN_cjs = require('./chunk-EHV7RTFN.cjs');
|
|
39
39
|
var chunkMYI5BVEI_cjs = require('./chunk-MYI5BVEI.cjs');
|
|
40
40
|
var chunkE6M5K4LG_cjs = require('./chunk-E6M5K4LG.cjs');
|
|
41
41
|
var chunkG4UAX5K5_cjs = require('./chunk-G4UAX5K5.cjs');
|
|
@@ -44,11 +44,11 @@ var chunkS2C34WII_cjs = require('./chunk-S2C34WII.cjs');
|
|
|
44
44
|
var chunkJEKVC32K_cjs = require('./chunk-JEKVC32K.cjs');
|
|
45
45
|
var chunkGWV7K2RN_cjs = require('./chunk-GWV7K2RN.cjs');
|
|
46
46
|
var chunk5INTZVO2_cjs = require('./chunk-5INTZVO2.cjs');
|
|
47
|
-
var
|
|
47
|
+
var chunkZLTWZTMJ_cjs = require('./chunk-ZLTWZTMJ.cjs');
|
|
48
48
|
var chunkEUOGKSQO_cjs = require('./chunk-EUOGKSQO.cjs');
|
|
49
49
|
var chunkLUJK4AZQ_cjs = require('./chunk-LUJK4AZQ.cjs');
|
|
50
|
-
var chunk2KX2E5U3_cjs = require('./chunk-2KX2E5U3.cjs');
|
|
51
50
|
var chunk4ZAQJY7Q_cjs = require('./chunk-4ZAQJY7Q.cjs');
|
|
51
|
+
var chunk2KX2E5U3_cjs = require('./chunk-2KX2E5U3.cjs');
|
|
52
52
|
var chunkMW3IXQFV_cjs = require('./chunk-MW3IXQFV.cjs');
|
|
53
53
|
var chunkEJY6WMPF_cjs = require('./chunk-EJY6WMPF.cjs');
|
|
54
54
|
var chunkUGRDMMYY_cjs = require('./chunk-UGRDMMYY.cjs');
|
|
@@ -109,8 +109,8 @@ var chunkFCDSGNES_cjs = require('./chunk-FCDSGNES.cjs');
|
|
|
109
109
|
var chunkN2ICDU5W_cjs = require('./chunk-N2ICDU5W.cjs');
|
|
110
110
|
var chunkNH43PRKC_cjs = require('./chunk-NH43PRKC.cjs');
|
|
111
111
|
var chunkADULHX3N_cjs = require('./chunk-ADULHX3N.cjs');
|
|
112
|
-
var chunk326T7P2B_cjs = require('./chunk-326T7P2B.cjs');
|
|
113
112
|
var chunk32QWLFAH_cjs = require('./chunk-32QWLFAH.cjs');
|
|
113
|
+
var chunk326T7P2B_cjs = require('./chunk-326T7P2B.cjs');
|
|
114
114
|
var chunkWTTFGRCC_cjs = require('./chunk-WTTFGRCC.cjs');
|
|
115
115
|
var chunkPWEYXSG2_cjs = require('./chunk-PWEYXSG2.cjs');
|
|
116
116
|
var chunkYP3NRNMG_cjs = require('./chunk-YP3NRNMG.cjs');
|
|
@@ -203,8 +203,8 @@ var chunkXHEN7PWN_cjs = require('./chunk-XHEN7PWN.cjs');
|
|
|
203
203
|
var chunkSF5CR2P6_cjs = require('./chunk-SF5CR2P6.cjs');
|
|
204
204
|
var chunkZRRFF3BP_cjs = require('./chunk-ZRRFF3BP.cjs');
|
|
205
205
|
var chunkC72AJ3QI_cjs = require('./chunk-C72AJ3QI.cjs');
|
|
206
|
-
var chunk23ANI6VC_cjs = require('./chunk-23ANI6VC.cjs');
|
|
207
206
|
var chunkAPAAV5OL_cjs = require('./chunk-APAAV5OL.cjs');
|
|
207
|
+
var chunk23ANI6VC_cjs = require('./chunk-23ANI6VC.cjs');
|
|
208
208
|
var chunkCKJ3SY6Z_cjs = require('./chunk-CKJ3SY6Z.cjs');
|
|
209
209
|
var chunkSD7G3BLT_cjs = require('./chunk-SD7G3BLT.cjs');
|
|
210
210
|
var chunkFJYDCWPI_cjs = require('./chunk-FJYDCWPI.cjs');
|
|
@@ -486,4 +486,4 @@ var phoneNumberValidationPatterns_default = phoneNumberValidationPatterns;
|
|
|
486
486
|
|
|
487
487
|
exports.phoneNumberValidationPatterns_default = phoneNumberValidationPatterns_default;
|
|
488
488
|
//# sourceMappingURL=out.js.map
|
|
489
|
-
//# sourceMappingURL=chunk-
|
|
489
|
+
//# sourceMappingURL=chunk-BNJXO6Y2.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/isPhoneNumberValid/index.ts"],"names":[],"mappings":";AAOA,IAAM,qBAAqB,CACzB,yBACA,EAAE,MAAM,eAAe,MACpB,CAAC,CAAC,QAAQ,wBAAwB,IAAI,EAAE,KAAK,cAAc;AAEhE,IAAO,6BAAQ","sourcesContent":["import { PhoneNumber } from '../types';\n\n/**\n * Checks if the given international phone number is valid based on the provided {@link phoneValidationPatterns validation patterns}.\n * @param phoneValidationPatterns - Object containing validation patterns for different countries, keyed by ISO2 country code.\n * @returns `true` if the phone number is valid, `false` otherwise.\n */\nconst isPhoneNumberValid = (\n phoneValidationPatterns: Record<string, RegExp>,\n { iso2, nationalNumber }: PhoneNumber\n) => !!iso2 && phoneValidationPatterns[iso2].test(nationalNumber);\n\nexport default isPhoneNumberValid;\n"]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var useConst = require('react-helpful-utils/useConst');
|
|
4
|
+
|
|
5
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
6
|
+
|
|
7
|
+
var useConst__default = /*#__PURE__*/_interopDefault(useConst);
|
|
8
|
+
|
|
9
|
+
// src/useInternationalPhoneInput/index.ts
|
|
10
|
+
var useInternationalPhoneInput = (utils, value, onChange) => {
|
|
11
|
+
const data = useConst__default.default(() => {
|
|
12
|
+
let estimatedIso2;
|
|
13
|
+
return [
|
|
14
|
+
value,
|
|
15
|
+
onChange,
|
|
16
|
+
(e) => {
|
|
17
|
+
const prevValue = data[0];
|
|
18
|
+
const nextValue = utils.toPhoneNumber(e.target.value, estimatedIso2);
|
|
19
|
+
if (prevValue.formattedValue != nextValue.formattedValue) {
|
|
20
|
+
if (estimatedIso2 && estimatedIso2 != nextValue.iso2) {
|
|
21
|
+
estimatedIso2 = void 0;
|
|
22
|
+
}
|
|
23
|
+
data[1](nextValue);
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
(iso2) => {
|
|
27
|
+
const prevValue = data[0];
|
|
28
|
+
if (iso2 != prevValue.iso2) {
|
|
29
|
+
estimatedIso2 = iso2;
|
|
30
|
+
const nextValue = utils.toPhoneNumber(
|
|
31
|
+
utils.getCountryCode(iso2) || "",
|
|
32
|
+
estimatedIso2
|
|
33
|
+
);
|
|
34
|
+
if (prevValue.formattedValue != nextValue.formattedValue) {
|
|
35
|
+
data[1](nextValue);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
});
|
|
41
|
+
data[0] = value;
|
|
42
|
+
data[1] = onChange;
|
|
43
|
+
return {
|
|
44
|
+
inputProps: {
|
|
45
|
+
type: "tel",
|
|
46
|
+
value: value.formattedValue,
|
|
47
|
+
onChange: data[2]
|
|
48
|
+
},
|
|
49
|
+
setCountry: data[3]
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
var useInternationalPhoneInput_default = useInternationalPhoneInput;
|
|
53
|
+
|
|
54
|
+
exports.useInternationalPhoneInput_default = useInternationalPhoneInput_default;
|
|
55
|
+
//# sourceMappingURL=out.js.map
|
|
56
|
+
//# sourceMappingURL=chunk-QQ4PXBPF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/useInternationalPhoneInput/index.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc;AA0CrB,IAAM,6BAA6B,CACjC,OACA,OACA,aACG;AACH,QAAM,OAAO,SAAoB,MAAM;AACrC,QAAI;AAEJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,CAAC,MAAM;AACL,cAAM,YAAY,KAAK,CAAC;AAExB,cAAM,YAAY,MAAM,cAAc,EAAE,OAAO,OAAO,aAAa;AAEnE,YAAI,UAAU,kBAAkB,UAAU,gBAAgB;AACxD,cAAI,iBAAiB,iBAAiB,UAAU,MAAM;AACpD,4BAAgB;AAAA,UAClB;AAEA,eAAK,CAAC,EAAE,SAAS;AAAA,QACnB;AAAA,MACF;AAAA,MACA,CAAC,SAAS;AACR,cAAM,YAAY,KAAK,CAAC;AAExB,YAAI,QAAQ,UAAU,MAAM;AAC1B,0BAAgB;AAEhB,gBAAM,YAAY,MAAM;AAAA,YACtB,MAAM,eAAe,IAAI,KAAK;AAAA,YAC9B;AAAA,UACF;AAEA,cAAI,UAAU,kBAAkB,UAAU,gBAAgB;AACxD,iBAAK,CAAC,EAAE,SAAS;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,OAAK,CAAC,IAAI;AAEV,OAAK,CAAC,IAAI;AAEV,SAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,UAAU,KAAK,CAAC;AAAA,IAClB;AAAA,IACA,YAAY,KAAK,CAAC;AAAA,EACpB;AACF;AAEA,IAAO,qCAAQ","sourcesContent":["import { DataTuple, PhoneNumberUtils, PhoneNumber } from '../types';\n\nimport useConst from 'react-helpful-utils/useConst';\nimport ISO2 from '../types/ISO2';\n\n/**\n * @example\n * ```jsx\n * import phoneNumberUtils from 'use-phone-input/phoneNumberUtils';\n * import useInternationalPhoneInput from 'use-phone-input/useInternationalPhoneInput';\n *\n * // use it if you want to have no prefix in formatted phone number\n * phoneNumberUtils.setPrefix('');\n *\n * const PhoneInput = () => {\n * const [phone, setPhone] = useState(phoneNumberUtils.toPhoneNumber(''));\n *\n * const { inputProps, setCountry } = useInternationalPhoneInput(\n * phoneNumberUtils,\n * phone,\n * setPhone\n * );\n *\n * return (\n * <div>\n * <select\n * value={phone.iso2}\n * onChange={(e) => {\n * setCountry(e.target.value);\n * }}\n * >\n * <option value=\"\">-</option>\n * {phoneNumberUtils.iso2List.map((iso2) => (\n * <option key={iso2} value={iso2}>\n * {iso2}\n * </option>\n * ))}\n * </select>\n * <input {...inputProps} />\n * </div>\n * );\n * };\n * ```\n */\nconst useInternationalPhoneInput = (\n utils: PhoneNumberUtils,\n value: PhoneNumber,\n onChange: (value: PhoneNumber) => void\n) => {\n const data = useConst<DataTuple>(() => {\n let estimatedIso2: ISO2 | undefined;\n\n return [\n value,\n onChange,\n (e) => {\n const prevValue = data[0];\n\n const nextValue = utils.toPhoneNumber(e.target.value, estimatedIso2);\n\n if (prevValue.formattedValue != nextValue.formattedValue) {\n if (estimatedIso2 && estimatedIso2 != nextValue.iso2) {\n estimatedIso2 = undefined;\n }\n\n data[1](nextValue);\n }\n },\n (iso2) => {\n const prevValue = data[0];\n\n if (iso2 != prevValue.iso2) {\n estimatedIso2 = iso2;\n\n const nextValue = utils.toPhoneNumber(\n utils.getCountryCode(iso2) || '',\n estimatedIso2\n );\n\n if (prevValue.formattedValue != nextValue.formattedValue) {\n data[1](nextValue);\n }\n }\n },\n ];\n });\n\n data[0] = value;\n\n data[1] = onChange;\n\n return {\n inputProps: {\n type: 'tel' as const,\n value: value.formattedValue,\n onChange: data[2],\n },\n setCountry: data[3],\n };\n};\n\nexport default useInternationalPhoneInput;\n"]}
|
|
@@ -74,13 +74,13 @@ var chunk3XYN3URS_cjs = require('./chunk-3XYN3URS.cjs');
|
|
|
74
74
|
var chunkFD45BIEU_cjs = require('./chunk-FD45BIEU.cjs');
|
|
75
75
|
var chunkSHXZXLOB_cjs = require('./chunk-SHXZXLOB.cjs');
|
|
76
76
|
var chunkLTKZRCX7_cjs = require('./chunk-LTKZRCX7.cjs');
|
|
77
|
-
var chunk76MG2AOC_cjs = require('./chunk-76MG2AOC.cjs');
|
|
78
77
|
var chunk5A3BVHMY_cjs = require('./chunk-5A3BVHMY.cjs');
|
|
78
|
+
var chunk76MG2AOC_cjs = require('./chunk-76MG2AOC.cjs');
|
|
79
79
|
var chunk6Y7OY3JB_cjs = require('./chunk-6Y7OY3JB.cjs');
|
|
80
80
|
var chunk7L5OB52R_cjs = require('./chunk-7L5OB52R.cjs');
|
|
81
81
|
var chunkVEB6WEB2_cjs = require('./chunk-VEB6WEB2.cjs');
|
|
82
|
-
var chunk3ZYA2DHX_cjs = require('./chunk-3ZYA2DHX.cjs');
|
|
83
82
|
var chunkGGOCMABE_cjs = require('./chunk-GGOCMABE.cjs');
|
|
83
|
+
var chunk3ZYA2DHX_cjs = require('./chunk-3ZYA2DHX.cjs');
|
|
84
84
|
var chunkXGW453JL_cjs = require('./chunk-XGW453JL.cjs');
|
|
85
85
|
var chunkHYL4S6RG_cjs = require('./chunk-HYL4S6RG.cjs');
|
|
86
86
|
var chunkK5HAKKAC_cjs = require('./chunk-K5HAKKAC.cjs');
|
|
@@ -96,24 +96,24 @@ var chunkI6OSXTRT_cjs = require('./chunk-I6OSXTRT.cjs');
|
|
|
96
96
|
var chunkTWLFFWM3_cjs = require('./chunk-TWLFFWM3.cjs');
|
|
97
97
|
var chunkREO7JCLY_cjs = require('./chunk-REO7JCLY.cjs');
|
|
98
98
|
var chunkJMX4AEI7_cjs = require('./chunk-JMX4AEI7.cjs');
|
|
99
|
-
var chunkRGNTZQ5R_cjs = require('./chunk-RGNTZQ5R.cjs');
|
|
100
99
|
var chunkIEGOHDJ6_cjs = require('./chunk-IEGOHDJ6.cjs');
|
|
100
|
+
var chunkRGNTZQ5R_cjs = require('./chunk-RGNTZQ5R.cjs');
|
|
101
101
|
var chunkRPS4VA3R_cjs = require('./chunk-RPS4VA3R.cjs');
|
|
102
102
|
var chunkXNAFPDBJ_cjs = require('./chunk-XNAFPDBJ.cjs');
|
|
103
103
|
var chunkKOZRD6UX_cjs = require('./chunk-KOZRD6UX.cjs');
|
|
104
104
|
var chunkLHAZGZBO_cjs = require('./chunk-LHAZGZBO.cjs');
|
|
105
|
-
var chunkS5F65TDB_cjs = require('./chunk-S5F65TDB.cjs');
|
|
106
105
|
var chunkVDYJRRTD_cjs = require('./chunk-VDYJRRTD.cjs');
|
|
106
|
+
var chunkS5F65TDB_cjs = require('./chunk-S5F65TDB.cjs');
|
|
107
107
|
var chunkSDXKUNDR_cjs = require('./chunk-SDXKUNDR.cjs');
|
|
108
108
|
var chunkHJYCU42L_cjs = require('./chunk-HJYCU42L.cjs');
|
|
109
|
-
var chunkE7WQZMDN_cjs = require('./chunk-E7WQZMDN.cjs');
|
|
110
109
|
var chunk4PORU7MD_cjs = require('./chunk-4PORU7MD.cjs');
|
|
111
110
|
var chunk6JLEHX7A_cjs = require('./chunk-6JLEHX7A.cjs');
|
|
111
|
+
var chunkE7WQZMDN_cjs = require('./chunk-E7WQZMDN.cjs');
|
|
112
112
|
var chunk7SKK4FNJ_cjs = require('./chunk-7SKK4FNJ.cjs');
|
|
113
113
|
var chunkNMHC6R7O_cjs = require('./chunk-NMHC6R7O.cjs');
|
|
114
114
|
var chunkPQUHRURZ_cjs = require('./chunk-PQUHRURZ.cjs');
|
|
115
|
-
var chunk4LM4LBGZ_cjs = require('./chunk-4LM4LBGZ.cjs');
|
|
116
115
|
var chunkRPNXYCV5_cjs = require('./chunk-RPNXYCV5.cjs');
|
|
116
|
+
var chunk4LM4LBGZ_cjs = require('./chunk-4LM4LBGZ.cjs');
|
|
117
117
|
var chunkWBY6GK6Q_cjs = require('./chunk-WBY6GK6Q.cjs');
|
|
118
118
|
var chunk6LHRBZM2_cjs = require('./chunk-6LHRBZM2.cjs');
|
|
119
119
|
var chunk4IKTPTW3_cjs = require('./chunk-4IKTPTW3.cjs');
|
|
@@ -124,56 +124,56 @@ var chunkTOCABKLR_cjs = require('./chunk-TOCABKLR.cjs');
|
|
|
124
124
|
var chunk2Z4OZUO2_cjs = require('./chunk-2Z4OZUO2.cjs');
|
|
125
125
|
var chunkY2ZY2CKZ_cjs = require('./chunk-Y2ZY2CKZ.cjs');
|
|
126
126
|
var chunk5FK446RT_cjs = require('./chunk-5FK446RT.cjs');
|
|
127
|
-
var chunkSS6IIHFX_cjs = require('./chunk-SS6IIHFX.cjs');
|
|
128
127
|
var chunkUU5VGYXH_cjs = require('./chunk-UU5VGYXH.cjs');
|
|
128
|
+
var chunkSS6IIHFX_cjs = require('./chunk-SS6IIHFX.cjs');
|
|
129
129
|
var chunkCEYTG3EQ_cjs = require('./chunk-CEYTG3EQ.cjs');
|
|
130
130
|
var chunkIOGVUBZ7_cjs = require('./chunk-IOGVUBZ7.cjs');
|
|
131
131
|
var chunkVAVYZR4W_cjs = require('./chunk-VAVYZR4W.cjs');
|
|
132
132
|
var chunk5LTNMA6V_cjs = require('./chunk-5LTNMA6V.cjs');
|
|
133
133
|
var chunkYR6CRVLB_cjs = require('./chunk-YR6CRVLB.cjs');
|
|
134
134
|
var chunk6PPYXEDX_cjs = require('./chunk-6PPYXEDX.cjs');
|
|
135
|
-
var chunkGBQO5M27_cjs = require('./chunk-GBQO5M27.cjs');
|
|
136
135
|
var chunkJUEJBFVX_cjs = require('./chunk-JUEJBFVX.cjs');
|
|
137
|
-
var
|
|
136
|
+
var chunkGBQO5M27_cjs = require('./chunk-GBQO5M27.cjs');
|
|
138
137
|
var chunk4IELLYG7_cjs = require('./chunk-4IELLYG7.cjs');
|
|
138
|
+
var chunkRSYN2HRC_cjs = require('./chunk-RSYN2HRC.cjs');
|
|
139
139
|
var chunkX7PPFHTJ_cjs = require('./chunk-X7PPFHTJ.cjs');
|
|
140
140
|
var chunkBU6FLKHX_cjs = require('./chunk-BU6FLKHX.cjs');
|
|
141
141
|
var chunk4MCYWISC_cjs = require('./chunk-4MCYWISC.cjs');
|
|
142
142
|
var chunkSVC5BLH3_cjs = require('./chunk-SVC5BLH3.cjs');
|
|
143
143
|
var chunk5MIJSN5I_cjs = require('./chunk-5MIJSN5I.cjs');
|
|
144
144
|
var chunkDDPYLW26_cjs = require('./chunk-DDPYLW26.cjs');
|
|
145
|
-
var
|
|
146
|
-
var chunkTTTTW34J_cjs = require('./chunk-TTTTW34J.cjs');
|
|
145
|
+
var chunkDF5HSNTT_cjs = require('./chunk-DF5HSNTT.cjs');
|
|
147
146
|
var chunkIPADRS4K_cjs = require('./chunk-IPADRS4K.cjs');
|
|
147
|
+
var chunkTTTTW34J_cjs = require('./chunk-TTTTW34J.cjs');
|
|
148
148
|
var chunk5G5CO5UE_cjs = require('./chunk-5G5CO5UE.cjs');
|
|
149
149
|
var chunkOQVZ7HZY_cjs = require('./chunk-OQVZ7HZY.cjs');
|
|
150
|
-
var chunkJ7L4BF6E_cjs = require('./chunk-J7L4BF6E.cjs');
|
|
151
150
|
var chunkTH5UCL7O_cjs = require('./chunk-TH5UCL7O.cjs');
|
|
151
|
+
var chunkJ7L4BF6E_cjs = require('./chunk-J7L4BF6E.cjs');
|
|
152
152
|
var chunkTAXZQDZG_cjs = require('./chunk-TAXZQDZG.cjs');
|
|
153
153
|
var chunkPVJ6YJMO_cjs = require('./chunk-PVJ6YJMO.cjs');
|
|
154
154
|
var chunkFXYT7UM2_cjs = require('./chunk-FXYT7UM2.cjs');
|
|
155
155
|
var chunk65SJ3OWX_cjs = require('./chunk-65SJ3OWX.cjs');
|
|
156
156
|
var chunkA7RCMWP7_cjs = require('./chunk-A7RCMWP7.cjs');
|
|
157
157
|
var chunk7QHIG5FV_cjs = require('./chunk-7QHIG5FV.cjs');
|
|
158
|
-
var chunkJ5HAHGYP_cjs = require('./chunk-J5HAHGYP.cjs');
|
|
159
158
|
var chunkLIRHCUQV_cjs = require('./chunk-LIRHCUQV.cjs');
|
|
160
|
-
var
|
|
159
|
+
var chunkJ5HAHGYP_cjs = require('./chunk-J5HAHGYP.cjs');
|
|
160
|
+
var chunkMH2TW6YG_cjs = require('./chunk-MH2TW6YG.cjs');
|
|
161
161
|
var chunkFFLRZJF5_cjs = require('./chunk-FFLRZJF5.cjs');
|
|
162
|
-
var chunk3LRABZFY_cjs = require('./chunk-3LRABZFY.cjs');
|
|
163
162
|
var chunk5G3MS4UT_cjs = require('./chunk-5G3MS4UT.cjs');
|
|
163
|
+
var chunk3LRABZFY_cjs = require('./chunk-3LRABZFY.cjs');
|
|
164
164
|
var chunkLJVLK3DV_cjs = require('./chunk-LJVLK3DV.cjs');
|
|
165
165
|
var chunk24AWGL5H_cjs = require('./chunk-24AWGL5H.cjs');
|
|
166
166
|
var chunkFOSBSHRV_cjs = require('./chunk-FOSBSHRV.cjs');
|
|
167
|
-
var chunkI22AC3TR_cjs = require('./chunk-I22AC3TR.cjs');
|
|
168
167
|
var chunkYCKNZLNB_cjs = require('./chunk-YCKNZLNB.cjs');
|
|
168
|
+
var chunkI22AC3TR_cjs = require('./chunk-I22AC3TR.cjs');
|
|
169
169
|
var chunkVE76XCJJ_cjs = require('./chunk-VE76XCJJ.cjs');
|
|
170
170
|
var chunkV3PL53TB_cjs = require('./chunk-V3PL53TB.cjs');
|
|
171
171
|
var chunkVN2FUZWA_cjs = require('./chunk-VN2FUZWA.cjs');
|
|
172
172
|
var chunkHVHKKSNY_cjs = require('./chunk-HVHKKSNY.cjs');
|
|
173
173
|
var chunkDKO5O2FC_cjs = require('./chunk-DKO5O2FC.cjs');
|
|
174
174
|
var chunkCEQPNPUV_cjs = require('./chunk-CEQPNPUV.cjs');
|
|
175
|
-
var chunkJMOK6BRA_cjs = require('./chunk-JMOK6BRA.cjs');
|
|
176
175
|
var chunkHTQDO3DZ_cjs = require('./chunk-HTQDO3DZ.cjs');
|
|
176
|
+
var chunkJMOK6BRA_cjs = require('./chunk-JMOK6BRA.cjs');
|
|
177
177
|
var chunk376GNAYD_cjs = require('./chunk-376GNAYD.cjs');
|
|
178
178
|
var chunkDEHG7OQW_cjs = require('./chunk-DEHG7OQW.cjs');
|
|
179
179
|
var chunk3VKNN3WJ_cjs = require('./chunk-3VKNN3WJ.cjs');
|
|
@@ -198,33 +198,33 @@ var chunkIPKE7YFV_cjs = require('./chunk-IPKE7YFV.cjs');
|
|
|
198
198
|
var chunk6UDIL3CX_cjs = require('./chunk-6UDIL3CX.cjs');
|
|
199
199
|
var chunkDPEZ7LPD_cjs = require('./chunk-DPEZ7LPD.cjs');
|
|
200
200
|
var chunkU24GIINJ_cjs = require('./chunk-U24GIINJ.cjs');
|
|
201
|
+
var chunkN7HJQCZB_cjs = require('./chunk-N7HJQCZB.cjs');
|
|
201
202
|
var chunkGTW6WOFY_cjs = require('./chunk-GTW6WOFY.cjs');
|
|
202
|
-
var chunk7WHS6XWN_cjs = require('./chunk-7WHS6XWN.cjs');
|
|
203
203
|
var chunk2M4YSY6H_cjs = require('./chunk-2M4YSY6H.cjs');
|
|
204
204
|
var chunkROMUNGBX_cjs = require('./chunk-ROMUNGBX.cjs');
|
|
205
205
|
var chunkRQTEA3WW_cjs = require('./chunk-RQTEA3WW.cjs');
|
|
206
206
|
var chunkWBTWTMF3_cjs = require('./chunk-WBTWTMF3.cjs');
|
|
207
|
-
var chunkPQRG76VP_cjs = require('./chunk-PQRG76VP.cjs');
|
|
208
207
|
var chunkHSP7XB6G_cjs = require('./chunk-HSP7XB6G.cjs');
|
|
208
|
+
var chunkPQRG76VP_cjs = require('./chunk-PQRG76VP.cjs');
|
|
209
209
|
var chunkLQCZJJBA_cjs = require('./chunk-LQCZJJBA.cjs');
|
|
210
|
-
var chunkV3F4LGWT_cjs = require('./chunk-V3F4LGWT.cjs');
|
|
211
210
|
var chunkRPS7DM7M_cjs = require('./chunk-RPS7DM7M.cjs');
|
|
211
|
+
var chunkV3F4LGWT_cjs = require('./chunk-V3F4LGWT.cjs');
|
|
212
212
|
var chunkX6VPI6AI_cjs = require('./chunk-X6VPI6AI.cjs');
|
|
213
213
|
var chunkN7LXYXVN_cjs = require('./chunk-N7LXYXVN.cjs');
|
|
214
214
|
var chunk2IOIZJCI_cjs = require('./chunk-2IOIZJCI.cjs');
|
|
215
215
|
var chunkTS27J4JV_cjs = require('./chunk-TS27J4JV.cjs');
|
|
216
|
-
var
|
|
217
|
-
var chunkC2DVHCMH_cjs = require('./chunk-C2DVHCMH.cjs');
|
|
216
|
+
var chunk7WHS6XWN_cjs = require('./chunk-7WHS6XWN.cjs');
|
|
218
217
|
var chunkNDTD2EIJ_cjs = require('./chunk-NDTD2EIJ.cjs');
|
|
218
|
+
var chunkC2DVHCMH_cjs = require('./chunk-C2DVHCMH.cjs');
|
|
219
219
|
var chunkDXV45EOG_cjs = require('./chunk-DXV45EOG.cjs');
|
|
220
|
-
var chunkANY42KAM_cjs = require('./chunk-ANY42KAM.cjs');
|
|
221
220
|
var chunkBPBF3ISY_cjs = require('./chunk-BPBF3ISY.cjs');
|
|
221
|
+
var chunkANY42KAM_cjs = require('./chunk-ANY42KAM.cjs');
|
|
222
222
|
var chunkI5MLEMJY_cjs = require('./chunk-I5MLEMJY.cjs');
|
|
223
223
|
var chunkQLGSRRUE_cjs = require('./chunk-QLGSRRUE.cjs');
|
|
224
224
|
var chunkDNJFKC4N_cjs = require('./chunk-DNJFKC4N.cjs');
|
|
225
225
|
var chunkR7FZPZAQ_cjs = require('./chunk-R7FZPZAQ.cjs');
|
|
226
|
-
var chunkCI5JWAMO_cjs = require('./chunk-CI5JWAMO.cjs');
|
|
227
226
|
var chunkPB7Y4CWZ_cjs = require('./chunk-PB7Y4CWZ.cjs');
|
|
227
|
+
var chunkCI5JWAMO_cjs = require('./chunk-CI5JWAMO.cjs');
|
|
228
228
|
var chunk46O2JQME_cjs = require('./chunk-46O2JQME.cjs');
|
|
229
229
|
var chunkM3PXYWLA_cjs = require('./chunk-M3PXYWLA.cjs');
|
|
230
230
|
var chunk73WEZJYZ_cjs = require('./chunk-73WEZJYZ.cjs');
|
|
@@ -232,17 +232,17 @@ var chunkQJCSEHL3_cjs = require('./chunk-QJCSEHL3.cjs');
|
|
|
232
232
|
var chunkJSX4JMXO_cjs = require('./chunk-JSX4JMXO.cjs');
|
|
233
233
|
var chunkPPWENMGT_cjs = require('./chunk-PPWENMGT.cjs');
|
|
234
234
|
var chunkNKAI6IUS_cjs = require('./chunk-NKAI6IUS.cjs');
|
|
235
|
-
var chunk3V364Y5Q_cjs = require('./chunk-3V364Y5Q.cjs');
|
|
236
235
|
var chunkGTTCPHSS_cjs = require('./chunk-GTTCPHSS.cjs');
|
|
236
|
+
var chunk3V364Y5Q_cjs = require('./chunk-3V364Y5Q.cjs');
|
|
237
|
+
var chunk2EQKUUCB_cjs = require('./chunk-2EQKUUCB.cjs');
|
|
237
238
|
var chunkDSQ3XOS7_cjs = require('./chunk-DSQ3XOS7.cjs');
|
|
238
239
|
var chunkEEIN55DQ_cjs = require('./chunk-EEIN55DQ.cjs');
|
|
239
|
-
var chunk2EQKUUCB_cjs = require('./chunk-2EQKUUCB.cjs');
|
|
240
240
|
var chunkSJ554GN7_cjs = require('./chunk-SJ554GN7.cjs');
|
|
241
|
-
var
|
|
241
|
+
var chunkY6MM2SKH_cjs = require('./chunk-Y6MM2SKH.cjs');
|
|
242
242
|
var chunkUJBPUSNZ_cjs = require('./chunk-UJBPUSNZ.cjs');
|
|
243
243
|
|
|
244
244
|
// src/phoneNumberUtils/index.ts
|
|
245
|
-
var phoneNumberUtils =
|
|
245
|
+
var phoneNumberUtils = chunkY6MM2SKH_cjs.createPhoneNumberUtils_default([
|
|
246
246
|
chunkGTTCPHSS_cjs.AF_default,
|
|
247
247
|
chunkEEIN55DQ_cjs.AL_default,
|
|
248
248
|
chunk376GNAYD_cjs.DZ_default,
|
|
@@ -487,4 +487,4 @@ var phoneNumberUtils_default = phoneNumberUtils;
|
|
|
487
487
|
|
|
488
488
|
exports.phoneNumberUtils_default = phoneNumberUtils_default;
|
|
489
489
|
//# sourceMappingURL=out.js.map
|
|
490
|
-
//# sourceMappingURL=chunk-
|
|
490
|
+
//# sourceMappingURL=chunk-TMM3RFL7.cjs.map
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
var isPhoneNumberValidAsync = async ({
|
|
5
5
|
iso2,
|
|
6
6
|
nationalNumber
|
|
7
|
-
}) => !!iso2 && (await import(`../../
|
|
7
|
+
}) => !!iso2 && (await import(`../../phoneNumberValidationPatterns/${iso2}/index.cjs`)).default.test(
|
|
8
8
|
nationalNumber
|
|
9
9
|
);
|
|
10
10
|
var isPhoneNumberValidAsync_default = isPhoneNumberValidAsync;
|
|
11
11
|
|
|
12
12
|
exports.isPhoneNumberValidAsync_default = isPhoneNumberValidAsync_default;
|
|
13
13
|
//# sourceMappingURL=out.js.map
|
|
14
|
-
//# sourceMappingURL=chunk-
|
|
14
|
+
//# sourceMappingURL=chunk-TOZDRR2U.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/isPhoneNumberValidAsync/index.ts"],"names":[],"mappings":";AAOA,IAAM,0BAA0B,OAAO;AAAA,EACrC;AAAA,EACA;AACF,MACE,CAAC,CAAC,SACD,MAAM,OAAO,oCAAoC,IAAI,KAAK,QAAQ;AAAA,EACjE;AACF;AAEF,IAAO,kCAAQ","sourcesContent":["import { PhoneNumber } from '../types';\n\n/**\n * Checks if the given international phone number is valid\n *\n * > **This method uses [dynamic import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) under the hood, use only if your builder supports it**\n */\nconst isPhoneNumberValidAsync = async ({\n iso2,\n nationalNumber,\n}: PhoneNumber): Promise<boolean> =>\n !!iso2 &&\n (await import(`../phoneNumberValidationPatterns/${iso2}`)).default.test(\n nationalNumber\n );\n\nexport default isPhoneNumberValidAsync;\n"]}
|
|
@@ -25,27 +25,19 @@ var createPhoneNumberUtils = (data, prefix = "+") => {
|
|
|
25
25
|
prefix = newPrefix;
|
|
26
26
|
},
|
|
27
27
|
getCountryCode: iso2DataMap.get.bind(iso2DataMap),
|
|
28
|
-
toPhoneNumber(value,
|
|
29
|
-
let isSame;
|
|
28
|
+
toPhoneNumber(value, estimatedIso2) {
|
|
30
29
|
let countries;
|
|
31
30
|
let countryCode = "";
|
|
32
31
|
const withPrefix = prefix && value.startsWith(prefix);
|
|
33
|
-
const prevValue = data2 && data2[0];
|
|
34
32
|
value = (withPrefix ? value.slice(prefix.length) : value).replace(
|
|
35
33
|
/\D/g,
|
|
36
34
|
""
|
|
37
35
|
);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
for (let i = Math.min(chunkIHCU6GJO_cjs.MAX_CALLING_CODE_LENGTH, value.length); i > 0; i--) {
|
|
44
|
-
countryCode = value.slice(0, i);
|
|
45
|
-
if (callingCodeDataMap.has(countryCode)) {
|
|
46
|
-
countries = callingCodeDataMap.get(countryCode);
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
36
|
+
for (let i = Math.min(chunkIHCU6GJO_cjs.MAX_CALLING_CODE_LENGTH, value.length); i > 0; i--) {
|
|
37
|
+
countryCode = value.slice(0, i);
|
|
38
|
+
if (callingCodeDataMap.has(countryCode)) {
|
|
39
|
+
countries = callingCodeDataMap.get(countryCode);
|
|
40
|
+
break;
|
|
49
41
|
}
|
|
50
42
|
}
|
|
51
43
|
let nationalNumber = value.slice(countryCode.length);
|
|
@@ -58,16 +50,22 @@ var createPhoneNumberUtils = (data, prefix = "+") => {
|
|
|
58
50
|
countryData = countries[0];
|
|
59
51
|
} else {
|
|
60
52
|
let mainCountry;
|
|
53
|
+
let estimatedCountry;
|
|
61
54
|
for (let i = 0; i < countriesCount; i++) {
|
|
62
55
|
const item = countries[i];
|
|
63
56
|
if (item.length % 2) {
|
|
57
|
+
if (item[item.length - 1].test(nationalNumber)) {
|
|
58
|
+
countryData = item;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
if (estimatedIso2 == item[1]) {
|
|
62
|
+
estimatedCountry = item;
|
|
63
|
+
}
|
|
64
|
+
} else {
|
|
64
65
|
mainCountry = item;
|
|
65
|
-
} else if (item[item.length - 1].test(nationalNumber)) {
|
|
66
|
-
countryData = item;
|
|
67
|
-
break;
|
|
68
66
|
}
|
|
69
67
|
}
|
|
70
|
-
countryData || (countryData = mainCountry || countries[countriesCount - 1]);
|
|
68
|
+
countryData || (countryData = estimatedCountry || mainCountry || countries[countriesCount - 1]);
|
|
71
69
|
}
|
|
72
70
|
const formatsEnd = countryData.length - countryData.length % 2;
|
|
73
71
|
iso2 = countryData[1];
|
|
@@ -75,8 +73,7 @@ var createPhoneNumberUtils = (data, prefix = "+") => {
|
|
|
75
73
|
0,
|
|
76
74
|
countryData[formatsEnd - 2]
|
|
77
75
|
);
|
|
78
|
-
|
|
79
|
-
if (nationalNumber && !isSame) {
|
|
76
|
+
if (nationalNumber) {
|
|
80
77
|
for (let i = 2; i < formatsEnd; i += 2) {
|
|
81
78
|
if (nationalNumber.length <= countryData[i]) {
|
|
82
79
|
const format = countryData[i + 1];
|
|
@@ -98,19 +95,12 @@ var createPhoneNumberUtils = (data, prefix = "+") => {
|
|
|
98
95
|
nationalNumber = nationalNumber.slice(0, chunkIHCU6GJO_cjs.MAX_NUMBER_LENGTH);
|
|
99
96
|
formattedValue += nationalNumber;
|
|
100
97
|
}
|
|
101
|
-
|
|
98
|
+
return {
|
|
102
99
|
countryCode,
|
|
103
100
|
iso2,
|
|
104
101
|
nationalNumber,
|
|
105
102
|
formattedValue
|
|
106
103
|
};
|
|
107
|
-
if (!data2) {
|
|
108
|
-
return nextValue;
|
|
109
|
-
}
|
|
110
|
-
if (!isSame) {
|
|
111
|
-
data2[0] = nextValue;
|
|
112
|
-
data2[1](nextValue);
|
|
113
|
-
}
|
|
114
104
|
}
|
|
115
105
|
};
|
|
116
106
|
};
|
|
@@ -118,4 +108,4 @@ var createPhoneNumberUtils_default = createPhoneNumberUtils;
|
|
|
118
108
|
|
|
119
109
|
exports.createPhoneNumberUtils_default = createPhoneNumberUtils_default;
|
|
120
110
|
//# sourceMappingURL=out.js.map
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-Y6MM2SKH.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/createPhoneNumberUtils/index.ts"],"names":["i"],"mappings":"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","sourcesContent":["import type { PhoneNumberUtils } from '../types';\nimport type PhoneNumberData from '../types/PhoneNumberData';\nimport type ISO2 from '../types/ISO2';\nimport {\n MASK_SYMBOL,\n MAX_CALLING_CODE_LENGTH,\n MAX_NUMBER_LENGTH,\n} from '../constants';\n\n/**\n * Generates utility functions for formatting, parsing, and managing international phone numbers\n * @param [prefix='+'] - Default prefix for country calling codes\n * @returns An object containing utility functions for phone number handling\n */\nconst createPhoneNumberUtils = (\n data: PhoneNumberData[],\n prefix = '+'\n): PhoneNumberUtils => {\n const callingCodeDataMap = new Map<string, PhoneNumberData[]>();\n\n const iso2DataMap = new Map<string, string>();\n\n const iso2List: ISO2[] = [];\n\n for (let i = 0; i < data.length; i++) {\n const item = data[i];\n\n const callingCode = String(item[0]);\n\n const iso2 = item[1];\n\n iso2List.push(iso2);\n\n iso2DataMap.set(iso2, callingCode);\n\n if (callingCodeDataMap.has(callingCode)) {\n callingCodeDataMap.get(callingCode)!.push(item);\n } else {\n callingCodeDataMap.set(callingCode, [item]);\n }\n }\n\n return {\n iso2List,\n setPrefix(newPrefix) {\n prefix = newPrefix;\n },\n getCountryCode: iso2DataMap.get.bind(iso2DataMap),\n toPhoneNumber(value, estimatedIso2) {\n let countries: PhoneNumberData[] | undefined;\n\n let countryCode: string = '';\n\n const withPrefix = prefix && value.startsWith(prefix);\n\n value = (withPrefix ? value.slice(prefix.length) : value).replace(\n /\\D/g,\n ''\n );\n\n for (\n let i = Math.min(MAX_CALLING_CODE_LENGTH, value.length);\n i > 0;\n i--\n ) {\n countryCode = value.slice(0, i);\n\n if (callingCodeDataMap.has(countryCode)) {\n countries = callingCodeDataMap.get(countryCode)!;\n\n break;\n }\n }\n\n let nationalNumber = value.slice(countryCode.length);\n\n let iso2: ISO2 | '' = '';\n\n let formattedValue =\n ((withPrefix || countryCode) && prefix) + countryCode;\n\n if (countries) {\n let countryData: PhoneNumberData;\n\n const countriesCount = countries.length;\n\n if (countriesCount == 1) {\n countryData = countries[0];\n } else {\n let mainCountry: PhoneNumberData | undefined;\n\n let estimatedCountry: PhoneNumberData | undefined;\n\n for (let i = 0; i < countriesCount; i++) {\n const item = countries[i];\n\n if (item.length % 2) {\n if ((item[item.length - 1] as RegExp).test(nationalNumber)) {\n countryData = item;\n\n break;\n }\n\n if (estimatedIso2 == item[1]) {\n estimatedCountry = item;\n }\n } else {\n mainCountry = item;\n }\n }\n\n countryData ||=\n estimatedCountry || mainCountry || countries[countriesCount - 1];\n }\n\n const formatsEnd = countryData.length - (countryData.length % 2);\n\n iso2 = countryData[1];\n\n nationalNumber = nationalNumber.slice(\n 0,\n countryData[formatsEnd - 2] as number\n );\n\n if (nationalNumber) {\n for (let i = 2; i < formatsEnd; i += 2) {\n if (nationalNumber.length <= (countryData[i] as number)) {\n const format = countryData[i + 1] as string;\n\n formattedValue += ' ';\n\n for (let i = 0, shift = 0; i < nationalNumber.length; i++) {\n const p = format[i + shift];\n\n if (p == MASK_SYMBOL) {\n formattedValue += nationalNumber[i];\n } else {\n formattedValue += p + nationalNumber[i];\n\n shift++;\n }\n }\n\n break;\n }\n }\n }\n } else {\n nationalNumber = nationalNumber.slice(0, MAX_NUMBER_LENGTH);\n\n formattedValue += nationalNumber;\n }\n\n return {\n countryCode,\n iso2,\n nationalNumber,\n formattedValue,\n };\n },\n };\n};\n\nexport default createPhoneNumberUtils;\n"]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import useConst from 'react-helpful-utils/useConst';
|
|
2
|
+
|
|
3
|
+
// src/useInternationalPhoneInput/index.ts
|
|
4
|
+
var useInternationalPhoneInput = (utils, value, onChange) => {
|
|
5
|
+
const data = useConst(() => {
|
|
6
|
+
let estimatedIso2;
|
|
7
|
+
return [
|
|
8
|
+
value,
|
|
9
|
+
onChange,
|
|
10
|
+
(e) => {
|
|
11
|
+
const prevValue = data[0];
|
|
12
|
+
const nextValue = utils.toPhoneNumber(e.target.value, estimatedIso2);
|
|
13
|
+
if (prevValue.formattedValue != nextValue.formattedValue) {
|
|
14
|
+
if (estimatedIso2 && estimatedIso2 != nextValue.iso2) {
|
|
15
|
+
estimatedIso2 = void 0;
|
|
16
|
+
}
|
|
17
|
+
data[1](nextValue);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
(iso2) => {
|
|
21
|
+
const prevValue = data[0];
|
|
22
|
+
if (iso2 != prevValue.iso2) {
|
|
23
|
+
estimatedIso2 = iso2;
|
|
24
|
+
const nextValue = utils.toPhoneNumber(
|
|
25
|
+
utils.getCountryCode(iso2) || "",
|
|
26
|
+
estimatedIso2
|
|
27
|
+
);
|
|
28
|
+
if (prevValue.formattedValue != nextValue.formattedValue) {
|
|
29
|
+
data[1](nextValue);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
];
|
|
34
|
+
});
|
|
35
|
+
data[0] = value;
|
|
36
|
+
data[1] = onChange;
|
|
37
|
+
return {
|
|
38
|
+
inputProps: {
|
|
39
|
+
type: "tel",
|
|
40
|
+
value: value.formattedValue,
|
|
41
|
+
onChange: data[2]
|
|
42
|
+
},
|
|
43
|
+
setCountry: data[3]
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
var useInternationalPhoneInput_default = useInternationalPhoneInput;
|
|
47
|
+
|
|
48
|
+
export { useInternationalPhoneInput_default };
|
|
49
|
+
//# sourceMappingURL=out.js.map
|
|
50
|
+
//# sourceMappingURL=chunk-3SMH36OE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/useInternationalPhoneInput/index.ts"],"names":[],"mappings":";AAEA,OAAO,cAAc;AA0CrB,IAAM,6BAA6B,CACjC,OACA,OACA,aACG;AACH,QAAM,OAAO,SAAoB,MAAM;AACrC,QAAI;AAEJ,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,CAAC,MAAM;AACL,cAAM,YAAY,KAAK,CAAC;AAExB,cAAM,YAAY,MAAM,cAAc,EAAE,OAAO,OAAO,aAAa;AAEnE,YAAI,UAAU,kBAAkB,UAAU,gBAAgB;AACxD,cAAI,iBAAiB,iBAAiB,UAAU,MAAM;AACpD,4BAAgB;AAAA,UAClB;AAEA,eAAK,CAAC,EAAE,SAAS;AAAA,QACnB;AAAA,MACF;AAAA,MACA,CAAC,SAAS;AACR,cAAM,YAAY,KAAK,CAAC;AAExB,YAAI,QAAQ,UAAU,MAAM;AAC1B,0BAAgB;AAEhB,gBAAM,YAAY,MAAM;AAAA,YACtB,MAAM,eAAe,IAAI,KAAK;AAAA,YAC9B;AAAA,UACF;AAEA,cAAI,UAAU,kBAAkB,UAAU,gBAAgB;AACxD,iBAAK,CAAC,EAAE,SAAS;AAAA,UACnB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,OAAK,CAAC,IAAI;AAEV,OAAK,CAAC,IAAI;AAEV,SAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM;AAAA,MACN,OAAO,MAAM;AAAA,MACb,UAAU,KAAK,CAAC;AAAA,IAClB;AAAA,IACA,YAAY,KAAK,CAAC;AAAA,EACpB;AACF;AAEA,IAAO,qCAAQ","sourcesContent":["import { DataTuple, PhoneNumberUtils, PhoneNumber } from '../types';\n\nimport useConst from 'react-helpful-utils/useConst';\nimport ISO2 from '../types/ISO2';\n\n/**\n * @example\n * ```jsx\n * import phoneNumberUtils from 'use-phone-input/phoneNumberUtils';\n * import useInternationalPhoneInput from 'use-phone-input/useInternationalPhoneInput';\n *\n * // use it if you want to have no prefix in formatted phone number\n * phoneNumberUtils.setPrefix('');\n *\n * const PhoneInput = () => {\n * const [phone, setPhone] = useState(phoneNumberUtils.toPhoneNumber(''));\n *\n * const { inputProps, setCountry } = useInternationalPhoneInput(\n * phoneNumberUtils,\n * phone,\n * setPhone\n * );\n *\n * return (\n * <div>\n * <select\n * value={phone.iso2}\n * onChange={(e) => {\n * setCountry(e.target.value);\n * }}\n * >\n * <option value=\"\">-</option>\n * {phoneNumberUtils.iso2List.map((iso2) => (\n * <option key={iso2} value={iso2}>\n * {iso2}\n * </option>\n * ))}\n * </select>\n * <input {...inputProps} />\n * </div>\n * );\n * };\n * ```\n */\nconst useInternationalPhoneInput = (\n utils: PhoneNumberUtils,\n value: PhoneNumber,\n onChange: (value: PhoneNumber) => void\n) => {\n const data = useConst<DataTuple>(() => {\n let estimatedIso2: ISO2 | undefined;\n\n return [\n value,\n onChange,\n (e) => {\n const prevValue = data[0];\n\n const nextValue = utils.toPhoneNumber(e.target.value, estimatedIso2);\n\n if (prevValue.formattedValue != nextValue.formattedValue) {\n if (estimatedIso2 && estimatedIso2 != nextValue.iso2) {\n estimatedIso2 = undefined;\n }\n\n data[1](nextValue);\n }\n },\n (iso2) => {\n const prevValue = data[0];\n\n if (iso2 != prevValue.iso2) {\n estimatedIso2 = iso2;\n\n const nextValue = utils.toPhoneNumber(\n utils.getCountryCode(iso2) || '',\n estimatedIso2\n );\n\n if (prevValue.formattedValue != nextValue.formattedValue) {\n data[1](nextValue);\n }\n }\n },\n ];\n });\n\n data[0] = value;\n\n data[1] = onChange;\n\n return {\n inputProps: {\n type: 'tel' as const,\n value: value.formattedValue,\n onChange: data[2],\n },\n setCountry: data[3],\n };\n};\n\nexport default useInternationalPhoneInput;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/isPhoneNumberValid/index.ts"],"names":[],"mappings":";AAOA,IAAM,qBAAqB,CACzB,yBACA,EAAE,MAAM,eAAe,MACpB,CAAC,CAAC,QAAQ,wBAAwB,IAAI,EAAE,KAAK,cAAc;AAEhE,IAAO,6BAAQ","sourcesContent":["import { PhoneNumber } from '../types';\n\n/**\n * Checks if the given international phone number is valid based on the provided {@link phoneValidationPatterns validation patterns}.\n * @param phoneValidationPatterns - Object containing validation patterns for different countries, keyed by ISO2 country code.\n * @returns `true` if the phone number is valid, `false` otherwise.\n */\nconst isPhoneNumberValid = (\n phoneValidationPatterns: Record<string, RegExp>,\n { iso2, nationalNumber }: PhoneNumber\n) => !!iso2 && phoneValidationPatterns[iso2].test(nationalNumber);\n\nexport default isPhoneNumberValid;\n"]}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
var isPhoneNumberValidAsync = async ({
|
|
3
3
|
iso2,
|
|
4
4
|
nationalNumber
|
|
5
|
-
}) => !!iso2 && (await import(`../../
|
|
5
|
+
}) => !!iso2 && (await import(`../../phoneNumberValidationPatterns/${iso2}/index.js`)).default.test(
|
|
6
6
|
nationalNumber
|
|
7
7
|
);
|
|
8
8
|
var isPhoneNumberValidAsync_default = isPhoneNumberValidAsync;
|
|
9
9
|
|
|
10
10
|
export { isPhoneNumberValidAsync_default };
|
|
11
11
|
//# sourceMappingURL=out.js.map
|
|
12
|
-
//# sourceMappingURL=chunk-
|
|
12
|
+
//# sourceMappingURL=chunk-A3SI5C2I.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/isPhoneNumberValidAsync/index.ts"],"names":[],"mappings":";AAOA,IAAM,0BAA0B,OAAO;AAAA,EACrC;AAAA,EACA;AACF,MACE,CAAC,CAAC,SACD,MAAM,OAAO,oCAAoC,IAAI,KAAK,QAAQ;AAAA,EACjE;AACF;AAEF,IAAO,kCAAQ","sourcesContent":["import { PhoneNumber } from '../types';\n\n/**\n * Checks if the given international phone number is valid\n *\n * > **This method uses [dynamic import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import) under the hood, use only if your builder supports it**\n */\nconst isPhoneNumberValidAsync = async ({\n iso2,\n nationalNumber,\n}: PhoneNumber): Promise<boolean> =>\n !!iso2 &&\n (await import(`../phoneNumberValidationPatterns/${iso2}`)).default.test(\n nationalNumber\n );\n\nexport default isPhoneNumberValidAsync;\n"]}
|