@rpcbase/ui 0.206.0 → 0.208.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/index.js +7 -7
- package/dist/index19.js +1 -1
- package/dist/index19.js.map +1 -1
- package/dist/index200.js +56 -55
- package/dist/index200.js.map +1 -1
- package/dist/index201.js +60 -8
- package/dist/index201.js.map +1 -1
- package/dist/index202.js +7 -15
- package/dist/index202.js.map +1 -1
- package/dist/index203.js +15 -143
- package/dist/index203.js.map +1 -1
- package/dist/index204.js +145 -4
- package/dist/index204.js.map +1 -1
- package/dist/index205.js +4 -11
- package/dist/index205.js.map +1 -1
- package/dist/index206.js +10 -104
- package/dist/index206.js.map +1 -1
- package/dist/index207.js +94 -347
- package/dist/index207.js.map +1 -1
- package/dist/index208.js +349 -87
- package/dist/index208.js.map +1 -1
- package/dist/index209.js +73 -304
- package/dist/index209.js.map +1 -1
- package/dist/index210.js +309 -193
- package/dist/index210.js.map +1 -1
- package/dist/index211.js +211 -19
- package/dist/index211.js.map +1 -1
- package/dist/index212.js +18 -27
- package/dist/index212.js.map +1 -1
- package/dist/index213.js +27 -187
- package/dist/index213.js.map +1 -1
- package/dist/index214.js +186 -16
- package/dist/index214.js.map +1 -1
- package/dist/index215.js +18 -44
- package/dist/index215.js.map +1 -1
- package/dist/index216.js +60 -8
- package/dist/index216.js.map +1 -1
- package/dist/index217.js +42 -23
- package/dist/index217.js.map +1 -1
- package/dist/index218.js +9 -44
- package/dist/index218.js.map +1 -1
- package/dist/index219.js +25 -18
- package/dist/index219.js.map +1 -1
- package/dist/index220.js +45 -3
- package/dist/index220.js.map +1 -1
- package/dist/index221.js +17 -4
- package/dist/index221.js.map +1 -1
- package/dist/index222.js +3 -21
- package/dist/index222.js.map +1 -1
- package/dist/index223.js +4 -24
- package/dist/index223.js.map +1 -1
- package/dist/index224.js +17 -64
- package/dist/index224.js.map +1 -1
- package/dist/index225.js +23 -13
- package/dist/index225.js.map +1 -1
- package/dist/index226.js +68 -4
- package/dist/index226.js.map +1 -1
- package/dist/index227.js +14 -50
- package/dist/index227.js.map +1 -1
- package/dist/index228.js +4 -6
- package/dist/index228.js.map +1 -1
- package/dist/index229.js +50 -26
- package/dist/index229.js.map +1 -1
- package/dist/index230.js +5 -13
- package/dist/index230.js.map +1 -1
- package/dist/index231.js +25 -8
- package/dist/index231.js.map +1 -1
- package/dist/index232.js +17 -3
- package/dist/index232.js.map +1 -0
- package/dist/index233.js +8 -24
- package/dist/index233.js.map +1 -1
- package/dist/index234.js +2 -71
- package/dist/index235.js +29 -3
- package/dist/index235.js.map +1 -0
- package/dist/index236.js +69 -12
- package/dist/index236.js.map +1 -1
- package/dist/index237.js +3 -54
- package/dist/index238.js +11 -114
- package/dist/index238.js.map +1 -1
- package/dist/index239.js +51 -6
- package/dist/index239.js.map +1 -1
- package/dist/index240.js +115 -13
- package/dist/index240.js.map +1 -1
- package/dist/index241.js +6 -687
- package/dist/index241.js.map +1 -1
- package/dist/index242.js +13 -253
- package/dist/index242.js.map +1 -1
- package/dist/index243.js +662 -676
- package/dist/index243.js.map +1 -1
- package/dist/index244.js +252 -7430
- package/dist/index244.js.map +1 -1
- package/dist/index245.js +700 -6
- package/dist/index245.js.map +1 -1
- package/dist/index246.js +7429 -11
- package/dist/index246.js.map +1 -1
- package/dist/index247.js +5 -4
- package/dist/index247.js.map +1 -1
- package/dist/index248.js +11 -458
- package/dist/index248.js.map +1 -1
- package/dist/index249.js +5 -37
- package/dist/index249.js.map +1 -1
- package/dist/index250.js +458 -18
- package/dist/index250.js.map +1 -1
- package/dist/index251.js +34 -24
- package/dist/index251.js.map +1 -1
- package/dist/index252.js +19 -4
- package/dist/index252.js.map +1 -1
- package/dist/index253.js +23 -54
- package/dist/index253.js.map +1 -1
- package/dist/index254.js +4 -7
- package/dist/index254.js.map +1 -1
- package/dist/index255.js +57 -11
- package/dist/index255.js.map +1 -1
- package/dist/index256.js +8 -3
- package/dist/index256.js.map +1 -1
- package/dist/index257.js +12 -16
- package/dist/index257.js.map +1 -1
- package/dist/index258.js +3 -26
- package/dist/index258.js.map +1 -1
- package/dist/index259.js +15 -42
- package/dist/index259.js.map +1 -1
- package/dist/index260.js +25 -13
- package/dist/index260.js.map +1 -1
- package/dist/index261.js +40 -22
- package/dist/index261.js.map +1 -1
- package/dist/index262.js +13 -17
- package/dist/index262.js.map +1 -1
- package/dist/index263.js +24 -34
- package/dist/index263.js.map +1 -1
- package/dist/index264.js +17 -5
- package/dist/index264.js.map +1 -1
- package/dist/index265.js +35 -9
- package/dist/index265.js.map +1 -1
- package/dist/index266.js +5 -8
- package/dist/index266.js.map +1 -1
- package/dist/index267.js +9 -9
- package/dist/index267.js.map +1 -1
- package/dist/index268.js +8 -10
- package/dist/index268.js.map +1 -1
- package/dist/index269.js +9 -7
- package/dist/index269.js.map +1 -1
- package/dist/index270.js +9 -72
- package/dist/index270.js.map +1 -1
- package/dist/index271.js +7 -171
- package/dist/index271.js.map +1 -1
- package/dist/index272.js +63 -104
- package/dist/index272.js.map +1 -1
- package/dist/index273.js +169 -12
- package/dist/index273.js.map +1 -1
- package/dist/index274.js +109 -75
- package/dist/index274.js.map +1 -1
- package/dist/index275.js +12 -44
- package/dist/index275.js.map +1 -1
- package/dist/index276.js +79 -12
- package/dist/index276.js.map +1 -1
- package/dist/index277.js +45 -15
- package/dist/index277.js.map +1 -1
- package/dist/index278.js +12 -98
- package/dist/index278.js.map +1 -1
- package/dist/index279.js +15 -55
- package/dist/index279.js.map +1 -1
- package/dist/index280.js +89 -98
- package/dist/index280.js.map +1 -1
- package/dist/index281.js +27 -42
- package/dist/index281.js.map +1 -1
- package/dist/index282.js +92 -97
- package/dist/index282.js.map +1 -1
- package/dist/index283.js +62 -46
- package/dist/index283.js.map +1 -1
- package/dist/index284.js +108 -38
- package/dist/index284.js.map +1 -1
- package/dist/index285.js +48 -135
- package/dist/index285.js.map +1 -1
- package/dist/index286.js +43 -139
- package/dist/index286.js.map +1 -1
- package/dist/index287.js +105 -217
- package/dist/index287.js.map +1 -1
- package/dist/index288.js +109 -210
- package/dist/index288.js.map +1 -1
- package/dist/index289.js +168 -212
- package/dist/index289.js.map +1 -1
- package/dist/index290.js +240 -5
- package/dist/index290.js.map +1 -1
- package/dist/index291.js +298 -6
- package/dist/index291.js.map +1 -1
- package/dist/index292.js +5 -7
- package/dist/index292.js.map +1 -1
- package/dist/index293.js +4 -4
- package/dist/index293.js.map +1 -1
- package/dist/index294.js +7 -6
- package/dist/index294.js.map +1 -1
- package/dist/index295.js +6 -21
- package/dist/index295.js.map +1 -1
- package/dist/index296.js +6 -10
- package/dist/index296.js.map +1 -1
- package/dist/index297.js +18 -123
- package/dist/index297.js.map +1 -1
- package/dist/index298.js +10 -164
- package/dist/index298.js.map +1 -1
- package/dist/index299.js +116 -58
- package/dist/index299.js.map +1 -1
- package/dist/index300.js +161 -106
- package/dist/index300.js.map +1 -1
- package/dist/index301.js +66 -489
- package/dist/index301.js.map +1 -1
- package/dist/index302.js +106 -59
- package/dist/index302.js.map +1 -1
- package/dist/index303.js +492 -4
- package/dist/index303.js.map +1 -1
- package/dist/index304.js +62 -27
- package/dist/index304.js.map +1 -1
- package/dist/index305.js +4 -66
- package/dist/index305.js.map +1 -1
- package/dist/index306.js +27 -152
- package/dist/index306.js.map +1 -1
- package/dist/index307.js +59 -555
- package/dist/index307.js.map +1 -1
- package/dist/index308.js +143 -201
- package/dist/index308.js.map +1 -1
- package/dist/index309.js +56 -326
- package/dist/index309.js.map +1 -1
- package/dist/index310.js +553 -260
- package/dist/index310.js.map +1 -1
- package/dist/index311.js +214 -0
- package/dist/index311.js.map +1 -0
- package/dist/index312.js +335 -0
- package/dist/index312.js.map +1 -0
- package/dist/index313.js +272 -0
- package/dist/index313.js.map +1 -0
- package/package.json +2 -2
- package/dist/index234.js.map +0 -1
- package/dist/index237.js.map +0 -1
package/dist/index300.js
CHANGED
|
@@ -1,113 +1,168 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
//#region src/components/PhoneNumberInput/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import { validatePhoneNumberLength as e } from "./index293.js";
|
|
2
|
+
import { AsYouType as t } from "./index294.js";
|
|
3
|
+
import { getCountryCallingCode as n } from "./index296.js";
|
|
4
|
+
import { COMMON_IDD_PREFIXES as r, COUNTRY_DIAL_CODES as i, MAX_DIAL_CODE_LENGTH as a } from "./index299.js";
|
|
5
|
+
//#region src/components/PhoneNumberInput/normalization.ts
|
|
6
|
+
function o(e) {
|
|
7
|
+
return e.replace(/\D/g, "");
|
|
8
|
+
}
|
|
9
|
+
function s(e) {
|
|
10
|
+
return e ? e.length > a ? !1 : i.some((t) => t.startsWith(e)) : !0;
|
|
11
|
+
}
|
|
12
|
+
var c = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
|
|
13
|
+
function l(e) {
|
|
14
|
+
return e.replace(c, "");
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
let
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
let r = n.parentElement;
|
|
29
|
-
if (!r) return;
|
|
30
|
-
let i = n.offsetTop, a = i + n.offsetHeight, o = r.scrollTop, s = o + r.clientHeight;
|
|
31
|
-
i >= o && a <= s || n.scrollIntoView({
|
|
32
|
-
block: "nearest",
|
|
33
|
-
behavior: t
|
|
34
|
-
});
|
|
35
|
-
}, a[8] = c?.consumeScrollBehavior, a[9] = l, a[10] = b) : b = a[10];
|
|
36
|
-
let x;
|
|
37
|
-
a[11] !== c || a[12] !== l ? (x = [c, l], a[11] = c, a[12] = l, a[13] = x) : x = a[13], n.useEffect(b, x);
|
|
38
|
-
let S;
|
|
39
|
-
a[14] !== c || a[15] !== u || a[16] !== r.data ? (S = (e) => {
|
|
40
|
-
u?.(e), c?.setHighlightedOption(r.data);
|
|
41
|
-
}, a[14] = c, a[15] = u, a[16] = r.data, a[17] = S) : S = a[17];
|
|
42
|
-
let C = S, w = l ? "bg-muted text-foreground" : "text-foreground hover:bg-muted", T;
|
|
43
|
-
a[18] !== d || a[19] !== w ? (T = e("flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm", d, w), a[18] = d, a[19] = w, a[20] = T) : T = a[20];
|
|
44
|
-
let E;
|
|
45
|
-
a[21] !== r.data || a[22] !== h ? (E = h(r.data), a[21] = r.data, a[22] = h, a[23] = E) : E = a[23];
|
|
46
|
-
let D;
|
|
47
|
-
return a[24] !== y || a[25] !== C || a[26] !== f || a[27] !== T || a[28] !== E ? (D = /* @__PURE__ */ i("div", {
|
|
48
|
-
ref: y,
|
|
49
|
-
...f,
|
|
50
|
-
onMouseMove: C,
|
|
51
|
-
className: T,
|
|
52
|
-
children: E
|
|
53
|
-
}), a[24] = y, a[25] = C, a[26] = f, a[27] = T, a[28] = E, a[29] = D) : D = a[29], D;
|
|
54
|
-
}, l = {
|
|
55
|
-
control: () => ({ display: "none" }),
|
|
56
|
-
menu: (e) => ({
|
|
57
|
-
...e,
|
|
58
|
-
marginTop: 4,
|
|
59
|
-
borderRadius: "var(--radius)",
|
|
60
|
-
boxShadow: "0 18px 36px rgba(15, 23, 42, 0.18)",
|
|
61
|
-
backgroundColor: "hsl(var(--popover))",
|
|
62
|
-
overflow: "hidden",
|
|
63
|
-
zIndex: 20
|
|
64
|
-
}),
|
|
65
|
-
menuList: (e) => ({
|
|
66
|
-
...e,
|
|
67
|
-
maxHeight: 240,
|
|
68
|
-
padding: 0
|
|
69
|
-
}),
|
|
70
|
-
option: (e, t) => ({
|
|
71
|
-
...e,
|
|
72
|
-
fontSize: "0.875rem",
|
|
73
|
-
backgroundColor: t.isFocused ? "hsl(var(--muted))" : t.isSelected ? "hsl(var(--accent))" : "transparent",
|
|
74
|
-
color: t.isSelected ? "hsl(var(--accent-foreground))" : "hsl(var(--foreground))",
|
|
75
|
-
cursor: "pointer"
|
|
76
|
-
}),
|
|
77
|
-
noOptionsMessage: (e) => ({
|
|
78
|
-
...e,
|
|
79
|
-
fontSize: "0.875rem",
|
|
80
|
-
color: "hsl(var(--muted-foreground))"
|
|
81
|
-
})
|
|
82
|
-
}, u = (e) => {
|
|
83
|
-
let n = t(3), r;
|
|
84
|
-
n[0] === Symbol.for("react.memo_cache_sentinel") ? (r = { display: "none" }, n[0] = r) : r = n[0];
|
|
85
|
-
let a;
|
|
86
|
-
return n[1] === e.children ? a = n[2] : (a = /* @__PURE__ */ i("div", {
|
|
87
|
-
style: r,
|
|
88
|
-
children: e.children
|
|
89
|
-
}), n[1] = e.children, n[2] = a), a;
|
|
90
|
-
}, d = () => null;
|
|
16
|
+
function u(e, t, n = {}) {
|
|
17
|
+
let { force: r = !1 } = n, i = `+${t}`;
|
|
18
|
+
if (!e.startsWith(i) || !r) return e;
|
|
19
|
+
let a = e.slice(i.length).trimStart();
|
|
20
|
+
if (a.startsWith("0")) return e;
|
|
21
|
+
if (!a) return `${i} 0`;
|
|
22
|
+
let [o, ...s] = a.split(" ");
|
|
23
|
+
return `${i} ${`0${o ?? ""}`}${s.length > 0 ? ` ${s.join(" ")}` : ""}`.replace(/\s\s+/g, " ").trimEnd();
|
|
24
|
+
}
|
|
25
|
+
var d = {
|
|
26
|
+
GG: "GB",
|
|
27
|
+
JE: "GB",
|
|
28
|
+
IM: "GB"
|
|
29
|
+
};
|
|
91
30
|
function f(e) {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
31
|
+
if (e) return d[e] ?? e;
|
|
32
|
+
}
|
|
33
|
+
function p(e, t, n) {
|
|
34
|
+
if (!e || !n || (e.nationalNumber ?? "").length < 4) return;
|
|
35
|
+
let r = e.countryCallingCode;
|
|
36
|
+
if (!r) return;
|
|
37
|
+
let i = e.getMetadata, a = (typeof i == "function" ? i() : null)?.country_calling_codes?.[r];
|
|
38
|
+
if (!a || a.length === 0) return;
|
|
39
|
+
let o = [];
|
|
40
|
+
for (let e of a) {
|
|
41
|
+
let t = f(e);
|
|
42
|
+
t && !o.includes(t) && o.push(t);
|
|
43
|
+
}
|
|
44
|
+
if (o.length !== 0) return t && o.includes(t) ? t : o.includes("US") ? "US" : o[0];
|
|
45
|
+
}
|
|
46
|
+
function m(e, t, n, r) {
|
|
47
|
+
return e ? r ? !n || !e.startsWith(n) || !e.slice(n.length).startsWith("0") ? !1 : e.slice(n.length + 1) === (t.startsWith(n) ? t.slice(n.length) : t) : e.startsWith("0") : !1;
|
|
48
|
+
}
|
|
49
|
+
function h(e) {
|
|
50
|
+
for (let t of r) if (e.startsWith(t)) return e.slice(t.length);
|
|
51
|
+
return e;
|
|
52
|
+
}
|
|
53
|
+
function g(e, t, r = {}) {
|
|
54
|
+
let { allowJustPlus: i = !1, removeNationalPrefix: s = !0, previousValue: c } = r, u = l(e).trim();
|
|
55
|
+
if (!u) return "";
|
|
56
|
+
if (u === "+") return i ? "+" : "";
|
|
57
|
+
if (u.startsWith("+")) {
|
|
58
|
+
let e = o(u);
|
|
59
|
+
if (!e) return i ? "+" : "";
|
|
60
|
+
let r = h(e);
|
|
61
|
+
if (r !== e) return r ? `+${r}` : i ? "+" : "";
|
|
62
|
+
if (s && t) {
|
|
63
|
+
let r = n(t);
|
|
64
|
+
if (e.startsWith(r) && e.slice(r.length).startsWith("0")) {
|
|
65
|
+
let t = e.slice(r.length + 1);
|
|
66
|
+
return t ? `+${r}${t}` : `+${r}`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return `+${e}`;
|
|
70
|
+
}
|
|
71
|
+
let d = o(u);
|
|
72
|
+
if (!d) return "";
|
|
73
|
+
let f = h(d);
|
|
74
|
+
if (f !== d) return f ? `+${f}` : i ? "+" : "";
|
|
75
|
+
let p = typeof c == "string" ? c : "", m = p && p.startsWith("+") ? o(p) : "";
|
|
76
|
+
if (m && m.length > d.length && m.endsWith(d) && m.length - d.length <= a) return `+${d}`;
|
|
77
|
+
if (d === "0") return "0";
|
|
78
|
+
if (s && t && d.length > 1 && d.startsWith("0") && !d.startsWith("00")) {
|
|
79
|
+
let e = n(t), r = d.slice(1);
|
|
80
|
+
return r ? `+${e}${r}` : `+${e}`;
|
|
81
|
+
}
|
|
82
|
+
return t ? d.length <= 4 ? `+${d}` : `+${n(t)}${d}` : d;
|
|
83
|
+
}
|
|
84
|
+
function _(e, n) {
|
|
85
|
+
if (e === "+") return {
|
|
86
|
+
international: "+",
|
|
87
|
+
national: "",
|
|
88
|
+
formatted: "+",
|
|
89
|
+
phoneNumber: null,
|
|
90
|
+
detectedCountry: void 0,
|
|
91
|
+
inferredCountry: void 0,
|
|
92
|
+
hasExplicitInternationalPrefix: !0
|
|
93
|
+
};
|
|
94
|
+
let r = /^\s*\+/.test(e), i = n ? new t(n) : new t(), a = i.input(e), s = i.getNumber(), c = o(e), l = f(s?.country ?? i.country ?? void 0), u = l ?? !s ? void 0 : f(p(s, n, c)), d = s?.formatInternational() ?? a;
|
|
95
|
+
return {
|
|
96
|
+
international: d,
|
|
97
|
+
national: s?.formatNational() ?? o(d),
|
|
98
|
+
formatted: a,
|
|
99
|
+
phoneNumber: s,
|
|
100
|
+
detectedCountry: l,
|
|
101
|
+
inferredCountry: u,
|
|
102
|
+
hasExplicitInternationalPrefix: r
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
function v(e, t) {
|
|
106
|
+
return e.startsWith(t) ? e.slice(t.length) : e;
|
|
107
|
+
}
|
|
108
|
+
function y(t, n) {
|
|
109
|
+
if (!n || !t) return null;
|
|
110
|
+
try {
|
|
111
|
+
return e(t, n) === "TOO_LONG" ? "TOO_LONG" : null;
|
|
112
|
+
} catch {
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
function b(e, t, r, i = {}) {
|
|
117
|
+
let { hasRemovedNationalPrefix: a = !1, detectedCountry: c, hasExplicitInternationalPrefix: l = !1 } = i;
|
|
118
|
+
if (!e) return {
|
|
119
|
+
shouldSuggest: !1,
|
|
120
|
+
query: ""
|
|
121
|
+
};
|
|
122
|
+
if (e === "+") return {
|
|
123
|
+
shouldSuggest: !0,
|
|
124
|
+
query: ""
|
|
125
|
+
};
|
|
126
|
+
let u = o(e);
|
|
127
|
+
if (!u) return {
|
|
128
|
+
shouldSuggest: !0,
|
|
129
|
+
query: ""
|
|
130
|
+
};
|
|
131
|
+
if (a) return {
|
|
132
|
+
shouldSuggest: !1,
|
|
133
|
+
query: ""
|
|
134
|
+
};
|
|
135
|
+
if (l && !c) return s(u) ? {
|
|
136
|
+
shouldSuggest: !0,
|
|
137
|
+
query: u
|
|
138
|
+
} : {
|
|
139
|
+
shouldSuggest: !1,
|
|
140
|
+
query: ""
|
|
141
|
+
};
|
|
142
|
+
let d = r?.countryCallingCode ?? null;
|
|
143
|
+
if (!d) {
|
|
144
|
+
if (t) {
|
|
145
|
+
let e = n(t);
|
|
146
|
+
u.startsWith(e) && (d = e);
|
|
147
|
+
} else if (!l) return {
|
|
148
|
+
shouldSuggest: !1,
|
|
149
|
+
query: ""
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
return !d || v(u, d).length === 0 ? {
|
|
153
|
+
shouldSuggest: !0,
|
|
154
|
+
query: u
|
|
155
|
+
} : {
|
|
156
|
+
shouldSuggest: !1,
|
|
157
|
+
query: ""
|
|
158
|
+
};
|
|
106
159
|
}
|
|
107
|
-
function
|
|
108
|
-
|
|
160
|
+
function x(e, t) {
|
|
161
|
+
if (e.shouldSuggest) return !1;
|
|
162
|
+
let { hasExplicitInternationalPrefix: n = !1, detectedCountry: r } = t;
|
|
163
|
+
return n ? !!r : !0;
|
|
109
164
|
}
|
|
110
165
|
//#endregion
|
|
111
|
-
export {
|
|
166
|
+
export { m as detectNationalPrefixForDisplay, _ as formatWithAsYouType, y as getLengthIssue, b as getSuggestionState, u as injectNationalPrefixDisplay, g as normalizeInputValue, o as sanitizeDigits, x as shouldDisplayExplicitCountrySelection, v as stripPrefix };
|
|
112
167
|
|
|
113
168
|
//# sourceMappingURL=index300.js.map
|
package/dist/index300.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index300.js","names":["React","CountryCode","ControlProps","OptionProps","StylesConfig","cn","CountryOption","SuggestionContextValue","highlightedValue","setHighlightedOption","option","renderOptionLabel","ReactNode","consumeScrollBehavior","ScrollBehavior","SuggestionContext","createContext","assignOptionRef","ref","Ref","HTMLDivElement","node","Reflect","set","SuggestionOption","props","$","_c","context","useContext","isActive","data","value","onMouseMove","receivedClassName","restInnerProps","innerProps","className","t0","_temp","renderLabel","optionRef","useRef","innerRef","t1","current","assignRef","t2","behavior","target","parent","parentElement","top","offsetTop","bottom","offsetHeight","viewTop","scrollTop","viewBottom","clientHeight","scrollIntoView","block","t3","useEffect","t4","event","handleMouseMove","t5","t6","t7","t8","suggestionSelectStyles","control","display","menu","provided","marginTop","borderRadius","boxShadow","backgroundColor","overflow","zIndex","menuList","maxHeight","padding","state","fontSize","isFocused","isSelected","color","cursor","noOptionsMessage","HiddenControl","Symbol","for","children","NullComponent","formatCountryOption","flag","name","dialCode"],"sources":["../src/components/PhoneNumberInput/suggestions.tsx"],"sourcesContent":["import * as React from \"react\"\nimport type { CountryCode } from \"libphonenumber-js\"\nimport type { ControlProps, OptionProps, StylesConfig } from \"react-select\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport type { CountryOption } from \"./types\"\n\n\nexport type SuggestionContextValue = {\n highlightedValue: CountryCode | null\n setHighlightedOption: (option: CountryOption) => void\n renderOptionLabel: (option: CountryOption) => React.ReactNode\n consumeScrollBehavior: () => ScrollBehavior\n}\n\nexport const SuggestionContext = React.createContext<SuggestionContextValue | null>(null)\n\nfunction assignOptionRef(ref: React.Ref<HTMLDivElement> | undefined, node: HTMLDivElement | null) {\n if (typeof ref === \"function\") {\n ref(node)\n return\n }\n if (ref && typeof ref === \"object\") {\n Reflect.set(ref, \"current\", node)\n }\n}\n\nexport const SuggestionOption = (props: OptionProps<CountryOption, false>) => {\n const context = React.useContext(SuggestionContext)\n const isActive = context?.highlightedValue === props.data.value\n const { onMouseMove, className: receivedClassName, ...restInnerProps } = props.innerProps\n const renderLabel =\n context?.renderOptionLabel ?? ((option: CountryOption) => formatCountryOption(option))\n const optionRef = React.useRef<HTMLDivElement | null>(null)\n const { innerRef } = props\n\n const assignRef = React.useCallback(\n (node: HTMLDivElement | null) => {\n optionRef.current = node\n assignOptionRef(innerRef, node)\n },\n [innerRef]\n )\n\n React.useEffect(() => {\n if (!isActive) {\n return\n }\n\n const consumeScrollBehavior = context?.consumeScrollBehavior\n const behavior = consumeScrollBehavior ? consumeScrollBehavior() : \"smooth\"\n\n const target = optionRef.current\n if (!target) {\n return\n }\n\n const parent = target.parentElement\n if (!parent) {\n return\n }\n\n const top = target.offsetTop\n const bottom = top + target.offsetHeight\n const viewTop = parent.scrollTop\n const viewBottom = viewTop + parent.clientHeight\n\n if (top >= viewTop && bottom <= viewBottom) {\n return\n }\n\n target.scrollIntoView({\n block: \"nearest\",\n behavior,\n })\n }, [context, isActive])\n\n const handleMouseMove = (event: React.MouseEvent<HTMLDivElement>) => {\n onMouseMove?.(event)\n context?.setHighlightedOption(props.data)\n }\n\n return (\n <div\n ref={assignRef}\n {...restInnerProps}\n onMouseMove={handleMouseMove}\n className={cn(\n \"flex cursor-pointer items-center justify-between gap-3 px-3 py-2 text-sm\",\n receivedClassName,\n isActive ? \"bg-muted text-foreground\" : \"text-foreground hover:bg-muted\"\n )}\n >\n {renderLabel(props.data)}\n </div>\n )\n}\n\nexport const suggestionSelectStyles: StylesConfig<CountryOption, false> = {\n control: () => ({\n display: \"none\",\n }),\n menu: (provided) => ({\n ...provided,\n marginTop: 4,\n borderRadius: \"var(--radius)\",\n boxShadow: \"0 18px 36px rgba(15, 23, 42, 0.18)\",\n backgroundColor: \"hsl(var(--popover))\",\n overflow: \"hidden\",\n zIndex: 20,\n }),\n menuList: (provided) => ({\n ...provided,\n maxHeight: 240,\n padding: 0,\n }),\n option: (provided, state) => ({\n ...provided,\n fontSize: \"0.875rem\",\n backgroundColor: state.isFocused\n ? \"hsl(var(--muted))\"\n : state.isSelected\n ? \"hsl(var(--accent))\"\n : \"transparent\",\n color: state.isSelected\n ? \"hsl(var(--accent-foreground))\"\n : \"hsl(var(--foreground))\",\n cursor: \"pointer\",\n }),\n noOptionsMessage: (provided) => ({\n ...provided,\n fontSize: \"0.875rem\",\n color: \"hsl(var(--muted-foreground))\",\n }),\n}\n\nexport const HiddenControl = (props: ControlProps<CountryOption, false>) => (\n <div style={{ display: \"none\" }}>{props.children}</div>\n)\n\nexport const NullComponent = () => null\n\nexport function formatCountryOption(option: CountryOption) {\n return (\n <>\n <span className=\"flex min-w-0 items-center gap-2\">\n {option.flag ? (\n <span aria-hidden=\"true\" className=\"text-lg leading-none\">\n {option.flag}\n </span>\n ) : null}\n <span className=\"truncate\">{option.name}</span>\n </span>\n <span className=\"text-xs text-muted-foreground\">+{option.dialCode}</span>\n </>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index300.js","names":["CountryCode","AsYouType","getCountryCallingCode","validatePhoneNumberLength","COMMON_IDD_PREFIXES","COUNTRY_DIAL_CODES","DEFAULT_COUNTRY","MAX_DIAL_CODE_LENGTH","LengthIssue","sanitizeDigits","value","replace","isDialCodeProgress","digits","length","some","dial","startsWith","INVISIBLE_FORMATTING_CHARACTERS","stripInvisibleFormatting","injectNationalPrefixDisplay","international","dialCode","options","force","prefix","remainder","slice","trimStart","alreadyHasTrunk","firstGroup","restGroups","split","rebuiltFirstGroup","rebuiltRemainder","join","trimEnd","DETECTED_COUNTRY_OVERRIDES","Partial","Record","GG","JE","IM","canonicalizeDetectedCountry","candidate","undefined","AsYouTypeNumber","ReturnType","inferCountryFromDialCode","phoneNumber","baseCountry","normalizedDigits","nationalDigits","nationalNumber","countryCallingCode","metadataGetter","getMetadata","metadata","country_calling_codes","candidates","canonicalCandidates","canonical","includes","push","detectNationalPrefixForDisplay","rawDigits","internationalDigits","hasExplicitInternationalPrefix","rawAfterTrunk","internationalAfterDial","stripIddPrefix","normalizeInputValue","rawValue","country","allowJustPlus","removeNationalPrefix","previousValue","cleaned","trimmed","trim","digitsWithoutIdd","withoutPrefix","digitsOnly","previousNormalized","previousDigits","endsWith","removedPrefixLength","formatWithAsYouType","national","formatted","detectedCountry","inferredCountry","test","formatter","input","getNumber","formatInternational","formatNational","stripPrefix","getLengthIssue","result","SuggestionState","shouldSuggest","query","getSuggestionState","normalized","hasRemovedNationalPrefix","baseDial","shouldDisplayExplicitCountrySelection","suggestion","Boolean"],"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"],"mappings":"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"}
|