intl-tel-input 28.0.9 → 28.1.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 (64) hide show
  1. package/dist/js/data.js +1 -1
  2. package/dist/js/data.min.js +1 -1
  3. package/dist/js/i18n/ar.js +3 -3
  4. package/dist/js/i18n/bg.js +2 -2
  5. package/dist/js/i18n/bn.js +2 -2
  6. package/dist/js/i18n/bs.js +2 -2
  7. package/dist/js/i18n/ca.js +2 -2
  8. package/dist/js/i18n/cs.js +2 -2
  9. package/dist/js/i18n/da.js +2 -2
  10. package/dist/js/i18n/de.js +2 -2
  11. package/dist/js/i18n/el.js +2 -2
  12. package/dist/js/i18n/es.js +2 -2
  13. package/dist/js/i18n/et.js +2 -2
  14. package/dist/js/i18n/fa.js +2 -5
  15. package/dist/js/i18n/fi.js +2 -2
  16. package/dist/js/i18n/fil.js +16 -0
  17. package/dist/js/i18n/fr.js +2 -2
  18. package/dist/js/i18n/he.js +19 -0
  19. package/dist/js/i18n/hi.js +2 -2
  20. package/dist/js/i18n/hr.js +2 -2
  21. package/dist/js/i18n/hu.js +2 -5
  22. package/dist/js/i18n/hy.js +19 -0
  23. package/dist/js/i18n/id.js +2 -5
  24. package/dist/js/i18n/index.js +9 -0
  25. package/dist/js/i18n/is.js +21 -0
  26. package/dist/js/i18n/it.js +2 -2
  27. package/dist/js/i18n/ja.js +2 -5
  28. package/dist/js/i18n/kn.js +2 -2
  29. package/dist/js/i18n/ko.js +2 -5
  30. package/dist/js/i18n/lt.js +2 -2
  31. package/dist/js/i18n/lv.js +24 -0
  32. package/dist/js/i18n/mk.js +21 -0
  33. package/dist/js/i18n/mr.js +2 -2
  34. package/dist/js/i18n/ms.js +16 -0
  35. package/dist/js/i18n/nl.js +2 -2
  36. package/dist/js/i18n/no.js +2 -2
  37. package/dist/js/i18n/pl.js +2 -2
  38. package/dist/js/i18n/pt.js +2 -2
  39. package/dist/js/i18n/ro.js +4 -4
  40. package/dist/js/i18n/ru.js +2 -2
  41. package/dist/js/i18n/sk.js +5 -8
  42. package/dist/js/i18n/sl.js +2 -2
  43. package/dist/js/i18n/sq.js +2 -2
  44. package/dist/js/i18n/sr.js +2 -2
  45. package/dist/js/i18n/sv.js +2 -5
  46. package/dist/js/i18n/sw.js +19 -0
  47. package/dist/js/i18n/ta.js +19 -0
  48. package/dist/js/i18n/te.js +2 -2
  49. package/dist/js/i18n/th.js +2 -5
  50. package/dist/js/i18n/tr.js +2 -5
  51. package/dist/js/i18n/uk.js +2 -2
  52. package/dist/js/i18n/ur.js +2 -2
  53. package/dist/js/i18n/uz.js +2 -5
  54. package/dist/js/i18n/vi.js +2 -5
  55. package/dist/js/i18n/zh-hk.js +2 -5
  56. package/dist/js/i18n/zh.js +2 -5
  57. package/dist/js/i18n.d.ts +49 -31
  58. package/dist/js/intlTelInput.js +33 -27
  59. package/dist/js/intlTelInput.min.js +2 -2
  60. package/dist/js/intlTelInput.mjs +32 -26
  61. package/dist/js/intlTelInputWithUtils.js +33 -27
  62. package/dist/js/intlTelInputWithUtils.min.js +2 -2
  63. package/dist/js/intlTelInputWithUtils.mjs +32 -26
  64. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Spremeni državo, izbrano ${countryName} (${dialCode})",
4
- noCountrySelected: "Izberi državo",
3
+ selectedCountryAriaLabel: "Spremeni državo za telefonsko številko, izbrano ${countryName} (${dialCode})",
4
+ noCountrySelected: "Izberi državo za telefonsko številko",
5
5
  countryListAriaLabel: "Seznam držav",
6
6
  searchPlaceholder: "Išči",
7
7
  clearSearchAriaLabel: "Počisti iskanje",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Ndrysho vendin, i zgjedhur ${countryName} (${dialCode})",
4
- noCountrySelected: "Zgjidh vendin",
3
+ selectedCountryAriaLabel: "Ndrysho vendin për numrin e telefonit, i zgjedhur ${countryName} (${dialCode})",
4
+ noCountrySelected: "Zgjidh vendin për numrin e telefonit",
5
5
  countryListAriaLabel: "Lista e vendeve",
6
6
  searchPlaceholder: "Kërko",
7
7
  clearSearchAriaLabel: "Pastro kërkimin",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Промени земљу, изабрано ${countryName} (${dialCode})",
4
- noCountrySelected: "Изабери земљу",
3
+ selectedCountryAriaLabel: "Промени земљу за телефонски број, изабрано ${countryName} (${dialCode})",
4
+ noCountrySelected: "Изабери земљу за телефонски број",
5
5
  countryListAriaLabel: "Листа земаља",
6
6
  searchPlaceholder: "Претрага",
7
7
  clearSearchAriaLabel: "Обриши претрагу",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Valt land",
4
- noCountrySelected: "Inget land valt",
3
+ selectedCountryAriaLabel: "Byt land för telefonnummer, valt ${countryName} (${dialCode})",
4
+ noCountrySelected: "Välj land för telefonnummer",
5
5
  countryListAriaLabel: "Lista över länder",
6
6
  searchPlaceholder: "Sök",
7
7
  clearSearchAriaLabel: "Rensa sökning",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "Inga resultat hittades";
12
12
  }
13
- if (count === 1) {
14
- return "1 resultat hittades";
15
- }
16
13
  return `${count} resultat hittades`;
17
14
  }
18
15
  };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ const interfaceTranslations = {
3
+ selectedCountryAriaLabel: "Badilisha nchi kwa nambari ya simu, imechaguliwa ${countryName} (${dialCode})",
4
+ noCountrySelected: "Chagua nchi kwa nambari ya simu",
5
+ countryListAriaLabel: "Orodha ya nchi",
6
+ searchPlaceholder: "Tafuta",
7
+ clearSearchAriaLabel: "Futa utafutaji",
8
+ searchEmptyState: "Hakuna matokeo yaliyopatikana",
9
+ searchSummaryAria(count) {
10
+ if (count === 0) {
11
+ return "Hakuna matokeo yaliyopatikana";
12
+ }
13
+ if (count === 1) {
14
+ return "Tokeo 1 limepatikana";
15
+ }
16
+ return `Matokeo ${count} yamepatikana`;
17
+ }
18
+ };
19
+ export default interfaceTranslations;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ const interfaceTranslations = {
3
+ selectedCountryAriaLabel: "தொலைபேசி எண்ணுக்கு நாட்டை மாற்று, தேர்ந்தெடுக்கப்பட்டது ${countryName} (${dialCode})",
4
+ noCountrySelected: "தொலைபேசி எண்ணுக்கு நாட்டைத் தேர்ந்தெடுக்கவும்",
5
+ countryListAriaLabel: "நாடுகளின் பட்டியல்",
6
+ searchPlaceholder: "தேடு",
7
+ clearSearchAriaLabel: "தேடலை அழி",
8
+ searchEmptyState: "முடிவுகள் எதுவும் கிடைக்கவில்லை",
9
+ searchSummaryAria(count) {
10
+ if (count === 0) {
11
+ return "முடிவுகள் எதுவும் கிடைக்கவில்லை";
12
+ }
13
+ if (count === 1) {
14
+ return "1 முடிவு கிடைத்தது";
15
+ }
16
+ return `${count} முடிவுகள் கிடைத்தன`;
17
+ }
18
+ };
19
+ export default interfaceTranslations;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "ఎంచుకున్న దేశం",
4
- noCountrySelected: " దేశం ఎంచుకోబడలేదు",
3
+ selectedCountryAriaLabel: "ఫోన్ నంబర్ కోసం దేశాన్ని మార్చండి, ఎంచుకున్నది ${countryName} (${dialCode})",
4
+ noCountrySelected: "ఫోన్ నంబర్ కోసం దేశాన్ని ఎంచుకోండి",
5
5
  countryListAriaLabel: "దేశాల జాబితా",
6
6
  searchPlaceholder: "వెతకండి",
7
7
  clearSearchAriaLabel: "శోధనను క్లియర్ చేయండి",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "ประเทศที่เลือก",
4
- noCountrySelected: "ไม่ได้เลือกประเทศ",
3
+ selectedCountryAriaLabel: "เปลี่ยนประเทศสำหรับหมายเลขโทรศัพท์, เลือก ${countryName} (${dialCode})",
4
+ noCountrySelected: "เลือกประเทศสำหรับหมายเลขโทรศัพท์",
5
5
  countryListAriaLabel: "รายชื่อประเทศ",
6
6
  searchPlaceholder: "ค้นหา",
7
7
  clearSearchAriaLabel: "ล้างการค้นหา",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "ไม่พบผลลัพธ์";
12
12
  }
13
- if (count === 1) {
14
- return "พบผลลัพธ์ 1 รายการ";
15
- }
16
13
  return `พบผลลัพธ์ ${count} รายการ`;
17
14
  }
18
15
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Seçilen ülke",
4
- noCountrySelected: "Hiçbir ülke seçilmedi",
3
+ selectedCountryAriaLabel: "Telefon numarası için ülke değiştir, seçili ${countryName} (${dialCode})",
4
+ noCountrySelected: "Telefon numarası için ülke seç",
5
5
  countryListAriaLabel: "Ülke listesi",
6
6
  searchPlaceholder: "Ara",
7
7
  clearSearchAriaLabel: "Aramayı temizle",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "Sonuç bulunamadı";
12
12
  }
13
- if (count === 1) {
14
- return "1 sonuç bulundu";
15
- }
16
13
  return `${count} sonuç bulundu`;
17
14
  }
18
15
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Обрана країна",
4
- noCountrySelected: "Країну не обрано",
3
+ selectedCountryAriaLabel: "Змінити країну для номера телефону, обрана ${countryName} (${dialCode})",
4
+ noCountrySelected: "Виберіть країну для номера телефону",
5
5
  countryListAriaLabel: "Список країн",
6
6
  searchPlaceholder: "Шукати",
7
7
  clearSearchAriaLabel: "Очистити пошук",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "منتخب ملک",
4
- noCountrySelected: "کوئی ملک منتخب نہیں کیا گیا۔",
3
+ selectedCountryAriaLabel: "فون نمبر کے لیے ملک تبدیل کریں، منتخب ${countryName} (${dialCode})",
4
+ noCountrySelected: "فون نمبر کے لیے ملک منتخب کریں",
5
5
  countryListAriaLabel: "ممالک کی فہرست",
6
6
  searchPlaceholder: "تلاش کریں۔",
7
7
  clearSearchAriaLabel: "تلاش صاف کریں",
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Tanlangan davlat",
4
- noCountrySelected: "Davlat tanlanmagan",
3
+ selectedCountryAriaLabel: "Telefon raqami uchun davlatni o'zgartirish, tanlangan ${countryName} (${dialCode})",
4
+ noCountrySelected: "Telefon raqami uchun davlatni tanlang",
5
5
  countryListAriaLabel: "Davlatlar roʻyxati",
6
6
  searchPlaceholder: "Davlatni qidiring",
7
7
  clearSearchAriaLabel: "Qidiruvni tozalang",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "Natija topilmadi";
12
12
  }
13
- if (count === 1) {
14
- return "1-ta natija topildi";
15
- }
16
13
  return `${count}-ta natija topildi`;
17
14
  }
18
15
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "Quốc gia đã chọn",
4
- noCountrySelected: "Không quốc gia nào được chọn",
3
+ selectedCountryAriaLabel: "Thay đổi quốc gia cho số điện thoại, đã chọn ${countryName} (${dialCode})",
4
+ noCountrySelected: "Chọn quốc gia cho số điện thoại",
5
5
  countryListAriaLabel: "Danh sách các quốc gia",
6
6
  searchPlaceholder: "Khám xét",
7
7
  clearSearchAriaLabel: "Xóa tìm kiếm",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "Không tìm thấy kết quả nào";
12
12
  }
13
- if (count === 1) {
14
- return "Đã tìm thấy 1 kết quả";
15
- }
16
13
  return `Đã tìm thấy ${count} kết quả`;
17
14
  }
18
15
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "更改國家,選擇「${countryName}」(${dialCode})",
4
- noCountrySelected: "選擇國家",
3
+ selectedCountryAriaLabel: "更改電話號碼的國家,選擇「${countryName}」(${dialCode})",
4
+ noCountrySelected: "選擇電話號碼的國家",
5
5
  countryListAriaLabel: "國家清單",
6
6
  searchPlaceholder: "搜尋",
7
7
  clearSearchAriaLabel: "清除搜尋",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "未找到相關項目";
12
12
  }
13
- if (count === 1) {
14
- return "找到 1 個相關項目";
15
- }
16
13
  return `找到 ${count} 個相關項目`;
17
14
  }
18
15
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const interfaceTranslations = {
3
- selectedCountryAriaLabel: "所选国家",
4
- noCountrySelected: "未选择国家/地区",
3
+ selectedCountryAriaLabel: "更改电话号码的国家,已选择 ${countryName}(${dialCode})",
4
+ noCountrySelected: "选择电话号码的国家",
5
5
  countryListAriaLabel: "国家名单",
6
6
  searchPlaceholder: "搜索",
7
7
  clearSearchAriaLabel: "清除搜索",
@@ -10,9 +10,6 @@ const interfaceTranslations = {
10
10
  if (count === 0) {
11
11
  return "未找到结果";
12
12
  }
13
- if (count === 1) {
14
- return "找到 1 个结果";
15
- }
16
13
  return `找到 ${count} 个结果`;
17
14
  }
18
15
  };
package/dist/js/i18n.d.ts CHANGED
@@ -54,6 +54,15 @@ declare const interfaceTranslations$41: I18n;
54
54
  declare const interfaceTranslations$42: I18n;
55
55
  declare const interfaceTranslations$43: I18n;
56
56
  declare const interfaceTranslations$44: I18n;
57
+ declare const interfaceTranslations$45: I18n;
58
+ declare const interfaceTranslations$46: I18n;
59
+ declare const interfaceTranslations$47: I18n;
60
+ declare const interfaceTranslations$48: I18n;
61
+ declare const interfaceTranslations$49: I18n;
62
+ declare const interfaceTranslations$50: I18n;
63
+ declare const interfaceTranslations$51: I18n;
64
+ declare const interfaceTranslations$52: I18n;
65
+ declare const interfaceTranslations$53: I18n;
57
66
 
58
67
  export {
59
68
  interfaceTranslations as ar,
@@ -62,41 +71,50 @@ export {
62
71
  interfaceTranslations$11 as et,
63
72
  interfaceTranslations$12 as fa,
64
73
  interfaceTranslations$13 as fi,
65
- interfaceTranslations$14 as fr,
66
- interfaceTranslations$15 as hi,
67
- interfaceTranslations$16 as hr,
68
- interfaceTranslations$17 as hu,
69
- interfaceTranslations$18 as id,
70
- interfaceTranslations$19 as it,
74
+ interfaceTranslations$14 as fil,
75
+ interfaceTranslations$15 as fr,
76
+ interfaceTranslations$16 as he,
77
+ interfaceTranslations$17 as hi,
78
+ interfaceTranslations$18 as hr,
79
+ interfaceTranslations$19 as hu,
71
80
  interfaceTranslations$2 as bn,
72
- interfaceTranslations$20 as ja,
73
- interfaceTranslations$21 as kn,
74
- interfaceTranslations$22 as ko,
75
- interfaceTranslations$23 as lt,
76
- interfaceTranslations$24 as mr,
77
- interfaceTranslations$25 as nl,
78
- interfaceTranslations$26 as no,
79
- interfaceTranslations$27 as pl,
80
- interfaceTranslations$28 as pt,
81
- interfaceTranslations$29 as ro,
81
+ interfaceTranslations$20 as hy,
82
+ interfaceTranslations$21 as id,
83
+ interfaceTranslations$22 as is,
84
+ interfaceTranslations$23 as it,
85
+ interfaceTranslations$24 as ja,
86
+ interfaceTranslations$25 as kn,
87
+ interfaceTranslations$26 as ko,
88
+ interfaceTranslations$27 as lt,
89
+ interfaceTranslations$28 as lv,
90
+ interfaceTranslations$29 as mk,
82
91
  interfaceTranslations$3 as bs,
83
- interfaceTranslations$30 as ru,
84
- interfaceTranslations$31 as sk,
85
- interfaceTranslations$32 as sl,
86
- interfaceTranslations$33 as sq,
87
- interfaceTranslations$34 as sr,
88
- interfaceTranslations$35 as sv,
89
- interfaceTranslations$36 as te,
90
- interfaceTranslations$37 as th,
91
- interfaceTranslations$38 as tr,
92
- interfaceTranslations$39 as uk,
92
+ interfaceTranslations$30 as mr,
93
+ interfaceTranslations$31 as ms,
94
+ interfaceTranslations$32 as nl,
95
+ interfaceTranslations$33 as no,
96
+ interfaceTranslations$34 as pl,
97
+ interfaceTranslations$35 as pt,
98
+ interfaceTranslations$36 as ro,
99
+ interfaceTranslations$37 as ru,
100
+ interfaceTranslations$38 as sk,
101
+ interfaceTranslations$39 as sl,
93
102
  interfaceTranslations$4 as ca,
94
- interfaceTranslations$40 as ur,
95
- interfaceTranslations$41 as uz,
96
- interfaceTranslations$42 as vi,
97
- interfaceTranslations$43 as zh,
98
- interfaceTranslations$44 as zhHk,
103
+ interfaceTranslations$40 as sq,
104
+ interfaceTranslations$41 as sr,
105
+ interfaceTranslations$42 as sv,
106
+ interfaceTranslations$43 as sw,
107
+ interfaceTranslations$44 as ta,
108
+ interfaceTranslations$45 as te,
109
+ interfaceTranslations$46 as th,
110
+ interfaceTranslations$47 as tr,
111
+ interfaceTranslations$48 as uk,
112
+ interfaceTranslations$49 as ur,
99
113
  interfaceTranslations$5 as cs,
114
+ interfaceTranslations$50 as uz,
115
+ interfaceTranslations$51 as vi,
116
+ interfaceTranslations$52 as zh,
117
+ interfaceTranslations$53 as zhHk,
100
118
  interfaceTranslations$6 as da,
101
119
  interfaceTranslations$7 as de,
102
120
  interfaceTranslations$8 as el,
@@ -1,5 +1,5 @@
1
1
  /*
2
- * International Telephone Input v28.0.9
2
+ * International Telephone Input v28.1.0
3
3
  * git+https://github.com/jackocnr/intl-tel-input.git
4
4
  * Licensed under the MIT license
5
5
  */
@@ -1802,7 +1802,8 @@ var _factory = (() => {
1802
1802
  FLAG: "iti__flag",
1803
1803
  LOADING: "iti__loading",
1804
1804
  COUNTRY_ITEM: "iti__country",
1805
- HIGHLIGHT: "iti__highlight"
1805
+ HIGHLIGHT: "iti__highlight",
1806
+ STRICT_REJECT_ANIMATION: "iti__strict-reject-animation"
1806
1807
  };
1807
1808
  var KEYS = {
1808
1809
  ARROW_UP: "ArrowUp",
@@ -3158,7 +3159,6 @@ var _factory = (() => {
3158
3159
  }
3159
3160
  //* Keyboard navigation while the dropdown is open: arrow keys navigate, hidden-search keys filter,
3160
3161
  //* and enter/escape invoke the caller's callbacks (which handle country selection / dropdown close).
3161
- //* Listens on document because key events go there when no input has focus.
3162
3162
  //* Uses keydown rather than keypress so non-char keys (arrow, esc) fire and so holding a key repeats.
3163
3163
  #bindDropdownKeydownListener(signal, onEnter, onEscape) {
3164
3164
  let query = "";
@@ -3182,7 +3182,7 @@ var _factory = (() => {
3182
3182
  this.#selectedCountryEl.focus();
3183
3183
  }
3184
3184
  }
3185
- if (!this.#options.countrySearch && e.target !== this.telInputEl && REGEX.HIDDEN_SEARCH_CHAR.test(e.key)) {
3185
+ if (!this.#options.countrySearch && REGEX.HIDDEN_SEARCH_CHAR.test(e.key)) {
3186
3186
  e.stopPropagation();
3187
3187
  if (queryTimer) {
3188
3188
  clearTimeout(queryTimer);
@@ -3194,7 +3194,8 @@ var _factory = (() => {
3194
3194
  }, TIMINGS.HIDDEN_SEARCH_RESET_MS);
3195
3195
  }
3196
3196
  };
3197
- document.addEventListener("keydown", handleKeydown, { signal });
3197
+ this.#selectedCountryEl?.addEventListener("keydown", handleKeydown, { signal });
3198
+ this.#dropdownContentEl?.addEventListener("keydown", handleKeydown, { signal });
3198
3199
  }
3199
3200
  //* Wire up country search input listener: typing filters the list, the clear button resets it.
3200
3201
  #bindSearchInputListener(signal) {
@@ -3359,6 +3360,26 @@ var _factory = (() => {
3359
3360
  setLoading(isLoading) {
3360
3361
  this.#selectedFlagEl.classList.toggle(CLASSES.LOADING, isLoading);
3361
3362
  }
3363
+ //* Play the strict-reject animation (shake, or background-colour flash under prefers-reduced-motion) on the wrapper.
3364
+ //* Called when strictMode rejects the whole input (keystroke, or whole paste).
3365
+ //* Uses the wrapper (not the input) so any separateDialCode / country button move together with the input.
3366
+ playStrictRejectAnimation() {
3367
+ if (!this.#options.strictRejectAnimation) {
3368
+ return;
3369
+ }
3370
+ const wrapperEl = this.telInputEl.parentElement;
3371
+ if (!wrapperEl) {
3372
+ return;
3373
+ }
3374
+ wrapperEl.classList.remove(CLASSES.STRICT_REJECT_ANIMATION);
3375
+ void wrapperEl.offsetWidth;
3376
+ wrapperEl.classList.add(CLASSES.STRICT_REJECT_ANIMATION);
3377
+ wrapperEl.addEventListener(
3378
+ "animationend",
3379
+ () => wrapperEl.classList.remove(CLASSES.STRICT_REJECT_ANIMATION),
3380
+ { once: true }
3381
+ );
3382
+ }
3362
3383
  isLoading() {
3363
3384
  return this.#selectedFlagEl.classList.contains(CLASSES.LOADING);
3364
3385
  }
@@ -3875,7 +3896,7 @@ var _factory = (() => {
3875
3896
  #handleAndroidStrictReject(inputValue, rejectedInput) {
3876
3897
  const newCaretPos = this.#removeJustTypedChar(inputValue);
3877
3898
  this.#ui.telInputEl.setSelectionRange(newCaretPos, newCaretPos);
3878
- this.#playStrictRejectAnimation();
3899
+ this.#ui.playStrictRejectAnimation();
3879
3900
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
3880
3901
  source: "key",
3881
3902
  rejectedInput,
@@ -4032,7 +4053,7 @@ var _factory = (() => {
4032
4053
  const newCountry = this.#resolveCountryChangeFromNumber(newFullNumber);
4033
4054
  const isChangingDialCode = newCountry !== null;
4034
4055
  if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {
4035
- this.#playStrictRejectAnimation();
4056
+ this.#ui.playStrictRejectAnimation();
4036
4057
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
4037
4058
  source: "key",
4038
4059
  rejectedInput: e.key,
@@ -4087,7 +4108,7 @@ var _factory = (() => {
4087
4108
  let newValue = before + sanitised + after;
4088
4109
  let rejectReason = sanitised !== pasted ? "invalid" : null;
4089
4110
  if (newValue.length > 30) {
4090
- this.#playStrictRejectAnimation();
4111
+ this.#ui.playStrictRejectAnimation();
4091
4112
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
4092
4113
  source: "paste",
4093
4114
  rejectedInput: pastedRaw,
@@ -4103,7 +4124,7 @@ var _factory = (() => {
4103
4124
  coreNumber = intlTelInput.utils.getCoreNumber(newValue, iso2);
4104
4125
  }
4105
4126
  if (!coreNumber) {
4106
- this.#playStrictRejectAnimation();
4127
+ this.#ui.playStrictRejectAnimation();
4107
4128
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
4108
4129
  source: "paste",
4109
4130
  rejectedInput: pastedRaw,
@@ -4118,7 +4139,7 @@ var _factory = (() => {
4118
4139
  newValue = newValue.slice(0, newValue.length - trimLength);
4119
4140
  rejectReason = "max-length";
4120
4141
  } else {
4121
- this.#playStrictRejectAnimation();
4142
+ this.#ui.playStrictRejectAnimation();
4122
4143
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
4123
4144
  source: "paste",
4124
4145
  rejectedInput: pastedRaw,
@@ -4134,7 +4155,7 @@ var _factory = (() => {
4134
4155
  input.setSelectionRange(caretPos, caretPos);
4135
4156
  if (rejectReason) {
4136
4157
  if (pasted.length > 0 && sanitised.length === 0) {
4137
- this.#playStrictRejectAnimation();
4158
+ this.#ui.playStrictRejectAnimation();
4138
4159
  }
4139
4160
  this.#dispatchEvent(EVENTS.STRICT_REJECT, {
4140
4161
  source: "paste",
@@ -4156,21 +4177,6 @@ var _factory = (() => {
4156
4177
  const max = Number(this.#ui.telInputEl.getAttribute("maxlength"));
4157
4178
  return max && number.length > max ? number.substring(0, max) : number;
4158
4179
  }
4159
- //* Play the strict-reject animation (shake, or background-colour flash under prefers-reduced-motion) on the wrapper.
4160
- //* Called when strictMode rejects the whole input (keystroke, or whole paste).
4161
- //* Uses the wrapper (not the input) so any separateDialCode / country button move together with the input.
4162
- #playStrictRejectAnimation() {
4163
- if (!this.#options.strictRejectAnimation) {
4164
- return;
4165
- }
4166
- const wrapperEl = this.#ui.telInputEl.parentElement;
4167
- if (!wrapperEl) {
4168
- return;
4169
- }
4170
- wrapperEl.classList.remove("iti__strict-reject-animation");
4171
- void wrapperEl.offsetWidth;
4172
- wrapperEl.classList.add("iti__strict-reject-animation");
4173
- }
4174
4180
  //* Trigger a custom event on the input (typed via ItiEventMap).
4175
4181
  #dispatchEvent(name, detailProps = {}) {
4176
4182
  const e = new CustomEvent(name, {
@@ -4790,7 +4796,7 @@ var _factory = (() => {
4790
4796
  attachUtils,
4791
4797
  startedLoadingUtils: false,
4792
4798
  startedLoadingAutoCountry: false,
4793
- version: "28.0.9",
4799
+ version: "28.1.0",
4794
4800
  NUMBER_FORMAT,
4795
4801
  NUMBER_TYPE,
4796
4802
  VALIDATION_ERROR