intl-tel-input 25.4.7 → 25.4.8

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 (273) hide show
  1. package/README.md +5 -5
  2. package/angular/build/IntlTelInput.cjs +9 -9
  3. package/angular/build/IntlTelInput.d.ts +1 -1
  4. package/angular/build/IntlTelInput.js +9 -9
  5. package/angular/build/IntlTelInputWithUtils.cjs +9 -9
  6. package/angular/build/IntlTelInputWithUtils.js +9 -9
  7. package/angular/build/intl-tel-input/angular.js +205 -0
  8. package/angular/build/intl-tel-input/angularWithUtils.js +206 -0
  9. package/angular/build/intl-tel-input/data.js +1096 -0
  10. package/angular/build/intl-tel-input/i18n/ar/countries.js +245 -0
  11. package/angular/build/intl-tel-input/i18n/ar/index.js +5 -0
  12. package/angular/build/intl-tel-input/i18n/ar/interface.js +13 -0
  13. package/angular/build/intl-tel-input/i18n/bg/countries.js +245 -0
  14. package/angular/build/intl-tel-input/i18n/bg/index.js +5 -0
  15. package/angular/build/intl-tel-input/i18n/bg/interface.js +13 -0
  16. package/angular/build/intl-tel-input/i18n/bn/countries.js +245 -0
  17. package/angular/build/intl-tel-input/i18n/bn/index.js +5 -0
  18. package/angular/build/intl-tel-input/i18n/bn/interface.js +13 -0
  19. package/angular/build/intl-tel-input/i18n/bs/countries.js +245 -0
  20. package/angular/build/intl-tel-input/i18n/bs/index.js +5 -0
  21. package/angular/build/intl-tel-input/i18n/bs/interface.js +13 -0
  22. package/angular/build/intl-tel-input/i18n/ca/countries.js +245 -0
  23. package/angular/build/intl-tel-input/i18n/ca/index.js +5 -0
  24. package/angular/build/intl-tel-input/i18n/ca/interface.js +13 -0
  25. package/angular/build/intl-tel-input/i18n/cs/countries.js +245 -0
  26. package/angular/build/intl-tel-input/i18n/cs/index.js +5 -0
  27. package/angular/build/intl-tel-input/i18n/cs/interface.js +13 -0
  28. package/angular/build/intl-tel-input/i18n/da/countries.js +245 -0
  29. package/angular/build/intl-tel-input/i18n/da/index.js +5 -0
  30. package/angular/build/intl-tel-input/i18n/da/interface.js +13 -0
  31. package/angular/build/intl-tel-input/i18n/de/countries.js +245 -0
  32. package/angular/build/intl-tel-input/i18n/de/index.js +5 -0
  33. package/angular/build/intl-tel-input/i18n/de/interface.js +13 -0
  34. package/angular/build/intl-tel-input/i18n/ee/countries.js +245 -0
  35. package/angular/build/intl-tel-input/i18n/ee/index.js +5 -0
  36. package/angular/build/intl-tel-input/i18n/ee/interface.js +13 -0
  37. package/angular/build/intl-tel-input/i18n/el/countries.js +245 -0
  38. package/angular/build/intl-tel-input/i18n/el/index.js +5 -0
  39. package/angular/build/intl-tel-input/i18n/el/interface.js +13 -0
  40. package/angular/build/intl-tel-input/i18n/en/countries.js +245 -0
  41. package/angular/build/intl-tel-input/i18n/en/index.js +5 -0
  42. package/angular/build/intl-tel-input/i18n/en/interface.js +13 -0
  43. package/angular/build/intl-tel-input/i18n/es/countries.js +245 -0
  44. package/angular/build/intl-tel-input/i18n/es/index.js +5 -0
  45. package/angular/build/intl-tel-input/i18n/es/interface.js +13 -0
  46. package/angular/build/intl-tel-input/i18n/fa/countries.js +245 -0
  47. package/angular/build/intl-tel-input/i18n/fa/index.js +5 -0
  48. package/angular/build/intl-tel-input/i18n/fa/interface.js +13 -0
  49. package/angular/build/intl-tel-input/i18n/fi/countries.js +245 -0
  50. package/angular/build/intl-tel-input/i18n/fi/index.js +5 -0
  51. package/angular/build/intl-tel-input/i18n/fi/interface.js +13 -0
  52. package/angular/build/intl-tel-input/i18n/fr/countries.js +245 -0
  53. package/angular/build/intl-tel-input/i18n/fr/index.js +5 -0
  54. package/angular/build/intl-tel-input/i18n/fr/interface.js +13 -0
  55. package/angular/build/intl-tel-input/i18n/hi/countries.js +245 -0
  56. package/angular/build/intl-tel-input/i18n/hi/index.js +5 -0
  57. package/angular/build/intl-tel-input/i18n/hi/interface.js +13 -0
  58. package/angular/build/intl-tel-input/i18n/hr/countries.js +245 -0
  59. package/angular/build/intl-tel-input/i18n/hr/index.js +5 -0
  60. package/angular/build/intl-tel-input/i18n/hr/interface.js +13 -0
  61. package/angular/build/intl-tel-input/i18n/hu/countries.js +245 -0
  62. package/angular/build/intl-tel-input/i18n/hu/index.js +5 -0
  63. package/angular/build/intl-tel-input/i18n/hu/interface.js +13 -0
  64. package/angular/build/intl-tel-input/i18n/id/countries.js +245 -0
  65. package/angular/build/intl-tel-input/i18n/id/index.js +5 -0
  66. package/angular/build/intl-tel-input/i18n/id/interface.js +13 -0
  67. package/angular/build/intl-tel-input/i18n/index.js +40 -0
  68. package/angular/build/intl-tel-input/i18n/it/countries.js +245 -0
  69. package/angular/build/intl-tel-input/i18n/it/index.js +5 -0
  70. package/angular/build/intl-tel-input/i18n/it/interface.js +13 -0
  71. package/angular/build/intl-tel-input/i18n/ja/countries.js +245 -0
  72. package/angular/build/intl-tel-input/i18n/ja/index.js +5 -0
  73. package/angular/build/intl-tel-input/i18n/ja/interface.js +13 -0
  74. package/angular/build/intl-tel-input/i18n/ko/countries.js +245 -0
  75. package/angular/build/intl-tel-input/i18n/ko/index.js +5 -0
  76. package/angular/build/intl-tel-input/i18n/ko/interface.js +13 -0
  77. package/angular/build/intl-tel-input/i18n/mr/countries.js +245 -0
  78. package/angular/build/intl-tel-input/i18n/mr/index.js +5 -0
  79. package/angular/build/intl-tel-input/i18n/mr/interface.js +13 -0
  80. package/angular/build/intl-tel-input/i18n/nl/countries.js +245 -0
  81. package/angular/build/intl-tel-input/i18n/nl/index.js +5 -0
  82. package/angular/build/intl-tel-input/i18n/nl/interface.js +13 -0
  83. package/angular/build/intl-tel-input/i18n/no/countries.js +245 -0
  84. package/angular/build/intl-tel-input/i18n/no/index.js +5 -0
  85. package/angular/build/intl-tel-input/i18n/no/interface.js +13 -0
  86. package/angular/build/intl-tel-input/i18n/pl/countries.js +245 -0
  87. package/angular/build/intl-tel-input/i18n/pl/index.js +5 -0
  88. package/angular/build/intl-tel-input/i18n/pl/interface.js +24 -0
  89. package/angular/build/intl-tel-input/i18n/pt/countries.js +245 -0
  90. package/angular/build/intl-tel-input/i18n/pt/index.js +5 -0
  91. package/angular/build/intl-tel-input/i18n/pt/interface.js +13 -0
  92. package/angular/build/intl-tel-input/i18n/ro/countries.js +245 -0
  93. package/angular/build/intl-tel-input/i18n/ro/index.js +5 -0
  94. package/angular/build/intl-tel-input/i18n/ro/interface.js +13 -0
  95. package/angular/build/intl-tel-input/i18n/ru/countries.js +245 -0
  96. package/angular/build/intl-tel-input/i18n/ru/index.js +5 -0
  97. package/angular/build/intl-tel-input/i18n/ru/interface.js +13 -0
  98. package/angular/build/intl-tel-input/i18n/sk/countries.js +245 -0
  99. package/angular/build/intl-tel-input/i18n/sk/index.js +5 -0
  100. package/angular/build/intl-tel-input/i18n/sk/interface.js +13 -0
  101. package/angular/build/intl-tel-input/i18n/sv/countries.js +245 -0
  102. package/angular/build/intl-tel-input/i18n/sv/index.js +5 -0
  103. package/angular/build/intl-tel-input/i18n/sv/interface.js +13 -0
  104. package/angular/build/intl-tel-input/i18n/te/countries.js +245 -0
  105. package/angular/build/intl-tel-input/i18n/te/index.js +5 -0
  106. package/angular/build/intl-tel-input/i18n/te/interface.js +13 -0
  107. package/angular/build/intl-tel-input/i18n/th/countries.js +245 -0
  108. package/angular/build/intl-tel-input/i18n/th/index.js +5 -0
  109. package/angular/build/intl-tel-input/i18n/th/interface.js +13 -0
  110. package/angular/build/intl-tel-input/i18n/tr/countries.js +245 -0
  111. package/angular/build/intl-tel-input/i18n/tr/index.js +5 -0
  112. package/angular/build/intl-tel-input/i18n/tr/interface.js +13 -0
  113. package/angular/build/intl-tel-input/i18n/types.js +1 -0
  114. package/angular/build/intl-tel-input/i18n/uk/countries.js +245 -0
  115. package/angular/build/intl-tel-input/i18n/uk/index.js +5 -0
  116. package/angular/build/intl-tel-input/i18n/uk/interface.js +13 -0
  117. package/angular/build/intl-tel-input/i18n/ur/countries.js +245 -0
  118. package/angular/build/intl-tel-input/i18n/ur/index.js +5 -0
  119. package/angular/build/intl-tel-input/i18n/ur/interface.js +13 -0
  120. package/angular/build/intl-tel-input/i18n/uz/countries.js +245 -0
  121. package/angular/build/intl-tel-input/i18n/uz/index.js +5 -0
  122. package/angular/build/intl-tel-input/i18n/uz/interface.js +13 -0
  123. package/angular/build/intl-tel-input/i18n/vi/countries.js +245 -0
  124. package/angular/build/intl-tel-input/i18n/vi/index.js +5 -0
  125. package/angular/build/intl-tel-input/i18n/vi/interface.js +13 -0
  126. package/angular/build/intl-tel-input/i18n/zh/countries.js +245 -0
  127. package/angular/build/intl-tel-input/i18n/zh/index.js +5 -0
  128. package/angular/build/intl-tel-input/i18n/zh/interface.js +13 -0
  129. package/angular/build/intl-tel-input/intlTelInputWithUtils.js +4 -0
  130. package/angular/build/intl-tel-input/utils.js +1341 -0
  131. package/angular/build/intl-tel-input.js +1780 -0
  132. package/angular/build/types/intl-tel-input/angular.d.ts +40 -0
  133. package/angular/build/types/intl-tel-input/angularWithUtils.d.ts +40 -0
  134. package/angular/build/types/intl-tel-input/data.d.ts +11 -0
  135. package/angular/build/types/intl-tel-input/i18n/ar/countries.d.ts +3 -0
  136. package/angular/build/types/intl-tel-input/i18n/ar/index.d.ts +6 -0
  137. package/angular/build/types/intl-tel-input/i18n/ar/interface.d.ts +3 -0
  138. package/angular/build/types/intl-tel-input/i18n/bg/countries.d.ts +3 -0
  139. package/angular/build/types/intl-tel-input/i18n/bg/index.d.ts +6 -0
  140. package/angular/build/types/intl-tel-input/i18n/bg/interface.d.ts +3 -0
  141. package/angular/build/types/intl-tel-input/i18n/bn/countries.d.ts +3 -0
  142. package/angular/build/types/intl-tel-input/i18n/bn/index.d.ts +6 -0
  143. package/angular/build/types/intl-tel-input/i18n/bn/interface.d.ts +3 -0
  144. package/angular/build/types/intl-tel-input/i18n/bs/countries.d.ts +3 -0
  145. package/angular/build/types/intl-tel-input/i18n/bs/index.d.ts +6 -0
  146. package/angular/build/types/intl-tel-input/i18n/bs/interface.d.ts +3 -0
  147. package/angular/build/types/intl-tel-input/i18n/ca/countries.d.ts +3 -0
  148. package/angular/build/types/intl-tel-input/i18n/ca/index.d.ts +6 -0
  149. package/angular/build/types/intl-tel-input/i18n/ca/interface.d.ts +3 -0
  150. package/angular/build/types/intl-tel-input/i18n/cs/countries.d.ts +3 -0
  151. package/angular/build/types/intl-tel-input/i18n/cs/index.d.ts +6 -0
  152. package/angular/build/types/intl-tel-input/i18n/cs/interface.d.ts +3 -0
  153. package/angular/build/types/intl-tel-input/i18n/da/countries.d.ts +3 -0
  154. package/angular/build/types/intl-tel-input/i18n/da/index.d.ts +6 -0
  155. package/angular/build/types/intl-tel-input/i18n/da/interface.d.ts +3 -0
  156. package/angular/build/types/intl-tel-input/i18n/de/countries.d.ts +3 -0
  157. package/angular/build/types/intl-tel-input/i18n/de/index.d.ts +6 -0
  158. package/angular/build/types/intl-tel-input/i18n/de/interface.d.ts +3 -0
  159. package/angular/build/types/intl-tel-input/i18n/ee/countries.d.ts +3 -0
  160. package/angular/build/types/intl-tel-input/i18n/ee/index.d.ts +6 -0
  161. package/angular/build/types/intl-tel-input/i18n/ee/interface.d.ts +3 -0
  162. package/angular/build/types/intl-tel-input/i18n/el/countries.d.ts +3 -0
  163. package/angular/build/types/intl-tel-input/i18n/el/index.d.ts +6 -0
  164. package/angular/build/types/intl-tel-input/i18n/el/interface.d.ts +3 -0
  165. package/angular/build/types/intl-tel-input/i18n/en/countries.d.ts +3 -0
  166. package/angular/build/types/intl-tel-input/i18n/en/index.d.ts +6 -0
  167. package/angular/build/types/intl-tel-input/i18n/en/interface.d.ts +3 -0
  168. package/angular/build/types/intl-tel-input/i18n/es/countries.d.ts +3 -0
  169. package/angular/build/types/intl-tel-input/i18n/es/index.d.ts +6 -0
  170. package/angular/build/types/intl-tel-input/i18n/es/interface.d.ts +3 -0
  171. package/angular/build/types/intl-tel-input/i18n/fa/countries.d.ts +3 -0
  172. package/angular/build/types/intl-tel-input/i18n/fa/index.d.ts +6 -0
  173. package/angular/build/types/intl-tel-input/i18n/fa/interface.d.ts +3 -0
  174. package/angular/build/types/intl-tel-input/i18n/fi/countries.d.ts +3 -0
  175. package/angular/build/types/intl-tel-input/i18n/fi/index.d.ts +6 -0
  176. package/angular/build/types/intl-tel-input/i18n/fi/interface.d.ts +3 -0
  177. package/angular/build/types/intl-tel-input/i18n/fr/countries.d.ts +3 -0
  178. package/angular/build/types/intl-tel-input/i18n/fr/index.d.ts +6 -0
  179. package/angular/build/types/intl-tel-input/i18n/fr/interface.d.ts +3 -0
  180. package/angular/build/types/intl-tel-input/i18n/hi/countries.d.ts +3 -0
  181. package/angular/build/types/intl-tel-input/i18n/hi/index.d.ts +6 -0
  182. package/angular/build/types/intl-tel-input/i18n/hi/interface.d.ts +3 -0
  183. package/angular/build/types/intl-tel-input/i18n/hr/countries.d.ts +3 -0
  184. package/angular/build/types/intl-tel-input/i18n/hr/index.d.ts +6 -0
  185. package/angular/build/types/intl-tel-input/i18n/hr/interface.d.ts +3 -0
  186. package/angular/build/types/intl-tel-input/i18n/hu/countries.d.ts +3 -0
  187. package/angular/build/types/intl-tel-input/i18n/hu/index.d.ts +6 -0
  188. package/angular/build/types/intl-tel-input/i18n/hu/interface.d.ts +3 -0
  189. package/angular/build/types/intl-tel-input/i18n/id/countries.d.ts +3 -0
  190. package/angular/build/types/intl-tel-input/i18n/id/index.d.ts +6 -0
  191. package/angular/build/types/intl-tel-input/i18n/id/interface.d.ts +3 -0
  192. package/angular/build/types/intl-tel-input/i18n/index.d.ts +39 -0
  193. package/angular/build/types/intl-tel-input/i18n/it/countries.d.ts +3 -0
  194. package/angular/build/types/intl-tel-input/i18n/it/index.d.ts +6 -0
  195. package/angular/build/types/intl-tel-input/i18n/it/interface.d.ts +3 -0
  196. package/angular/build/types/intl-tel-input/i18n/ja/countries.d.ts +3 -0
  197. package/angular/build/types/intl-tel-input/i18n/ja/index.d.ts +6 -0
  198. package/angular/build/types/intl-tel-input/i18n/ja/interface.d.ts +3 -0
  199. package/angular/build/types/intl-tel-input/i18n/ko/countries.d.ts +3 -0
  200. package/angular/build/types/intl-tel-input/i18n/ko/index.d.ts +6 -0
  201. package/angular/build/types/intl-tel-input/i18n/ko/interface.d.ts +3 -0
  202. package/angular/build/types/intl-tel-input/i18n/mr/countries.d.ts +3 -0
  203. package/angular/build/types/intl-tel-input/i18n/mr/index.d.ts +6 -0
  204. package/angular/build/types/intl-tel-input/i18n/mr/interface.d.ts +3 -0
  205. package/angular/build/types/intl-tel-input/i18n/nl/countries.d.ts +3 -0
  206. package/angular/build/types/intl-tel-input/i18n/nl/index.d.ts +6 -0
  207. package/angular/build/types/intl-tel-input/i18n/nl/interface.d.ts +3 -0
  208. package/angular/build/types/intl-tel-input/i18n/no/countries.d.ts +3 -0
  209. package/angular/build/types/intl-tel-input/i18n/no/index.d.ts +6 -0
  210. package/angular/build/types/intl-tel-input/i18n/no/interface.d.ts +3 -0
  211. package/angular/build/types/intl-tel-input/i18n/pl/countries.d.ts +3 -0
  212. package/angular/build/types/intl-tel-input/i18n/pl/index.d.ts +6 -0
  213. package/angular/build/types/intl-tel-input/i18n/pl/interface.d.ts +3 -0
  214. package/angular/build/types/intl-tel-input/i18n/pt/countries.d.ts +3 -0
  215. package/angular/build/types/intl-tel-input/i18n/pt/index.d.ts +6 -0
  216. package/angular/build/types/intl-tel-input/i18n/pt/interface.d.ts +3 -0
  217. package/angular/build/types/intl-tel-input/i18n/ro/countries.d.ts +3 -0
  218. package/angular/build/types/intl-tel-input/i18n/ro/index.d.ts +6 -0
  219. package/angular/build/types/intl-tel-input/i18n/ro/interface.d.ts +3 -0
  220. package/angular/build/types/intl-tel-input/i18n/ru/countries.d.ts +3 -0
  221. package/angular/build/types/intl-tel-input/i18n/ru/index.d.ts +6 -0
  222. package/angular/build/types/intl-tel-input/i18n/ru/interface.d.ts +3 -0
  223. package/angular/build/types/intl-tel-input/i18n/sk/countries.d.ts +3 -0
  224. package/angular/build/types/intl-tel-input/i18n/sk/index.d.ts +6 -0
  225. package/angular/build/types/intl-tel-input/i18n/sk/interface.d.ts +3 -0
  226. package/angular/build/types/intl-tel-input/i18n/sv/countries.d.ts +3 -0
  227. package/angular/build/types/intl-tel-input/i18n/sv/index.d.ts +6 -0
  228. package/angular/build/types/intl-tel-input/i18n/sv/interface.d.ts +3 -0
  229. package/angular/build/types/intl-tel-input/i18n/te/countries.d.ts +3 -0
  230. package/angular/build/types/intl-tel-input/i18n/te/index.d.ts +6 -0
  231. package/angular/build/types/intl-tel-input/i18n/te/interface.d.ts +3 -0
  232. package/angular/build/types/intl-tel-input/i18n/th/countries.d.ts +3 -0
  233. package/angular/build/types/intl-tel-input/i18n/th/index.d.ts +6 -0
  234. package/angular/build/types/intl-tel-input/i18n/th/interface.d.ts +3 -0
  235. package/angular/build/types/intl-tel-input/i18n/tr/countries.d.ts +3 -0
  236. package/angular/build/types/intl-tel-input/i18n/tr/index.d.ts +6 -0
  237. package/angular/build/types/intl-tel-input/i18n/tr/interface.d.ts +3 -0
  238. package/angular/build/types/intl-tel-input/i18n/types.d.ts +254 -0
  239. package/angular/build/types/intl-tel-input/i18n/uk/countries.d.ts +3 -0
  240. package/angular/build/types/intl-tel-input/i18n/uk/index.d.ts +6 -0
  241. package/angular/build/types/intl-tel-input/i18n/uk/interface.d.ts +3 -0
  242. package/angular/build/types/intl-tel-input/i18n/ur/countries.d.ts +3 -0
  243. package/angular/build/types/intl-tel-input/i18n/ur/index.d.ts +6 -0
  244. package/angular/build/types/intl-tel-input/i18n/ur/interface.d.ts +3 -0
  245. package/angular/build/types/intl-tel-input/i18n/uz/countries.d.ts +3 -0
  246. package/angular/build/types/intl-tel-input/i18n/uz/index.d.ts +6 -0
  247. package/angular/build/types/intl-tel-input/i18n/uz/interface.d.ts +3 -0
  248. package/angular/build/types/intl-tel-input/i18n/vi/countries.d.ts +3 -0
  249. package/angular/build/types/intl-tel-input/i18n/vi/index.d.ts +6 -0
  250. package/angular/build/types/intl-tel-input/i18n/vi/interface.d.ts +3 -0
  251. package/angular/build/types/intl-tel-input/i18n/zh/countries.d.ts +3 -0
  252. package/angular/build/types/intl-tel-input/i18n/zh/index.d.ts +6 -0
  253. package/angular/build/types/intl-tel-input/i18n/zh/interface.d.ts +3 -0
  254. package/angular/build/types/intl-tel-input/intlTelInputWithUtils.d.ts +2 -0
  255. package/angular/build/types/intl-tel-input/utils.d.ts +2 -0
  256. package/angular/build/types/intl-tel-input.d.ts +199 -0
  257. package/build/js/data.js +1 -1
  258. package/build/js/data.min.js +1 -1
  259. package/build/js/intlTelInput.d.ts +1 -1
  260. package/build/js/intlTelInput.js +11 -11
  261. package/build/js/intlTelInput.min.js +2 -2
  262. package/build/js/intlTelInputWithUtils.js +11 -11
  263. package/build/js/intlTelInputWithUtils.min.js +2 -2
  264. package/package.json +5 -7
  265. package/react/README.md +1 -1
  266. package/react/build/IntlTelInput.cjs +10 -10
  267. package/react/build/IntlTelInput.d.ts +1 -1
  268. package/react/build/IntlTelInput.js +10 -10
  269. package/react/build/IntlTelInputWithUtils.cjs +10 -10
  270. package/react/build/IntlTelInputWithUtils.js +10 -10
  271. package/vue/README.md +1 -1
  272. package/vue/build/IntlTelInput.mjs +70 -72
  273. package/vue/build/IntlTelInputWithUtils.mjs +271 -273
package/README.md CHANGED
@@ -77,16 +77,16 @@ _Note: We have now dropped support for all versions of Internet Explorer because
77
77
  ## Getting Started (Using a CDN)
78
78
  1. Add the CSS
79
79
  ```html
80
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.7/build/css/intlTelInput.css">
80
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.8/build/css/intlTelInput.css">
81
81
  ```
82
82
 
83
83
  2. Add the plugin script and initialise it on your input element
84
84
  ```html
85
- <script src="https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.7/build/js/intlTelInput.min.js"></script>
85
+ <script src="https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.8/build/js/intlTelInput.min.js"></script>
86
86
  <script>
87
87
  const input = document.querySelector("#phone");
88
88
  window.intlTelInput(input, {
89
- loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.7/build/js/utils.js"),
89
+ loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.8/build/js/utils.js"),
90
90
  });
91
91
  </script>
92
92
  ```
@@ -322,7 +322,7 @@ The `loadUtils` option takes a function which returns a Promise which resolves t
322
322
  ```js
323
323
  // (A) import utils module from a CDN
324
324
  intlTelInput(htmlInputElement, {
325
- loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.7/build/js/utils.js"),
325
+ loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.8/build/js/utils.js"),
326
326
  });
327
327
 
328
328
  // (B) import utils module from your own hosted version of utils.js
@@ -606,7 +606,7 @@ The `loadUtils` option takes a function which returns a Promise which resolves t
606
606
  ```js
607
607
  // (A) import utils module from a CDN
608
608
  intlTelInput(htmlInputElement, {
609
- loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.7/build/js/utils.js"),
609
+ loadUtils: () => import("https://cdn.jsdelivr.net/npm/intl-tel-input@25.4.8/build/js/utils.js"),
610
610
  });
611
611
 
612
612
  // (B) import utils module from your own hosted version of utils.js
@@ -2333,12 +2333,8 @@ var Iti = class {
2333
2333
  const newFullNumber = this._getFullNumber(newValue);
2334
2334
  const coreNumber = intlTelInput.utils.getCoreNumber(newFullNumber, this.selectedCountryData.iso2);
2335
2335
  const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;
2336
- let isChangingDialCode = false;
2337
- if (alreadyHasPlus) {
2338
- const currentCountry = this.selectedCountryData.iso2;
2339
- const newCountry = this._getCountryFromNumber(newFullNumber);
2340
- isChangingDialCode = newCountry !== currentCountry;
2341
- }
2336
+ const newCountry = this._getNewCountryFromNumber(newFullNumber);
2337
+ const isChangingDialCode = newCountry !== null;
2342
2338
  if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {
2343
2339
  e.preventDefault();
2344
2340
  }
@@ -2574,7 +2570,7 @@ var Iti = class {
2574
2570
  //* Check if need to select a new country based on the given number
2575
2571
  //* Note: called from _setInitialState, keyup handler, setNumber.
2576
2572
  _updateCountryFromNumber(fullNumber) {
2577
- const iso2 = this._getCountryFromNumber(fullNumber);
2573
+ const iso2 = this._getNewCountryFromNumber(fullNumber);
2578
2574
  if (iso2 !== null) {
2579
2575
  return this._setCountry(iso2);
2580
2576
  }
@@ -2590,7 +2586,10 @@ var Iti = class {
2590
2586
  const cleanNumber = hasPrefix ? number.substring(1) : number;
2591
2587
  return `+${dialCode}${cleanNumber}`;
2592
2588
  }
2593
- _getCountryFromNumber(fullNumber) {
2589
+ // Get the country ISO2 code from the given number
2590
+ // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY
2591
+ // NOTE: consider refactoring this to be more clear
2592
+ _getNewCountryFromNumber(fullNumber) {
2594
2593
  const plusIndex = fullNumber.indexOf("+");
2595
2594
  let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;
2596
2595
  const selectedIso2 = this.selectedCountryData.iso2;
@@ -2604,7 +2603,8 @@ var Iti = class {
2604
2603
  if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {
2605
2604
  return this.defaultCountry;
2606
2605
  }
2607
- const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && (numeric.length === dialCodeMatchNumeric.length || !this.selectedCountryData.areaCodes);
2606
+ const hasAreaCodesButNoneMatched = this.selectedCountryData.areaCodes && numeric.length > dialCodeMatchNumeric.length;
2607
+ const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;
2608
2608
  const isRegionlessNanpNumber = selectedDialCode === "1" && isRegionlessNanp(numeric);
2609
2609
  if (!isRegionlessNanpNumber && !alreadySelected) {
2610
2610
  for (let j = 0; j < iso2Codes.length; j++) {
@@ -469,7 +469,7 @@ declare module "intl-tel-input" {
469
469
  private _updateValFromNumber;
470
470
  private _updateCountryFromNumber;
471
471
  private _ensureHasDialCode;
472
- private _getCountryFromNumber;
472
+ private _getNewCountryFromNumber;
473
473
  private _highlightListItem;
474
474
  private _getCountryData;
475
475
  private _setCountry;
@@ -2309,12 +2309,8 @@ var Iti = class {
2309
2309
  const newFullNumber = this._getFullNumber(newValue);
2310
2310
  const coreNumber = intlTelInput.utils.getCoreNumber(newFullNumber, this.selectedCountryData.iso2);
2311
2311
  const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;
2312
- let isChangingDialCode = false;
2313
- if (alreadyHasPlus) {
2314
- const currentCountry = this.selectedCountryData.iso2;
2315
- const newCountry = this._getCountryFromNumber(newFullNumber);
2316
- isChangingDialCode = newCountry !== currentCountry;
2317
- }
2312
+ const newCountry = this._getNewCountryFromNumber(newFullNumber);
2313
+ const isChangingDialCode = newCountry !== null;
2318
2314
  if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {
2319
2315
  e.preventDefault();
2320
2316
  }
@@ -2550,7 +2546,7 @@ var Iti = class {
2550
2546
  //* Check if need to select a new country based on the given number
2551
2547
  //* Note: called from _setInitialState, keyup handler, setNumber.
2552
2548
  _updateCountryFromNumber(fullNumber) {
2553
- const iso2 = this._getCountryFromNumber(fullNumber);
2549
+ const iso2 = this._getNewCountryFromNumber(fullNumber);
2554
2550
  if (iso2 !== null) {
2555
2551
  return this._setCountry(iso2);
2556
2552
  }
@@ -2566,7 +2562,10 @@ var Iti = class {
2566
2562
  const cleanNumber = hasPrefix ? number.substring(1) : number;
2567
2563
  return `+${dialCode}${cleanNumber}`;
2568
2564
  }
2569
- _getCountryFromNumber(fullNumber) {
2565
+ // Get the country ISO2 code from the given number
2566
+ // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY
2567
+ // NOTE: consider refactoring this to be more clear
2568
+ _getNewCountryFromNumber(fullNumber) {
2570
2569
  const plusIndex = fullNumber.indexOf("+");
2571
2570
  let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;
2572
2571
  const selectedIso2 = this.selectedCountryData.iso2;
@@ -2580,7 +2579,8 @@ var Iti = class {
2580
2579
  if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {
2581
2580
  return this.defaultCountry;
2582
2581
  }
2583
- const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && (numeric.length === dialCodeMatchNumeric.length || !this.selectedCountryData.areaCodes);
2582
+ const hasAreaCodesButNoneMatched = this.selectedCountryData.areaCodes && numeric.length > dialCodeMatchNumeric.length;
2583
+ const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;
2584
2584
  const isRegionlessNanpNumber = selectedDialCode === "1" && isRegionlessNanp(numeric);
2585
2585
  if (!isRegionlessNanpNumber && !alreadySelected) {
2586
2586
  for (let j = 0; j < iso2Codes.length; j++) {
@@ -2333,12 +2333,8 @@ var Iti = class {
2333
2333
  const newFullNumber = this._getFullNumber(newValue);
2334
2334
  const coreNumber = intlTelInput.utils.getCoreNumber(newFullNumber, this.selectedCountryData.iso2);
2335
2335
  const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;
2336
- let isChangingDialCode = false;
2337
- if (alreadyHasPlus) {
2338
- const currentCountry = this.selectedCountryData.iso2;
2339
- const newCountry = this._getCountryFromNumber(newFullNumber);
2340
- isChangingDialCode = newCountry !== currentCountry;
2341
- }
2336
+ const newCountry = this._getNewCountryFromNumber(newFullNumber);
2337
+ const isChangingDialCode = newCountry !== null;
2342
2338
  if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {
2343
2339
  e.preventDefault();
2344
2340
  }
@@ -2574,7 +2570,7 @@ var Iti = class {
2574
2570
  //* Check if need to select a new country based on the given number
2575
2571
  //* Note: called from _setInitialState, keyup handler, setNumber.
2576
2572
  _updateCountryFromNumber(fullNumber) {
2577
- const iso2 = this._getCountryFromNumber(fullNumber);
2573
+ const iso2 = this._getNewCountryFromNumber(fullNumber);
2578
2574
  if (iso2 !== null) {
2579
2575
  return this._setCountry(iso2);
2580
2576
  }
@@ -2590,7 +2586,10 @@ var Iti = class {
2590
2586
  const cleanNumber = hasPrefix ? number.substring(1) : number;
2591
2587
  return `+${dialCode}${cleanNumber}`;
2592
2588
  }
2593
- _getCountryFromNumber(fullNumber) {
2589
+ // Get the country ISO2 code from the given number
2590
+ // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY
2591
+ // NOTE: consider refactoring this to be more clear
2592
+ _getNewCountryFromNumber(fullNumber) {
2594
2593
  const plusIndex = fullNumber.indexOf("+");
2595
2594
  let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;
2596
2595
  const selectedIso2 = this.selectedCountryData.iso2;
@@ -2604,7 +2603,8 @@ var Iti = class {
2604
2603
  if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {
2605
2604
  return this.defaultCountry;
2606
2605
  }
2607
- const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && (numeric.length === dialCodeMatchNumeric.length || !this.selectedCountryData.areaCodes);
2606
+ const hasAreaCodesButNoneMatched = this.selectedCountryData.areaCodes && numeric.length > dialCodeMatchNumeric.length;
2607
+ const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;
2608
2608
  const isRegionlessNanpNumber = selectedDialCode === "1" && isRegionlessNanp(numeric);
2609
2609
  if (!isRegionlessNanpNumber && !alreadySelected) {
2610
2610
  for (let j = 0; j < iso2Codes.length; j++) {
@@ -2309,12 +2309,8 @@ var Iti = class {
2309
2309
  const newFullNumber = this._getFullNumber(newValue);
2310
2310
  const coreNumber = intlTelInput.utils.getCoreNumber(newFullNumber, this.selectedCountryData.iso2);
2311
2311
  const hasExceededMaxLength = this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength;
2312
- let isChangingDialCode = false;
2313
- if (alreadyHasPlus) {
2314
- const currentCountry = this.selectedCountryData.iso2;
2315
- const newCountry = this._getCountryFromNumber(newFullNumber);
2316
- isChangingDialCode = newCountry !== currentCountry;
2317
- }
2312
+ const newCountry = this._getNewCountryFromNumber(newFullNumber);
2313
+ const isChangingDialCode = newCountry !== null;
2318
2314
  if (!isAllowedChar || hasExceededMaxLength && !isChangingDialCode && !isInitialPlus) {
2319
2315
  e.preventDefault();
2320
2316
  }
@@ -2550,7 +2546,7 @@ var Iti = class {
2550
2546
  //* Check if need to select a new country based on the given number
2551
2547
  //* Note: called from _setInitialState, keyup handler, setNumber.
2552
2548
  _updateCountryFromNumber(fullNumber) {
2553
- const iso2 = this._getCountryFromNumber(fullNumber);
2549
+ const iso2 = this._getNewCountryFromNumber(fullNumber);
2554
2550
  if (iso2 !== null) {
2555
2551
  return this._setCountry(iso2);
2556
2552
  }
@@ -2566,7 +2562,10 @@ var Iti = class {
2566
2562
  const cleanNumber = hasPrefix ? number.substring(1) : number;
2567
2563
  return `+${dialCode}${cleanNumber}`;
2568
2564
  }
2569
- _getCountryFromNumber(fullNumber) {
2565
+ // Get the country ISO2 code from the given number
2566
+ // BUT ONLY IF ITS CHANGED FROM THE CURRENTLY SELECTED COUNTRY
2567
+ // NOTE: consider refactoring this to be more clear
2568
+ _getNewCountryFromNumber(fullNumber) {
2570
2569
  const plusIndex = fullNumber.indexOf("+");
2571
2570
  let number = plusIndex ? fullNumber.substring(plusIndex) : fullNumber;
2572
2571
  const selectedIso2 = this.selectedCountryData.iso2;
@@ -2580,7 +2579,8 @@ var Iti = class {
2580
2579
  if (!selectedIso2 && this.defaultCountry && iso2Codes.includes(this.defaultCountry)) {
2581
2580
  return this.defaultCountry;
2582
2581
  }
2583
- const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && (numeric.length === dialCodeMatchNumeric.length || !this.selectedCountryData.areaCodes);
2582
+ const hasAreaCodesButNoneMatched = this.selectedCountryData.areaCodes && numeric.length > dialCodeMatchNumeric.length;
2583
+ const alreadySelected = selectedIso2 && iso2Codes.includes(selectedIso2) && !hasAreaCodesButNoneMatched;
2584
2584
  const isRegionlessNanpNumber = selectedDialCode === "1" && isRegionlessNanp(numeric);
2585
2585
  if (!isRegionlessNanpNumber && !alreadySelected) {
2586
2586
  for (let j = 0; j < iso2Codes.length; j++) {
@@ -0,0 +1,205 @@
1
+ import intlTelInput from "../intl-tel-input";
2
+ import { Component, Input, ViewChild, ElementRef, Output, EventEmitter, forwardRef } from "@angular/core";
3
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from "@angular/forms";
4
+ import * as i0 from "@angular/core";
5
+ const _c0 = ["inputRef"];
6
+ export { intlTelInput };
7
+ export const PHONE_ERROR_MESSAGES = [
8
+ "invalid",
9
+ "invalid-country-code",
10
+ "too-short",
11
+ "too-long",
12
+ "invalid-format",
13
+ ];
14
+ export class IntlTelInputComponent {
15
+ constructor() {
16
+ this.initialValue = "";
17
+ this.usePreciseValidation = false;
18
+ this.inputProps = {};
19
+ this.disabled = undefined;
20
+ this.initOptions = {};
21
+ this.numberChange = new EventEmitter();
22
+ this.countryChange = new EventEmitter();
23
+ this.validityChange = new EventEmitter();
24
+ this.errorCodeChange = new EventEmitter();
25
+ this.iti = null;
26
+ this.countryChangeHandler = () => this.handleInput();
27
+ // eslint-disable-next-line class-methods-use-this
28
+ this.onChange = () => { };
29
+ // eslint-disable-next-line class-methods-use-this
30
+ this.onTouched = () => { };
31
+ // eslint-disable-next-line class-methods-use-this
32
+ this.onValidatorChange = () => { };
33
+ }
34
+ ngOnInit() {
35
+ if (this.inputRef.nativeElement) {
36
+ this.iti = intlTelInput(this.inputRef.nativeElement, this.initOptions);
37
+ }
38
+ this.inputRef.nativeElement.addEventListener("countrychange", this.countryChangeHandler);
39
+ this.applyInputProps();
40
+ for (const key in this.inputProps) {
41
+ if (this.inputProps.hasOwnProperty(key)) {
42
+ this.inputRef.nativeElement.setAttribute(key, this.inputProps[key]);
43
+ }
44
+ }
45
+ }
46
+ ngAfterViewInit() {
47
+ var _a;
48
+ if (this.initialValue) {
49
+ (_a = this.iti) === null || _a === void 0 ? void 0 : _a.setNumber(this.initialValue);
50
+ }
51
+ }
52
+ handleInput() {
53
+ if (!this.iti)
54
+ return;
55
+ const num = this.iti.getNumber() || "";
56
+ const countryIso = this.iti.getSelectedCountryData().iso2 || "";
57
+ this.numberChange.emit(num);
58
+ this.countryChange.emit(countryIso);
59
+ const isValid = this.usePreciseValidation
60
+ ? this.iti.isValidNumberPrecise()
61
+ : this.iti.isValidNumber();
62
+ if (isValid) {
63
+ this.validityChange.emit(true);
64
+ this.errorCodeChange.emit(null);
65
+ }
66
+ else {
67
+ this.validityChange.emit(false);
68
+ this.errorCodeChange.emit(this.iti.getValidationError());
69
+ }
70
+ this.onChange(num);
71
+ this.onValidatorChange();
72
+ }
73
+ handleBlur() {
74
+ this.onTouched();
75
+ }
76
+ getInstance() {
77
+ return this.iti;
78
+ }
79
+ getInput() {
80
+ return this.inputRef.nativeElement;
81
+ }
82
+ ngOnDestroy() {
83
+ var _a;
84
+ (_a = this.iti) === null || _a === void 0 ? void 0 : _a.destroy();
85
+ this.inputRef.nativeElement.removeEventListener("countrychange", this.countryChangeHandler);
86
+ }
87
+ applyInputProps() {
88
+ const props = this.inputProps;
89
+ Object.entries(props).forEach(([key, value]) => {
90
+ this.inputRef.nativeElement.setAttribute(key, value);
91
+ });
92
+ }
93
+ // ============ ControlValueAccessor Implementation ============
94
+ writeValue(value) {
95
+ if (this.iti && value) {
96
+ this.iti.setNumber(value);
97
+ }
98
+ }
99
+ registerOnChange(fn) {
100
+ this.onChange = fn;
101
+ }
102
+ registerOnTouched(fn) {
103
+ this.onTouched = fn;
104
+ }
105
+ setDisabledState(isDisabled) {
106
+ this.disabled = isDisabled;
107
+ }
108
+ // ============ Validator Implementation ============
109
+ validate(control) {
110
+ if (!control.value || !this.iti) {
111
+ return null;
112
+ }
113
+ const isValid = this.usePreciseValidation
114
+ ? this.iti.isValidNumberPrecise()
115
+ : this.iti.isValidNumber();
116
+ if (isValid) {
117
+ return null;
118
+ }
119
+ const errorCode = this.iti.getValidationError();
120
+ return {
121
+ invalidPhone: {
122
+ errorCode,
123
+ errorMessage: PHONE_ERROR_MESSAGES[errorCode],
124
+ },
125
+ };
126
+ }
127
+ registerOnValidatorChange(fn) {
128
+ this.onValidatorChange = fn;
129
+ }
130
+ }
131
+ IntlTelInputComponent.ɵfac = function IntlTelInputComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IntlTelInputComponent)(); };
132
+ IntlTelInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IntlTelInputComponent, selectors: [["intl-tel-input"]], viewQuery: function IntlTelInputComponent_Query(rf, ctx) { if (rf & 1) {
133
+ i0.ɵɵviewQuery(_c0, 7);
134
+ } if (rf & 2) {
135
+ let _t;
136
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);
137
+ } }, inputs: { initialValue: "initialValue", usePreciseValidation: "usePreciseValidation", inputProps: "inputProps", disabled: "disabled", initOptions: "initOptions" }, outputs: { numberChange: "numberChange", countryChange: "countryChange", validityChange: "validityChange", errorCodeChange: "errorCodeChange" }, features: [i0.ɵɵProvidersFeature([
138
+ {
139
+ provide: NG_VALUE_ACCESSOR,
140
+ useExisting: forwardRef(() => IntlTelInputComponent),
141
+ multi: true,
142
+ },
143
+ {
144
+ provide: NG_VALIDATORS,
145
+ useExisting: forwardRef(() => IntlTelInputComponent),
146
+ multi: true,
147
+ },
148
+ ])], decls: 2, vars: 1, consts: [["inputRef", ""], ["type", "tel", 3, "input", "blur", "disabled"]], template: function IntlTelInputComponent_Template(rf, ctx) { if (rf & 1) {
149
+ const _r1 = i0.ɵɵgetCurrentView();
150
+ i0.ɵɵelementStart(0, "input", 1, 0);
151
+ i0.ɵɵlistener("input", function IntlTelInputComponent_Template_input_input_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInput()); })("blur", function IntlTelInputComponent_Template_input_blur_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleBlur()); });
152
+ i0.ɵɵelementEnd();
153
+ } if (rf & 2) {
154
+ i0.ɵɵproperty("disabled", ctx.disabled);
155
+ } }, encapsulation: 2 });
156
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IntlTelInputComponent, [{
157
+ type: Component,
158
+ args: [{
159
+ selector: "intl-tel-input",
160
+ standalone: true,
161
+ template: `
162
+ <input
163
+ type="tel"
164
+ #inputRef
165
+ (input)="handleInput()"
166
+ (blur)="handleBlur()"
167
+ [disabled]="disabled"
168
+ />
169
+ `,
170
+ providers: [
171
+ {
172
+ provide: NG_VALUE_ACCESSOR,
173
+ useExisting: forwardRef(() => IntlTelInputComponent),
174
+ multi: true,
175
+ },
176
+ {
177
+ provide: NG_VALIDATORS,
178
+ useExisting: forwardRef(() => IntlTelInputComponent),
179
+ multi: true,
180
+ },
181
+ ],
182
+ }]
183
+ }], null, { inputRef: [{
184
+ type: ViewChild,
185
+ args: ["inputRef", { static: true }]
186
+ }], initialValue: [{
187
+ type: Input
188
+ }], usePreciseValidation: [{
189
+ type: Input
190
+ }], inputProps: [{
191
+ type: Input
192
+ }], disabled: [{
193
+ type: Input
194
+ }], initOptions: [{
195
+ type: Input
196
+ }], numberChange: [{
197
+ type: Output
198
+ }], countryChange: [{
199
+ type: Output
200
+ }], validityChange: [{
201
+ type: Output
202
+ }], errorCodeChange: [{
203
+ type: Output
204
+ }] }); })();
205
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(IntlTelInputComponent, { className: "IntlTelInputComponent", filePath: "intl-tel-input/angular.ts", lineNumber: 42 }); })();
@@ -0,0 +1,206 @@
1
+ //* THIS FILE IS AUTO-GENERATED. DO NOT EDIT.
2
+ import intlTelInput from "./intlTelInputWithUtils";
3
+ import { Component, Input, ViewChild, ElementRef, Output, EventEmitter, forwardRef } from "@angular/core";
4
+ import { NG_VALUE_ACCESSOR, NG_VALIDATORS } from "@angular/forms";
5
+ import * as i0 from "@angular/core";
6
+ const _c0 = ["inputRef"];
7
+ export { intlTelInput };
8
+ export const PHONE_ERROR_MESSAGES = [
9
+ "invalid",
10
+ "invalid-country-code",
11
+ "too-short",
12
+ "too-long",
13
+ "invalid-format",
14
+ ];
15
+ export class IntlTelInputComponent {
16
+ constructor() {
17
+ this.initialValue = "";
18
+ this.usePreciseValidation = false;
19
+ this.inputProps = {};
20
+ this.disabled = undefined;
21
+ this.initOptions = {};
22
+ this.numberChange = new EventEmitter();
23
+ this.countryChange = new EventEmitter();
24
+ this.validityChange = new EventEmitter();
25
+ this.errorCodeChange = new EventEmitter();
26
+ this.iti = null;
27
+ this.countryChangeHandler = () => this.handleInput();
28
+ // eslint-disable-next-line class-methods-use-this
29
+ this.onChange = () => { };
30
+ // eslint-disable-next-line class-methods-use-this
31
+ this.onTouched = () => { };
32
+ // eslint-disable-next-line class-methods-use-this
33
+ this.onValidatorChange = () => { };
34
+ }
35
+ ngOnInit() {
36
+ if (this.inputRef.nativeElement) {
37
+ this.iti = intlTelInput(this.inputRef.nativeElement, this.initOptions);
38
+ }
39
+ this.inputRef.nativeElement.addEventListener("countrychange", this.countryChangeHandler);
40
+ this.applyInputProps();
41
+ for (const key in this.inputProps) {
42
+ if (this.inputProps.hasOwnProperty(key)) {
43
+ this.inputRef.nativeElement.setAttribute(key, this.inputProps[key]);
44
+ }
45
+ }
46
+ }
47
+ ngAfterViewInit() {
48
+ var _a;
49
+ if (this.initialValue) {
50
+ (_a = this.iti) === null || _a === void 0 ? void 0 : _a.setNumber(this.initialValue);
51
+ }
52
+ }
53
+ handleInput() {
54
+ if (!this.iti)
55
+ return;
56
+ const num = this.iti.getNumber() || "";
57
+ const countryIso = this.iti.getSelectedCountryData().iso2 || "";
58
+ this.numberChange.emit(num);
59
+ this.countryChange.emit(countryIso);
60
+ const isValid = this.usePreciseValidation
61
+ ? this.iti.isValidNumberPrecise()
62
+ : this.iti.isValidNumber();
63
+ if (isValid) {
64
+ this.validityChange.emit(true);
65
+ this.errorCodeChange.emit(null);
66
+ }
67
+ else {
68
+ this.validityChange.emit(false);
69
+ this.errorCodeChange.emit(this.iti.getValidationError());
70
+ }
71
+ this.onChange(num);
72
+ this.onValidatorChange();
73
+ }
74
+ handleBlur() {
75
+ this.onTouched();
76
+ }
77
+ getInstance() {
78
+ return this.iti;
79
+ }
80
+ getInput() {
81
+ return this.inputRef.nativeElement;
82
+ }
83
+ ngOnDestroy() {
84
+ var _a;
85
+ (_a = this.iti) === null || _a === void 0 ? void 0 : _a.destroy();
86
+ this.inputRef.nativeElement.removeEventListener("countrychange", this.countryChangeHandler);
87
+ }
88
+ applyInputProps() {
89
+ const props = this.inputProps;
90
+ Object.entries(props).forEach(([key, value]) => {
91
+ this.inputRef.nativeElement.setAttribute(key, value);
92
+ });
93
+ }
94
+ // ============ ControlValueAccessor Implementation ============
95
+ writeValue(value) {
96
+ if (this.iti && value) {
97
+ this.iti.setNumber(value);
98
+ }
99
+ }
100
+ registerOnChange(fn) {
101
+ this.onChange = fn;
102
+ }
103
+ registerOnTouched(fn) {
104
+ this.onTouched = fn;
105
+ }
106
+ setDisabledState(isDisabled) {
107
+ this.disabled = isDisabled;
108
+ }
109
+ // ============ Validator Implementation ============
110
+ validate(control) {
111
+ if (!control.value || !this.iti) {
112
+ return null;
113
+ }
114
+ const isValid = this.usePreciseValidation
115
+ ? this.iti.isValidNumberPrecise()
116
+ : this.iti.isValidNumber();
117
+ if (isValid) {
118
+ return null;
119
+ }
120
+ const errorCode = this.iti.getValidationError();
121
+ return {
122
+ invalidPhone: {
123
+ errorCode,
124
+ errorMessage: PHONE_ERROR_MESSAGES[errorCode],
125
+ },
126
+ };
127
+ }
128
+ registerOnValidatorChange(fn) {
129
+ this.onValidatorChange = fn;
130
+ }
131
+ }
132
+ IntlTelInputComponent.ɵfac = function IntlTelInputComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || IntlTelInputComponent)(); };
133
+ IntlTelInputComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: IntlTelInputComponent, selectors: [["intl-tel-input"]], viewQuery: function IntlTelInputComponent_Query(rf, ctx) { if (rf & 1) {
134
+ i0.ɵɵviewQuery(_c0, 7);
135
+ } if (rf & 2) {
136
+ let _t;
137
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.inputRef = _t.first);
138
+ } }, inputs: { initialValue: "initialValue", usePreciseValidation: "usePreciseValidation", inputProps: "inputProps", disabled: "disabled", initOptions: "initOptions" }, outputs: { numberChange: "numberChange", countryChange: "countryChange", validityChange: "validityChange", errorCodeChange: "errorCodeChange" }, features: [i0.ɵɵProvidersFeature([
139
+ {
140
+ provide: NG_VALUE_ACCESSOR,
141
+ useExisting: forwardRef(() => IntlTelInputComponent),
142
+ multi: true,
143
+ },
144
+ {
145
+ provide: NG_VALIDATORS,
146
+ useExisting: forwardRef(() => IntlTelInputComponent),
147
+ multi: true,
148
+ },
149
+ ])], decls: 2, vars: 1, consts: [["inputRef", ""], ["type", "tel", 3, "input", "blur", "disabled"]], template: function IntlTelInputComponent_Template(rf, ctx) { if (rf & 1) {
150
+ const _r1 = i0.ɵɵgetCurrentView();
151
+ i0.ɵɵelementStart(0, "input", 1, 0);
152
+ i0.ɵɵlistener("input", function IntlTelInputComponent_Template_input_input_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleInput()); })("blur", function IntlTelInputComponent_Template_input_blur_0_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.handleBlur()); });
153
+ i0.ɵɵelementEnd();
154
+ } if (rf & 2) {
155
+ i0.ɵɵproperty("disabled", ctx.disabled);
156
+ } }, encapsulation: 2 });
157
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(IntlTelInputComponent, [{
158
+ type: Component,
159
+ args: [{
160
+ selector: "intl-tel-input",
161
+ standalone: true,
162
+ template: `
163
+ <input
164
+ type="tel"
165
+ #inputRef
166
+ (input)="handleInput()"
167
+ (blur)="handleBlur()"
168
+ [disabled]="disabled"
169
+ />
170
+ `,
171
+ providers: [
172
+ {
173
+ provide: NG_VALUE_ACCESSOR,
174
+ useExisting: forwardRef(() => IntlTelInputComponent),
175
+ multi: true,
176
+ },
177
+ {
178
+ provide: NG_VALIDATORS,
179
+ useExisting: forwardRef(() => IntlTelInputComponent),
180
+ multi: true,
181
+ },
182
+ ],
183
+ }]
184
+ }], null, { inputRef: [{
185
+ type: ViewChild,
186
+ args: ["inputRef", { static: true }]
187
+ }], initialValue: [{
188
+ type: Input
189
+ }], usePreciseValidation: [{
190
+ type: Input
191
+ }], inputProps: [{
192
+ type: Input
193
+ }], disabled: [{
194
+ type: Input
195
+ }], initOptions: [{
196
+ type: Input
197
+ }], numberChange: [{
198
+ type: Output
199
+ }], countryChange: [{
200
+ type: Output
201
+ }], validityChange: [{
202
+ type: Output
203
+ }], errorCodeChange: [{
204
+ type: Output
205
+ }] }); })();
206
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(IntlTelInputComponent, { className: "IntlTelInputComponent", filePath: "intl-tel-input/angularwithutils.ts", lineNumber: 43 }); })();