intl-tel-input 25.10.7 → 25.10.9

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 (35) hide show
  1. package/README.md +5 -5
  2. package/angular/README.md +1 -1
  3. package/angular/build/IntlTelInput.js +386 -320
  4. package/angular/build/IntlTelInputWithUtils.js +437 -342
  5. package/angular/build/types/intl-tel-input/angular.d.ts +2 -1
  6. package/angular/build/types/intl-tel-input/angularWithUtils.d.ts +2 -1
  7. package/angular/build/types/intl-tel-input/data.d.ts +3 -1
  8. package/angular/build/types/intl-tel-input/i18n/types.d.ts +2 -245
  9. package/angular/build/types/intl-tel-input.d.ts +16 -87
  10. package/angular/build/types/modules/core/options.d.ts +3 -0
  11. package/angular/build/types/modules/data/country-data.d.ts +12 -0
  12. package/angular/build/types/modules/data/nanp-regionless.d.ts +2 -0
  13. package/angular/build/types/modules/format/caret.d.ts +1 -0
  14. package/angular/build/types/modules/format/formatting.d.ts +3 -0
  15. package/angular/build/types/modules/types/public-api.d.ts +79 -0
  16. package/angular/build/types/modules/utils/dom.d.ts +1 -0
  17. package/angular/build/types/modules/utils/string.d.ts +2 -0
  18. package/build/js/data.js +3 -2
  19. package/build/js/data.min.js +2 -2
  20. package/build/js/intlTelInput.d.ts +99 -292
  21. package/build/js/intlTelInput.js +432 -361
  22. package/build/js/intlTelInput.min.js +13 -13
  23. package/build/js/intlTelInputWithUtils.js +483 -383
  24. package/build/js/intlTelInputWithUtils.min.js +13 -13
  25. package/build/js/utils.js +18 -15
  26. package/package.json +1 -1
  27. package/react/README.md +1 -1
  28. package/react/build/IntlTelInput.cjs +431 -360
  29. package/react/build/IntlTelInput.d.ts +103 -294
  30. package/react/build/IntlTelInput.js +431 -360
  31. package/react/build/IntlTelInputWithUtils.cjs +482 -382
  32. package/react/build/IntlTelInputWithUtils.js +482 -382
  33. package/vue/README.md +1 -1
  34. package/vue/build/IntlTelInput.mjs +483 -443
  35. package/vue/build/IntlTelInputWithUtils.mjs +1128 -1059
@@ -1606,11 +1606,7 @@ var interface_default = interfaceTranslations;
1606
1606
  var allTranslations = Object.assign(Object.assign({}, countries_default), interface_default);
1607
1607
  var en_default = allTranslations;
1608
1608
 
1609
- // angular/build/temp/intl-tel-input.js
1610
- for (const c of data_default) {
1611
- c.name = en_default[c.iso2];
1612
- }
1613
- var id = 0;
1609
+ // angular/build/temp/modules/core/options.js
1614
1610
  var mq = (q) => {
1615
1611
  return typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(q).matches;
1616
1612
  };
@@ -1676,6 +1672,181 @@ var defaults = {
1676
1672
  //* The number type to enforce during validation.
1677
1673
  validationNumberTypes: ["MOBILE"]
1678
1674
  };
1675
+ function applyOptionSideEffects(o) {
1676
+ if (o.useFullscreenPopup) {
1677
+ o.fixDropdownWidth = false;
1678
+ }
1679
+ if (o.onlyCountries.length === 1) {
1680
+ o.initialCountry = o.onlyCountries[0];
1681
+ }
1682
+ if (o.separateDialCode) {
1683
+ o.nationalMode = false;
1684
+ }
1685
+ if (o.allowDropdown && !o.showFlags && !o.separateDialCode) {
1686
+ o.nationalMode = false;
1687
+ }
1688
+ if (o.useFullscreenPopup && !o.dropdownContainer) {
1689
+ o.dropdownContainer = document.body;
1690
+ }
1691
+ o.i18n = Object.assign(Object.assign({}, en_default), o.i18n);
1692
+ }
1693
+
1694
+ // angular/build/temp/modules/utils/string.js
1695
+ var getNumeric = (s) => s.replace(/\D/g, "");
1696
+ var normaliseString = (s = "") => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
1697
+
1698
+ // angular/build/temp/modules/utils/dom.js
1699
+ var createEl = (tagName, attrs, container) => {
1700
+ const el = document.createElement(tagName);
1701
+ if (attrs) {
1702
+ Object.entries(attrs).forEach(([key, value]) => el.setAttribute(key, value));
1703
+ }
1704
+ if (container) {
1705
+ container.appendChild(el);
1706
+ }
1707
+ return el;
1708
+ };
1709
+
1710
+ // angular/build/temp/modules/data/country-data.js
1711
+ function processAllCountries(options) {
1712
+ const { onlyCountries, excludeCountries } = options;
1713
+ if (onlyCountries.length) {
1714
+ const lowerCaseOnlyCountries = onlyCountries.map((country) => country.toLowerCase());
1715
+ return data_default.filter((country) => lowerCaseOnlyCountries.includes(country.iso2));
1716
+ } else if (excludeCountries.length) {
1717
+ const lowerCaseExcludeCountries = excludeCountries.map((country) => country.toLowerCase());
1718
+ return data_default.filter((country) => !lowerCaseExcludeCountries.includes(country.iso2));
1719
+ }
1720
+ return data_default;
1721
+ }
1722
+ function translateCountryNames(countries, options) {
1723
+ for (const c of countries) {
1724
+ const iso2 = c.iso2.toLowerCase();
1725
+ if (options.i18n[iso2]) {
1726
+ c.name = options.i18n[iso2];
1727
+ }
1728
+ }
1729
+ }
1730
+ function processDialCodes(countries, options) {
1731
+ const dialCodes = /* @__PURE__ */ new Set();
1732
+ let dialCodeMaxLen = 0;
1733
+ const dialCodeToIso2Map = {};
1734
+ const _addToDialCodeMap = (iso2, dialCode, priority) => {
1735
+ if (!iso2 || !dialCode) {
1736
+ return;
1737
+ }
1738
+ if (dialCode.length > dialCodeMaxLen) {
1739
+ dialCodeMaxLen = dialCode.length;
1740
+ }
1741
+ if (!dialCodeToIso2Map.hasOwnProperty(dialCode)) {
1742
+ dialCodeToIso2Map[dialCode] = [];
1743
+ }
1744
+ const iso2List = dialCodeToIso2Map[dialCode];
1745
+ if (iso2List.includes(iso2)) {
1746
+ return;
1747
+ }
1748
+ const index = priority !== void 0 ? priority : iso2List.length;
1749
+ iso2List[index] = iso2;
1750
+ };
1751
+ for (const c of countries) {
1752
+ if (!dialCodes.has(c.dialCode)) {
1753
+ dialCodes.add(c.dialCode);
1754
+ }
1755
+ _addToDialCodeMap(c.iso2, c.dialCode, c.priority);
1756
+ }
1757
+ if (options.onlyCountries.length || options.excludeCountries.length) {
1758
+ dialCodes.forEach((dialCode) => {
1759
+ dialCodeToIso2Map[dialCode] = dialCodeToIso2Map[dialCode].filter(Boolean);
1760
+ });
1761
+ }
1762
+ for (const c of countries) {
1763
+ if (c.areaCodes) {
1764
+ const rootIso2Code = dialCodeToIso2Map[c.dialCode][0];
1765
+ for (const areaCode of c.areaCodes) {
1766
+ for (let k = 1; k < areaCode.length; k++) {
1767
+ const partialAreaCode = areaCode.substring(0, k);
1768
+ const partialDialCode = c.dialCode + partialAreaCode;
1769
+ _addToDialCodeMap(rootIso2Code, partialDialCode);
1770
+ _addToDialCodeMap(c.iso2, partialDialCode);
1771
+ }
1772
+ _addToDialCodeMap(c.iso2, c.dialCode + areaCode);
1773
+ }
1774
+ }
1775
+ }
1776
+ return { dialCodes, dialCodeMaxLen, dialCodeToIso2Map };
1777
+ }
1778
+ function sortCountries(countries, options) {
1779
+ if (options.countryOrder) {
1780
+ options.countryOrder = options.countryOrder.map((iso2) => iso2.toLowerCase());
1781
+ }
1782
+ countries.sort((a, b) => {
1783
+ const { countryOrder } = options;
1784
+ if (countryOrder) {
1785
+ const aIndex = countryOrder.indexOf(a.iso2);
1786
+ const bIndex = countryOrder.indexOf(b.iso2);
1787
+ const aIndexExists = aIndex > -1;
1788
+ const bIndexExists = bIndex > -1;
1789
+ if (aIndexExists || bIndexExists) {
1790
+ if (aIndexExists && bIndexExists) {
1791
+ return aIndex - bIndex;
1792
+ }
1793
+ return aIndexExists ? -1 : 1;
1794
+ }
1795
+ }
1796
+ return a.name.localeCompare(b.name);
1797
+ });
1798
+ }
1799
+ function cacheSearchTokens(countries) {
1800
+ for (const c of countries) {
1801
+ c.normalisedName = normaliseString(c.name);
1802
+ c.initials = c.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map((word) => word[0]).join("").toLowerCase();
1803
+ c.dialCodePlus = `+${c.dialCode}`;
1804
+ }
1805
+ }
1806
+
1807
+ // angular/build/temp/modules/format/formatting.js
1808
+ function beforeSetNumber(fullNumber, dialCode, separateDialCode, selectedCountryData) {
1809
+ let number = fullNumber;
1810
+ if (separateDialCode) {
1811
+ if (dialCode) {
1812
+ dialCode = `+${selectedCountryData.dialCode}`;
1813
+ const start = number[dialCode.length] === " " || number[dialCode.length] === "-" ? dialCode.length + 1 : dialCode.length;
1814
+ number = number.substring(start);
1815
+ }
1816
+ }
1817
+ return number;
1818
+ }
1819
+ function formatNumberAsYouType(fullNumber, telInputValue, utils2, selectedCountryData, separateDialCode) {
1820
+ const result = utils2 ? utils2.formatNumberAsYouType(fullNumber, selectedCountryData.iso2) : fullNumber;
1821
+ const { dialCode } = selectedCountryData;
1822
+ if (separateDialCode && telInputValue.charAt(0) !== "+" && result.includes(`+${dialCode}`)) {
1823
+ const afterDialCode = result.split(`+${dialCode}`)[1] || "";
1824
+ return afterDialCode.trim();
1825
+ }
1826
+ return result;
1827
+ }
1828
+
1829
+ // angular/build/temp/modules/format/caret.js
1830
+ function translateCursorPosition(relevantChars, formattedValue, prevCaretPos, isDeleteForwards) {
1831
+ if (prevCaretPos === 0 && !isDeleteForwards) {
1832
+ return 0;
1833
+ }
1834
+ let relevantCharCount = 0;
1835
+ for (let i = 0; i < formattedValue.length; i++) {
1836
+ if (/[+0-9]/.test(formattedValue[i])) {
1837
+ relevantCharCount++;
1838
+ }
1839
+ if (relevantCharCount === relevantChars && !isDeleteForwards) {
1840
+ return i + 1;
1841
+ }
1842
+ if (isDeleteForwards && relevantCharCount === relevantChars + 1) {
1843
+ return i;
1844
+ }
1845
+ }
1846
+ return formattedValue.length;
1847
+ }
1848
+
1849
+ // angular/build/temp/modules/data/nanp-regionless.js
1679
1850
  var regionlessNanpNumbers = [
1680
1851
  "800",
1681
1852
  "822",
@@ -1695,8 +1866,6 @@ var regionlessNanpNumbers = [
1695
1866
  "888",
1696
1867
  "889"
1697
1868
  ];
1698
- var getNumeric = (s) => s.replace(/\D/g, "");
1699
- var normaliseString = (s = "") => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
1700
1869
  var isRegionlessNanp = (number) => {
1701
1870
  const numeric = getNumeric(number);
1702
1871
  if (numeric.charAt(0) === "1") {
@@ -1705,34 +1874,14 @@ var isRegionlessNanp = (number) => {
1705
1874
  }
1706
1875
  return false;
1707
1876
  };
1708
- var translateCursorPosition = (relevantChars, formattedValue, prevCaretPos, isDeleteForwards) => {
1709
- if (prevCaretPos === 0 && !isDeleteForwards) {
1710
- return 0;
1711
- }
1712
- let count = 0;
1713
- for (let i = 0; i < formattedValue.length; i++) {
1714
- if (/[+0-9]/.test(formattedValue[i])) {
1715
- count++;
1716
- }
1717
- if (count === relevantChars && !isDeleteForwards) {
1718
- return i + 1;
1719
- }
1720
- if (isDeleteForwards && count === relevantChars + 1) {
1721
- return i;
1722
- }
1723
- }
1724
- return formattedValue.length;
1725
- };
1726
- var createEl = (tagName, attrs, container) => {
1727
- const el = document.createElement(tagName);
1728
- if (attrs) {
1729
- Object.entries(attrs).forEach(([key, value]) => el.setAttribute(key, value));
1730
- }
1731
- if (container) {
1732
- container.appendChild(el);
1733
- }
1734
- return el;
1735
- };
1877
+
1878
+ // angular/build/temp/intl-tel-input.js
1879
+ for (const c of data_default) {
1880
+ c.name = en_default[c.iso2];
1881
+ }
1882
+ var id = 0;
1883
+ var iso2Set = new Set(data_default.map((c) => c.iso2));
1884
+ var isIso2 = (val) => iso2Set.has(val);
1736
1885
  var forEachInstance = (method, ...args) => {
1737
1886
  const { instances } = intlTelInput;
1738
1887
  Object.values(instances).forEach((instance) => instance[method](...args));
@@ -1752,23 +1901,7 @@ var Iti = class _Iti {
1752
1901
  this.options = Object.assign({}, defaults, customOptions);
1753
1902
  this.hadInitialPlaceholder = Boolean(input.getAttribute("placeholder"));
1754
1903
  }
1755
- //* Can't be private as it's called from intlTelInput convenience wrapper.
1756
- _init() {
1757
- if (this.options.useFullscreenPopup) {
1758
- this.options.fixDropdownWidth = false;
1759
- }
1760
- if (this.options.onlyCountries.length === 1) {
1761
- this.options.initialCountry = this.options.onlyCountries[0];
1762
- }
1763
- if (this.options.separateDialCode) {
1764
- this.options.nationalMode = false;
1765
- }
1766
- if (this.options.allowDropdown && !this.options.showFlags && !this.options.separateDialCode) {
1767
- this.options.nationalMode = false;
1768
- }
1769
- if (this.options.useFullscreenPopup && !this.options.dropdownContainer) {
1770
- this.options.dropdownContainer = document.body;
1771
- }
1904
+ _detectEnvironmentAndLayout() {
1772
1905
  this.isAndroid = typeof navigator !== "undefined" ? /Android/i.test(navigator.userAgent) : false;
1773
1906
  this.isRTL = !!this.telInput.closest("[dir=rtl]");
1774
1907
  this.telInput.dir = "ltr";
@@ -1781,7 +1914,8 @@ var Iti = class _Iti {
1781
1914
  this.originalPaddingLeft = this.telInput.style.paddingLeft;
1782
1915
  }
1783
1916
  }
1784
- this.options.i18n = Object.assign(Object.assign({}, en_default), this.options.i18n);
1917
+ }
1918
+ _createInitPromises() {
1785
1919
  const autoCountryPromise = new Promise((resolve, reject) => {
1786
1920
  this.resolveAutoCountryPromise = resolve;
1787
1921
  this.rejectAutoCountryPromise = reject;
@@ -1791,6 +1925,12 @@ var Iti = class _Iti {
1791
1925
  this.rejectUtilsScriptPromise = reject;
1792
1926
  });
1793
1927
  this.promise = Promise.all([autoCountryPromise, utilsScriptPromise]);
1928
+ }
1929
+ //* Can't be private as it's called from intlTelInput convenience wrapper.
1930
+ _init() {
1931
+ applyOptionSideEffects(this.options);
1932
+ this._detectEnvironmentAndLayout();
1933
+ this._createInitPromises();
1794
1934
  this.selectedCountryData = {};
1795
1935
  this._processCountryData();
1796
1936
  this._generateMarkup();
@@ -1803,122 +1943,34 @@ var Iti = class _Iti {
1803
1943
  //********************
1804
1944
  //* Prepare all of the country data, including onlyCountries, excludeCountries, countryOrder options.
1805
1945
  _processCountryData() {
1806
- this._processAllCountries();
1807
- this._processDialCodes();
1808
- this._translateCountryNames();
1809
- this._sortCountries();
1946
+ this.countries = processAllCountries(this.options);
1947
+ const dialRes = processDialCodes(this.countries, this.options);
1948
+ this.dialCodes = dialRes.dialCodes;
1949
+ this.dialCodeMaxLen = dialRes.dialCodeMaxLen;
1950
+ this.dialCodeToIso2Map = dialRes.dialCodeToIso2Map;
1951
+ translateCountryNames(this.countries, this.options);
1952
+ sortCountries(this.countries, this.options);
1810
1953
  this.countryByIso2 = new Map(this.countries.map((c) => [c.iso2, c]));
1811
- this._cacheSearchTokens();
1812
- }
1813
- //* Precompute and cache country search tokens to speed up filtering
1814
- _cacheSearchTokens() {
1815
- for (const c of this.countries) {
1816
- c.normalisedName = normaliseString(c.name);
1817
- c.initials = c.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map((word) => word[0]).join("").toLowerCase();
1818
- c.dialCodePlus = `+${c.dialCode}`;
1819
- }
1820
- }
1821
- //* Sort countries by countryOrder option (if present), then name.
1822
- _sortCountries() {
1823
- if (this.options.countryOrder) {
1824
- this.options.countryOrder = this.options.countryOrder.map((country) => country.toLowerCase());
1825
- }
1826
- this.countries.sort((a, b) => {
1827
- const { countryOrder } = this.options;
1828
- if (countryOrder) {
1829
- const aIndex = countryOrder.indexOf(a.iso2);
1830
- const bIndex = countryOrder.indexOf(b.iso2);
1831
- const aIndexExists = aIndex > -1;
1832
- const bIndexExists = bIndex > -1;
1833
- if (aIndexExists || bIndexExists) {
1834
- if (aIndexExists && bIndexExists) {
1835
- return aIndex - bIndex;
1836
- }
1837
- return aIndexExists ? -1 : 1;
1838
- }
1839
- }
1840
- return a.name.localeCompare(b.name);
1841
- });
1842
- }
1843
- //* Add a dial code to this.dialCodeToIso2Map.
1844
- _addToDialCodeMap(iso2, dialCode, priority) {
1845
- if (!iso2 || !dialCode) {
1846
- return;
1847
- }
1848
- if (dialCode.length > this.dialCodeMaxLen) {
1849
- this.dialCodeMaxLen = dialCode.length;
1850
- }
1851
- if (!this.dialCodeToIso2Map.hasOwnProperty(dialCode)) {
1852
- this.dialCodeToIso2Map[dialCode] = [];
1853
- }
1854
- const iso2List = this.dialCodeToIso2Map[dialCode];
1855
- if (iso2List.includes(iso2)) {
1856
- return;
1857
- }
1858
- const index = priority !== void 0 ? priority : iso2List.length;
1859
- iso2List[index] = iso2;
1860
- }
1861
- //* Process onlyCountries or excludeCountries array if present.
1862
- _processAllCountries() {
1863
- const { onlyCountries, excludeCountries } = this.options;
1864
- if (onlyCountries.length) {
1865
- const lowerCaseOnlyCountries = onlyCountries.map((country) => country.toLowerCase());
1866
- this.countries = data_default.filter((country) => lowerCaseOnlyCountries.includes(country.iso2));
1867
- } else if (excludeCountries.length) {
1868
- const lowerCaseExcludeCountries = excludeCountries.map((country) => country.toLowerCase());
1869
- this.countries = data_default.filter((country) => !lowerCaseExcludeCountries.includes(country.iso2));
1870
- } else {
1871
- this.countries = data_default;
1872
- }
1873
- }
1874
- //* Translate Countries by object literal provided on config.
1875
- _translateCountryNames() {
1876
- for (const c of this.countries) {
1877
- const iso2 = c.iso2.toLowerCase();
1878
- if (this.options.i18n.hasOwnProperty(iso2)) {
1879
- c.name = this.options.i18n[iso2];
1880
- }
1881
- }
1882
- }
1883
- //* Generate this.dialCodes and this.dialCodeToIso2Map.
1884
- _processDialCodes() {
1885
- this.dialCodes = /* @__PURE__ */ new Set();
1886
- this.dialCodeMaxLen = 0;
1887
- this.dialCodeToIso2Map = {};
1888
- for (const c of this.countries) {
1889
- if (!this.dialCodes.has(c.dialCode)) {
1890
- this.dialCodes.add(c.dialCode);
1891
- }
1892
- this._addToDialCodeMap(c.iso2, c.dialCode, c.priority);
1893
- }
1894
- if (this.options.onlyCountries.length || this.options.excludeCountries.length) {
1895
- this.dialCodes.forEach((dialCode) => {
1896
- this.dialCodeToIso2Map[dialCode] = this.dialCodeToIso2Map[dialCode].filter(Boolean);
1897
- });
1898
- }
1899
- for (const c of this.countries) {
1900
- if (c.areaCodes) {
1901
- const rootIso2Code = this.dialCodeToIso2Map[c.dialCode][0];
1902
- for (const areaCode of c.areaCodes) {
1903
- for (let k = 1; k < areaCode.length; k++) {
1904
- const partialAreaCode = areaCode.substring(0, k);
1905
- const partialDialCode = c.dialCode + partialAreaCode;
1906
- this._addToDialCodeMap(rootIso2Code, partialDialCode);
1907
- this._addToDialCodeMap(c.iso2, partialDialCode);
1908
- }
1909
- this._addToDialCodeMap(c.iso2, c.dialCode + areaCode);
1910
- }
1911
- }
1912
- }
1954
+ cacheSearchTokens(this.countries);
1913
1955
  }
1914
1956
  //* Generate all of the markup for the plugin: the selected country overlay, and the dropdown.
1915
1957
  _generateMarkup() {
1916
- var _a, _b, _c;
1958
+ this._prepareTelInput();
1959
+ const wrapper = this._createWrapperAndInsert();
1960
+ this._maybeBuildCountryContainer(wrapper);
1961
+ wrapper.appendChild(this.telInput);
1962
+ this._maybeUpdateInputPaddingAndReveal();
1963
+ this._maybeBuildHiddenInputs(wrapper);
1964
+ }
1965
+ _prepareTelInput() {
1917
1966
  this.telInput.classList.add("iti__tel-input");
1918
1967
  if (!this.telInput.hasAttribute("autocomplete") && !(this.telInput.form && this.telInput.form.hasAttribute("autocomplete"))) {
1919
1968
  this.telInput.setAttribute("autocomplete", "off");
1920
1969
  }
1921
- const { allowDropdown, separateDialCode, showFlags, containerClass, hiddenInput, dropdownContainer, fixDropdownWidth, useFullscreenPopup, countrySearch, i18n } = this.options;
1970
+ }
1971
+ _createWrapperAndInsert() {
1972
+ var _a;
1973
+ const { allowDropdown, showFlags, containerClass, useFullscreenPopup } = this.options;
1922
1974
  const parentClasses = _Iti._buildClassNames({
1923
1975
  "iti": true,
1924
1976
  "iti--allow-dropdown": allowDropdown,
@@ -1928,6 +1980,10 @@ var Iti = class _Iti {
1928
1980
  });
1929
1981
  const wrapper = createEl("div", { class: parentClasses });
1930
1982
  (_a = this.telInput.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(wrapper, this.telInput);
1983
+ return wrapper;
1984
+ }
1985
+ _maybeBuildCountryContainer(wrapper) {
1986
+ const { allowDropdown, separateDialCode, showFlags } = this.options;
1931
1987
  if (allowDropdown || showFlags || separateDialCode) {
1932
1988
  this.countryContainer = createEl(
1933
1989
  "div",
@@ -1964,96 +2020,109 @@ var Iti = class _Iti {
1964
2020
  this.selectedDialCode = createEl("div", { class: "iti__selected-dial-code", dir: "ltr" }, this.selectedCountry);
1965
2021
  }
1966
2022
  if (allowDropdown) {
1967
- const extraClasses = fixDropdownWidth ? "" : "iti--flexible-dropdown-width";
1968
- this.dropdownContent = createEl("div", {
1969
- id: `iti-${this.id}__dropdown-content`,
1970
- class: `iti__dropdown-content iti__hide ${extraClasses}`,
1971
- role: "dialog",
1972
- "aria-modal": "true"
1973
- });
1974
- if (countrySearch) {
1975
- const searchWrapper = createEl("div", { class: "iti__search-input-wrapper" }, this.dropdownContent);
1976
- this.searchIcon = createEl("span", {
1977
- class: "iti__search-icon",
1978
- "aria-hidden": "true"
1979
- }, searchWrapper);
1980
- this.searchIcon.innerHTML = `
1981
- <svg class="iti__search-icon-svg" width="14" height="14" viewBox="0 0 24 24" focusable="false" aria-hidden="true">
1982
- <circle cx="11" cy="11" r="7" />
1983
- <line x1="21" y1="21" x2="16.65" y2="16.65" />
1984
- </svg>`;
1985
- this.searchInput = createEl("input", {
1986
- id: `iti-${this.id}__search-input`,
1987
- // Chrome says inputs need either a name or an id
1988
- type: "search",
1989
- class: "iti__search-input",
1990
- placeholder: i18n.searchPlaceholder,
1991
- // role=combobox + aria-autocomplete=list + aria-activedescendant allows maintaining focus on the search input while allowing users to navigate search results with up/down keyboard keys
1992
- role: "combobox",
1993
- "aria-expanded": "true",
1994
- "aria-label": i18n.searchPlaceholder,
1995
- "aria-controls": `iti-${this.id}__country-listbox`,
1996
- "aria-autocomplete": "list",
1997
- "autocomplete": "off"
1998
- }, searchWrapper);
1999
- this.searchClearButton = createEl("button", {
2000
- type: "button",
2001
- class: "iti__search-clear iti__hide",
2002
- "aria-label": i18n.clearSearchAriaLabel,
2003
- tabindex: "-1"
2004
- }, searchWrapper);
2005
- const maskId = `iti-${this.id}-clear-mask`;
2006
- this.searchClearButton.innerHTML = `
2007
- <svg class="iti__search-clear-svg" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
2008
- <mask id="${maskId}" maskUnits="userSpaceOnUse">
2009
- <rect width="16" height="16" fill="white" />
2010
- <path d="M5.2 5.2 L10.8 10.8 M10.8 5.2 L5.2 10.8" stroke="black" stroke-linecap="round" class="iti__search-clear-x" />
2011
- </mask>
2012
- <circle cx="8" cy="8" r="8" class="iti__search-clear-bg" mask="url(#${maskId})" />
2013
- </svg>`;
2014
- this.searchResultsA11yText = createEl("span", { class: "iti__a11y-text" }, this.dropdownContent);
2015
- this.searchNoResults = createEl("div", {
2016
- class: "iti__no-results iti__hide",
2017
- "aria-hidden": "true"
2018
- // all a11y messaging happens in this.searchResultsA11yText
2019
- }, this.dropdownContent);
2020
- this.searchNoResults.textContent = i18n.zeroSearchResults;
2021
- }
2022
- this.countryList = createEl("ul", {
2023
- class: "iti__country-list",
2024
- id: `iti-${this.id}__country-listbox`,
2025
- role: "listbox",
2026
- "aria-label": i18n.countryListAriaLabel
2027
- }, this.dropdownContent);
2028
- this._appendListItems();
2029
- if (countrySearch) {
2030
- this._updateSearchResultsA11yText();
2031
- }
2032
- if (dropdownContainer) {
2033
- const dropdownClasses = _Iti._buildClassNames({
2034
- "iti": true,
2035
- "iti--container": true,
2036
- "iti--fullscreen-popup": useFullscreenPopup,
2037
- "iti--inline-dropdown": !useFullscreenPopup,
2038
- [containerClass]: Boolean(containerClass)
2039
- });
2040
- this.dropdown = createEl("div", { class: dropdownClasses });
2041
- this.dropdown.appendChild(this.dropdownContent);
2042
- } else {
2043
- this.countryContainer.appendChild(this.dropdownContent);
2044
- }
2023
+ this._buildDropdownContent();
2045
2024
  }
2046
2025
  }
2047
- wrapper.appendChild(this.telInput);
2026
+ }
2027
+ _buildDropdownContent() {
2028
+ const { fixDropdownWidth, useFullscreenPopup, countrySearch, i18n, dropdownContainer, containerClass } = this.options;
2029
+ const extraClasses = fixDropdownWidth ? "" : "iti--flexible-dropdown-width";
2030
+ this.dropdownContent = createEl("div", {
2031
+ id: `iti-${this.id}__dropdown-content`,
2032
+ class: `iti__dropdown-content iti__hide ${extraClasses}`,
2033
+ role: "dialog",
2034
+ "aria-modal": "true"
2035
+ });
2036
+ if (countrySearch) {
2037
+ this._buildSearchUI();
2038
+ }
2039
+ this.countryList = createEl("ul", {
2040
+ class: "iti__country-list",
2041
+ id: `iti-${this.id}__country-listbox`,
2042
+ role: "listbox",
2043
+ "aria-label": i18n.countryListAriaLabel
2044
+ }, this.dropdownContent);
2045
+ this._appendListItems();
2046
+ if (countrySearch) {
2047
+ this._updateSearchResultsA11yText();
2048
+ }
2049
+ if (dropdownContainer) {
2050
+ const dropdownClasses = _Iti._buildClassNames({
2051
+ "iti": true,
2052
+ "iti--container": true,
2053
+ "iti--fullscreen-popup": useFullscreenPopup,
2054
+ "iti--inline-dropdown": !useFullscreenPopup,
2055
+ [containerClass]: Boolean(containerClass)
2056
+ });
2057
+ this.dropdown = createEl("div", { class: dropdownClasses });
2058
+ this.dropdown.appendChild(this.dropdownContent);
2059
+ } else {
2060
+ this.countryContainer.appendChild(this.dropdownContent);
2061
+ }
2062
+ }
2063
+ _buildSearchUI() {
2064
+ const { i18n } = this.options;
2065
+ const searchWrapper = createEl("div", { class: "iti__search-input-wrapper" }, this.dropdownContent);
2066
+ this.searchIcon = createEl("span", {
2067
+ class: "iti__search-icon",
2068
+ "aria-hidden": "true"
2069
+ }, searchWrapper);
2070
+ this.searchIcon.innerHTML = `
2071
+ <svg class="iti__search-icon-svg" width="14" height="14" viewBox="0 0 24 24" focusable="false" aria-hidden="true">
2072
+ <circle cx="11" cy="11" r="7" />
2073
+ <line x1="21" y1="21" x2="16.65" y2="16.65" />
2074
+ </svg>`;
2075
+ this.searchInput = createEl("input", {
2076
+ id: `iti-${this.id}__search-input`,
2077
+ // Chrome says inputs need either a name or an id
2078
+ type: "search",
2079
+ class: "iti__search-input",
2080
+ placeholder: i18n.searchPlaceholder,
2081
+ // role=combobox + aria-autocomplete=list + aria-activedescendant allows maintaining focus on the search input while allowing users to navigate search results with up/down keyboard keys
2082
+ role: "combobox",
2083
+ "aria-expanded": "true",
2084
+ "aria-label": i18n.searchPlaceholder,
2085
+ "aria-controls": `iti-${this.id}__country-listbox`,
2086
+ "aria-autocomplete": "list",
2087
+ "autocomplete": "off"
2088
+ }, searchWrapper);
2089
+ this.searchClearButton = createEl("button", {
2090
+ type: "button",
2091
+ class: "iti__search-clear iti__hide",
2092
+ "aria-label": i18n.clearSearchAriaLabel,
2093
+ tabindex: "-1"
2094
+ }, searchWrapper);
2095
+ const maskId = `iti-${this.id}-clear-mask`;
2096
+ this.searchClearButton.innerHTML = `
2097
+ <svg class="iti__search-clear-svg" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
2098
+ <mask id="${maskId}" maskUnits="userSpaceOnUse">
2099
+ <rect width="16" height="16" fill="white" />
2100
+ <path d="M5.2 5.2 L10.8 10.8 M10.8 5.2 L5.2 10.8" stroke="black" stroke-linecap="round" class="iti__search-clear-x" />
2101
+ </mask>
2102
+ <circle cx="8" cy="8" r="8" class="iti__search-clear-bg" mask="url(#${maskId})" />
2103
+ </svg>`;
2104
+ this.searchResultsA11yText = createEl("span", { class: "iti__a11y-text" }, this.dropdownContent);
2105
+ this.searchNoResults = createEl("div", {
2106
+ class: "iti__no-results iti__hide",
2107
+ "aria-hidden": "true"
2108
+ // all a11y messaging happens in this.searchResultsA11yText
2109
+ }, this.dropdownContent);
2110
+ this.searchNoResults.textContent = i18n.zeroSearchResults;
2111
+ }
2112
+ _maybeUpdateInputPaddingAndReveal() {
2048
2113
  if (this.countryContainer) {
2049
2114
  this._updateInputPadding();
2050
2115
  this.countryContainer.classList.remove("iti__v-hide");
2051
2116
  }
2117
+ }
2118
+ _maybeBuildHiddenInputs(wrapper) {
2119
+ var _a, _b;
2120
+ const { hiddenInput } = this.options;
2052
2121
  if (hiddenInput) {
2053
2122
  const telInputName = this.telInput.getAttribute("name") || "";
2054
2123
  const names = hiddenInput(telInputName);
2055
2124
  if (names.phone) {
2056
- const existingInput = (_b = this.telInput.form) === null || _b === void 0 ? void 0 : _b.querySelector(`input[name="${names.phone}"]`);
2125
+ const existingInput = (_a = this.telInput.form) === null || _a === void 0 ? void 0 : _a.querySelector(`input[name="${names.phone}"]`);
2057
2126
  if (existingInput) {
2058
2127
  this.hiddenInput = existingInput;
2059
2128
  } else {
@@ -2065,7 +2134,7 @@ var Iti = class _Iti {
2065
2134
  }
2066
2135
  }
2067
2136
  if (names.country) {
2068
- const existingInput = (_c = this.telInput.form) === null || _c === void 0 ? void 0 : _c.querySelector(`input[name="${names.country}"]`);
2137
+ const existingInput = (_b = this.telInput.form) === null || _b === void 0 ? void 0 : _b.querySelector(`input[name="${names.country}"]`);
2069
2138
  if (existingInput) {
2070
2139
  this.hiddenInputCountry = existingInput;
2071
2140
  } else {
@@ -2118,14 +2187,13 @@ var Iti = class _Iti {
2118
2187
  this._updateCountryFromNumber(val);
2119
2188
  } else if (!isAutoCountry || overrideAutoCountry) {
2120
2189
  const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
2121
- const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
2122
- if (isValidInitialCountry) {
2190
+ if (isIso2(lowerInitialCountry)) {
2123
2191
  this._setCountry(lowerInitialCountry);
2124
2192
  } else {
2125
2193
  if (dialCode && isRegionlessNanpNumber) {
2126
2194
  this._setCountry("us");
2127
2195
  } else {
2128
- this._setCountry();
2196
+ this._setCountry("");
2129
2197
  }
2130
2198
  }
2131
2199
  }
@@ -2223,8 +2291,7 @@ var Iti = class _Iti {
2223
2291
  if (typeof this.options.geoIpLookup === "function") {
2224
2292
  this.options.geoIpLookup((iso2 = "") => {
2225
2293
  const iso2Lower = iso2.toLowerCase();
2226
- const isValidIso2 = iso2Lower && this._getCountryData(iso2Lower, true);
2227
- if (isValidIso2) {
2294
+ if (isIso2(iso2Lower)) {
2228
2295
  intlTelInput.autoCountry = iso2Lower;
2229
2296
  setTimeout(() => forEachInstance("handleAutoCountry"));
2230
2297
  } else {
@@ -2245,6 +2312,11 @@ var Iti = class _Iti {
2245
2312
  }
2246
2313
  //* Initialize the tel input listeners.
2247
2314
  _initTelInputListeners() {
2315
+ this._bindInputListener();
2316
+ this._maybeBindKeydownListener();
2317
+ this._maybeBindPasteListener();
2318
+ }
2319
+ _bindInputListener() {
2248
2320
  const { strictMode, formatAsYouType, separateDialCode, allowDropdown, countrySearch } = this.options;
2249
2321
  let userOverrideFormatting = false;
2250
2322
  if (/\p{L}/u.test(this.telInput.value)) {
@@ -2275,13 +2347,17 @@ var Iti = class _Iti {
2275
2347
  const valueBeforeCaret = this.telInput.value.substring(0, currentCaretPos);
2276
2348
  const relevantCharsBeforeCaret = valueBeforeCaret.replace(/[^+0-9]/g, "").length;
2277
2349
  const isDeleteForwards = (e === null || e === void 0 ? void 0 : e.inputType) === "deleteContentForward";
2278
- const formattedValue = this._formatNumberAsYouType();
2350
+ const fullNumber = this._getFullNumber();
2351
+ const formattedValue = formatNumberAsYouType(fullNumber, this.telInput.value, intlTelInput.utils, this.selectedCountryData, this.options.separateDialCode);
2279
2352
  const newCaretPos = translateCursorPosition(relevantCharsBeforeCaret, formattedValue, currentCaretPos, isDeleteForwards);
2280
2353
  this.telInput.value = formattedValue;
2281
2354
  this.telInput.setSelectionRange(newCaretPos, newCaretPos);
2282
2355
  }
2283
2356
  };
2284
2357
  this.telInput.addEventListener("input", this._handleInputEvent);
2358
+ }
2359
+ _maybeBindKeydownListener() {
2360
+ const { strictMode, separateDialCode, allowDropdown, countrySearch } = this.options;
2285
2361
  if (strictMode || separateDialCode) {
2286
2362
  this._handleKeydownEvent = (e) => {
2287
2363
  if (e.key && e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey) {
@@ -2310,12 +2386,17 @@ var Iti = class _Iti {
2310
2386
  };
2311
2387
  this.telInput.addEventListener("keydown", this._handleKeydownEvent);
2312
2388
  }
2313
- if (strictMode) {
2389
+ }
2390
+ _maybeBindPasteListener() {
2391
+ if (this.options.strictMode) {
2314
2392
  this._handlePasteEvent = (e) => {
2315
2393
  e.preventDefault();
2316
2394
  const input = this.telInput;
2317
2395
  const selStart = input.selectionStart;
2318
2396
  const selEnd = input.selectionEnd;
2397
+ const before = input.value.slice(0, selStart);
2398
+ const after = input.value.slice(selEnd);
2399
+ const iso2 = this.selectedCountryData.iso2;
2319
2400
  const pasted = e.clipboardData.getData("text");
2320
2401
  const initialCharSelected = selStart === 0 && selEnd > 0;
2321
2402
  const allowLeadingPlus = !input.value.startsWith("+") || initialCharSelected;
@@ -2323,8 +2404,15 @@ var Iti = class _Iti {
2323
2404
  const hasLeadingPlus = allowedChars.startsWith("+");
2324
2405
  const numerics = allowedChars.replace(/\+/g, "");
2325
2406
  const sanitised = hasLeadingPlus && allowLeadingPlus ? `+${numerics}` : numerics;
2326
- let newVal = input.value.slice(0, selStart) + sanitised + input.value.slice(selEnd);
2327
- const coreNumber = intlTelInput.utils.getCoreNumber(newVal, this.selectedCountryData.iso2);
2407
+ let newVal = before + sanitised + after;
2408
+ let coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);
2409
+ while (coreNumber.length === 0 && newVal.length > 0) {
2410
+ newVal = newVal.slice(0, -1);
2411
+ coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);
2412
+ }
2413
+ if (!coreNumber) {
2414
+ return;
2415
+ }
2328
2416
  if (this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength) {
2329
2417
  if (input.selectionEnd === input.value.length) {
2330
2418
  const trimLength = coreNumber.length - this.maxCoreNumberLength;
@@ -2490,43 +2578,14 @@ var Iti = class _Iti {
2490
2578
  }
2491
2579
  //* Country search enabled: Filter the countries according to the search query.
2492
2580
  _filterCountries(query) {
2493
- let noCountriesAddedYet = true;
2494
2581
  this.countryList.innerHTML = "";
2495
- const normalisedQuery = normaliseString(query);
2496
2582
  let matchedCountries;
2497
2583
  if (query === "") {
2498
2584
  matchedCountries = this.countries;
2499
2585
  } else {
2500
- const iso2Matches = [];
2501
- const nameStartWith = [];
2502
- const nameContains = [];
2503
- const dialCodeMatches = [];
2504
- const dialCodeContains = [];
2505
- const initialsMatches = [];
2506
- for (const c of this.countries) {
2507
- if (c.iso2 === normalisedQuery) {
2508
- iso2Matches.push(c);
2509
- } else if (c.normalisedName.startsWith(normalisedQuery)) {
2510
- nameStartWith.push(c);
2511
- } else if (c.normalisedName.includes(normalisedQuery)) {
2512
- nameContains.push(c);
2513
- } else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {
2514
- dialCodeMatches.push(c);
2515
- } else if (c.dialCodePlus.includes(normalisedQuery)) {
2516
- dialCodeContains.push(c);
2517
- } else if (c.initials.includes(normalisedQuery)) {
2518
- initialsMatches.push(c);
2519
- }
2520
- }
2521
- matchedCountries = [
2522
- ...iso2Matches.sort((a, b) => a.priority - b.priority),
2523
- ...nameStartWith.sort((a, b) => a.priority - b.priority),
2524
- ...nameContains.sort((a, b) => a.priority - b.priority),
2525
- ...dialCodeMatches.sort((a, b) => a.priority - b.priority),
2526
- ...dialCodeContains.sort((a, b) => a.priority - b.priority),
2527
- ...initialsMatches.sort((a, b) => a.priority - b.priority)
2528
- ];
2586
+ matchedCountries = this._getMatchedCountries(query);
2529
2587
  }
2588
+ let noCountriesAddedYet = true;
2530
2589
  for (const c of matchedCountries) {
2531
2590
  const listItem = c.nodeById[this.id];
2532
2591
  if (listItem) {
@@ -2548,6 +2607,38 @@ var Iti = class _Iti {
2548
2607
  this.countryList.scrollTop = 0;
2549
2608
  this._updateSearchResultsA11yText();
2550
2609
  }
2610
+ _getMatchedCountries(query) {
2611
+ const normalisedQuery = normaliseString(query);
2612
+ const iso2Matches = [];
2613
+ const nameStartWith = [];
2614
+ const nameContains = [];
2615
+ const dialCodeMatches = [];
2616
+ const dialCodeContains = [];
2617
+ const initialsMatches = [];
2618
+ for (const c of this.countries) {
2619
+ if (c.iso2 === normalisedQuery) {
2620
+ iso2Matches.push(c);
2621
+ } else if (c.normalisedName.startsWith(normalisedQuery)) {
2622
+ nameStartWith.push(c);
2623
+ } else if (c.normalisedName.includes(normalisedQuery)) {
2624
+ nameContains.push(c);
2625
+ } else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {
2626
+ dialCodeMatches.push(c);
2627
+ } else if (c.dialCodePlus.includes(normalisedQuery)) {
2628
+ dialCodeContains.push(c);
2629
+ } else if (c.initials.includes(normalisedQuery)) {
2630
+ initialsMatches.push(c);
2631
+ }
2632
+ }
2633
+ return [
2634
+ ...iso2Matches.sort((a, b) => a.priority - b.priority),
2635
+ ...nameStartWith.sort((a, b) => a.priority - b.priority),
2636
+ ...nameContains.sort((a, b) => a.priority - b.priority),
2637
+ ...dialCodeMatches.sort((a, b) => a.priority - b.priority),
2638
+ ...dialCodeContains.sort((a, b) => a.priority - b.priority),
2639
+ ...initialsMatches.sort((a, b) => a.priority - b.priority)
2640
+ ];
2641
+ }
2551
2642
  //* Update search results text (for a11y).
2552
2643
  _updateSearchResultsA11yText() {
2553
2644
  const { i18n } = this.options;
@@ -2675,24 +2766,12 @@ var Iti = class _Iti {
2675
2766
  this.highlightedItem.focus();
2676
2767
  }
2677
2768
  }
2678
- //* Find the country data for the given iso2 code
2679
- //* the allowFail option is only used during init() for the initialCountry option, and for the iso2 returned from geoIpLookup - in these 2 cases we don't want to error out
2680
- _getCountryData(iso2, allowFail) {
2681
- const country = this.countryByIso2.get(iso2);
2682
- if (country) {
2683
- return country;
2684
- }
2685
- if (allowFail) {
2686
- return null;
2687
- }
2688
- throw new Error(`No country data for '${iso2}'`);
2689
- }
2690
2769
  //* Update the selected country, dial code (if separateDialCode), placeholder, title, and active list item.
2691
2770
  //* Note: called from _setInitialState, _updateCountryFromNumber, _selectListItem, setCountry.
2692
2771
  _setCountry(iso2) {
2693
2772
  const { separateDialCode, showFlags, i18n } = this.options;
2694
2773
  const prevIso2 = this.selectedCountryData.iso2 || "";
2695
- this.selectedCountryData = iso2 ? this._getCountryData(iso2, false) || {} : {};
2774
+ this.selectedCountryData = iso2 ? this.countryByIso2.get(iso2) : {};
2696
2775
  if (this.selectedCountryData.iso2) {
2697
2776
  this.defaultCountry = this.selectedCountryData.iso2;
2698
2777
  }
@@ -2797,9 +2876,11 @@ var Iti = class _Iti {
2797
2876
  }
2798
2877
  //* Called when the user selects a list item from the dropdown.
2799
2878
  _selectListItem(listItem) {
2800
- const countryChanged = this._setCountry(listItem.getAttribute("data-country-code"));
2879
+ const iso2 = listItem.getAttribute("data-country-code");
2880
+ const countryChanged = this._setCountry(iso2);
2801
2881
  this._closeDropdown();
2802
- this._updateDialCode(listItem.getAttribute("data-dial-code"));
2882
+ const dialCode = listItem.getAttribute("data-dial-code");
2883
+ this._updateDialCode(dialCode);
2803
2884
  if (this.options.formatOnDisplay) {
2804
2885
  this._updateValFromNumber(this.telInput.value);
2805
2886
  }
@@ -2881,7 +2962,7 @@ var Iti = class _Iti {
2881
2962
  let numericChars = "";
2882
2963
  for (let i = 0; i < number.length; i++) {
2883
2964
  const c = number.charAt(i);
2884
- if (!isNaN(parseInt(c, 10))) {
2965
+ if (/[0-9]/.test(c)) {
2885
2966
  numericChars += c;
2886
2967
  if (includeAreaCode) {
2887
2968
  if (this.dialCodeToIso2Map[numericChars]) {
@@ -2916,32 +2997,14 @@ var Iti = class _Iti {
2916
2997
  }
2917
2998
  //* Remove the dial code if separateDialCode is enabled also cap the length if the input has a maxlength attribute
2918
2999
  _beforeSetNumber(fullNumber) {
2919
- let number = fullNumber;
2920
- if (this.options.separateDialCode) {
2921
- let dialCode = this._getDialCode(number);
2922
- if (dialCode) {
2923
- dialCode = `+${this.selectedCountryData.dialCode}`;
2924
- const start = number[dialCode.length] === " " || number[dialCode.length] === "-" ? dialCode.length + 1 : dialCode.length;
2925
- number = number.substring(start);
2926
- }
2927
- }
3000
+ const dialCode = this._getDialCode(fullNumber);
3001
+ const number = beforeSetNumber(fullNumber, dialCode, this.options.separateDialCode, this.selectedCountryData);
2928
3002
  return this._cap(number);
2929
3003
  }
2930
3004
  //* Trigger the 'countrychange' event.
2931
3005
  _triggerCountryChange() {
2932
3006
  this._trigger("countrychange");
2933
3007
  }
2934
- //* Format the number as the user types.
2935
- _formatNumberAsYouType() {
2936
- const val = this._getFullNumber();
2937
- const result = intlTelInput.utils ? intlTelInput.utils.formatNumberAsYouType(val, this.selectedCountryData.iso2) : val;
2938
- const { dialCode } = this.selectedCountryData;
2939
- if (this.options.separateDialCode && this.telInput.value.charAt(0) !== "+" && result.includes(`+${dialCode}`)) {
2940
- const afterDialCode = result.split(`+${dialCode}`)[1] || "";
2941
- return afterDialCode.trim();
2942
- }
2943
- return result;
2944
- }
2945
3008
  //**************************
2946
3009
  //* SECRET PUBLIC METHODS
2947
3010
  //**************************
@@ -3078,6 +3141,9 @@ var Iti = class _Iti {
3078
3141
  //* Update the selected country, and update the input val accordingly.
3079
3142
  setCountry(iso2) {
3080
3143
  const iso2Lower = iso2 === null || iso2 === void 0 ? void 0 : iso2.toLowerCase();
3144
+ if (!isIso2(iso2Lower)) {
3145
+ throw new Error(`Invalid country code: '${iso2Lower}'`);
3146
+ }
3081
3147
  const currentCountry = this.selectedCountryData.iso2;
3082
3148
  const isCountryChange = iso2 && iso2Lower !== currentCountry || !iso2 && currentCountry;
3083
3149
  if (isCountryChange) {
@@ -3163,7 +3229,7 @@ var intlTelInput = Object.assign((input, options) => {
3163
3229
  attachUtils,
3164
3230
  startedLoadingUtilsScript: false,
3165
3231
  startedLoadingAutoCountry: false,
3166
- version: "25.10.7"
3232
+ version: "25.10.9"
3167
3233
  });
3168
3234
  var intl_tel_input_default = intlTelInput;
3169
3235
 
@@ -4938,12 +5004,12 @@ var intl_tel_input_default = intlTelInput;
4938
5004
  ,
4939
5005
  ,
4940
5006
  [9]
4941
- ], [, , "(?:60[1-8]\\d|7(?:0(?:[2-5]\\d|60)|19[0-4]|[2379]\\d\\d))\\d{5}", , , , "601123456", , , [9]], [, , "800\\d{6}", , , , "800123456", , , [9]], [, , "9(?:0[05689]|76)\\d{6}", , , , "900123456", , , [9]], [, , "8[134]\\d{7}", , , , "811234567", , , [9]], [, , "70[01]\\d{6}", , , , "700123456", , , [9]], [, , "9[17]0\\d{6}", , , , "910123456", , , [9]], "CZ", 420, "00", , , , , , , , [
4942
- [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]],
4943
- [, "(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]],
4944
- [, "(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]],
4945
- [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]
4946
- ], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], , , [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"]],
5007
+ ], [, , "7(?:060\\d|19(?:[0-4]\\d|50))\\d{4}|(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}", , , , "601123456", , , [9]], [, , "800\\d{6}", , , , "800123456", , , [9]], [, , "9(?:0[05689]|76)\\d{6}", , , , "900123456", , , [9]], [, , "8[134]\\d{7}", , , , "811234567", , , [9]], [, , "70[01]\\d{6}", , , , "700123456", , , [9]], [, , "9[17]0\\d{6}", , , , "910123456", , , [9]], "CZ", 420, "00", , , , , , , , [[, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], [, "(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], [
5008
+ ,
5009
+ "(\\d{2})(\\d{3})(\\d{3})(\\d{3})",
5010
+ "$1 $2 $3 $4",
5011
+ ["9"]
5012
+ ], [, "(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], , , [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"]],
4947
5013
  DE: [, [, , "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", , , , , , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [2, 3]], [
4948
5014
  ,
4949
5015
  ,
@@ -4964,6 +5030,7 @@ var intl_tel_input_default = intlTelInput;
4964
5030
  ["3[02]|40|[68]9"],
4965
5031
  "0$1"
4966
5032
  ],
5033
+ [, "(\\d{6})", "$1", ["227", "2277"]],
4967
5034
  [, "(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"],
4968
5035
  [
4969
5036
  ,
@@ -4987,7 +5054,38 @@ var intl_tel_input_default = intlTelInput;
4987
5054
  [, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"],
4988
5055
  [, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"],
4989
5056
  [, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]
4990
- ], , [, , "16(?:4\\d{1,10}|[89]\\d{1,11})", , , , "16412345", , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], , , [, , , , , , , , , [-1]], [, , "18(?:1\\d{5,11}|[2-9]\\d{8})", , , , "18500123456", , , [8, 9, 10, 11, 12, 13, 14]], , , [
5057
+ ], [
5058
+ [, "(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"],
5059
+ [
5060
+ ,
5061
+ "(\\d{3})(\\d{3,12})",
5062
+ "$1 $2",
5063
+ ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],
5064
+ "0$1"
5065
+ ],
5066
+ [
5067
+ ,
5068
+ "(\\d{4})(\\d{2,11})",
5069
+ "$1 $2",
5070
+ ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],
5071
+ "0$1"
5072
+ ],
5073
+ [, "(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"],
5074
+ [, "(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"],
5075
+ [, "(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"],
5076
+ [, "(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"],
5077
+ [, "(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"],
5078
+ [, "(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"],
5079
+ [, "(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"],
5080
+ [, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
5081
+ [, "(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"],
5082
+ [, "(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"],
5083
+ [, "(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|3[13])"], "0$1"],
5084
+ [, "(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"],
5085
+ [, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"],
5086
+ [, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"],
5087
+ [, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]
5088
+ ], [, , "16(?:4\\d{1,10}|[89]\\d{1,11})", , , , "16412345", , , [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]], , , [, , , , , , , , , [-1]], [, , "18(?:1\\d{5,11}|[2-9]\\d{8})", , , , "18500123456", , , [8, 9, 10, 11, 12, 13, 14]], , , [
4991
5089
  ,
4992
5090
  ,
4993
5091
  "1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}",
@@ -6085,17 +6183,14 @@ var intl_tel_input_default = intlTelInput;
6085
6183
  ,
6086
6184
  [7]
6087
6185
  ], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , "49[0-24-79]\\d{4}", , , , "4921234", , , [7]], "IS", 354, "00|1(?:0(?:01|[12]0)|100)", , , , , , "00", , [[, "(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "809\\d{4}", , , , "8091234", , , [7]], , , [, , "(?:689|8(?:7[18]|80)|95[48])\\d{4}", , , , "6891234", , , [7]]],
6088
- IT: [, [, , "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", , , , , , , [6, 7, 8, 9, 10, 11, 12]], [
6089
- ,
6090
- ,
6091
- "0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}",
6186
+ IT: [, [, , "0\\d{5,11}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", , , , , , , [6, 7, 8, 9, 10, 11, 12]], [
6092
6187
  ,
6093
6188
  ,
6189
+ "0(?:669[0-79]\\d{1,6}|831\\d{2,8})|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}",
6094
6190
  ,
6095
- "0212345678",
6096
6191
  ,
6097
6192
  ,
6098
- [6, 7, 8, 9, 10, 11]
6193
+ "0212345678"
6099
6194
  ], [, , "3[2-9]\\d{7,8}|(?:31|43)\\d{8}", , , , "3123456789", , , [9, 10]], [, , "80(?:0\\d{3}|3)\\d{3}", , , , "800123456", , , [6, 9]], [, , "(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", , , , "899123456", , , [6, 8, 9, 10]], [, , "84(?:[08]\\d{3}|[17])\\d{3}", , , , "848123456", , , [6, 9]], [, , "1(?:78\\d|99)\\d{6}", , , , "1781234567", , , [9, 10]], [, , "55\\d{8}", , , , "5512345678", , , [10]], "IT", 39, "00", , , , , , , , [
6100
6195
  [, "(\\d{4,5})", "$1", ["1(?:0|9[246])", "1(?:0|9(?:2[2-9]|[46]))"]],
6101
6196
  [, "(\\d{6})", "$1", ["1(?:1|92)"]],
@@ -6108,13 +6203,13 @@ var intl_tel_input_default = intlTelInput;
6108
6203
  [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]],
6109
6204
  [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]],
6110
6205
  [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]],
6111
- [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]
6206
+ [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[03]"]]
6112
6207
  ], [[, "(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], [, "(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], [, "(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], [, "(\\d{4})(\\d{4})", "$1 $2", ["894"]], [, "(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], [
6113
6208
  ,
6114
6209
  "(\\d{3})(\\d{3})(\\d{3,4})",
6115
6210
  "$1 $2 $3",
6116
6211
  ["1(?:44|[679])|[378]|43"]
6117
- ], [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], [, , , , , , , , , [-1]], 1, , [, , "848\\d{6}", , , , , , , [9]], [, , , , , , , , , [-1]], , , [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]]],
6212
+ ], [, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], [, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], [, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], [, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[03]"]]], [, , , , , , , , , [-1]], 1, , [, , "848\\d{6}", , , , , , , [9]], [, , , , , , , , , [-1]], , , [, , "3[2-8]\\d{9,10}", , , , "33101234501", , , [11, 12]]],
6118
6213
  JE: [, [, , "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], [, , "1534[0-24-8]\\d{5}", , , , "1534456789", , , , [6]], [
6119
6214
  ,
6120
6215
  ,
@@ -6497,7 +6592,7 @@ var intl_tel_input_default = intlTelInput;
6497
6592
  ,
6498
6593
  "5002345678"
6499
6594
  ], [, , , , , , , , , [-1]], "LC", 1, "011", "1", , , "([2-8]\\d{6})$|1", "758$1", , , , , [, , , , , , , , , [-1]], , "758", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]],
6500
- LI: [, [, , "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", , , , , , , [7, 9]], [, , "(?:2(?:01|1[27]|2[024]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", , , , "2345678", , , [7]], [, , "(?:6(?:(?:4[5-9]|5[0-46-9])\\d|6(?:[024-6]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}", , , , "660234567"], [, , "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}", , , , "8002222"], [
6595
+ LI: [, [, , "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", , , , , , , [7, 9]], [, , "(?:2(?:01|1[27]|2[024]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}", , , , "2345678", , , [7]], [, , "(?:6(?:(?:4[5-9]|5\\d)\\d|6(?:[024-6]\\d|[17]0|3[7-9]))\\d|7(?:[37-9]\\d|42|56))\\d{4}", , , , "660234567"], [, , "8002[28]\\d\\d|80(?:05\\d|9)\\d{4}", , , , "8002222"], [
6501
6596
  ,
6502
6597
  ,
6503
6598
  "90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d",
@@ -6606,7 +6701,7 @@ var intl_tel_input_default = intlTelInput;
6606
6701
  ,
6607
6702
  "$CC $1"
6608
6703
  ], [, "(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"], , "$CC $1"], [, "(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"], , "$CC $1"], [, "(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"], , "$CC $1"], [, "(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"], , "$CC $1"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]],
6609
- LV: [, [, , "(?:[268]\\d|90)\\d{6}", , , , , , , [8]], [
6704
+ LV: [, [, , "(?:[268]\\d|78|90)\\d{6}", , , , , , , [8]], [
6610
6705
  ,
6611
6706
  ,
6612
6707
  "6\\d{7}",
@@ -6614,7 +6709,7 @@ var intl_tel_input_default = intlTelInput;
6614
6709
  ,
6615
6710
  ,
6616
6711
  "63123456"
6617
- ], [, , "2333[0-8]\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[02-9]|3[0-24-9]))\\d{4}", , , , "21234567"], [, , "80\\d{6}", , , , "80123456"], [, , "90\\d{6}", , , , "90123456"], [, , "81\\d{6}", , , , "81123456"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], "LV", 371, "00", , , , , , , , [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]],
6712
+ ], [, , "2333[0-8]\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[02-9]|3[0-24-9]))\\d{4}", , , , "21234567"], [, , "80\\d{6}", , , , "80123456"], [, , "90\\d{6}", , , , "90123456"], [, , "81\\d{6}", , , , "81123456"], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], "LV", 371, "00", , , , , , , , [[, "(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2679]|8[01]"]]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]],
6618
6713
  LY: [, [, , "[2-9]\\d{8}", , , , , , , [9], [7]], [
6619
6714
  ,
6620
6715
  ,
@@ -6676,7 +6771,7 @@ var intl_tel_input_default = intlTelInput;
6676
6771
  ,
6677
6772
  [8],
6678
6773
  [6]
6679
- ], [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "67622901", , , [8]], [, , "80(?:[0-2578]|9\\d)\\d{5}", , , , "80080002"], [, , "9(?:4[1568]|5[178])\\d{5}", , , , "94515151", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , "78[1-49]\\d{5}", , , , "78108780", , , [8]], "ME", 382, "00", "0", , , "0", , , , [[, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "77[1-9]\\d{5}", , , , "77273012", , , [8]], , , [, , , , , , , , , [-1]]],
6774
+ ], [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "60123456", , , [8]], [, , "80(?:[0-2578]|9\\d)\\d{5}", , , , "80080002"], [, , "9(?:4[1568]|5[178])\\d{5}", , , , "94515151", , , [8]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , "78[1-49]\\d{5}", , , , "78108780", , , [8]], "ME", 382, "00", "0", , , "0", , , , [[, "(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "77[1-9]\\d{5}", , , , "77273012", , , [8]], , , [, , , , , , , , , [-1]]],
6680
6775
  MF: [
6681
6776
  ,
6682
6777
  [, , "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", , , , , , , [9]],
@@ -7764,7 +7859,7 @@ var intl_tel_input_default = intlTelInput;
7764
7859
  ,
7765
7860
  ,
7766
7861
  [8]
7767
- ], [, , "8980\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-7])|9[0-8]\\d)\\d{5}", , , , "81234567", , , [8]], [, , "(?:18|8)00\\d{7}", , , , "18001234567", , , [10, 11]], [, , "1900\\d{7}", , , , "19001234567", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , "(?:3[12]\\d|666)\\d{5}", , , , "31234567", , , [8]], "SG", 65, "0[0-3]\\d", , , , , , , , [[, "(\\d{4,5})", "$1", ["1[013-9]|77", "1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]], [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], [
7862
+ ], [, , "898[02-8]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-7])|9[0-8]\\d)\\d{5}", , , , "81234567", , , [8]], [, , "(?:18|8)00\\d{7}", , , , "18001234567", , , [10, 11]], [, , "1900\\d{7}", , , , "19001234567", , , [11]], [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], [, , "(?:3[12]\\d|666)\\d{5}", , , , "31234567", , , [8]], "SG", 65, "0[0-3]\\d", , , , , , , , [[, "(\\d{4,5})", "$1", ["1[013-9]|77", "1(?:[013-8]|9(?:0[1-9]|[1-9]))|77"]], [, "(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], [, "(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], [
7768
7863
  ,
7769
7864
  "(\\d{4})(\\d{4})(\\d{3})",
7770
7865
  "$1 $2 $3",
@@ -8342,7 +8437,7 @@ var intl_tel_input_default = intlTelInput;
8342
8437
  ], [
8343
8438
  ,
8344
8439
  ,
8345
- "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}",
8440
+ "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}",
8346
8441
  ,
8347
8442
  ,
8348
8443
  ,
@@ -8354,7 +8449,7 @@ var intl_tel_input_default = intlTelInput;
8354
8449
  ], [
8355
8450
  ,
8356
8451
  ,
8357
- "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}",
8452
+ "(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[0-68]))\\d{4}|(?:2742|305[3-9]|(?:472|983)[2-47-9]|505[2-57-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}",
8358
8453
  ,
8359
8454
  ,
8360
8455
  ,
@@ -9826,7 +9921,7 @@ IntlTelInputComponent.\u0275cmp = /* @__PURE__ */ i0.\u0275\u0275defineComponent
9826
9921
  }] });
9827
9922
  })();
9828
9923
  (() => {
9829
- (typeof ngDevMode === "undefined" || ngDevMode) && i0.\u0275setClassDebugInfo(IntlTelInputComponent, { className: "IntlTelInputComponent", filePath: "intl-tel-input/angularwithutils.ts", lineNumber: 42 });
9924
+ (typeof ngDevMode === "undefined" || ngDevMode) && i0.\u0275setClassDebugInfo(IntlTelInputComponent, { className: "IntlTelInputComponent", filePath: "intl-tel-input/angularwithutils.ts", lineNumber: 43 });
9830
9925
  })();
9831
9926
  export {
9832
9927
  IntlTelInputComponent,