@rpcbase/ui 0.177.0 → 0.178.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.
Files changed (345) hide show
  1. package/dist/components/HourPickerField/index.d.ts.map +1 -1
  2. package/dist/components/PhoneNumberInput/suggestions.d.ts.map +1 -1
  3. package/dist/index10.js +1 -1
  4. package/dist/index100.js +3 -3
  5. package/dist/index100.js.map +1 -1
  6. package/dist/index101.js +4 -6
  7. package/dist/index101.js.map +1 -1
  8. package/dist/index102.js +6 -145
  9. package/dist/index102.js.map +1 -1
  10. package/dist/index103.js +144 -38
  11. package/dist/index103.js.map +1 -1
  12. package/dist/index104.js +39 -4
  13. package/dist/index104.js.map +1 -1
  14. package/dist/index105.js +4 -7
  15. package/dist/index105.js.map +1 -1
  16. package/dist/index106.js +6 -12
  17. package/dist/index106.js.map +1 -1
  18. package/dist/index107.js +13 -13
  19. package/dist/index107.js.map +1 -1
  20. package/dist/index108.js +13 -7
  21. package/dist/index108.js.map +1 -1
  22. package/dist/index109.js +6 -30
  23. package/dist/index109.js.map +1 -1
  24. package/dist/index11.js +269 -269
  25. package/dist/index11.js.map +1 -1
  26. package/dist/index110.js +31 -10
  27. package/dist/index110.js.map +1 -1
  28. package/dist/index111.js +10 -10
  29. package/dist/index111.js.map +1 -1
  30. package/dist/index112.js +10 -8
  31. package/dist/index112.js.map +1 -1
  32. package/dist/index113.js +8 -13
  33. package/dist/index113.js.map +1 -1
  34. package/dist/index114.js +13 -101
  35. package/dist/index114.js.map +1 -1
  36. package/dist/index115.js +102 -20
  37. package/dist/index115.js.map +1 -1
  38. package/dist/index116.js +20 -54
  39. package/dist/index116.js.map +1 -1
  40. package/dist/index117.js +51 -70
  41. package/dist/index117.js.map +1 -1
  42. package/dist/index118.js +72 -9
  43. package/dist/index118.js.map +1 -1
  44. package/dist/index119.js +9 -20
  45. package/dist/index119.js.map +1 -1
  46. package/dist/index12.js +1 -1
  47. package/dist/index120.js +20 -16
  48. package/dist/index120.js.map +1 -1
  49. package/dist/index121.js +16 -23
  50. package/dist/index121.js.map +1 -1
  51. package/dist/index122.js +23 -6
  52. package/dist/index122.js.map +1 -1
  53. package/dist/index123.js +6 -5
  54. package/dist/index123.js.map +1 -1
  55. package/dist/index124.js +5 -23
  56. package/dist/index124.js.map +1 -1
  57. package/dist/index125.js +24 -35
  58. package/dist/index125.js.map +1 -1
  59. package/dist/index126.js +35 -16
  60. package/dist/index126.js.map +1 -1
  61. package/dist/index127.js +16 -7
  62. package/dist/index127.js.map +1 -1
  63. package/dist/index128.js +6 -4
  64. package/dist/index128.js.map +1 -1
  65. package/dist/index129.js +4 -4
  66. package/dist/index129.js.map +1 -1
  67. package/dist/index13.js +2 -2
  68. package/dist/index130.js +4 -4
  69. package/dist/index130.js.map +1 -1
  70. package/dist/index131.js +4 -4
  71. package/dist/index131.js.map +1 -1
  72. package/dist/index132.js +4 -3
  73. package/dist/index132.js.map +1 -1
  74. package/dist/index133.js +3 -6
  75. package/dist/index133.js.map +1 -1
  76. package/dist/index134.js +7 -24
  77. package/dist/index134.js.map +1 -1
  78. package/dist/index135.js +24 -8
  79. package/dist/index135.js.map +1 -1
  80. package/dist/index136.js +7 -6
  81. package/dist/index136.js.map +1 -1
  82. package/dist/index137.js +6 -5
  83. package/dist/index137.js.map +1 -1
  84. package/dist/index138.js +5 -3
  85. package/dist/index138.js.map +1 -1
  86. package/dist/index139.js +3 -3
  87. package/dist/index139.js.map +1 -1
  88. package/dist/index14.js +4 -4
  89. package/dist/index140.js +3 -4
  90. package/dist/index140.js.map +1 -1
  91. package/dist/index141.js +4 -3
  92. package/dist/index141.js.map +1 -1
  93. package/dist/index142.js +3 -4
  94. package/dist/index142.js.map +1 -1
  95. package/dist/index143.js +4 -3
  96. package/dist/index143.js.map +1 -1
  97. package/dist/index144.js +3 -3
  98. package/dist/index144.js.map +1 -1
  99. package/dist/index145.js +3 -3
  100. package/dist/index145.js.map +1 -1
  101. package/dist/index146.js +3 -46
  102. package/dist/index146.js.map +1 -1
  103. package/dist/index147.js +44 -51
  104. package/dist/index147.js.map +1 -1
  105. package/dist/index148.js +2 -2
  106. package/dist/index15.js +1 -1
  107. package/dist/index150.js +2 -2
  108. package/dist/index153.js +5 -605
  109. package/dist/index153.js.map +1 -1
  110. package/dist/index154.js +68 -5
  111. package/dist/index154.js.map +1 -1
  112. package/dist/index155.js +2 -69
  113. package/dist/index155.js.map +1 -1
  114. package/dist/index156.js +364 -2
  115. package/dist/index156.js.map +1 -1
  116. package/dist/index157.js +201 -303
  117. package/dist/index157.js.map +1 -1
  118. package/dist/index158.js +46 -247
  119. package/dist/index158.js.map +1 -1
  120. package/dist/index159.js +42 -56
  121. package/dist/index159.js.map +1 -1
  122. package/dist/index16.js +1 -1
  123. package/dist/index160.js +169 -46
  124. package/dist/index160.js.map +1 -1
  125. package/dist/index161.js +96 -156
  126. package/dist/index161.js.map +1 -1
  127. package/dist/index162.js +24 -109
  128. package/dist/index162.js.map +1 -1
  129. package/dist/index163.js +8 -25
  130. package/dist/index163.js.map +1 -1
  131. package/dist/index164.js +5 -8
  132. package/dist/index164.js.map +1 -1
  133. package/dist/index165.js +5 -4
  134. package/dist/index165.js.map +1 -1
  135. package/dist/index166.js +4 -5
  136. package/dist/index166.js.map +1 -1
  137. package/dist/index167.js +466 -4
  138. package/dist/index167.js.map +1 -1
  139. package/dist/index168.js +139 -420
  140. package/dist/index168.js.map +1 -1
  141. package/dist/index169.js +71 -149
  142. package/dist/index169.js.map +1 -1
  143. package/dist/index17.js +1 -1
  144. package/dist/index170.js +229 -74
  145. package/dist/index170.js.map +1 -1
  146. package/dist/index171.js +9 -262
  147. package/dist/index171.js.map +1 -1
  148. package/dist/index172.js +42 -9
  149. package/dist/index172.js.map +1 -1
  150. package/dist/index173.js +4 -42
  151. package/dist/index173.js.map +1 -1
  152. package/dist/index174.js +605 -4
  153. package/dist/index174.js.map +1 -1
  154. package/dist/index179.js +1 -1
  155. package/dist/index18.js +314 -312
  156. package/dist/index18.js.map +1 -1
  157. package/dist/index19.js +7 -7
  158. package/dist/index20.js +6 -6
  159. package/dist/index20.js.map +1 -1
  160. package/dist/index21.js +1 -1
  161. package/dist/index22.js +1 -1
  162. package/dist/index226.js +1 -1
  163. package/dist/index227.js +1 -1
  164. package/dist/index229.js +1 -1
  165. package/dist/index23.js +2 -2
  166. package/dist/index231.js +1 -1
  167. package/dist/index232.js +1 -1
  168. package/dist/index233.js +4 -4
  169. package/dist/index234.js +2 -2
  170. package/dist/index238.js +12 -66
  171. package/dist/index238.js.map +1 -1
  172. package/dist/index239.js +150 -176
  173. package/dist/index239.js.map +1 -1
  174. package/dist/index24.js +1 -1
  175. package/dist/index240.js +27 -43
  176. package/dist/index240.js.map +1 -1
  177. package/dist/index241.js +9 -13
  178. package/dist/index241.js.map +1 -1
  179. package/dist/index242.js +40 -147
  180. package/dist/index242.js.map +1 -1
  181. package/dist/index243.js +10 -29
  182. package/dist/index243.js.map +1 -1
  183. package/dist/index244.js +44 -9
  184. package/dist/index244.js.map +1 -1
  185. package/dist/index245.js +88 -40
  186. package/dist/index245.js.map +1 -1
  187. package/dist/index246.js +85 -10
  188. package/dist/index246.js.map +1 -1
  189. package/dist/index247.js +102 -41
  190. package/dist/index247.js.map +1 -1
  191. package/dist/index248.js +45 -88
  192. package/dist/index248.js.map +1 -1
  193. package/dist/index249.js +10 -85
  194. package/dist/index249.js.map +1 -1
  195. package/dist/index250.js +28 -96
  196. package/dist/index250.js.map +1 -1
  197. package/dist/index251.js +8 -52
  198. package/dist/index251.js.map +1 -1
  199. package/dist/index252.js +115 -10
  200. package/dist/index252.js.map +1 -1
  201. package/dist/index253.js +16 -36
  202. package/dist/index253.js.map +1 -1
  203. package/dist/index254.js +15 -8
  204. package/dist/index254.js.map +1 -1
  205. package/dist/index255.js +3 -116
  206. package/dist/index255.js.map +1 -1
  207. package/dist/index256.js +35 -16
  208. package/dist/index256.js.map +1 -1
  209. package/dist/index257.js +19 -14
  210. package/dist/index257.js.map +1 -1
  211. package/dist/index258.js +9 -3
  212. package/dist/index258.js.map +1 -1
  213. package/dist/index259.js +8 -36
  214. package/dist/index259.js.map +1 -1
  215. package/dist/index260.js +67 -20
  216. package/dist/index260.js.map +1 -1
  217. package/dist/index261.js +180 -9
  218. package/dist/index261.js.map +1 -1
  219. package/dist/index262.js +46 -8
  220. package/dist/index262.js.map +1 -1
  221. package/dist/index263.js +4 -4
  222. package/dist/index265.js +2 -2
  223. package/dist/index27.js +37 -3
  224. package/dist/index27.js.map +1 -1
  225. package/dist/index277.js +1 -1
  226. package/dist/index28.js +3 -125
  227. package/dist/index28.js.map +1 -1
  228. package/dist/index29.js +120 -227
  229. package/dist/index29.js.map +1 -1
  230. package/dist/index30.js +229 -21
  231. package/dist/index30.js.map +1 -1
  232. package/dist/index31.js +23 -50
  233. package/dist/index31.js.map +1 -1
  234. package/dist/index32.js +50 -2640
  235. package/dist/index32.js.map +1 -1
  236. package/dist/index33.js +2598 -351
  237. package/dist/index33.js.map +1 -1
  238. package/dist/index34.js +375 -214
  239. package/dist/index34.js.map +1 -1
  240. package/dist/index35.js +230 -19
  241. package/dist/index35.js.map +1 -1
  242. package/dist/index36.js +18 -138
  243. package/dist/index36.js.map +1 -1
  244. package/dist/index37.js +125 -170
  245. package/dist/index37.js.map +1 -1
  246. package/dist/index38.js +174 -64
  247. package/dist/index38.js.map +1 -1
  248. package/dist/index39.js +74 -88
  249. package/dist/index39.js.map +1 -1
  250. package/dist/index4.js +8 -8
  251. package/dist/index4.js.map +1 -1
  252. package/dist/index40.js +98 -5
  253. package/dist/index40.js.map +1 -1
  254. package/dist/index41.js +5 -843
  255. package/dist/index41.js.map +1 -1
  256. package/dist/index42.js +832 -54
  257. package/dist/index42.js.map +1 -1
  258. package/dist/index43.js +66 -37
  259. package/dist/index43.js.map +1 -1
  260. package/dist/index46.js +1 -1
  261. package/dist/index47.js +1 -1
  262. package/dist/index48.js +7 -205
  263. package/dist/index48.js.map +1 -1
  264. package/dist/index49.js +33 -6
  265. package/dist/index49.js.map +1 -1
  266. package/dist/index5.js +1 -1
  267. package/dist/index50.js +26 -33
  268. package/dist/index50.js.map +1 -1
  269. package/dist/index51.js +7 -26
  270. package/dist/index51.js.map +1 -1
  271. package/dist/index52.js +11 -7
  272. package/dist/index52.js.map +1 -1
  273. package/dist/index53.js +205 -12
  274. package/dist/index53.js.map +1 -1
  275. package/dist/index55.js +2 -2
  276. package/dist/index56.js +1 -1
  277. package/dist/index57.js +1 -1
  278. package/dist/index59.js +4 -4
  279. package/dist/index61.js +4 -4
  280. package/dist/index62.js +2 -2
  281. package/dist/index63.js +2 -2
  282. package/dist/index67.js +2 -2
  283. package/dist/index70.js +6 -2
  284. package/dist/index70.js.map +1 -1
  285. package/dist/index71.js +8 -2
  286. package/dist/index71.js.map +1 -1
  287. package/dist/index72.js +5 -5
  288. package/dist/index72.js.map +1 -1
  289. package/dist/index73.js +53 -7
  290. package/dist/index73.js.map +1 -1
  291. package/dist/index74.js +2 -6
  292. package/dist/index74.js.map +1 -1
  293. package/dist/index75.js +2 -52
  294. package/dist/index75.js.map +1 -1
  295. package/dist/index76.js +52 -5
  296. package/dist/index76.js.map +1 -1
  297. package/dist/index77.js +4 -4
  298. package/dist/index77.js.map +1 -1
  299. package/dist/index78.js +4 -15
  300. package/dist/index78.js.map +1 -1
  301. package/dist/index79.js +15 -5
  302. package/dist/index79.js.map +1 -1
  303. package/dist/index8.js +1 -1
  304. package/dist/index80.js +5 -7
  305. package/dist/index80.js.map +1 -1
  306. package/dist/index81.js +6 -15
  307. package/dist/index81.js.map +1 -1
  308. package/dist/index82.js +16 -4
  309. package/dist/index82.js.map +1 -1
  310. package/dist/index83.js +1 -1
  311. package/dist/index83.js.map +1 -1
  312. package/dist/index84.js +4 -5
  313. package/dist/index84.js.map +1 -1
  314. package/dist/index85.js +4 -4
  315. package/dist/index85.js.map +1 -1
  316. package/dist/index86.js +5 -4
  317. package/dist/index86.js.map +1 -1
  318. package/dist/index87.js +2 -2
  319. package/dist/index87.js.map +1 -1
  320. package/dist/index88.js +3 -5
  321. package/dist/index88.js.map +1 -1
  322. package/dist/index89.js +6 -24
  323. package/dist/index89.js.map +1 -1
  324. package/dist/index9.js +1 -1
  325. package/dist/index90.js +24 -6
  326. package/dist/index90.js.map +1 -1
  327. package/dist/index91.js +6 -4
  328. package/dist/index91.js.map +1 -1
  329. package/dist/index92.js +3 -5
  330. package/dist/index92.js.map +1 -1
  331. package/dist/index93.js +6 -5
  332. package/dist/index93.js.map +1 -1
  333. package/dist/index94.js +5 -4
  334. package/dist/index94.js.map +1 -1
  335. package/dist/index95.js +3 -4
  336. package/dist/index95.js.map +1 -1
  337. package/dist/index96.js +5 -4
  338. package/dist/index96.js.map +1 -1
  339. package/dist/index97.js +4 -8
  340. package/dist/index97.js.map +1 -1
  341. package/dist/index98.js +8 -5
  342. package/dist/index98.js.map +1 -1
  343. package/dist/index99.js +5 -4
  344. package/dist/index99.js.map +1 -1
  345. package/package.json +1 -1
package/dist/index37.js CHANGED
@@ -1,190 +1,145 @@
1
- import { MAX_DIAL_CODE_LENGTH as W, COMMON_IDD_PREFIXES as $, DEFAULT_COUNTRY as x, COUNTRY_DIAL_CODES as C } from "./index36.js";
2
- import { getCountryCallingCode as p } from "./index40.js";
3
- import { AsYouType as I } from "./index73.js";
4
- import { validatePhoneNumberLength as D } from "./index74.js";
5
- function g(t) {
6
- return t.replace(/\D/g, "");
1
+ import { getCountryList as E } from "./index70.js";
2
+ import { getCountryCallingCode as s } from "./index41.js";
3
+ const c = "US", u = E(), f = /* @__PURE__ */ new Map(), m = "__default_locale__", _ = Array.from(
4
+ new Set(u.map((e) => s(e)))
5
+ ).sort((e, t) => t.length - e.length), O = _.reduce(
6
+ (e, t) => Math.max(e, t.length),
7
+ 0
8
+ ), y = ["0011", "001", "011", "00", "810"];
9
+ function R(e) {
10
+ return e && u.includes(e) ? e : c;
7
11
  }
8
- function P(t) {
9
- return t ? t.length > W ? !1 : C.some((e) => e.startsWith(t)) : !0;
12
+ function C(e) {
13
+ if (typeof Intl > "u" || typeof Intl.DisplayNames > "u")
14
+ return null;
15
+ try {
16
+ const t = Array.isArray(e) ? e : e ? [e] : void 0;
17
+ return new Intl.DisplayNames(t, { type: "region" });
18
+ } catch {
19
+ return null;
20
+ }
10
21
  }
11
- const N = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
12
- function T(t) {
13
- return t.replace(N, "");
22
+ function N(e) {
23
+ const t = C(e), r = C("en");
24
+ return u.map((n) => {
25
+ const a = s(n), o = t?.of(n) ?? r?.of(n) ?? n, i = r?.of(n) ?? o, g = D(n), l = Array.from(
26
+ new Set(
27
+ [o, i, n.toUpperCase(), n.toLowerCase(), ...g].filter(
28
+ Boolean
29
+ )
30
+ )
31
+ );
32
+ return {
33
+ value: n,
34
+ name: o,
35
+ dialCode: a,
36
+ label: `${o} (+${a})`,
37
+ flag: A(n),
38
+ searchableTokens: l,
39
+ normalizedSearchableTokens: l.map((p) => U(p))
40
+ };
41
+ }).sort((n, a) => {
42
+ const o = d(n.value), i = d(a.value);
43
+ return o !== i ? o - i : n.name.localeCompare(a.name);
44
+ });
14
45
  }
15
- function q(t, e, s = {}) {
16
- const { force: u = !1 } = s, o = `+${e}`;
17
- if (!t.startsWith(o) || !u)
18
- return t;
19
- const i = t.slice(o.length).trimStart();
20
- if (i.startsWith("0"))
21
- return t;
22
- if (!i)
23
- return `${o} 0`;
24
- const [n, ...r] = i.split(" "), f = `0${n ?? ""}`, l = r.length > 0 ? ` ${r.join(" ")}` : "";
25
- return `${o} ${f}${l}`.replace(/\s\s+/g, " ").trimEnd();
46
+ function d(e) {
47
+ return e === "US" ? 0 : e === "CA" ? 1 : s(e) === "1" ? 2 : 3;
26
48
  }
27
- const O = {
28
- GG: "GB",
29
- JE: "GB",
30
- IM: "GB"
31
- };
32
- function y(t) {
33
- if (t)
34
- return O[t] ?? t;
49
+ function b(e) {
50
+ return e ? Array.isArray(e) ? e.join("\0") : e : m;
35
51
  }
36
- function _(t, e, s) {
37
- if (!t || !s || (t.nationalNumber ?? "").length < 4)
38
- return;
39
- const o = t.countryCallingCode;
40
- if (!o)
41
- return;
42
- const i = t.getMetadata, n = (typeof i == "function" ? i() : null)?.country_calling_codes?.[o];
43
- if (!n || n.length === 0)
44
- return;
45
- const r = [];
46
- for (const f of n) {
47
- const l = y(f);
48
- l && !r.includes(l) && r.push(l);
52
+ function L(e) {
53
+ if (e !== m) {
54
+ if (e.includes("\0")) {
55
+ const t = e.split("\0").filter(Boolean);
56
+ return t.length === 0 ? void 0 : t.length === 1 ? t[0] ?? void 0 : t;
57
+ }
58
+ return e;
49
59
  }
50
- if (r.length !== 0)
51
- return e && r.includes(e) ? e : r.includes(x) ? x : r[0];
52
60
  }
53
- function B(t, e, s, u) {
54
- if (!t)
55
- return !1;
56
- if (!u)
57
- return t.startsWith("0");
58
- if (!s || !t.startsWith(s) || !t.slice(s.length).startsWith("0"))
59
- return !1;
60
- const o = t.slice(s.length + 1), i = e.startsWith(s) ? e.slice(s.length) : e;
61
- return o === i;
61
+ function v(e, t) {
62
+ const r = f.get(t);
63
+ if (r)
64
+ return r;
65
+ const n = N(e);
66
+ return f.set(t, n), n;
62
67
  }
63
- function S(t) {
64
- for (const e of $)
65
- if (t.startsWith(e))
66
- return t.slice(e.length);
67
- return t;
68
- }
69
- function M(t, e, s = {}) {
70
- const { allowJustPlus: u = !1, removeNationalPrefix: o = !0, previousValue: i } = s, n = T(t).trim();
71
- if (!n)
72
- return "";
73
- if (n === "+")
74
- return u ? "+" : "";
75
- if (n.startsWith("+")) {
76
- const a = g(n);
77
- if (!a)
78
- return u ? "+" : "";
79
- const d = S(a);
80
- if (d !== a)
81
- return d ? `+${d}` : u ? "+" : "";
82
- if (o && e) {
83
- const h = p(e);
84
- if (a.startsWith(h) && a.slice(h.length).startsWith("0")) {
85
- const E = a.slice(h.length + 1);
86
- return E ? `+${h}${E}` : `+${h}`;
87
- }
88
- }
89
- return `+${a}`;
90
- }
91
- const r = g(n);
92
- if (!r)
93
- return "";
94
- const f = S(r);
95
- if (f !== r)
96
- return f ? `+${f}` : u ? "+" : "";
97
- const l = typeof i == "string" ? i : "", m = l && l.startsWith("+") ? g(l) : "";
98
- if (m && m.length > r.length && m.endsWith(r) && m.length - r.length <= W)
99
- return `+${r}`;
100
- if (r === "0")
101
- return "0";
102
- if (o && e && r.length > 1 && r.startsWith("0") && !r.startsWith("00")) {
103
- const a = p(e), d = r.slice(1);
104
- return d ? `+${a}${d}` : `+${a}`;
105
- }
106
- return e ? r.length <= 4 ? `+${r}` : `+${p(e)}${r}` : r;
68
+ function F(e) {
69
+ return {
70
+ code: e.value,
71
+ name: e.name,
72
+ dialCode: e.dialCode,
73
+ flag: e.flag
74
+ };
107
75
  }
108
- function Y(t, e) {
109
- if (t === "+")
110
- return {
111
- international: "+",
112
- national: "",
113
- formatted: "+",
114
- phoneNumber: null,
115
- detectedCountry: void 0,
116
- inferredCountry: void 0,
117
- hasExplicitInternationalPrefix: !0
118
- };
119
- const s = /^\s*\+/.test(t), u = e ? new I(e) : new I(), o = u.input(t), i = u.getNumber(), c = g(t), n = y(
120
- i?.country ?? u.country ?? void 0
121
- ), r = n ?? !i ? void 0 : y(
122
- _(i, e, c)
123
- ), f = i?.formatInternational() ?? o, l = i?.formatNational() ?? g(f);
76
+ function M(e) {
124
77
  return {
125
- international: f,
126
- national: l,
127
- formatted: o,
128
- phoneNumber: i,
129
- detectedCountry: n,
130
- inferredCountry: r,
131
- hasExplicitInternationalPrefix: s
78
+ code: e,
79
+ name: e,
80
+ dialCode: s(e),
81
+ flag: A(e)
132
82
  };
133
83
  }
134
- function v(t, e) {
135
- return t.startsWith(e) ? t.slice(e.length) : t;
84
+ function A(e) {
85
+ const t = e?.toUpperCase();
86
+ if (!t || t.length !== 2 || /[^A-Z]/.test(t))
87
+ return "";
88
+ const r = 127397;
89
+ return String.fromCodePoint(
90
+ t.charCodeAt(0) + r,
91
+ t.charCodeAt(1) + r
92
+ );
136
93
  }
137
- function H(t, e) {
138
- if (!e || !t)
139
- return null;
140
- try {
141
- return D(t, e) === "TOO_LONG" ? "TOO_LONG" : null;
142
- } catch {
143
- return null;
144
- }
94
+ const S = /[\u0300-\u036f]/g;
95
+ function h(e) {
96
+ return e.normalize("NFD").replace(S, "");
97
+ }
98
+ function U(e) {
99
+ return h(e).toLowerCase();
145
100
  }
146
- function U(t, e, s, u = {}) {
147
- const {
148
- hasRemovedNationalPrefix: o = !1,
149
- detectedCountry: i,
150
- hasExplicitInternationalPrefix: c = !1
151
- } = u;
152
- if (!t)
153
- return { shouldSuggest: !1, query: "" };
154
- if (t === "+")
155
- return { shouldSuggest: !0, query: "" };
156
- const n = g(t);
157
- if (!n)
158
- return { shouldSuggest: !0, query: "" };
159
- if (o)
160
- return { shouldSuggest: !1, query: "" };
161
- if (c && !i)
162
- return P(n) ? { shouldSuggest: !0, query: n } : { shouldSuggest: !1, query: "" };
163
- let r = s?.countryCallingCode ?? null;
164
- if (!r) {
165
- if (e) {
166
- const l = p(e);
167
- n.startsWith(l) && (r = l);
168
- } else if (!c)
169
- return { shouldSuggest: !1, query: "" };
101
+ function B(e, t) {
102
+ let r = Number.MAX_SAFE_INTEGER;
103
+ for (const n of e) {
104
+ const a = n.indexOf(t);
105
+ a >= 0 && a < r && (r = a);
170
106
  }
171
- return r ? v(n, r).length === 0 ? { shouldSuggest: !0, query: n } : { shouldSuggest: !1, query: "" } : { shouldSuggest: !0, query: n };
107
+ return r === Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : r;
172
108
  }
173
- function V(t, e) {
174
- if (t.shouldSuggest)
175
- return !1;
176
- const { hasExplicitInternationalPrefix: s = !1, detectedCountry: u } = e;
177
- return s ? !!u : !0;
109
+ function D(e) {
110
+ switch (e) {
111
+ case "US":
112
+ return ["USA", "United States", "America", "United States of America"];
113
+ case "GB":
114
+ return ["UK", "United Kingdom", "Great Britain", "England"];
115
+ case "AE":
116
+ return ["UAE", "United Arab Emirates"];
117
+ case "KR":
118
+ return ["South Korea", "Korea"];
119
+ case "CN":
120
+ return ["China", "PRC"];
121
+ case "CD":
122
+ return ["DRC", "Congo-Kinshasa"];
123
+ case "CG":
124
+ return ["Congo-Brazzaville"];
125
+ case "BR":
126
+ return ["Brazil"];
127
+ default:
128
+ return [];
129
+ }
178
130
  }
179
131
  export {
180
- B as detectNationalPrefixForDisplay,
181
- Y as formatWithAsYouType,
182
- H as getLengthIssue,
183
- U as getSuggestionState,
184
- q as injectNationalPrefixDisplay,
185
- M as normalizeInputValue,
186
- g as sanitizeDigits,
187
- V as shouldDisplayExplicitCountrySelection,
188
- v as stripPrefix
132
+ y as COMMON_IDD_PREFIXES,
133
+ _ as COUNTRY_DIAL_CODES,
134
+ c as DEFAULT_COUNTRY,
135
+ O as MAX_DIAL_CODE_LENGTH,
136
+ M as buildFallbackSelectedCountry,
137
+ v as getCachedCountryOptions,
138
+ b as getLocaleCacheKey,
139
+ R as getValidCountry,
140
+ U as normalizeSearchValue,
141
+ B as optionMatchIndex,
142
+ L as parseLocaleCacheKey,
143
+ F as toSelectedCountry
189
144
  };
190
145
  //# sourceMappingURL=index37.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index37.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","isDialCodeProgress","digits","MAX_DIAL_CODE_LENGTH","COUNTRY_DIAL_CODES","dial","INVISIBLE_FORMATTING_CHARACTERS","stripInvisibleFormatting","injectNationalPrefixDisplay","international","dialCode","options","force","prefix","remainder","firstGroup","restGroups","rebuiltFirstGroup","rebuiltRemainder","DETECTED_COUNTRY_OVERRIDES","canonicalizeDetectedCountry","candidate","inferCountryFromDialCode","phoneNumber","baseCountry","normalizedDigits","metadataGetter","candidates","canonicalCandidates","canonical","DEFAULT_COUNTRY","detectNationalPrefixForDisplay","rawDigits","internationalDigits","hasExplicitInternationalPrefix","rawAfterTrunk","internationalAfterDial","stripIddPrefix","COMMON_IDD_PREFIXES","normalizeInputValue","rawValue","country","allowJustPlus","removeNationalPrefix","previousValue","trimmed","digitsWithoutIdd","getCountryCallingCode","withoutPrefix","digitsOnly","previousNormalized","previousDigits","formatWithAsYouType","formatter","AsYouType","formatted","detectedCountry","inferredCountry","national","stripPrefix","getLengthIssue","validatePhoneNumberLength","getSuggestionState","normalized","hasRemovedNationalPrefix","baseDial","shouldDisplayExplicitCountrySelection","suggestion"],"mappings":"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"}
1
+ {"version":3,"file":"index37.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","DEFAULT_LOCALE_CACHE_KEY","COUNTRY_DIAL_CODES","code","getCountryCallingCode","a","b","MAX_DIAL_CODE_LENGTH","max","dial","COMMON_IDD_PREFIXES","getValidCountry","input","createDisplayNames","locale","locales","buildCountryOptions","displayNames","englishDisplayNames","country","dialCode","localizedName","englishName","aliasTokens","getCountryAliases","searchableTokens","countryCodeToFlagEmoji","token","normalizeSearchValue","priorityA","getCountryPriority","priorityB","getLocaleCacheKey","parseLocaleCacheKey","cacheKey","parts","getCachedCountryOptions","cached","built","toSelectedCountry","option","buildFallbackSelectedCountry","upper","base","DIACRITICS_REGEX","stripDiacritics","value","optionMatchIndex","tokens","query","best","index"],"mappings":"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"}
package/dist/index38.js CHANGED
@@ -1,80 +1,190 @@
1
- function c(t) {
2
- if (!t)
3
- return !1;
4
- const e = t.charCodeAt(0);
5
- return e >= 48 && e <= 57;
1
+ import { MAX_DIAL_CODE_LENGTH as W, COMMON_IDD_PREFIXES as $, DEFAULT_COUNTRY as x, COUNTRY_DIAL_CODES as C } from "./index37.js";
2
+ import { getCountryCallingCode as p } from "./index41.js";
3
+ import { AsYouType as I } from "./index71.js";
4
+ import { validatePhoneNumberLength as D } from "./index72.js";
5
+ function g(t) {
6
+ return t.replace(/\D/g, "");
6
7
  }
7
- function l(t, e) {
8
- let n = 0;
9
- const r = Math.min(e, t.length);
10
- for (let i = 0; i < r; i += 1)
11
- c(t[i] ?? "") && (n += 1);
12
- return n;
8
+ function P(t) {
9
+ return t ? t.length > W ? !1 : C.some((e) => e.startsWith(t)) : !0;
13
10
  }
14
- function a(t, e) {
15
- if (e <= 0)
16
- return t.startsWith("+") ? Math.min(1, t.length) : 0;
17
- let n = 0;
18
- for (let r = 0; r < t.length; r += 1)
19
- if (c(t[r] ?? "") && (n += 1, n === e))
20
- return r + 1;
21
- return t.length;
11
+ const N = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
12
+ function T(t) {
13
+ return t.replace(N, "");
22
14
  }
23
- function g(t) {
24
- return !t || c(t) ? !1 : t !== "+";
15
+ function q(t, e, s = {}) {
16
+ const { force: u = !1 } = s, o = `+${e}`;
17
+ if (!t.startsWith(o) || !u)
18
+ return t;
19
+ const i = t.slice(o.length).trimStart();
20
+ if (i.startsWith("0"))
21
+ return t;
22
+ if (!i)
23
+ return `${o} 0`;
24
+ const [n, ...r] = i.split(" "), f = `0${n ?? ""}`, l = r.length > 0 ? ` ${r.join(" ")}` : "";
25
+ return `${o} ${f}${l}`.replace(/\s\s+/g, " ").trimEnd();
26
+ }
27
+ const O = {
28
+ GG: "GB",
29
+ JE: "GB",
30
+ IM: "GB"
31
+ };
32
+ function y(t) {
33
+ if (t)
34
+ return O[t] ?? t;
25
35
  }
26
- function h(t, e) {
27
- let n = e;
28
- for (; n > 0; ) {
29
- const r = t[n - 1] ?? "";
30
- if (!g(r))
31
- break;
32
- n -= 1;
36
+ function _(t, e, s) {
37
+ if (!t || !s || (t.nationalNumber ?? "").length < 4)
38
+ return;
39
+ const o = t.countryCallingCode;
40
+ if (!o)
41
+ return;
42
+ const i = t.getMetadata, n = (typeof i == "function" ? i() : null)?.country_calling_codes?.[o];
43
+ if (!n || n.length === 0)
44
+ return;
45
+ const r = [];
46
+ for (const f of n) {
47
+ const l = y(f);
48
+ l && !r.includes(l) && r.push(l);
33
49
  }
34
- return n;
50
+ if (r.length !== 0)
51
+ return e && r.includes(e) ? e : r.includes(x) ? x : r[0];
52
+ }
53
+ function B(t, e, s, u) {
54
+ if (!t)
55
+ return !1;
56
+ if (!u)
57
+ return t.startsWith("0");
58
+ if (!s || !t.startsWith(s) || !t.slice(s.length).startsWith("0"))
59
+ return !1;
60
+ const o = t.slice(s.length + 1), i = e.startsWith(s) ? e.slice(s.length) : e;
61
+ return o === i;
35
62
  }
36
- function S(t, e) {
37
- let n = e;
38
- for (; n < t.length; ) {
39
- const r = t[n] ?? "";
40
- if (!g(r))
41
- break;
42
- n += 1;
63
+ function S(t) {
64
+ for (const e of $)
65
+ if (t.startsWith(e))
66
+ return t.slice(e.length);
67
+ return t;
68
+ }
69
+ function M(t, e, s = {}) {
70
+ const { allowJustPlus: u = !1, removeNationalPrefix: o = !0, previousValue: i } = s, n = T(t).trim();
71
+ if (!n)
72
+ return "";
73
+ if (n === "+")
74
+ return u ? "+" : "";
75
+ if (n.startsWith("+")) {
76
+ const a = g(n);
77
+ if (!a)
78
+ return u ? "+" : "";
79
+ const d = S(a);
80
+ if (d !== a)
81
+ return d ? `+${d}` : u ? "+" : "";
82
+ if (o && e) {
83
+ const h = p(e);
84
+ if (a.startsWith(h) && a.slice(h.length).startsWith("0")) {
85
+ const E = a.slice(h.length + 1);
86
+ return E ? `+${h}${E}` : `+${h}`;
87
+ }
88
+ }
89
+ return `+${a}`;
90
+ }
91
+ const r = g(n);
92
+ if (!r)
93
+ return "";
94
+ const f = S(r);
95
+ if (f !== r)
96
+ return f ? `+${f}` : u ? "+" : "";
97
+ const l = typeof i == "string" ? i : "", m = l && l.startsWith("+") ? g(l) : "";
98
+ if (m && m.length > r.length && m.endsWith(r) && m.length - r.length <= W)
99
+ return `+${r}`;
100
+ if (r === "0")
101
+ return "0";
102
+ if (o && e && r.length > 1 && r.startsWith("0") && !r.startsWith("00")) {
103
+ const a = p(e), d = r.slice(1);
104
+ return d ? `+${a}${d}` : `+${a}`;
43
105
  }
44
- return n;
106
+ return e ? r.length <= 4 ? `+${r}` : `+${p(e)}${r}` : r;
45
107
  }
46
- function m(t) {
47
- const { value: e } = t, n = t.selectionStart ?? e.length, r = t.selectionEnd ?? n, i = n <= 1 && e.startsWith("+"), o = r <= 1 && e.startsWith("+");
108
+ function Y(t, e) {
109
+ if (t === "+")
110
+ return {
111
+ international: "+",
112
+ national: "",
113
+ formatted: "+",
114
+ phoneNumber: null,
115
+ detectedCountry: void 0,
116
+ inferredCountry: void 0,
117
+ hasExplicitInternationalPrefix: !0
118
+ };
119
+ const s = /^\s*\+/.test(t), u = e ? new I(e) : new I(), o = u.input(t), i = u.getNumber(), c = g(t), n = y(
120
+ i?.country ?? u.country ?? void 0
121
+ ), r = n ?? !i ? void 0 : y(
122
+ _(i, e, c)
123
+ ), f = i?.formatInternational() ?? o, l = i?.formatNational() ?? g(f);
48
124
  return {
49
- selectionStart: n,
50
- selectionEnd: r,
51
- startDigits: l(e, n),
52
- endDigits: l(e, r),
53
- preserveStartIndex: i,
54
- preserveEndIndex: o,
55
- wasAtStart: n === 0,
56
- wasAtEnd: r === e.length
125
+ international: f,
126
+ national: l,
127
+ formatted: o,
128
+ phoneNumber: i,
129
+ detectedCountry: n,
130
+ inferredCountry: r,
131
+ hasExplicitInternationalPrefix: s
57
132
  };
58
133
  }
59
- function u(t, e) {
60
- if (t.selectionStart === t.selectionEnd) {
61
- if (t.wasAtEnd) {
62
- const f = e.length;
63
- return { start: f, end: f };
64
- }
65
- if (t.wasAtStart)
66
- return { start: 0, end: 0 };
134
+ function v(t, e) {
135
+ return t.startsWith(e) ? t.slice(e.length) : t;
136
+ }
137
+ function H(t, e) {
138
+ if (!e || !t)
139
+ return null;
140
+ try {
141
+ return D(t, e) === "TOO_LONG" ? "TOO_LONG" : null;
142
+ } catch {
143
+ return null;
67
144
  }
68
- const n = t.preserveStartIndex ? Math.min(t.selectionStart, e.length) : a(e, t.startDigits), r = t.preserveEndIndex ? Math.min(t.selectionEnd, e.length) : a(e, t.endDigits);
69
- let i = n, o = r;
70
- t.wasAtStart && (i = 0), t.wasAtEnd && (o = e.length), t.selectionStart === t.selectionEnd && (i = o);
71
- const d = Math.min(Math.max(i, 0), e.length), s = Math.min(Math.max(o, 0), e.length);
72
- return d > s ? { start: s, end: s } : { start: d, end: s };
145
+ }
146
+ function U(t, e, s, u = {}) {
147
+ const {
148
+ hasRemovedNationalPrefix: o = !1,
149
+ detectedCountry: i,
150
+ hasExplicitInternationalPrefix: c = !1
151
+ } = u;
152
+ if (!t)
153
+ return { shouldSuggest: !1, query: "" };
154
+ if (t === "+")
155
+ return { shouldSuggest: !0, query: "" };
156
+ const n = g(t);
157
+ if (!n)
158
+ return { shouldSuggest: !0, query: "" };
159
+ if (o)
160
+ return { shouldSuggest: !1, query: "" };
161
+ if (c && !i)
162
+ return P(n) ? { shouldSuggest: !0, query: n } : { shouldSuggest: !1, query: "" };
163
+ let r = s?.countryCallingCode ?? null;
164
+ if (!r) {
165
+ if (e) {
166
+ const l = p(e);
167
+ n.startsWith(l) && (r = l);
168
+ } else if (!c)
169
+ return { shouldSuggest: !1, query: "" };
170
+ }
171
+ return r ? v(n, r).length === 0 ? { shouldSuggest: !0, query: n } : { shouldSuggest: !1, query: "" } : { shouldSuggest: !0, query: n };
172
+ }
173
+ function V(t, e) {
174
+ if (t.shouldSuggest)
175
+ return !1;
176
+ const { hasExplicitInternationalPrefix: s = !1, detectedCountry: u } = e;
177
+ return s ? !!u : !0;
73
178
  }
74
179
  export {
75
- m as captureSelectionSnapshot,
76
- u as resolveSelection,
77
- h as skipFormattingCharactersLeft,
78
- S as skipFormattingCharactersRight
180
+ B as detectNationalPrefixForDisplay,
181
+ Y as formatWithAsYouType,
182
+ H as getLengthIssue,
183
+ U as getSuggestionState,
184
+ q as injectNationalPrefixDisplay,
185
+ M as normalizeInputValue,
186
+ g as sanitizeDigits,
187
+ V as shouldDisplayExplicitCountrySelection,
188
+ v as stripPrefix
79
189
  };
80
190
  //# sourceMappingURL=index38.js.map