@rpcbase/ui 0.217.0 → 0.219.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/dist/components/AddressAutocompleteInput/index.d.ts.map +1 -1
- package/dist/components/HourPickerField/index.d.ts.map +1 -1
- package/dist/index10.js +544 -489
- package/dist/index10.js.map +1 -1
- package/dist/index107.js +1 -1
- package/dist/index11.js +2 -2
- package/dist/index12.js +3 -3
- package/dist/index13.js +2 -2
- package/dist/index14.js +2 -2
- package/dist/index15.js +2 -2
- package/dist/index150.js +1 -1
- package/dist/index151.js +46 -5
- package/dist/index151.js.map +1 -1
- package/dist/index152.js +223 -62
- package/dist/index152.js.map +1 -1
- package/dist/index153.js +22 -2
- package/dist/index153.js.map +1 -1
- package/dist/index154.js +24 -363
- package/dist/index154.js.map +1 -1
- package/dist/index155.js +382 -243
- package/dist/index155.js.map +1 -1
- package/dist/index156.js +5 -60
- package/dist/index156.js.map +1 -1
- package/dist/index157.js +62 -40
- package/dist/index157.js.map +1 -1
- package/dist/index158.js +2 -170
- package/dist/index158.js.map +1 -1
- package/dist/index159.js +356 -102
- package/dist/index159.js.map +1 -1
- package/dist/index16.js +2 -2
- package/dist/index160.js +261 -24
- package/dist/index160.js.map +1 -1
- package/dist/index161.js +61 -8
- package/dist/index161.js.map +1 -1
- package/dist/index162.js +46 -4
- package/dist/index162.js.map +1 -1
- package/dist/index163.js +169 -5
- package/dist/index163.js.map +1 -1
- package/dist/index164.js +109 -4
- package/dist/index164.js.map +1 -1
- package/dist/index165.js +24 -466
- package/dist/index165.js.map +1 -1
- package/dist/index166.js +8 -186
- package/dist/index166.js.map +1 -1
- package/dist/index167.js +4 -107
- package/dist/index167.js.map +1 -1
- package/dist/index168.js +5 -262
- package/dist/index168.js.map +1 -1
- package/dist/index169.js +4 -9
- package/dist/index169.js.map +1 -1
- package/dist/index17.js +1 -1
- package/dist/index170.js +462 -38
- package/dist/index170.js.map +1 -1
- package/dist/index171.js +185 -4
- package/dist/index171.js.map +1 -1
- package/dist/index172.js +103 -42
- package/dist/index172.js.map +1 -1
- package/dist/index173.js +253 -220
- package/dist/index173.js.map +1 -1
- package/dist/index174.js +10 -22
- package/dist/index174.js.map +1 -1
- package/dist/index175.js +42 -24
- package/dist/index175.js.map +1 -1
- package/dist/index176.js +4 -400
- package/dist/index176.js.map +1 -1
- package/dist/index18.js +7 -7
- package/dist/index19.js +3 -3
- package/dist/index21.js +1 -1
- package/dist/index22.js +2 -2
- package/dist/index229.js +1 -1
- package/dist/index23.js +1 -1
- package/dist/index235.js +1 -1
- package/dist/index237.js +23 -12
- package/dist/index237.js.map +1 -1
- package/dist/index238.js +29 -155
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +5 -31
- package/dist/index239.js.map +1 -1
- package/dist/index24.js +1 -1
- package/dist/index240.js +13 -9
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +147 -41
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +29 -10
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +9 -44
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +41 -88
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +10 -85
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +41 -102
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +88 -45
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +85 -10
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +96 -28
- package/dist/index249.js.map +1 -1
- package/dist/index25.js +1 -1
- package/dist/index250.js +52 -8
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +10 -115
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +36 -16
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +8 -15
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +116 -3
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +16 -35
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +14 -19
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +3 -9
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +36 -8
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +19 -18
- package/dist/index259.js.map +1 -1
- package/dist/index260.js +9 -28
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +7 -15
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +19 -24
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +29 -29
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +17 -5
- package/dist/index264.js.map +1 -1
- package/dist/index268.js +5 -21
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +3 -5
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +24 -3
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +111 -22
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +14 -111
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +528 -14
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +111 -515
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +117 -109
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +20 -133
- package/dist/index276.js.map +1 -1
- package/dist/index28.js +2 -2
- package/dist/index29.js +3 -37
- package/dist/index29.js.map +1 -1
- package/dist/index294.js +69 -65
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +8 -68
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +14 -9
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +66 -14
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +64 -65
- package/dist/index298.js.map +1 -1
- package/dist/index3.js +92 -86
- package/dist/index3.js.map +1 -1
- package/dist/index30.js +125 -3
- package/dist/index30.js.map +1 -1
- package/dist/index31.js +227 -120
- package/dist/index31.js.map +1 -1
- package/dist/index32.js +21 -229
- package/dist/index32.js.map +1 -1
- package/dist/index33.js +50 -23
- package/dist/index33.js.map +1 -1
- package/dist/index34.js +21 -50
- package/dist/index34.js.map +1 -1
- package/dist/index35.js +126 -18
- package/dist/index35.js.map +1 -1
- package/dist/index36.js +205 -113
- package/dist/index36.js.map +1 -1
- package/dist/index37.js +74 -205
- package/dist/index37.js.map +1 -1
- package/dist/index38.js +115 -87
- package/dist/index38.js.map +1 -1
- package/dist/index39.js +5 -118
- package/dist/index39.js.map +1 -1
- package/dist/index4.js +2 -2
- package/dist/index40.js +819 -5
- package/dist/index40.js.map +1 -1
- package/dist/index41.js +56 -847
- package/dist/index41.js.map +1 -1
- package/dist/index42.js +37 -57
- package/dist/index42.js.map +1 -1
- package/dist/index45.js +1 -1
- package/dist/index46.js +1 -1
- package/dist/index49.js +1 -1
- package/dist/index5.js +2 -2
- package/dist/index50.js +1 -1
- package/dist/index52.js +1 -1
- package/dist/index56.js +2 -6
- package/dist/index56.js.map +1 -1
- package/dist/index57.js +2 -8
- package/dist/index57.js.map +1 -1
- package/dist/index58.js +3 -5
- package/dist/index58.js.map +1 -1
- package/dist/index59.js +47 -3
- package/dist/index59.js.map +1 -1
- package/dist/index6.js +5 -5
- package/dist/index60.js +48 -45
- package/dist/index60.js.map +1 -1
- package/dist/index61.js +7 -50
- package/dist/index61.js.map +1 -1
- package/dist/index62.js +14 -7
- package/dist/index62.js.map +1 -1
- package/dist/index63.js +133 -14
- package/dist/index63.js.map +1 -1
- package/dist/index64.js +10 -133
- package/dist/index64.js.map +1 -1
- package/dist/index65.js +216 -10
- package/dist/index65.js.map +1 -1
- package/dist/index66.js +12 -216
- package/dist/index66.js.map +1 -1
- package/dist/index67.js +47 -13
- package/dist/index67.js.map +1 -1
- package/dist/index68.js +47 -44
- package/dist/index68.js.map +1 -1
- package/dist/index69.js +4 -50
- package/dist/index69.js.map +1 -1
- package/dist/index7.js +2 -2
- package/dist/index70.js +6 -4
- package/dist/index70.js.map +1 -1
- package/dist/index71.js +28 -6
- package/dist/index71.js.map +1 -1
- package/dist/index72.js +50 -28
- package/dist/index72.js.map +1 -1
- package/dist/index73.js +9 -50
- package/dist/index73.js.map +1 -1
- package/dist/index74.js +2 -9
- package/dist/index74.js.map +1 -1
- package/dist/index75.js +2 -2
- package/dist/index76.js +6 -2
- package/dist/index76.js.map +1 -1
- package/dist/index77.js +8 -2
- package/dist/index77.js.map +1 -1
- package/dist/index78.js +6 -2
- package/dist/index78.js.map +1 -1
- package/dist/index8.js +3 -3
- package/dist/index9.js +1 -1
- package/package.json +3 -2
package/dist/index36.js
CHANGED
|
@@ -1,133 +1,225 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getCountryCallingCode as
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { MAX_DIAL_CODE_LENGTH as W, COMMON_IDD_PREFIXES as $, DEFAULT_COUNTRY as x, COUNTRY_DIAL_CODES as C } from "./index35.js";
|
|
2
|
+
import { getCountryCallingCode as p } from "./index39.js";
|
|
3
|
+
import { AsYouType as I } from "./index77.js";
|
|
4
|
+
import { validatePhoneNumberLength as D } from "./index78.js";
|
|
5
|
+
function g(t) {
|
|
6
|
+
return t.replace(/\D/g, "");
|
|
6
7
|
}
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
return null;
|
|
10
|
-
try {
|
|
11
|
-
const t = Array.isArray(e) ? e : e ? [e] : void 0;
|
|
12
|
-
return new Intl.DisplayNames(t, {
|
|
13
|
-
type: "region"
|
|
14
|
-
});
|
|
15
|
-
} catch {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
8
|
+
function P(t) {
|
|
9
|
+
return t ? t.length > W ? !1 : C.some((e) => e.startsWith(t)) : !0;
|
|
18
10
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
return
|
|
22
|
-
const a = s(n), o = t?.of(n) ?? r?.of(n) ?? n, i = r?.of(n) ?? o, g = D(n), l = Array.from(new Set([o, i, n.toUpperCase(), n.toLowerCase(), ...g].filter(Boolean)));
|
|
23
|
-
return {
|
|
24
|
-
value: n,
|
|
25
|
-
name: o,
|
|
26
|
-
dialCode: a,
|
|
27
|
-
label: `${o} (+${a})`,
|
|
28
|
-
flag: A(n),
|
|
29
|
-
searchableTokens: l,
|
|
30
|
-
normalizedSearchableTokens: l.map((p) => U(p))
|
|
31
|
-
};
|
|
32
|
-
}).sort((n, a) => {
|
|
33
|
-
const o = d(n.value), i = d(a.value);
|
|
34
|
-
return o !== i ? o - i : n.name.localeCompare(a.name);
|
|
35
|
-
});
|
|
11
|
+
const N = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
|
|
12
|
+
function T(t) {
|
|
13
|
+
return t.replace(N, "");
|
|
36
14
|
}
|
|
37
|
-
function
|
|
38
|
-
|
|
15
|
+
function q(t, e, s = {}) {
|
|
16
|
+
const {
|
|
17
|
+
force: u = !1
|
|
18
|
+
} = s, o = `+${e}`;
|
|
19
|
+
if (!t.startsWith(o) || !u)
|
|
20
|
+
return t;
|
|
21
|
+
const i = t.slice(o.length).trimStart();
|
|
22
|
+
if (i.startsWith("0"))
|
|
23
|
+
return t;
|
|
24
|
+
if (!i)
|
|
25
|
+
return `${o} 0`;
|
|
26
|
+
const [n, ...r] = i.split(" "), f = `0${n ?? ""}`, l = r.length > 0 ? ` ${r.join(" ")}` : "";
|
|
27
|
+
return `${o} ${f}${l}`.replace(/\s\s+/g, " ").trimEnd();
|
|
39
28
|
}
|
|
40
|
-
|
|
41
|
-
|
|
29
|
+
const O = {
|
|
30
|
+
GG: "GB",
|
|
31
|
+
JE: "GB",
|
|
32
|
+
IM: "GB"
|
|
33
|
+
};
|
|
34
|
+
function y(t) {
|
|
35
|
+
if (t)
|
|
36
|
+
return O[t] ?? t;
|
|
42
37
|
}
|
|
43
|
-
function
|
|
44
|
-
if (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
38
|
+
function _(t, e, s) {
|
|
39
|
+
if (!t || !s || (t.nationalNumber ?? "").length < 4)
|
|
40
|
+
return;
|
|
41
|
+
const o = t.countryCallingCode;
|
|
42
|
+
if (!o)
|
|
43
|
+
return;
|
|
44
|
+
const i = t.getMetadata, n = (typeof i == "function" ? i() : null)?.country_calling_codes?.[o];
|
|
45
|
+
if (!n || n.length === 0)
|
|
46
|
+
return;
|
|
47
|
+
const r = [];
|
|
48
|
+
for (const f of n) {
|
|
49
|
+
const l = y(f);
|
|
50
|
+
l && !r.includes(l) && r.push(l);
|
|
50
51
|
}
|
|
52
|
+
if (r.length !== 0)
|
|
53
|
+
return e && r.includes(e) ? e : r.includes(x) ? x : r[0];
|
|
51
54
|
}
|
|
52
|
-
function
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
function B(t, e, s, u) {
|
|
56
|
+
if (!t)
|
|
57
|
+
return !1;
|
|
58
|
+
if (!u)
|
|
59
|
+
return t.startsWith("0");
|
|
60
|
+
if (!s || !t.startsWith(s) || !t.slice(s.length).startsWith("0"))
|
|
61
|
+
return !1;
|
|
62
|
+
const o = t.slice(s.length + 1), i = e.startsWith(s) ? e.slice(s.length) : e;
|
|
63
|
+
return o === i;
|
|
58
64
|
}
|
|
59
|
-
function
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
flag: e.flag
|
|
65
|
-
};
|
|
65
|
+
function S(t) {
|
|
66
|
+
for (const e of $)
|
|
67
|
+
if (t.startsWith(e))
|
|
68
|
+
return t.slice(e.length);
|
|
69
|
+
return t;
|
|
66
70
|
}
|
|
67
|
-
function M(e) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
function A(e) {
|
|
76
|
-
const t = e?.toUpperCase();
|
|
77
|
-
if (!t || t.length !== 2 || /[^A-Z]/.test(t))
|
|
71
|
+
function M(t, e, s = {}) {
|
|
72
|
+
const {
|
|
73
|
+
allowJustPlus: u = !1,
|
|
74
|
+
removeNationalPrefix: o = !0,
|
|
75
|
+
previousValue: i
|
|
76
|
+
} = s, n = T(t).trim();
|
|
77
|
+
if (!n)
|
|
78
78
|
return "";
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
if (n === "+")
|
|
80
|
+
return u ? "+" : "";
|
|
81
|
+
if (n.startsWith("+")) {
|
|
82
|
+
const a = g(n);
|
|
83
|
+
if (!a)
|
|
84
|
+
return u ? "+" : "";
|
|
85
|
+
const d = S(a);
|
|
86
|
+
if (d !== a)
|
|
87
|
+
return d ? `+${d}` : u ? "+" : "";
|
|
88
|
+
if (o && e) {
|
|
89
|
+
const h = p(e);
|
|
90
|
+
if (a.startsWith(h) && a.slice(h.length).startsWith("0")) {
|
|
91
|
+
const E = a.slice(h.length + 1);
|
|
92
|
+
return E ? `+${h}${E}` : `+${h}`;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return `+${a}`;
|
|
96
|
+
}
|
|
97
|
+
const r = g(n);
|
|
98
|
+
if (!r)
|
|
99
|
+
return "";
|
|
100
|
+
const f = S(r);
|
|
101
|
+
if (f !== r)
|
|
102
|
+
return f ? `+${f}` : u ? "+" : "";
|
|
103
|
+
const l = typeof i == "string" ? i : "", m = l && l.startsWith("+") ? g(l) : "";
|
|
104
|
+
if (m && m.length > r.length && m.endsWith(r) && m.length - r.length <= W)
|
|
105
|
+
return `+${r}`;
|
|
106
|
+
if (r === "0")
|
|
107
|
+
return "0";
|
|
108
|
+
if (o && e && r.length > 1 && r.startsWith("0") && !r.startsWith("00")) {
|
|
109
|
+
const a = p(e), d = r.slice(1);
|
|
110
|
+
return d ? `+${a}${d}` : `+${a}`;
|
|
111
|
+
}
|
|
112
|
+
return e ? r.length <= 4 ? `+${r}` : `+${p(e)}${r}` : r;
|
|
81
113
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
114
|
+
function Y(t, e) {
|
|
115
|
+
if (t === "+")
|
|
116
|
+
return {
|
|
117
|
+
international: "+",
|
|
118
|
+
national: "",
|
|
119
|
+
formatted: "+",
|
|
120
|
+
phoneNumber: null,
|
|
121
|
+
detectedCountry: void 0,
|
|
122
|
+
inferredCountry: void 0,
|
|
123
|
+
hasExplicitInternationalPrefix: !0
|
|
124
|
+
};
|
|
125
|
+
const s = /^\s*\+/.test(t), u = e ? new I(e) : new I(), o = u.input(t), i = u.getNumber(), c = g(t), n = y(i?.country ?? u.country ?? void 0), r = n ?? !i ? void 0 : y(_(i, e, c)), f = i?.formatInternational() ?? o, l = i?.formatNational() ?? g(f);
|
|
126
|
+
return {
|
|
127
|
+
international: f,
|
|
128
|
+
national: l,
|
|
129
|
+
formatted: o,
|
|
130
|
+
phoneNumber: i,
|
|
131
|
+
detectedCountry: n,
|
|
132
|
+
inferredCountry: r,
|
|
133
|
+
hasExplicitInternationalPrefix: s
|
|
134
|
+
};
|
|
85
135
|
}
|
|
86
|
-
function
|
|
87
|
-
return
|
|
136
|
+
function v(t, e) {
|
|
137
|
+
return t.startsWith(e) ? t.slice(e.length) : t;
|
|
88
138
|
}
|
|
89
|
-
function
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
139
|
+
function H(t, e) {
|
|
140
|
+
if (!e || !t)
|
|
141
|
+
return null;
|
|
142
|
+
try {
|
|
143
|
+
return D(t, e) === "TOO_LONG" ? "TOO_LONG" : null;
|
|
144
|
+
} catch {
|
|
145
|
+
return null;
|
|
94
146
|
}
|
|
95
|
-
return r === Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : r;
|
|
96
147
|
}
|
|
97
|
-
function
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
148
|
+
function U(t, e, s, u = {}) {
|
|
149
|
+
const {
|
|
150
|
+
hasRemovedNationalPrefix: o = !1,
|
|
151
|
+
detectedCountry: i,
|
|
152
|
+
hasExplicitInternationalPrefix: c = !1
|
|
153
|
+
} = u;
|
|
154
|
+
if (!t)
|
|
155
|
+
return {
|
|
156
|
+
shouldSuggest: !1,
|
|
157
|
+
query: ""
|
|
158
|
+
};
|
|
159
|
+
if (t === "+")
|
|
160
|
+
return {
|
|
161
|
+
shouldSuggest: !0,
|
|
162
|
+
query: ""
|
|
163
|
+
};
|
|
164
|
+
const n = g(t);
|
|
165
|
+
if (!n)
|
|
166
|
+
return {
|
|
167
|
+
shouldSuggest: !0,
|
|
168
|
+
query: ""
|
|
169
|
+
};
|
|
170
|
+
if (o)
|
|
171
|
+
return {
|
|
172
|
+
shouldSuggest: !1,
|
|
173
|
+
query: ""
|
|
174
|
+
};
|
|
175
|
+
if (c && !i)
|
|
176
|
+
return P(n) ? {
|
|
177
|
+
shouldSuggest: !0,
|
|
178
|
+
query: n
|
|
179
|
+
} : {
|
|
180
|
+
shouldSuggest: !1,
|
|
181
|
+
query: ""
|
|
182
|
+
};
|
|
183
|
+
let r = s?.countryCallingCode ?? null;
|
|
184
|
+
if (!r) {
|
|
185
|
+
if (e) {
|
|
186
|
+
const l = p(e);
|
|
187
|
+
n.startsWith(l) && (r = l);
|
|
188
|
+
} else if (!c)
|
|
189
|
+
return {
|
|
190
|
+
shouldSuggest: !1,
|
|
191
|
+
query: ""
|
|
192
|
+
};
|
|
117
193
|
}
|
|
194
|
+
return r ? v(n, r).length === 0 ? {
|
|
195
|
+
shouldSuggest: !0,
|
|
196
|
+
query: n
|
|
197
|
+
} : {
|
|
198
|
+
shouldSuggest: !1,
|
|
199
|
+
query: ""
|
|
200
|
+
} : {
|
|
201
|
+
shouldSuggest: !0,
|
|
202
|
+
query: n
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
function V(t, e) {
|
|
206
|
+
if (t.shouldSuggest)
|
|
207
|
+
return !1;
|
|
208
|
+
const {
|
|
209
|
+
hasExplicitInternationalPrefix: s = !1,
|
|
210
|
+
detectedCountry: u
|
|
211
|
+
} = e;
|
|
212
|
+
return s ? !!u : !0;
|
|
118
213
|
}
|
|
119
214
|
export {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
B as optionMatchIndex,
|
|
130
|
-
L as parseLocaleCacheKey,
|
|
131
|
-
F as toSelectedCountry
|
|
215
|
+
B as detectNationalPrefixForDisplay,
|
|
216
|
+
Y as formatWithAsYouType,
|
|
217
|
+
H as getLengthIssue,
|
|
218
|
+
U as getSuggestionState,
|
|
219
|
+
q as injectNationalPrefixDisplay,
|
|
220
|
+
M as normalizeInputValue,
|
|
221
|
+
g as sanitizeDigits,
|
|
222
|
+
V as shouldDisplayExplicitCountrySelection,
|
|
223
|
+
v as stripPrefix
|
|
132
224
|
};
|
|
133
225
|
//# sourceMappingURL=index36.js.map
|
package/dist/index36.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index36.js","sources":["../src/components/PhoneNumberInput/country-options.ts"],"sourcesContent":["import type { CountryCode } from \"libphonenumber-js\"\nimport { getCountryCallingCode } from \"libphonenumber-js\"\n\nimport type { CountryOption, PhoneNumberSelectedCountry } from \"./types\"\nimport { getCountryList } from \"./countries\"\n\n\nexport const DEFAULT_COUNTRY: CountryCode = \"US\"\nconst COUNTRY_OPTIONS = getCountryList()\n\nconst COUNTRY_OPTIONS_CACHE = new Map<string, CountryOption[]>()\nconst DEFAULT_LOCALE_CACHE_KEY = \"__default_locale__\"\nexport const COUNTRY_DIAL_CODES = Array.from(\n new Set(COUNTRY_OPTIONS.map((code) => getCountryCallingCode(code)))\n).sort((a, b) => b.length - a.length)\nexport const MAX_DIAL_CODE_LENGTH = COUNTRY_DIAL_CODES.reduce(\n (max, dial) => Math.max(max, dial.length),\n 0\n)\nexport const COMMON_IDD_PREFIXES = [\"0011\", \"001\", \"011\", \"00\", \"810\"]\n\nexport function getValidCountry(input: CountryCode | undefined) {\n if (!input) {\n return DEFAULT_COUNTRY\n }\n\n return COUNTRY_OPTIONS.includes(input) ? input : DEFAULT_COUNTRY\n}\n\nfunction createDisplayNames(locale?: string | string[]) {\n if (typeof Intl === \"undefined\" || typeof Intl.DisplayNames === \"undefined\") {\n return null\n }\n\n try {\n const locales = Array.isArray(locale) ? locale : locale ? [locale] : undefined\n return new Intl.DisplayNames(locales, { type: \"region\" })\n } catch {\n return null\n }\n}\n\nfunction buildCountryOptions(locale?: string | string[]) {\n const displayNames = createDisplayNames(locale)\n const englishDisplayNames = createDisplayNames(\"en\")\n\n return COUNTRY_OPTIONS\n .map((country) => {\n const dialCode = getCountryCallingCode(country)\n const localizedName = displayNames?.of(country) ?? englishDisplayNames?.of(country) ?? country\n const englishName = englishDisplayNames?.of(country) ?? localizedName\n const aliasTokens = getCountryAliases(country)\n const searchableTokens = Array.from(\n new Set(\n [localizedName, englishName, country.toUpperCase(), country.toLowerCase(), ...aliasTokens].filter(\n Boolean\n )\n )\n ) as string[]\n return {\n value: country,\n name: localizedName,\n dialCode,\n label: `${localizedName} (+${dialCode})`,\n flag: countryCodeToFlagEmoji(country),\n searchableTokens,\n normalizedSearchableTokens: searchableTokens.map((token) => normalizeSearchValue(token)),\n }\n })\n .sort((a, b) => {\n const priorityA = getCountryPriority(a.value)\n const priorityB = getCountryPriority(b.value)\n if (priorityA !== priorityB) {\n return priorityA - priorityB\n }\n return a.name.localeCompare(b.name)\n })\n}\n\nfunction getCountryPriority(code: CountryCode) {\n if (code === \"US\") return 0\n if (code === \"CA\") return 1\n if (getCountryCallingCode(code) === \"1\") return 2\n return 3\n}\n\nexport function getLocaleCacheKey(locale?: string | string[]) {\n if (!locale) {\n return DEFAULT_LOCALE_CACHE_KEY\n }\n if (Array.isArray(locale)) {\n return locale.join(\"\\u0000\")\n }\n return locale\n}\n\nexport function parseLocaleCacheKey(cacheKey: string): string | string[] | undefined {\n if (cacheKey === DEFAULT_LOCALE_CACHE_KEY) {\n return undefined\n }\n\n if (cacheKey.includes(\"\\u0000\")) {\n const parts = cacheKey.split(\"\\u0000\").filter(Boolean)\n if (parts.length === 0) {\n return undefined\n }\n if (parts.length === 1) {\n return parts[0] ?? undefined\n }\n return parts\n }\n\n return cacheKey\n}\n\nexport function getCachedCountryOptions(locale: string | string[] | undefined, cacheKey: string) {\n const cached = COUNTRY_OPTIONS_CACHE.get(cacheKey)\n if (cached) {\n return cached\n }\n const built = buildCountryOptions(locale)\n COUNTRY_OPTIONS_CACHE.set(cacheKey, built)\n return built\n}\n\nexport function toSelectedCountry(option: CountryOption): PhoneNumberSelectedCountry {\n return {\n code: option.value,\n name: option.name,\n dialCode: option.dialCode,\n flag: option.flag,\n }\n}\n\nexport function buildFallbackSelectedCountry(country: CountryCode): PhoneNumberSelectedCountry {\n return {\n code: country,\n name: country,\n dialCode: getCountryCallingCode(country),\n flag: countryCodeToFlagEmoji(country),\n }\n}\n\nfunction countryCodeToFlagEmoji(country: CountryCode) {\n const upper = country?.toUpperCase()\n\n if (!upper || upper.length !== 2 || /[^A-Z]/.test(upper)) {\n return \"\"\n }\n\n const base = 127397\n return String.fromCodePoint(\n upper.charCodeAt(0) + base,\n upper.charCodeAt(1) + base\n )\n}\n\nconst DIACRITICS_REGEX = /[\\u0300-\\u036f]/g\n\nfunction stripDiacritics(value: string) {\n return value.normalize(\"NFD\").replace(DIACRITICS_REGEX, \"\")\n}\n\nexport function normalizeSearchValue(value: string) {\n return stripDiacritics(value).toLowerCase()\n}\n\nexport function optionMatchIndex(tokens: string[], query: string) {\n let best = Number.MAX_SAFE_INTEGER\n for (const token of tokens) {\n const index = token.indexOf(query)\n if (index >= 0 && index < best) {\n best = index\n }\n }\n return best === Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : best\n}\n\nfunction getCountryAliases(code: CountryCode): string[] {\n switch (code) {\n case \"US\":\n return [\"USA\", \"United States\", \"America\", \"United States of America\"]\n case \"GB\":\n return [\"UK\", \"United Kingdom\", \"Great Britain\", \"England\"]\n case \"AE\":\n return [\"UAE\", \"United Arab Emirates\"]\n case \"KR\":\n return [\"South Korea\", \"Korea\"]\n case \"CN\":\n return [\"China\", \"PRC\"]\n case \"CD\":\n return [\"DRC\", \"Congo-Kinshasa\"]\n case \"CG\":\n return [\"Congo-Brazzaville\"]\n case \"BR\":\n return [\"Brazil\"]\n default:\n return []\n }\n}\n\n"],"names":["DEFAULT_COUNTRY","COUNTRY_OPTIONS","getCountryList","COUNTRY_OPTIONS_CACHE","Map","DEFAULT_LOCALE_CACHE_KEY","COUNTRY_DIAL_CODES","Array","from","Set","map","code","getCountryCallingCode","sort","a","b","length","MAX_DIAL_CODE_LENGTH","reduce","max","dial","Math","COMMON_IDD_PREFIXES","getValidCountry","input","includes","createDisplayNames","locale","Intl","DisplayNames","locales","isArray","undefined","type","buildCountryOptions","displayNames","englishDisplayNames","country","dialCode","localizedName","of","englishName","aliasTokens","getCountryAliases","searchableTokens","toUpperCase","toLowerCase","filter","Boolean","value","name","label","flag","countryCodeToFlagEmoji","normalizedSearchableTokens","token","normalizeSearchValue","priorityA","getCountryPriority","priorityB","localeCompare","getLocaleCacheKey","join","parseLocaleCacheKey","cacheKey","parts","split","getCachedCountryOptions","cached","get","built","set","toSelectedCountry","option","buildFallbackSelectedCountry","upper","test","base","String","fromCodePoint","charCodeAt","DIACRITICS_REGEX","stripDiacritics","normalize","replace","optionMatchIndex","tokens","query","best","Number","MAX_SAFE_INTEGER","index","indexOf"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index36.js","sources":["../src/components/PhoneNumberInput/normalization.ts"],"sourcesContent":["import type { CountryCode } from \"libphonenumber-js\"\nimport { AsYouType, getCountryCallingCode, validatePhoneNumberLength } from \"libphonenumber-js\"\n\nimport {\n COMMON_IDD_PREFIXES,\n COUNTRY_DIAL_CODES,\n DEFAULT_COUNTRY,\n MAX_DIAL_CODE_LENGTH,\n} from \"./country-options\"\n\n\nexport type LengthIssue = \"TOO_LONG\"\n\nexport function sanitizeDigits(value: string) {\n return value.replace(/\\D/g, \"\")\n}\n\nfunction isDialCodeProgress(digits: string) {\n if (!digits) {\n return true\n }\n\n if (digits.length > MAX_DIAL_CODE_LENGTH) {\n return false\n }\n\n return COUNTRY_DIAL_CODES.some((dial) => dial.startsWith(digits))\n}\n\nconst INVISIBLE_FORMATTING_CHARACTERS =\n /[\\u061C\\u200B-\\u200F\\u202A-\\u202E\\u2066-\\u2069\\uFEFF]/g\n\nfunction stripInvisibleFormatting(value: string) {\n return value.replace(INVISIBLE_FORMATTING_CHARACTERS, \"\")\n}\n\nexport function injectNationalPrefixDisplay(\n international: string,\n dialCode: string,\n options: { force?: boolean } = {}\n) {\n // Preserve a user-typed national trunk (e.g. the French \"0\") purely for display\n // so validation can continue to use the canonical E.164 representation internally.\n const { force = false } = options\n const prefix = `+${dialCode}`\n\n if (!international.startsWith(prefix)) {\n return international\n }\n\n if (!force) {\n return international\n }\n\n const remainder = international.slice(prefix.length).trimStart()\n const alreadyHasTrunk = remainder.startsWith(\"0\")\n\n if (alreadyHasTrunk) {\n return international\n }\n\n if (!remainder) {\n return `${prefix} 0`\n }\n\n const [firstGroup, ...restGroups] = remainder.split(\" \")\n const rebuiltFirstGroup = `0${firstGroup ?? \"\"}`\n const rebuiltRemainder = restGroups.length > 0 ? ` ${restGroups.join(\" \")}` : \"\"\n\n return `${prefix} ${rebuiltFirstGroup}${rebuiltRemainder}`.replace(/\\s\\s+/g, \" \").trimEnd()\n}\n\nconst DETECTED_COUNTRY_OVERRIDES: Partial<Record<CountryCode, CountryCode>> = {\n GG: \"GB\",\n JE: \"GB\",\n IM: \"GB\",\n}\n\nfunction canonicalizeDetectedCountry(candidate: CountryCode | undefined): CountryCode | undefined {\n if (!candidate) {\n return undefined\n }\n return DETECTED_COUNTRY_OVERRIDES[candidate] ?? candidate\n}\n\ntype AsYouTypeNumber = ReturnType<AsYouType[\"getNumber\"]>\n\nfunction inferCountryFromDialCode(\n phoneNumber: AsYouTypeNumber,\n baseCountry: CountryCode | undefined,\n normalizedDigits: string\n): CountryCode | undefined {\n if (!phoneNumber) {\n return undefined\n }\n\n if (!normalizedDigits) {\n return undefined\n }\n\n const nationalDigits = phoneNumber.nationalNumber ?? \"\"\n if (nationalDigits.length < 4) {\n return undefined\n }\n\n const dial = phoneNumber.countryCallingCode\n if (!dial) {\n return undefined\n }\n\n const metadataGetter = (phoneNumber as unknown as { getMetadata?: () => unknown }).getMetadata\n const metadata =\n typeof metadataGetter === \"function\"\n ? (metadataGetter() as {\n country_calling_codes?: Record<string, string[]>\n } | null)\n : null\n\n const candidates = metadata?.country_calling_codes?.[dial]\n if (!candidates || candidates.length === 0) {\n return undefined\n }\n\n const canonicalCandidates: CountryCode[] = []\n for (const candidate of candidates) {\n const canonical = canonicalizeDetectedCountry(candidate as CountryCode)\n if (canonical && !canonicalCandidates.includes(canonical)) {\n canonicalCandidates.push(canonical)\n }\n }\n\n if (canonicalCandidates.length === 0) {\n return undefined\n }\n\n if (baseCountry && canonicalCandidates.includes(baseCountry)) {\n return baseCountry\n }\n\n if (canonicalCandidates.includes(DEFAULT_COUNTRY)) {\n return DEFAULT_COUNTRY\n }\n\n return canonicalCandidates[0]\n}\n\nexport function detectNationalPrefixForDisplay(\n rawDigits: string,\n internationalDigits: string,\n dialCode: string,\n hasExplicitInternationalPrefix: boolean\n) {\n if (!rawDigits) {\n return false\n }\n\n if (!hasExplicitInternationalPrefix) {\n return rawDigits.startsWith(\"0\")\n }\n\n if (!dialCode) {\n return false\n }\n\n if (!rawDigits.startsWith(dialCode)) {\n return false\n }\n\n if (!rawDigits.slice(dialCode.length).startsWith(\"0\")) {\n return false\n }\n\n const rawAfterTrunk = rawDigits.slice(dialCode.length + 1)\n const internationalAfterDial = internationalDigits.startsWith(dialCode)\n ? internationalDigits.slice(dialCode.length)\n : internationalDigits\n\n return rawAfterTrunk === internationalAfterDial\n}\n\nfunction stripIddPrefix(digits: string) {\n for (const prefix of COMMON_IDD_PREFIXES) {\n if (digits.startsWith(prefix)) {\n return digits.slice(prefix.length)\n }\n }\n return digits\n}\n\nexport function normalizeInputValue(\n rawValue: string,\n country: CountryCode | undefined,\n options: {\n allowJustPlus?: boolean\n removeNationalPrefix?: boolean\n previousValue?: string\n } = {}\n) {\n const { allowJustPlus = false, removeNationalPrefix = true, previousValue } = options\n const cleaned = stripInvisibleFormatting(rawValue)\n const trimmed = cleaned.trim()\n\n if (!trimmed) {\n return \"\"\n }\n\n if (trimmed === \"+\") {\n return allowJustPlus ? \"+\" : \"\"\n }\n\n if (trimmed.startsWith(\"+\")) {\n const digits = sanitizeDigits(trimmed)\n if (!digits) {\n return allowJustPlus ? \"+\" : \"\"\n }\n const digitsWithoutIdd = stripIddPrefix(digits)\n if (digitsWithoutIdd !== digits) {\n return digitsWithoutIdd ? `+${digitsWithoutIdd}` : allowJustPlus ? \"+\" : \"\"\n }\n if (removeNationalPrefix && country) {\n const dial = getCountryCallingCode(country)\n if (digits.startsWith(dial) && digits.slice(dial.length).startsWith(\"0\")) {\n const withoutPrefix = digits.slice(dial.length + 1)\n return withoutPrefix ? `+${dial}${withoutPrefix}` : `+${dial}`\n }\n }\n return `+${digits}`\n }\n\n const digitsOnly = sanitizeDigits(trimmed)\n if (!digitsOnly) {\n return \"\"\n }\n\n const digitsWithoutIdd = stripIddPrefix(digitsOnly)\n if (digitsWithoutIdd !== digitsOnly) {\n return digitsWithoutIdd ? `+${digitsWithoutIdd}` : allowJustPlus ? \"+\" : \"\"\n }\n\n const previousNormalized = typeof previousValue === \"string\" ? previousValue : \"\"\n const previousDigits =\n previousNormalized && previousNormalized.startsWith(\"+\")\n ? sanitizeDigits(previousNormalized)\n : \"\"\n\n if (previousDigits && previousDigits.length > digitsOnly.length) {\n if (previousDigits.endsWith(digitsOnly)) {\n const removedPrefixLength = previousDigits.length - digitsOnly.length\n if (removedPrefixLength <= MAX_DIAL_CODE_LENGTH) {\n return `+${digitsOnly}`\n }\n }\n }\n\n if (digitsOnly === \"0\") {\n return \"0\"\n }\n\n if (\n removeNationalPrefix &&\n country &&\n digitsOnly.length > 1 &&\n digitsOnly.startsWith(\"0\") &&\n !digitsOnly.startsWith(\"00\")\n ) {\n const dial = getCountryCallingCode(country)\n const withoutPrefix = digitsOnly.slice(1)\n return withoutPrefix ? `+${dial}${withoutPrefix}` : `+${dial}`\n }\n\n if (!country) {\n return digitsOnly\n }\n\n if (digitsOnly.length <= 4) {\n return `+${digitsOnly}`\n }\n\n const dial = getCountryCallingCode(country)\n return `+${dial}${digitsOnly}`\n}\n\nexport function formatWithAsYouType(value: string, baseCountry?: CountryCode) {\n if (value === \"+\") {\n return {\n international: \"+\",\n national: \"\",\n formatted: \"+\",\n phoneNumber: null,\n detectedCountry: undefined,\n inferredCountry: undefined,\n hasExplicitInternationalPrefix: true,\n }\n }\n\n const hasExplicitInternationalPrefix = /^\\s*\\+/.test(value)\n const formatter = baseCountry ? new AsYouType(baseCountry) : new AsYouType()\n const formatted = formatter.input(value)\n const phoneNumber = formatter.getNumber()\n const digits = sanitizeDigits(value)\n const detectedCountry = canonicalizeDetectedCountry(\n (phoneNumber?.country ?? formatter.country ?? undefined) as CountryCode | undefined\n )\n const inferredCountry =\n detectedCountry ?? !phoneNumber\n ? undefined\n : canonicalizeDetectedCountry(\n inferCountryFromDialCode(phoneNumber, baseCountry, digits)\n )\n\n const international = phoneNumber?.formatInternational() ?? formatted\n const national = phoneNumber?.formatNational() ?? sanitizeDigits(international)\n\n return {\n international,\n national,\n formatted,\n phoneNumber,\n detectedCountry,\n inferredCountry,\n hasExplicitInternationalPrefix,\n }\n}\n\nexport function stripPrefix(value: string, prefix: string) {\n return value.startsWith(prefix) ? value.slice(prefix.length) : value\n}\n\nexport function getLengthIssue(value: string, country: CountryCode | undefined): LengthIssue | null {\n if (!country || !value) {\n return null\n }\n\n try {\n const result = validatePhoneNumberLength(value, country)\n return result === \"TOO_LONG\" ? \"TOO_LONG\" : null\n } catch {\n return null\n }\n}\n\ntype SuggestionState = {\n shouldSuggest: boolean\n query: string\n}\n\nexport function getSuggestionState(\n normalized: string,\n baseCountry: CountryCode | undefined,\n phoneNumber: ReturnType<AsYouType[\"getNumber\"]>,\n options: {\n hasRemovedNationalPrefix?: boolean\n detectedCountry?: CountryCode\n hasExplicitInternationalPrefix?: boolean\n } = {}\n): SuggestionState {\n const {\n hasRemovedNationalPrefix = false,\n detectedCountry,\n hasExplicitInternationalPrefix = false,\n } = options\n\n if (!normalized) {\n return { shouldSuggest: false, query: \"\" }\n }\n\n if (normalized === \"+\") {\n return { shouldSuggest: true, query: \"\" }\n }\n\n const digits = sanitizeDigits(normalized)\n if (!digits) {\n return { shouldSuggest: true, query: \"\" }\n }\n\n if (hasRemovedNationalPrefix) {\n return { shouldSuggest: false, query: \"\" }\n }\n\n if (hasExplicitInternationalPrefix && !detectedCountry) {\n if (!isDialCodeProgress(digits)) {\n return { shouldSuggest: false, query: \"\" }\n }\n return { shouldSuggest: true, query: digits }\n }\n\n let dial = phoneNumber?.countryCallingCode ?? null\n if (!dial) {\n if (baseCountry) {\n const baseDial = getCountryCallingCode(baseCountry)\n if (digits.startsWith(baseDial)) {\n dial = baseDial\n }\n } else if (!hasExplicitInternationalPrefix) {\n return { shouldSuggest: false, query: \"\" }\n }\n }\n\n if (!dial) {\n return { shouldSuggest: true, query: digits }\n }\n\n const nationalDigits = stripPrefix(digits, dial)\n if (nationalDigits.length === 0) {\n return { shouldSuggest: true, query: digits }\n }\n\n return { shouldSuggest: false, query: \"\" }\n}\n\nexport function shouldDisplayExplicitCountrySelection(\n suggestion: SuggestionState,\n options: { detectedCountry?: CountryCode; hasExplicitInternationalPrefix?: boolean }\n) {\n if (suggestion.shouldSuggest) {\n return false\n }\n\n const { hasExplicitInternationalPrefix = false, detectedCountry } = options\n\n if (!hasExplicitInternationalPrefix) {\n return true\n }\n\n return Boolean(detectedCountry)\n}\n"],"names":["sanitizeDigits","value","replace","isDialCodeProgress","digits","length","MAX_DIAL_CODE_LENGTH","COUNTRY_DIAL_CODES","some","dial","startsWith","INVISIBLE_FORMATTING_CHARACTERS","stripInvisibleFormatting","injectNationalPrefixDisplay","international","dialCode","options","force","prefix","remainder","slice","trimStart","firstGroup","restGroups","split","rebuiltFirstGroup","rebuiltRemainder","join","trimEnd","DETECTED_COUNTRY_OVERRIDES","GG","JE","IM","canonicalizeDetectedCountry","candidate","inferCountryFromDialCode","phoneNumber","baseCountry","normalizedDigits","nationalNumber","countryCallingCode","metadataGetter","getMetadata","candidates","country_calling_codes","canonicalCandidates","canonical","includes","push","DEFAULT_COUNTRY","detectNationalPrefixForDisplay","rawDigits","internationalDigits","hasExplicitInternationalPrefix","rawAfterTrunk","internationalAfterDial","stripIddPrefix","COMMON_IDD_PREFIXES","normalizeInputValue","rawValue","country","allowJustPlus","removeNationalPrefix","previousValue","trimmed","trim","digitsWithoutIdd","getCountryCallingCode","withoutPrefix","digitsOnly","previousNormalized","previousDigits","endsWith","formatWithAsYouType","national","formatted","detectedCountry","undefined","inferredCountry","test","formatter","AsYouType","input","getNumber","formatInternational","formatNational","stripPrefix","getLengthIssue","validatePhoneNumberLength","getSuggestionState","normalized","hasRemovedNationalPrefix","shouldSuggest","query","baseDial","shouldDisplayExplicitCountrySelection","suggestion","Boolean"],"mappings":"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"}
|