@rpcbase/ui 0.161.0 → 0.162.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 (363) hide show
  1. package/dist/components/DayPickerField/index.d.ts.map +1 -1
  2. package/dist/index10.js +1 -1
  3. package/dist/index11.js +97 -89
  4. package/dist/index11.js.map +1 -1
  5. package/dist/index112.js +36 -36
  6. package/dist/index113.js +1 -1
  7. package/dist/index12.js +1 -1
  8. package/dist/index124.js +6 -6
  9. package/dist/index127.js +10 -10
  10. package/dist/index129.js +2 -2
  11. package/dist/index13.js +2 -2
  12. package/dist/index130.js +3 -3
  13. package/dist/index131.js +1 -1
  14. package/dist/index133.js +2 -2
  15. package/dist/index135.js +1 -1
  16. package/dist/index14.js +4 -4
  17. package/dist/index15.js +1 -1
  18. package/dist/index158.js +2 -2
  19. package/dist/index159.js +2 -2
  20. package/dist/index16.js +1 -1
  21. package/dist/index160.js +2 -2
  22. package/dist/index161.js +3 -3
  23. package/dist/index163.js +1 -1
  24. package/dist/index164.js +5 -5
  25. package/dist/index165.js +2 -2
  26. package/dist/index166.js +1 -1
  27. package/dist/index167.js +1 -1
  28. package/dist/index169.js +1 -1
  29. package/dist/index17.js +1 -1
  30. package/dist/index170.js +1 -1
  31. package/dist/index176.js +1 -1
  32. package/dist/index177.js +599 -40
  33. package/dist/index177.js.map +1 -1
  34. package/dist/index178.js +41 -200
  35. package/dist/index178.js.map +1 -1
  36. package/dist/index179.js +204 -20
  37. package/dist/index179.js.map +1 -1
  38. package/dist/index18.js +236 -236
  39. package/dist/index18.js.map +1 -1
  40. package/dist/index180.js +22 -25
  41. package/dist/index180.js.map +1 -1
  42. package/dist/index181.js +23 -398
  43. package/dist/index181.js.map +1 -1
  44. package/dist/index182.js +383 -589
  45. package/dist/index182.js.map +1 -1
  46. package/dist/index184.js +4 -4
  47. package/dist/index189.js +1 -1
  48. package/dist/index19.js +7 -7
  49. package/dist/index190.js +1 -1
  50. package/dist/index197.js +1 -1
  51. package/dist/index198.js +6 -6
  52. package/dist/index20.js +2 -2
  53. package/dist/index200.js +4 -4
  54. package/dist/index202.js +1 -1
  55. package/dist/index205.js +1 -1
  56. package/dist/index206.js +1 -1
  57. package/dist/index21.js +1 -1
  58. package/dist/index211.js +3 -16
  59. package/dist/index211.js.map +1 -1
  60. package/dist/index212.js +57 -4
  61. package/dist/index212.js.map +1 -1
  62. package/dist/index213.js +8 -5
  63. package/dist/index213.js.map +1 -1
  64. package/dist/index214.js +55 -47
  65. package/dist/index214.js.map +1 -1
  66. package/dist/index215.js +17 -64
  67. package/dist/index215.js.map +1 -1
  68. package/dist/index216.js +16 -6
  69. package/dist/index216.js.map +1 -1
  70. package/dist/index217.js +5 -4
  71. package/dist/index217.js.map +1 -1
  72. package/dist/index218.js +5 -7
  73. package/dist/index218.js.map +1 -1
  74. package/dist/index219.js +6 -17
  75. package/dist/index219.js.map +1 -1
  76. package/dist/index22.js +1 -1
  77. package/dist/index220.js +4 -5
  78. package/dist/index220.js.map +1 -1
  79. package/dist/index221.js +7 -5
  80. package/dist/index221.js.map +1 -1
  81. package/dist/index222.js +17 -13
  82. package/dist/index222.js.map +1 -1
  83. package/dist/index223.js +5 -10
  84. package/dist/index223.js.map +1 -1
  85. package/dist/index224.js +5 -14
  86. package/dist/index224.js.map +1 -1
  87. package/dist/index225.js +13 -14
  88. package/dist/index225.js.map +1 -1
  89. package/dist/index226.js +10 -5
  90. package/dist/index226.js.map +1 -1
  91. package/dist/index227.js +14 -6
  92. package/dist/index227.js.map +1 -1
  93. package/dist/index228.js +14 -7
  94. package/dist/index228.js.map +1 -1
  95. package/dist/index229.js +5 -6
  96. package/dist/index229.js.map +1 -1
  97. package/dist/index23.js +1 -1
  98. package/dist/index230.js +6 -9
  99. package/dist/index230.js.map +1 -1
  100. package/dist/index231.js +7 -5
  101. package/dist/index231.js.map +1 -1
  102. package/dist/index232.js +6 -5
  103. package/dist/index232.js.map +1 -1
  104. package/dist/index233.js +8 -8
  105. package/dist/index233.js.map +1 -1
  106. package/dist/index234.js +5 -5
  107. package/dist/index234.js.map +1 -1
  108. package/dist/index235.js +5 -5
  109. package/dist/index235.js.map +1 -1
  110. package/dist/index236.js +9 -4
  111. package/dist/index236.js.map +1 -1
  112. package/dist/index237.js +5 -11
  113. package/dist/index237.js.map +1 -1
  114. package/dist/index238.js +5 -10
  115. package/dist/index238.js.map +1 -1
  116. package/dist/index239.js +4 -10
  117. package/dist/index239.js.map +1 -1
  118. package/dist/index24.js +1 -1
  119. package/dist/index240.js +11 -11
  120. package/dist/index240.js.map +1 -1
  121. package/dist/index241.js +10 -11
  122. package/dist/index241.js.map +1 -1
  123. package/dist/index242.js +10 -10
  124. package/dist/index242.js.map +1 -1
  125. package/dist/index243.js +11 -7
  126. package/dist/index243.js.map +1 -1
  127. package/dist/index244.js +11 -6
  128. package/dist/index244.js.map +1 -1
  129. package/dist/index245.js +10 -5
  130. package/dist/index245.js.map +1 -1
  131. package/dist/index246.js +7 -6
  132. package/dist/index246.js.map +1 -1
  133. package/dist/index247.js +6 -7
  134. package/dist/index247.js.map +1 -1
  135. package/dist/index248.js +5 -6
  136. package/dist/index248.js.map +1 -1
  137. package/dist/index249.js +6 -55
  138. package/dist/index249.js.map +1 -1
  139. package/dist/index250.js +7 -8
  140. package/dist/index250.js.map +1 -1
  141. package/dist/index251.js +6 -19
  142. package/dist/index251.js.map +1 -1
  143. package/dist/index252.js +53 -21
  144. package/dist/index252.js.map +1 -1
  145. package/dist/index253.js +22 -15
  146. package/dist/index253.js.map +1 -1
  147. package/dist/index254.js +16 -7
  148. package/dist/index254.js.map +1 -1
  149. package/dist/index255.js +7 -10
  150. package/dist/index255.js.map +1 -1
  151. package/dist/index256.js +9 -9
  152. package/dist/index256.js.map +1 -1
  153. package/dist/index257.js +10 -21
  154. package/dist/index257.js.map +1 -1
  155. package/dist/index258.js +21 -10
  156. package/dist/index258.js.map +1 -1
  157. package/dist/index259.js +10 -9
  158. package/dist/index259.js.map +1 -1
  159. package/dist/index260.js +6 -6
  160. package/dist/index260.js.map +1 -1
  161. package/dist/index261.js +9 -4
  162. package/dist/index261.js.map +1 -1
  163. package/dist/index262.js +4 -5
  164. package/dist/index262.js.map +1 -1
  165. package/dist/index263.js +5 -16
  166. package/dist/index263.js.map +1 -1
  167. package/dist/index264.js +16 -9
  168. package/dist/index264.js.map +1 -1
  169. package/dist/index265.js +9 -18
  170. package/dist/index265.js.map +1 -1
  171. package/dist/index266.js +15 -12
  172. package/dist/index266.js.map +1 -1
  173. package/dist/index267.js +12 -9
  174. package/dist/index267.js.map +1 -1
  175. package/dist/index268.js +12 -29
  176. package/dist/index268.js.map +1 -1
  177. package/dist/index269.js +62 -10
  178. package/dist/index269.js.map +1 -1
  179. package/dist/index27.js +3 -37
  180. package/dist/index27.js.map +1 -1
  181. package/dist/index270.js +48 -25
  182. package/dist/index270.js.map +1 -1
  183. package/dist/index271.js +39 -5
  184. package/dist/index271.js.map +1 -1
  185. package/dist/index272.js +98 -62
  186. package/dist/index272.js.map +1 -1
  187. package/dist/index273.js +96 -47
  188. package/dist/index273.js.map +1 -1
  189. package/dist/index274.js +88 -28
  190. package/dist/index274.js.map +1 -1
  191. package/dist/index275.js +29 -100
  192. package/dist/index275.js.map +1 -1
  193. package/dist/index276.js +12 -97
  194. package/dist/index276.js.map +1 -1
  195. package/dist/index277.js +23 -97
  196. package/dist/index277.js.map +1 -1
  197. package/dist/index278.js +5 -3
  198. package/dist/index278.js.map +1 -1
  199. package/dist/index279.js +65 -22
  200. package/dist/index279.js.map +1 -1
  201. package/dist/index28.js +125 -3
  202. package/dist/index28.js.map +1 -1
  203. package/dist/index280.js +179 -27
  204. package/dist/index280.js.map +1 -1
  205. package/dist/index281.js +47 -5
  206. package/dist/index281.js.map +1 -1
  207. package/dist/index282.js +22 -65
  208. package/dist/index282.js.map +1 -1
  209. package/dist/index283.js +27 -179
  210. package/dist/index283.js.map +1 -1
  211. package/dist/index284.js +5 -47
  212. package/dist/index284.js.map +1 -1
  213. package/dist/index285.js +31 -2
  214. package/dist/index285.js.map +1 -1
  215. package/dist/index286.js +10 -2
  216. package/dist/index286.js.map +1 -1
  217. package/dist/index287.js +46 -12
  218. package/dist/index287.js.map +1 -1
  219. package/dist/index288.js +10 -153
  220. package/dist/index288.js.map +1 -1
  221. package/dist/index289.js +42 -28
  222. package/dist/index289.js.map +1 -1
  223. package/dist/index29.js +47 -124
  224. package/dist/index29.js.map +1 -1
  225. package/dist/index290.js +95 -9
  226. package/dist/index290.js.map +1 -1
  227. package/dist/index291.js +82 -43
  228. package/dist/index291.js.map +1 -1
  229. package/dist/index292.js +104 -10
  230. package/dist/index292.js.map +1 -1
  231. package/dist/index293.js +50 -42
  232. package/dist/index293.js.map +1 -1
  233. package/dist/index294.js +12 -94
  234. package/dist/index294.js.map +1 -1
  235. package/dist/index295.js +10 -85
  236. package/dist/index295.js.map +1 -1
  237. package/dist/index296.js +28 -96
  238. package/dist/index296.js.map +1 -1
  239. package/dist/index297.js +8 -52
  240. package/dist/index297.js.map +1 -1
  241. package/dist/index298.js +153 -10
  242. package/dist/index298.js.map +1 -1
  243. package/dist/index299.js +110 -31
  244. package/dist/index299.js.map +1 -1
  245. package/dist/index30.js +219 -47
  246. package/dist/index30.js.map +1 -1
  247. package/dist/index300.js +17 -8
  248. package/dist/index300.js.map +1 -1
  249. package/dist/index301.js +13 -114
  250. package/dist/index301.js.map +1 -1
  251. package/dist/index302.js +3 -17
  252. package/dist/index302.js.map +1 -1
  253. package/dist/index303.js +33 -12
  254. package/dist/index303.js.map +1 -1
  255. package/dist/index304.js +20 -3
  256. package/dist/index304.js.map +1 -1
  257. package/dist/index305.js +9 -36
  258. package/dist/index305.js.map +1 -1
  259. package/dist/index306.js +8 -20
  260. package/dist/index306.js.map +1 -1
  261. package/dist/index307.js +19 -9
  262. package/dist/index307.js.map +1 -1
  263. package/dist/index308.js +28 -8
  264. package/dist/index308.js.map +1 -1
  265. package/dist/index309.js +15 -18
  266. package/dist/index309.js.map +1 -1
  267. package/dist/index31.js +40 -216
  268. package/dist/index31.js.map +1 -1
  269. package/dist/index310.js +2 -29
  270. package/dist/index310.js.map +1 -1
  271. package/dist/index311.js +2 -17
  272. package/dist/index311.js.map +1 -1
  273. package/dist/index318.js +1 -1
  274. package/dist/index319.js +1 -1
  275. package/dist/index32.js +38 -41
  276. package/dist/index32.js.map +1 -1
  277. package/dist/index33.js +24 -36
  278. package/dist/index33.js.map +1 -1
  279. package/dist/index331.js +2 -2
  280. package/dist/index334.js +1 -1
  281. package/dist/index335.js +2 -2
  282. package/dist/index337.js +1 -1
  283. package/dist/index338.js +1 -1
  284. package/dist/index339.js +1 -1
  285. package/dist/index34.js +38 -21
  286. package/dist/index34.js.map +1 -1
  287. package/dist/index340.js +1 -1
  288. package/dist/index341.js +1 -1
  289. package/dist/index342.js +1 -1
  290. package/dist/index345.js +1 -1
  291. package/dist/index35.js +30 -44
  292. package/dist/index35.js.map +1 -1
  293. package/dist/index359.js +11 -21
  294. package/dist/index359.js.map +1 -1
  295. package/dist/index36.js +26 -30
  296. package/dist/index36.js.map +1 -1
  297. package/dist/index360.js +26 -11
  298. package/dist/index360.js.map +1 -1
  299. package/dist/index361.js +4 -27
  300. package/dist/index361.js.map +1 -1
  301. package/dist/index362.js +22 -4
  302. package/dist/index362.js.map +1 -1
  303. package/dist/index37.js +23 -28
  304. package/dist/index37.js.map +1 -1
  305. package/dist/index38.js +123 -17
  306. package/dist/index38.js.map +1 -1
  307. package/dist/index39.js +230 -127
  308. package/dist/index39.js.map +1 -1
  309. package/dist/index40.js +49 -230
  310. package/dist/index40.js.map +1 -1
  311. package/dist/index41.js +2640 -50
  312. package/dist/index41.js.map +1 -1
  313. package/dist/index42.js +351 -2598
  314. package/dist/index42.js.map +1 -1
  315. package/dist/index43.js +214 -375
  316. package/dist/index43.js.map +1 -1
  317. package/dist/index44.js +19 -230
  318. package/dist/index44.js.map +1 -1
  319. package/dist/index45.js +138 -18
  320. package/dist/index45.js.map +1 -1
  321. package/dist/index46.js +170 -125
  322. package/dist/index46.js.map +1 -1
  323. package/dist/index47.js +64 -174
  324. package/dist/index47.js.map +1 -1
  325. package/dist/index48.js +88 -74
  326. package/dist/index48.js.map +1 -1
  327. package/dist/index49.js +5 -90
  328. package/dist/index49.js.map +1 -1
  329. package/dist/index5.js +1 -1
  330. package/dist/index50.js +843 -5
  331. package/dist/index50.js.map +1 -1
  332. package/dist/index51.js +54 -832
  333. package/dist/index51.js.map +1 -1
  334. package/dist/index52.js +37 -66
  335. package/dist/index52.js.map +1 -1
  336. package/dist/index55.js +1 -1
  337. package/dist/index56.js +1 -1
  338. package/dist/index57.js +2 -2
  339. package/dist/index59.js +1 -1
  340. package/dist/index64.js +2 -2
  341. package/dist/index65.js +1 -1
  342. package/dist/index66.js +1 -1
  343. package/dist/index68.js +1 -1
  344. package/dist/index70.js +5 -5
  345. package/dist/index71.js +1 -1
  346. package/dist/index72.js +1 -1
  347. package/dist/index76.js +1 -1
  348. package/dist/index78.js +3 -3
  349. package/dist/index79.js +53 -5
  350. package/dist/index79.js.map +1 -1
  351. package/dist/index8.js +1 -1
  352. package/dist/index80.js +2 -8
  353. package/dist/index80.js.map +1 -1
  354. package/dist/index81.js +2 -6
  355. package/dist/index81.js.map +1 -1
  356. package/dist/index82.js +5 -53
  357. package/dist/index82.js.map +1 -1
  358. package/dist/index83.js +8 -2
  359. package/dist/index83.js.map +1 -1
  360. package/dist/index84.js +6 -2
  361. package/dist/index84.js.map +1 -1
  362. package/dist/index9.js +1 -1
  363. package/package.json +1 -1
package/dist/index46.js CHANGED
@@ -1,145 +1,190 @@
1
- import { getCountryList as E } from "./index79.js";
2
- import { getCountryCallingCode as s } from "./index50.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;
1
+ import { MAX_DIAL_CODE_LENGTH as W, COMMON_IDD_PREFIXES as $, DEFAULT_COUNTRY as x, COUNTRY_DIAL_CODES as C } from "./index45.js";
2
+ import { getCountryCallingCode as p } from "./index49.js";
3
+ import { AsYouType as I } from "./index83.js";
4
+ import { validatePhoneNumberLength as D } from "./index84.js";
5
+ function g(t) {
6
+ return t.replace(/\D/g, "");
11
7
  }
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
- }
8
+ function P(t) {
9
+ return t ? t.length > W ? !1 : C.some((e) => e.startsWith(t)) : !0;
21
10
  }
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
- });
11
+ const N = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
12
+ function T(t) {
13
+ return t.replace(N, "");
45
14
  }
46
- function d(e) {
47
- return e === "US" ? 0 : e === "CA" ? 1 : s(e) === "1" ? 2 : 3;
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();
48
26
  }
49
- function b(e) {
50
- return e ? Array.isArray(e) ? e.join("\0") : e : m;
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;
51
35
  }
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;
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);
59
49
  }
50
+ if (r.length !== 0)
51
+ return e && r.includes(e) ? e : r.includes(x) ? x : r[0];
60
52
  }
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;
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;
67
62
  }
68
- function F(e) {
69
- return {
70
- code: e.value,
71
- name: e.name,
72
- dialCode: e.dialCode,
73
- flag: e.flag
74
- };
75
- }
76
- function M(e) {
77
- return {
78
- code: e,
79
- name: e,
80
- dialCode: s(e),
81
- flag: A(e)
82
- };
63
+ function S(t) {
64
+ for (const e of $)
65
+ if (t.startsWith(e))
66
+ return t.slice(e.length);
67
+ return t;
83
68
  }
84
- function A(e) {
85
- const t = e?.toUpperCase();
86
- if (!t || t.length !== 2 || /[^A-Z]/.test(t))
69
+ function M(t, e, s = {}) {
70
+ const { allowJustPlus: u = !1, removeNationalPrefix: o = !0, previousValue: i } = s, n = T(t).trim();
71
+ if (!n)
87
72
  return "";
88
- const r = 127397;
89
- return String.fromCodePoint(
90
- t.charCodeAt(0) + r,
91
- t.charCodeAt(1) + r
92
- );
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;
93
107
  }
94
- const S = /[\u0300-\u036f]/g;
95
- function h(e) {
96
- return e.normalize("NFD").replace(S, "");
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);
124
+ return {
125
+ international: f,
126
+ national: l,
127
+ formatted: o,
128
+ phoneNumber: i,
129
+ detectedCountry: n,
130
+ inferredCountry: r,
131
+ hasExplicitInternationalPrefix: s
132
+ };
97
133
  }
98
- function U(e) {
99
- return h(e).toLowerCase();
134
+ function v(t, e) {
135
+ return t.startsWith(e) ? t.slice(e.length) : t;
100
136
  }
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);
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;
106
144
  }
107
- return r === Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : r;
108
145
  }
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 [];
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: "" };
129
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;
130
178
  }
131
179
  export {
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
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
144
189
  };
145
190
  //# sourceMappingURL=index46.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index46.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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"}
1
+ {"version":3,"file":"index46.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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"}
package/dist/index47.js CHANGED
@@ -1,190 +1,80 @@
1
- import { MAX_DIAL_CODE_LENGTH as W, COMMON_IDD_PREFIXES as $, DEFAULT_COUNTRY as x, COUNTRY_DIAL_CODES as C } from "./index46.js";
2
- import { getCountryCallingCode as p } from "./index50.js";
3
- import { AsYouType as I } from "./index80.js";
4
- import { validatePhoneNumberLength as D } from "./index81.js";
5
- function g(t) {
6
- return t.replace(/\D/g, "");
7
- }
8
- function P(t) {
9
- return t ? t.length > W ? !1 : C.some((e) => e.startsWith(t)) : !0;
1
+ function c(t) {
2
+ if (!t)
3
+ return !1;
4
+ const e = t.charCodeAt(0);
5
+ return e >= 48 && e <= 57;
10
6
  }
11
- const N = /[\u061C\u200B-\u200F\u202A-\u202E\u2066-\u2069\uFEFF]/g;
12
- function T(t) {
13
- return t.replace(N, "");
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;
14
13
  }
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();
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;
26
22
  }
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;
23
+ function g(t) {
24
+ return !t || c(t) ? !1 : t !== "+";
35
25
  }
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);
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;
49
33
  }
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;
34
+ return n;
62
35
  }
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}`;
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;
105
43
  }
106
- return e ? r.length <= 4 ? `+${r}` : `+${p(e)}${r}` : r;
44
+ return n;
107
45
  }
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);
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("+");
124
48
  return {
125
- international: f,
126
- national: l,
127
- formatted: o,
128
- phoneNumber: i,
129
- detectedCountry: n,
130
- inferredCountry: r,
131
- hasExplicitInternationalPrefix: s
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
132
57
  };
133
58
  }
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;
144
- }
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: "" };
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 };
170
67
  }
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;
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 };
178
73
  }
179
74
  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
75
+ m as captureSelectionSnapshot,
76
+ u as resolveSelection,
77
+ h as skipFormattingCharactersLeft,
78
+ S as skipFormattingCharactersRight
189
79
  };
190
80
  //# sourceMappingURL=index47.js.map