intl-tel-input 25.10.6 → 25.10.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.
- package/README.md +5 -5
- package/angular/README.md +1 -1
- package/angular/build/IntlTelInput.js +415 -316
- package/angular/build/IntlTelInputWithUtils.js +466 -338
- package/angular/build/types/intl-tel-input/angular.d.ts +2 -1
- package/angular/build/types/intl-tel-input/angularWithUtils.d.ts +2 -1
- package/angular/build/types/intl-tel-input/data.d.ts +3 -1
- package/angular/build/types/intl-tel-input/i18n/types.d.ts +2 -245
- package/angular/build/types/intl-tel-input.d.ts +17 -87
- package/angular/build/types/modules/core/options.d.ts +3 -0
- package/angular/build/types/modules/data/country-data.d.ts +12 -0
- package/angular/build/types/modules/data/nanp-regionless.d.ts +2 -0
- package/angular/build/types/modules/format/caret.d.ts +1 -0
- package/angular/build/types/modules/format/formatting.d.ts +3 -0
- package/angular/build/types/modules/types/public-api.d.ts +79 -0
- package/angular/build/types/modules/utils/dom.d.ts +1 -0
- package/angular/build/types/modules/utils/string.d.ts +2 -0
- package/build/js/data.js +3 -2
- package/build/js/data.min.js +2 -2
- package/build/js/intlTelInput.d.ts +100 -292
- package/build/js/intlTelInput.js +461 -357
- package/build/js/intlTelInput.min.js +13 -13
- package/build/js/intlTelInputWithUtils.js +512 -379
- package/build/js/intlTelInputWithUtils.min.js +13 -13
- package/build/js/utils.js +18 -15
- package/package.json +1 -1
- package/react/README.md +1 -1
- package/react/build/IntlTelInput.cjs +460 -356
- package/react/build/IntlTelInput.d.ts +104 -294
- package/react/build/IntlTelInput.js +460 -356
- package/react/build/IntlTelInputWithUtils.cjs +511 -378
- package/react/build/IntlTelInputWithUtils.js +511 -378
- package/vue/README.md +1 -1
- package/vue/build/IntlTelInput.mjs +506 -452
- package/vue/build/IntlTelInputWithUtils.mjs +1096 -1013
|
@@ -1642,11 +1642,7 @@ var interface_default = interfaceTranslations;
|
|
|
1642
1642
|
var allTranslations = { ...countries_default, ...interface_default };
|
|
1643
1643
|
var en_default = allTranslations;
|
|
1644
1644
|
|
|
1645
|
-
// src/js/
|
|
1646
|
-
for (const c of data_default) {
|
|
1647
|
-
c.name = en_default[c.iso2];
|
|
1648
|
-
}
|
|
1649
|
-
var id = 0;
|
|
1645
|
+
// src/js/modules/core/options.ts
|
|
1650
1646
|
var mq = (q) => {
|
|
1651
1647
|
return typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(q).matches;
|
|
1652
1648
|
};
|
|
@@ -1712,6 +1708,181 @@ var defaults = {
|
|
|
1712
1708
|
//* The number type to enforce during validation.
|
|
1713
1709
|
validationNumberTypes: ["MOBILE"]
|
|
1714
1710
|
};
|
|
1711
|
+
function applyOptionSideEffects(o) {
|
|
1712
|
+
if (o.useFullscreenPopup) {
|
|
1713
|
+
o.fixDropdownWidth = false;
|
|
1714
|
+
}
|
|
1715
|
+
if (o.onlyCountries.length === 1) {
|
|
1716
|
+
o.initialCountry = o.onlyCountries[0];
|
|
1717
|
+
}
|
|
1718
|
+
if (o.separateDialCode) {
|
|
1719
|
+
o.nationalMode = false;
|
|
1720
|
+
}
|
|
1721
|
+
if (o.allowDropdown && !o.showFlags && !o.separateDialCode) {
|
|
1722
|
+
o.nationalMode = false;
|
|
1723
|
+
}
|
|
1724
|
+
if (o.useFullscreenPopup && !o.dropdownContainer) {
|
|
1725
|
+
o.dropdownContainer = document.body;
|
|
1726
|
+
}
|
|
1727
|
+
o.i18n = { ...en_default, ...o.i18n };
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
// src/js/modules/utils/string.ts
|
|
1731
|
+
var getNumeric = (s) => s.replace(/\D/g, "");
|
|
1732
|
+
var normaliseString = (s = "") => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
1733
|
+
|
|
1734
|
+
// src/js/modules/utils/dom.ts
|
|
1735
|
+
var createEl = (tagName, attrs, container) => {
|
|
1736
|
+
const el = document.createElement(tagName);
|
|
1737
|
+
if (attrs) {
|
|
1738
|
+
Object.entries(attrs).forEach(([key, value]) => el.setAttribute(key, value));
|
|
1739
|
+
}
|
|
1740
|
+
if (container) {
|
|
1741
|
+
container.appendChild(el);
|
|
1742
|
+
}
|
|
1743
|
+
return el;
|
|
1744
|
+
};
|
|
1745
|
+
|
|
1746
|
+
// src/js/modules/data/country-data.ts
|
|
1747
|
+
function processAllCountries(options) {
|
|
1748
|
+
const { onlyCountries, excludeCountries } = options;
|
|
1749
|
+
if (onlyCountries.length) {
|
|
1750
|
+
const lowerCaseOnlyCountries = onlyCountries.map((country) => country.toLowerCase());
|
|
1751
|
+
return data_default.filter((country) => lowerCaseOnlyCountries.includes(country.iso2));
|
|
1752
|
+
} else if (excludeCountries.length) {
|
|
1753
|
+
const lowerCaseExcludeCountries = excludeCountries.map((country) => country.toLowerCase());
|
|
1754
|
+
return data_default.filter((country) => !lowerCaseExcludeCountries.includes(country.iso2));
|
|
1755
|
+
}
|
|
1756
|
+
return data_default;
|
|
1757
|
+
}
|
|
1758
|
+
function translateCountryNames(countries, options) {
|
|
1759
|
+
for (const c of countries) {
|
|
1760
|
+
const iso2 = c.iso2.toLowerCase();
|
|
1761
|
+
if (options.i18n[iso2]) {
|
|
1762
|
+
c.name = options.i18n[iso2];
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
function processDialCodes(countries, options) {
|
|
1767
|
+
const dialCodes = /* @__PURE__ */ new Set();
|
|
1768
|
+
let dialCodeMaxLen = 0;
|
|
1769
|
+
const dialCodeToIso2Map = {};
|
|
1770
|
+
const _addToDialCodeMap = (iso2, dialCode, priority) => {
|
|
1771
|
+
if (!iso2 || !dialCode) {
|
|
1772
|
+
return;
|
|
1773
|
+
}
|
|
1774
|
+
if (dialCode.length > dialCodeMaxLen) {
|
|
1775
|
+
dialCodeMaxLen = dialCode.length;
|
|
1776
|
+
}
|
|
1777
|
+
if (!dialCodeToIso2Map.hasOwnProperty(dialCode)) {
|
|
1778
|
+
dialCodeToIso2Map[dialCode] = [];
|
|
1779
|
+
}
|
|
1780
|
+
const iso2List = dialCodeToIso2Map[dialCode];
|
|
1781
|
+
if (iso2List.includes(iso2)) {
|
|
1782
|
+
return;
|
|
1783
|
+
}
|
|
1784
|
+
const index = priority !== void 0 ? priority : iso2List.length;
|
|
1785
|
+
iso2List[index] = iso2;
|
|
1786
|
+
};
|
|
1787
|
+
for (const c of countries) {
|
|
1788
|
+
if (!dialCodes.has(c.dialCode)) {
|
|
1789
|
+
dialCodes.add(c.dialCode);
|
|
1790
|
+
}
|
|
1791
|
+
_addToDialCodeMap(c.iso2, c.dialCode, c.priority);
|
|
1792
|
+
}
|
|
1793
|
+
if (options.onlyCountries.length || options.excludeCountries.length) {
|
|
1794
|
+
dialCodes.forEach((dialCode) => {
|
|
1795
|
+
dialCodeToIso2Map[dialCode] = dialCodeToIso2Map[dialCode].filter(Boolean);
|
|
1796
|
+
});
|
|
1797
|
+
}
|
|
1798
|
+
for (const c of countries) {
|
|
1799
|
+
if (c.areaCodes) {
|
|
1800
|
+
const rootIso2Code = dialCodeToIso2Map[c.dialCode][0];
|
|
1801
|
+
for (const areaCode of c.areaCodes) {
|
|
1802
|
+
for (let k = 1; k < areaCode.length; k++) {
|
|
1803
|
+
const partialAreaCode = areaCode.substring(0, k);
|
|
1804
|
+
const partialDialCode = c.dialCode + partialAreaCode;
|
|
1805
|
+
_addToDialCodeMap(rootIso2Code, partialDialCode);
|
|
1806
|
+
_addToDialCodeMap(c.iso2, partialDialCode);
|
|
1807
|
+
}
|
|
1808
|
+
_addToDialCodeMap(c.iso2, c.dialCode + areaCode);
|
|
1809
|
+
}
|
|
1810
|
+
}
|
|
1811
|
+
}
|
|
1812
|
+
return { dialCodes, dialCodeMaxLen, dialCodeToIso2Map };
|
|
1813
|
+
}
|
|
1814
|
+
function sortCountries(countries, options) {
|
|
1815
|
+
if (options.countryOrder) {
|
|
1816
|
+
options.countryOrder = options.countryOrder.map((iso2) => iso2.toLowerCase());
|
|
1817
|
+
}
|
|
1818
|
+
countries.sort((a, b) => {
|
|
1819
|
+
const { countryOrder } = options;
|
|
1820
|
+
if (countryOrder) {
|
|
1821
|
+
const aIndex = countryOrder.indexOf(a.iso2);
|
|
1822
|
+
const bIndex = countryOrder.indexOf(b.iso2);
|
|
1823
|
+
const aIndexExists = aIndex > -1;
|
|
1824
|
+
const bIndexExists = bIndex > -1;
|
|
1825
|
+
if (aIndexExists || bIndexExists) {
|
|
1826
|
+
if (aIndexExists && bIndexExists) {
|
|
1827
|
+
return aIndex - bIndex;
|
|
1828
|
+
}
|
|
1829
|
+
return aIndexExists ? -1 : 1;
|
|
1830
|
+
}
|
|
1831
|
+
}
|
|
1832
|
+
return a.name.localeCompare(b.name);
|
|
1833
|
+
});
|
|
1834
|
+
}
|
|
1835
|
+
function cacheSearchTokens(countries) {
|
|
1836
|
+
for (const c of countries) {
|
|
1837
|
+
c.normalisedName = normaliseString(c.name);
|
|
1838
|
+
c.initials = c.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map((word) => word[0]).join("").toLowerCase();
|
|
1839
|
+
c.dialCodePlus = `+${c.dialCode}`;
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1842
|
+
|
|
1843
|
+
// src/js/modules/format/formatting.ts
|
|
1844
|
+
function beforeSetNumber(fullNumber, dialCode, separateDialCode, selectedCountryData) {
|
|
1845
|
+
let number = fullNumber;
|
|
1846
|
+
if (separateDialCode) {
|
|
1847
|
+
if (dialCode) {
|
|
1848
|
+
dialCode = `+${selectedCountryData.dialCode}`;
|
|
1849
|
+
const start = number[dialCode.length] === " " || number[dialCode.length] === "-" ? dialCode.length + 1 : dialCode.length;
|
|
1850
|
+
number = number.substring(start);
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
return number;
|
|
1854
|
+
}
|
|
1855
|
+
function formatNumberAsYouType(fullNumber, telInputValue, utils2, selectedCountryData, separateDialCode) {
|
|
1856
|
+
const result = utils2 ? utils2.formatNumberAsYouType(fullNumber, selectedCountryData.iso2) : fullNumber;
|
|
1857
|
+
const { dialCode } = selectedCountryData;
|
|
1858
|
+
if (separateDialCode && telInputValue.charAt(0) !== "+" && result.includes(`+${dialCode}`)) {
|
|
1859
|
+
const afterDialCode = result.split(`+${dialCode}`)[1] || "";
|
|
1860
|
+
return afterDialCode.trim();
|
|
1861
|
+
}
|
|
1862
|
+
return result;
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1865
|
+
// src/js/modules/format/caret.ts
|
|
1866
|
+
function translateCursorPosition(relevantChars, formattedValue, prevCaretPos, isDeleteForwards) {
|
|
1867
|
+
if (prevCaretPos === 0 && !isDeleteForwards) {
|
|
1868
|
+
return 0;
|
|
1869
|
+
}
|
|
1870
|
+
let relevantCharCount = 0;
|
|
1871
|
+
for (let i = 0; i < formattedValue.length; i++) {
|
|
1872
|
+
if (/[+0-9]/.test(formattedValue[i])) {
|
|
1873
|
+
relevantCharCount++;
|
|
1874
|
+
}
|
|
1875
|
+
if (relevantCharCount === relevantChars && !isDeleteForwards) {
|
|
1876
|
+
return i + 1;
|
|
1877
|
+
}
|
|
1878
|
+
if (isDeleteForwards && relevantCharCount === relevantChars + 1) {
|
|
1879
|
+
return i;
|
|
1880
|
+
}
|
|
1881
|
+
}
|
|
1882
|
+
return formattedValue.length;
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
// src/js/modules/data/nanp-regionless.ts
|
|
1715
1886
|
var regionlessNanpNumbers = [
|
|
1716
1887
|
"800",
|
|
1717
1888
|
"822",
|
|
@@ -1731,8 +1902,6 @@ var regionlessNanpNumbers = [
|
|
|
1731
1902
|
"888",
|
|
1732
1903
|
"889"
|
|
1733
1904
|
];
|
|
1734
|
-
var getNumeric = (s) => s.replace(/\D/g, "");
|
|
1735
|
-
var normaliseString = (s = "") => s.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
1736
1905
|
var isRegionlessNanp = (number) => {
|
|
1737
1906
|
const numeric = getNumeric(number);
|
|
1738
1907
|
if (numeric.charAt(0) === "1") {
|
|
@@ -1741,34 +1910,14 @@ var isRegionlessNanp = (number) => {
|
|
|
1741
1910
|
}
|
|
1742
1911
|
return false;
|
|
1743
1912
|
};
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
}
|
|
1753
|
-
if (count === relevantChars && !isDeleteForwards) {
|
|
1754
|
-
return i + 1;
|
|
1755
|
-
}
|
|
1756
|
-
if (isDeleteForwards && count === relevantChars + 1) {
|
|
1757
|
-
return i;
|
|
1758
|
-
}
|
|
1759
|
-
}
|
|
1760
|
-
return formattedValue.length;
|
|
1761
|
-
};
|
|
1762
|
-
var createEl = (tagName, attrs, container) => {
|
|
1763
|
-
const el = document.createElement(tagName);
|
|
1764
|
-
if (attrs) {
|
|
1765
|
-
Object.entries(attrs).forEach(([key, value]) => el.setAttribute(key, value));
|
|
1766
|
-
}
|
|
1767
|
-
if (container) {
|
|
1768
|
-
container.appendChild(el);
|
|
1769
|
-
}
|
|
1770
|
-
return el;
|
|
1771
|
-
};
|
|
1913
|
+
|
|
1914
|
+
// src/js/intl-tel-input.ts
|
|
1915
|
+
for (const c of data_default) {
|
|
1916
|
+
c.name = en_default[c.iso2];
|
|
1917
|
+
}
|
|
1918
|
+
var id = 0;
|
|
1919
|
+
var iso2Set = new Set(data_default.map((c) => c.iso2));
|
|
1920
|
+
var isIso2 = (val) => iso2Set.has(val);
|
|
1772
1921
|
var forEachInstance = (method, ...args) => {
|
|
1773
1922
|
const { instances } = intlTelInput;
|
|
1774
1923
|
Object.values(instances).forEach((instance) => instance[method](...args));
|
|
@@ -1788,23 +1937,7 @@ var Iti = class _Iti {
|
|
|
1788
1937
|
this.options = Object.assign({}, defaults, customOptions);
|
|
1789
1938
|
this.hadInitialPlaceholder = Boolean(input.getAttribute("placeholder"));
|
|
1790
1939
|
}
|
|
1791
|
-
|
|
1792
|
-
_init() {
|
|
1793
|
-
if (this.options.useFullscreenPopup) {
|
|
1794
|
-
this.options.fixDropdownWidth = false;
|
|
1795
|
-
}
|
|
1796
|
-
if (this.options.onlyCountries.length === 1) {
|
|
1797
|
-
this.options.initialCountry = this.options.onlyCountries[0];
|
|
1798
|
-
}
|
|
1799
|
-
if (this.options.separateDialCode) {
|
|
1800
|
-
this.options.nationalMode = false;
|
|
1801
|
-
}
|
|
1802
|
-
if (this.options.allowDropdown && !this.options.showFlags && !this.options.separateDialCode) {
|
|
1803
|
-
this.options.nationalMode = false;
|
|
1804
|
-
}
|
|
1805
|
-
if (this.options.useFullscreenPopup && !this.options.dropdownContainer) {
|
|
1806
|
-
this.options.dropdownContainer = document.body;
|
|
1807
|
-
}
|
|
1940
|
+
_detectEnvironmentAndLayout() {
|
|
1808
1941
|
this.isAndroid = typeof navigator !== "undefined" ? /Android/i.test(navigator.userAgent) : false;
|
|
1809
1942
|
this.isRTL = !!this.telInput.closest("[dir=rtl]");
|
|
1810
1943
|
this.telInput.dir = "ltr";
|
|
@@ -1817,7 +1950,8 @@ var Iti = class _Iti {
|
|
|
1817
1950
|
this.originalPaddingLeft = this.telInput.style.paddingLeft;
|
|
1818
1951
|
}
|
|
1819
1952
|
}
|
|
1820
|
-
|
|
1953
|
+
}
|
|
1954
|
+
_createInitPromises() {
|
|
1821
1955
|
const autoCountryPromise = new Promise((resolve, reject) => {
|
|
1822
1956
|
this.resolveAutoCountryPromise = resolve;
|
|
1823
1957
|
this.rejectAutoCountryPromise = reject;
|
|
@@ -1827,6 +1961,12 @@ var Iti = class _Iti {
|
|
|
1827
1961
|
this.rejectUtilsScriptPromise = reject;
|
|
1828
1962
|
});
|
|
1829
1963
|
this.promise = Promise.all([autoCountryPromise, utilsScriptPromise]);
|
|
1964
|
+
}
|
|
1965
|
+
//* Can't be private as it's called from intlTelInput convenience wrapper.
|
|
1966
|
+
_init() {
|
|
1967
|
+
applyOptionSideEffects(this.options);
|
|
1968
|
+
this._detectEnvironmentAndLayout();
|
|
1969
|
+
this._createInitPromises();
|
|
1830
1970
|
this.selectedCountryData = {};
|
|
1831
1971
|
this._processCountryData();
|
|
1832
1972
|
this._generateMarkup();
|
|
@@ -1839,139 +1979,37 @@ var Iti = class _Iti {
|
|
|
1839
1979
|
//********************
|
|
1840
1980
|
//* Prepare all of the country data, including onlyCountries, excludeCountries, countryOrder options.
|
|
1841
1981
|
_processCountryData() {
|
|
1842
|
-
this.
|
|
1843
|
-
this.
|
|
1844
|
-
this.
|
|
1845
|
-
this.
|
|
1982
|
+
this.countries = processAllCountries(this.options);
|
|
1983
|
+
const dialRes = processDialCodes(this.countries, this.options);
|
|
1984
|
+
this.dialCodes = dialRes.dialCodes;
|
|
1985
|
+
this.dialCodeMaxLen = dialRes.dialCodeMaxLen;
|
|
1986
|
+
this.dialCodeToIso2Map = dialRes.dialCodeToIso2Map;
|
|
1987
|
+
translateCountryNames(this.countries, this.options);
|
|
1988
|
+
sortCountries(this.countries, this.options);
|
|
1846
1989
|
this.countryByIso2 = new Map(this.countries.map((c) => [c.iso2, c]));
|
|
1847
|
-
this.
|
|
1848
|
-
}
|
|
1849
|
-
//* Precompute and cache country search tokens to speed up filtering
|
|
1850
|
-
_cacheSearchTokens() {
|
|
1851
|
-
for (const c of this.countries) {
|
|
1852
|
-
c.normalisedName = normaliseString(c.name);
|
|
1853
|
-
c.initials = c.name.split(/[^a-zA-ZÀ-ÿа-яА-Я]/).map((word) => word[0]).join("").toLowerCase();
|
|
1854
|
-
c.dialCodePlus = `+${c.dialCode}`;
|
|
1855
|
-
}
|
|
1856
|
-
}
|
|
1857
|
-
//* Sort countries by countryOrder option (if present), then name.
|
|
1858
|
-
_sortCountries() {
|
|
1859
|
-
if (this.options.countryOrder) {
|
|
1860
|
-
this.options.countryOrder = this.options.countryOrder.map((country) => country.toLowerCase());
|
|
1861
|
-
}
|
|
1862
|
-
this.countries.sort((a, b) => {
|
|
1863
|
-
const { countryOrder } = this.options;
|
|
1864
|
-
if (countryOrder) {
|
|
1865
|
-
const aIndex = countryOrder.indexOf(a.iso2);
|
|
1866
|
-
const bIndex = countryOrder.indexOf(b.iso2);
|
|
1867
|
-
const aIndexExists = aIndex > -1;
|
|
1868
|
-
const bIndexExists = bIndex > -1;
|
|
1869
|
-
if (aIndexExists || bIndexExists) {
|
|
1870
|
-
if (aIndexExists && bIndexExists) {
|
|
1871
|
-
return aIndex - bIndex;
|
|
1872
|
-
}
|
|
1873
|
-
return aIndexExists ? -1 : 1;
|
|
1874
|
-
}
|
|
1875
|
-
}
|
|
1876
|
-
return a.name.localeCompare(b.name);
|
|
1877
|
-
});
|
|
1878
|
-
}
|
|
1879
|
-
//* Add a dial code to this.dialCodeToIso2Map.
|
|
1880
|
-
_addToDialCodeMap(iso2, dialCode, priority) {
|
|
1881
|
-
if (!iso2 || !dialCode) {
|
|
1882
|
-
return;
|
|
1883
|
-
}
|
|
1884
|
-
if (dialCode.length > this.dialCodeMaxLen) {
|
|
1885
|
-
this.dialCodeMaxLen = dialCode.length;
|
|
1886
|
-
}
|
|
1887
|
-
if (!this.dialCodeToIso2Map.hasOwnProperty(dialCode)) {
|
|
1888
|
-
this.dialCodeToIso2Map[dialCode] = [];
|
|
1889
|
-
}
|
|
1890
|
-
const iso2List = this.dialCodeToIso2Map[dialCode];
|
|
1891
|
-
if (iso2List.includes(iso2)) {
|
|
1892
|
-
return;
|
|
1893
|
-
}
|
|
1894
|
-
const index = priority !== void 0 ? priority : iso2List.length;
|
|
1895
|
-
iso2List[index] = iso2;
|
|
1896
|
-
}
|
|
1897
|
-
//* Process onlyCountries or excludeCountries array if present.
|
|
1898
|
-
_processAllCountries() {
|
|
1899
|
-
const { onlyCountries, excludeCountries } = this.options;
|
|
1900
|
-
if (onlyCountries.length) {
|
|
1901
|
-
const lowerCaseOnlyCountries = onlyCountries.map(
|
|
1902
|
-
(country) => country.toLowerCase()
|
|
1903
|
-
);
|
|
1904
|
-
this.countries = data_default.filter(
|
|
1905
|
-
(country) => lowerCaseOnlyCountries.includes(country.iso2)
|
|
1906
|
-
);
|
|
1907
|
-
} else if (excludeCountries.length) {
|
|
1908
|
-
const lowerCaseExcludeCountries = excludeCountries.map(
|
|
1909
|
-
(country) => country.toLowerCase()
|
|
1910
|
-
);
|
|
1911
|
-
this.countries = data_default.filter(
|
|
1912
|
-
(country) => !lowerCaseExcludeCountries.includes(country.iso2)
|
|
1913
|
-
);
|
|
1914
|
-
} else {
|
|
1915
|
-
this.countries = data_default;
|
|
1916
|
-
}
|
|
1917
|
-
}
|
|
1918
|
-
//* Translate Countries by object literal provided on config.
|
|
1919
|
-
_translateCountryNames() {
|
|
1920
|
-
for (const c of this.countries) {
|
|
1921
|
-
const iso2 = c.iso2.toLowerCase();
|
|
1922
|
-
if (this.options.i18n.hasOwnProperty(iso2)) {
|
|
1923
|
-
c.name = this.options.i18n[iso2];
|
|
1924
|
-
}
|
|
1925
|
-
}
|
|
1926
|
-
}
|
|
1927
|
-
//* Generate this.dialCodes and this.dialCodeToIso2Map.
|
|
1928
|
-
_processDialCodes() {
|
|
1929
|
-
this.dialCodes = /* @__PURE__ */ new Set();
|
|
1930
|
-
this.dialCodeMaxLen = 0;
|
|
1931
|
-
this.dialCodeToIso2Map = {};
|
|
1932
|
-
for (const c of this.countries) {
|
|
1933
|
-
if (!this.dialCodes.has(c.dialCode)) {
|
|
1934
|
-
this.dialCodes.add(c.dialCode);
|
|
1935
|
-
}
|
|
1936
|
-
this._addToDialCodeMap(c.iso2, c.dialCode, c.priority);
|
|
1937
|
-
}
|
|
1938
|
-
if (this.options.onlyCountries.length || this.options.excludeCountries.length) {
|
|
1939
|
-
this.dialCodes.forEach((dialCode) => {
|
|
1940
|
-
this.dialCodeToIso2Map[dialCode] = this.dialCodeToIso2Map[dialCode].filter(Boolean);
|
|
1941
|
-
});
|
|
1942
|
-
}
|
|
1943
|
-
for (const c of this.countries) {
|
|
1944
|
-
if (c.areaCodes) {
|
|
1945
|
-
const rootIso2Code = this.dialCodeToIso2Map[c.dialCode][0];
|
|
1946
|
-
for (const areaCode of c.areaCodes) {
|
|
1947
|
-
for (let k = 1; k < areaCode.length; k++) {
|
|
1948
|
-
const partialAreaCode = areaCode.substring(0, k);
|
|
1949
|
-
const partialDialCode = c.dialCode + partialAreaCode;
|
|
1950
|
-
this._addToDialCodeMap(rootIso2Code, partialDialCode);
|
|
1951
|
-
this._addToDialCodeMap(c.iso2, partialDialCode);
|
|
1952
|
-
}
|
|
1953
|
-
this._addToDialCodeMap(c.iso2, c.dialCode + areaCode);
|
|
1954
|
-
}
|
|
1955
|
-
}
|
|
1956
|
-
}
|
|
1990
|
+
cacheSearchTokens(this.countries);
|
|
1957
1991
|
}
|
|
1958
1992
|
//* Generate all of the markup for the plugin: the selected country overlay, and the dropdown.
|
|
1959
1993
|
_generateMarkup() {
|
|
1994
|
+
this._prepareTelInput();
|
|
1995
|
+
const wrapper = this._createWrapperAndInsert();
|
|
1996
|
+
this._maybeBuildCountryContainer(wrapper);
|
|
1997
|
+
wrapper.appendChild(this.telInput);
|
|
1998
|
+
this._maybeUpdateInputPaddingAndReveal();
|
|
1999
|
+
this._maybeBuildHiddenInputs(wrapper);
|
|
2000
|
+
}
|
|
2001
|
+
_prepareTelInput() {
|
|
1960
2002
|
this.telInput.classList.add("iti__tel-input");
|
|
1961
2003
|
if (!this.telInput.hasAttribute("autocomplete") && !(this.telInput.form && this.telInput.form.hasAttribute("autocomplete"))) {
|
|
1962
2004
|
this.telInput.setAttribute("autocomplete", "off");
|
|
1963
2005
|
}
|
|
2006
|
+
}
|
|
2007
|
+
_createWrapperAndInsert() {
|
|
1964
2008
|
const {
|
|
1965
2009
|
allowDropdown,
|
|
1966
|
-
separateDialCode,
|
|
1967
2010
|
showFlags,
|
|
1968
2011
|
containerClass,
|
|
1969
|
-
|
|
1970
|
-
dropdownContainer,
|
|
1971
|
-
fixDropdownWidth,
|
|
1972
|
-
useFullscreenPopup,
|
|
1973
|
-
countrySearch,
|
|
1974
|
-
i18n
|
|
2012
|
+
useFullscreenPopup
|
|
1975
2013
|
} = this.options;
|
|
1976
2014
|
const parentClasses = _Iti._buildClassNames({
|
|
1977
2015
|
"iti": true,
|
|
@@ -1982,6 +2020,14 @@ var Iti = class _Iti {
|
|
|
1982
2020
|
});
|
|
1983
2021
|
const wrapper = createEl("div", { class: parentClasses });
|
|
1984
2022
|
this.telInput.parentNode?.insertBefore(wrapper, this.telInput);
|
|
2023
|
+
return wrapper;
|
|
2024
|
+
}
|
|
2025
|
+
_maybeBuildCountryContainer(wrapper) {
|
|
2026
|
+
const {
|
|
2027
|
+
allowDropdown,
|
|
2028
|
+
separateDialCode,
|
|
2029
|
+
showFlags
|
|
2030
|
+
} = this.options;
|
|
1985
2031
|
if (allowDropdown || showFlags || separateDialCode) {
|
|
1986
2032
|
this.countryContainer = createEl(
|
|
1987
2033
|
"div",
|
|
@@ -2042,119 +2088,138 @@ var Iti = class _Iti {
|
|
|
2042
2088
|
);
|
|
2043
2089
|
}
|
|
2044
2090
|
if (allowDropdown) {
|
|
2045
|
-
|
|
2046
|
-
this.dropdownContent = createEl("div", {
|
|
2047
|
-
id: `iti-${this.id}__dropdown-content`,
|
|
2048
|
-
class: `iti__dropdown-content iti__hide ${extraClasses}`,
|
|
2049
|
-
role: "dialog",
|
|
2050
|
-
"aria-modal": "true"
|
|
2051
|
-
});
|
|
2052
|
-
if (countrySearch) {
|
|
2053
|
-
const searchWrapper = createEl(
|
|
2054
|
-
"div",
|
|
2055
|
-
{ class: "iti__search-input-wrapper" },
|
|
2056
|
-
this.dropdownContent
|
|
2057
|
-
);
|
|
2058
|
-
this.searchIcon = createEl(
|
|
2059
|
-
"span",
|
|
2060
|
-
{
|
|
2061
|
-
class: "iti__search-icon",
|
|
2062
|
-
"aria-hidden": "true"
|
|
2063
|
-
},
|
|
2064
|
-
searchWrapper
|
|
2065
|
-
);
|
|
2066
|
-
this.searchIcon.innerHTML = `
|
|
2067
|
-
<svg class="iti__search-icon-svg" width="14" height="14" viewBox="0 0 24 24" focusable="false" aria-hidden="true">
|
|
2068
|
-
<circle cx="11" cy="11" r="7" />
|
|
2069
|
-
<line x1="21" y1="21" x2="16.65" y2="16.65" />
|
|
2070
|
-
</svg>`;
|
|
2071
|
-
this.searchInput = createEl(
|
|
2072
|
-
"input",
|
|
2073
|
-
{
|
|
2074
|
-
id: `iti-${this.id}__search-input`,
|
|
2075
|
-
// Chrome says inputs need either a name or an id
|
|
2076
|
-
type: "search",
|
|
2077
|
-
class: "iti__search-input",
|
|
2078
|
-
placeholder: i18n.searchPlaceholder,
|
|
2079
|
-
// 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
|
|
2080
|
-
role: "combobox",
|
|
2081
|
-
"aria-expanded": "true",
|
|
2082
|
-
"aria-label": i18n.searchPlaceholder,
|
|
2083
|
-
"aria-controls": `iti-${this.id}__country-listbox`,
|
|
2084
|
-
"aria-autocomplete": "list",
|
|
2085
|
-
"autocomplete": "off"
|
|
2086
|
-
},
|
|
2087
|
-
searchWrapper
|
|
2088
|
-
);
|
|
2089
|
-
this.searchClearButton = createEl(
|
|
2090
|
-
"button",
|
|
2091
|
-
{
|
|
2092
|
-
type: "button",
|
|
2093
|
-
class: "iti__search-clear iti__hide",
|
|
2094
|
-
"aria-label": i18n.clearSearchAriaLabel,
|
|
2095
|
-
tabindex: "-1"
|
|
2096
|
-
},
|
|
2097
|
-
searchWrapper
|
|
2098
|
-
);
|
|
2099
|
-
const maskId = `iti-${this.id}-clear-mask`;
|
|
2100
|
-
this.searchClearButton.innerHTML = `
|
|
2101
|
-
<svg class="iti__search-clear-svg" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
2102
|
-
<mask id="${maskId}" maskUnits="userSpaceOnUse">
|
|
2103
|
-
<rect width="16" height="16" fill="white" />
|
|
2104
|
-
<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" />
|
|
2105
|
-
</mask>
|
|
2106
|
-
<circle cx="8" cy="8" r="8" class="iti__search-clear-bg" mask="url(#${maskId})" />
|
|
2107
|
-
</svg>`;
|
|
2108
|
-
this.searchResultsA11yText = createEl(
|
|
2109
|
-
"span",
|
|
2110
|
-
{ class: "iti__a11y-text" },
|
|
2111
|
-
this.dropdownContent
|
|
2112
|
-
);
|
|
2113
|
-
this.searchNoResults = createEl(
|
|
2114
|
-
"div",
|
|
2115
|
-
{
|
|
2116
|
-
class: "iti__no-results iti__hide",
|
|
2117
|
-
"aria-hidden": "true"
|
|
2118
|
-
// all a11y messaging happens in this.searchResultsA11yText
|
|
2119
|
-
},
|
|
2120
|
-
this.dropdownContent
|
|
2121
|
-
);
|
|
2122
|
-
this.searchNoResults.textContent = i18n.zeroSearchResults;
|
|
2123
|
-
}
|
|
2124
|
-
this.countryList = createEl(
|
|
2125
|
-
"ul",
|
|
2126
|
-
{
|
|
2127
|
-
class: "iti__country-list",
|
|
2128
|
-
id: `iti-${this.id}__country-listbox`,
|
|
2129
|
-
role: "listbox",
|
|
2130
|
-
"aria-label": i18n.countryListAriaLabel
|
|
2131
|
-
},
|
|
2132
|
-
this.dropdownContent
|
|
2133
|
-
);
|
|
2134
|
-
this._appendListItems();
|
|
2135
|
-
if (countrySearch) {
|
|
2136
|
-
this._updateSearchResultsA11yText();
|
|
2137
|
-
}
|
|
2138
|
-
if (dropdownContainer) {
|
|
2139
|
-
const dropdownClasses = _Iti._buildClassNames({
|
|
2140
|
-
"iti": true,
|
|
2141
|
-
"iti--container": true,
|
|
2142
|
-
"iti--fullscreen-popup": useFullscreenPopup,
|
|
2143
|
-
"iti--inline-dropdown": !useFullscreenPopup,
|
|
2144
|
-
[containerClass]: Boolean(containerClass)
|
|
2145
|
-
});
|
|
2146
|
-
this.dropdown = createEl("div", { class: dropdownClasses });
|
|
2147
|
-
this.dropdown.appendChild(this.dropdownContent);
|
|
2148
|
-
} else {
|
|
2149
|
-
this.countryContainer.appendChild(this.dropdownContent);
|
|
2150
|
-
}
|
|
2091
|
+
this._buildDropdownContent();
|
|
2151
2092
|
}
|
|
2152
2093
|
}
|
|
2153
|
-
|
|
2094
|
+
}
|
|
2095
|
+
_buildDropdownContent() {
|
|
2096
|
+
const {
|
|
2097
|
+
fixDropdownWidth,
|
|
2098
|
+
useFullscreenPopup,
|
|
2099
|
+
countrySearch,
|
|
2100
|
+
i18n,
|
|
2101
|
+
dropdownContainer,
|
|
2102
|
+
containerClass
|
|
2103
|
+
} = this.options;
|
|
2104
|
+
const extraClasses = fixDropdownWidth ? "" : "iti--flexible-dropdown-width";
|
|
2105
|
+
this.dropdownContent = createEl("div", {
|
|
2106
|
+
id: `iti-${this.id}__dropdown-content`,
|
|
2107
|
+
class: `iti__dropdown-content iti__hide ${extraClasses}`,
|
|
2108
|
+
role: "dialog",
|
|
2109
|
+
"aria-modal": "true"
|
|
2110
|
+
});
|
|
2111
|
+
if (countrySearch) {
|
|
2112
|
+
this._buildSearchUI();
|
|
2113
|
+
}
|
|
2114
|
+
this.countryList = createEl(
|
|
2115
|
+
"ul",
|
|
2116
|
+
{
|
|
2117
|
+
class: "iti__country-list",
|
|
2118
|
+
id: `iti-${this.id}__country-listbox`,
|
|
2119
|
+
role: "listbox",
|
|
2120
|
+
"aria-label": i18n.countryListAriaLabel
|
|
2121
|
+
},
|
|
2122
|
+
this.dropdownContent
|
|
2123
|
+
);
|
|
2124
|
+
this._appendListItems();
|
|
2125
|
+
if (countrySearch) {
|
|
2126
|
+
this._updateSearchResultsA11yText();
|
|
2127
|
+
}
|
|
2128
|
+
if (dropdownContainer) {
|
|
2129
|
+
const dropdownClasses = _Iti._buildClassNames({
|
|
2130
|
+
"iti": true,
|
|
2131
|
+
"iti--container": true,
|
|
2132
|
+
"iti--fullscreen-popup": useFullscreenPopup,
|
|
2133
|
+
"iti--inline-dropdown": !useFullscreenPopup,
|
|
2134
|
+
[containerClass]: Boolean(containerClass)
|
|
2135
|
+
});
|
|
2136
|
+
this.dropdown = createEl("div", { class: dropdownClasses });
|
|
2137
|
+
this.dropdown.appendChild(this.dropdownContent);
|
|
2138
|
+
} else {
|
|
2139
|
+
this.countryContainer.appendChild(this.dropdownContent);
|
|
2140
|
+
}
|
|
2141
|
+
}
|
|
2142
|
+
_buildSearchUI() {
|
|
2143
|
+
const { i18n } = this.options;
|
|
2144
|
+
const searchWrapper = createEl(
|
|
2145
|
+
"div",
|
|
2146
|
+
{ class: "iti__search-input-wrapper" },
|
|
2147
|
+
this.dropdownContent
|
|
2148
|
+
);
|
|
2149
|
+
this.searchIcon = createEl(
|
|
2150
|
+
"span",
|
|
2151
|
+
{
|
|
2152
|
+
class: "iti__search-icon",
|
|
2153
|
+
"aria-hidden": "true"
|
|
2154
|
+
},
|
|
2155
|
+
searchWrapper
|
|
2156
|
+
);
|
|
2157
|
+
this.searchIcon.innerHTML = `
|
|
2158
|
+
<svg class="iti__search-icon-svg" width="14" height="14" viewBox="0 0 24 24" focusable="false" aria-hidden="true">
|
|
2159
|
+
<circle cx="11" cy="11" r="7" />
|
|
2160
|
+
<line x1="21" y1="21" x2="16.65" y2="16.65" />
|
|
2161
|
+
</svg>`;
|
|
2162
|
+
this.searchInput = createEl(
|
|
2163
|
+
"input",
|
|
2164
|
+
{
|
|
2165
|
+
id: `iti-${this.id}__search-input`,
|
|
2166
|
+
// Chrome says inputs need either a name or an id
|
|
2167
|
+
type: "search",
|
|
2168
|
+
class: "iti__search-input",
|
|
2169
|
+
placeholder: i18n.searchPlaceholder,
|
|
2170
|
+
// 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
|
|
2171
|
+
role: "combobox",
|
|
2172
|
+
"aria-expanded": "true",
|
|
2173
|
+
"aria-label": i18n.searchPlaceholder,
|
|
2174
|
+
"aria-controls": `iti-${this.id}__country-listbox`,
|
|
2175
|
+
"aria-autocomplete": "list",
|
|
2176
|
+
"autocomplete": "off"
|
|
2177
|
+
},
|
|
2178
|
+
searchWrapper
|
|
2179
|
+
);
|
|
2180
|
+
this.searchClearButton = createEl(
|
|
2181
|
+
"button",
|
|
2182
|
+
{
|
|
2183
|
+
type: "button",
|
|
2184
|
+
class: "iti__search-clear iti__hide",
|
|
2185
|
+
"aria-label": i18n.clearSearchAriaLabel,
|
|
2186
|
+
tabindex: "-1"
|
|
2187
|
+
},
|
|
2188
|
+
searchWrapper
|
|
2189
|
+
);
|
|
2190
|
+
const maskId = `iti-${this.id}-clear-mask`;
|
|
2191
|
+
this.searchClearButton.innerHTML = `
|
|
2192
|
+
<svg class="iti__search-clear-svg" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true" focusable="false">
|
|
2193
|
+
<mask id="${maskId}" maskUnits="userSpaceOnUse">
|
|
2194
|
+
<rect width="16" height="16" fill="white" />
|
|
2195
|
+
<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" />
|
|
2196
|
+
</mask>
|
|
2197
|
+
<circle cx="8" cy="8" r="8" class="iti__search-clear-bg" mask="url(#${maskId})" />
|
|
2198
|
+
</svg>`;
|
|
2199
|
+
this.searchResultsA11yText = createEl(
|
|
2200
|
+
"span",
|
|
2201
|
+
{ class: "iti__a11y-text" },
|
|
2202
|
+
this.dropdownContent
|
|
2203
|
+
);
|
|
2204
|
+
this.searchNoResults = createEl(
|
|
2205
|
+
"div",
|
|
2206
|
+
{
|
|
2207
|
+
class: "iti__no-results iti__hide",
|
|
2208
|
+
"aria-hidden": "true"
|
|
2209
|
+
// all a11y messaging happens in this.searchResultsA11yText
|
|
2210
|
+
},
|
|
2211
|
+
this.dropdownContent
|
|
2212
|
+
);
|
|
2213
|
+
this.searchNoResults.textContent = i18n.zeroSearchResults;
|
|
2214
|
+
}
|
|
2215
|
+
_maybeUpdateInputPaddingAndReveal() {
|
|
2154
2216
|
if (this.countryContainer) {
|
|
2155
2217
|
this._updateInputPadding();
|
|
2156
2218
|
this.countryContainer.classList.remove("iti__v-hide");
|
|
2157
2219
|
}
|
|
2220
|
+
}
|
|
2221
|
+
_maybeBuildHiddenInputs(wrapper) {
|
|
2222
|
+
const { hiddenInput } = this.options;
|
|
2158
2223
|
if (hiddenInput) {
|
|
2159
2224
|
const telInputName = this.telInput.getAttribute("name") || "";
|
|
2160
2225
|
const names = hiddenInput(telInputName);
|
|
@@ -2228,14 +2293,13 @@ var Iti = class _Iti {
|
|
|
2228
2293
|
this._updateCountryFromNumber(val);
|
|
2229
2294
|
} else if (!isAutoCountry || overrideAutoCountry) {
|
|
2230
2295
|
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
|
|
2231
|
-
|
|
2232
|
-
if (isValidInitialCountry) {
|
|
2296
|
+
if (isIso2(lowerInitialCountry)) {
|
|
2233
2297
|
this._setCountry(lowerInitialCountry);
|
|
2234
2298
|
} else {
|
|
2235
2299
|
if (dialCode && isRegionlessNanpNumber) {
|
|
2236
2300
|
this._setCountry("us");
|
|
2237
2301
|
} else {
|
|
2238
|
-
this._setCountry();
|
|
2302
|
+
this._setCountry("");
|
|
2239
2303
|
}
|
|
2240
2304
|
}
|
|
2241
2305
|
}
|
|
@@ -2338,8 +2402,7 @@ var Iti = class _Iti {
|
|
|
2338
2402
|
this.options.geoIpLookup(
|
|
2339
2403
|
(iso2 = "") => {
|
|
2340
2404
|
const iso2Lower = iso2.toLowerCase();
|
|
2341
|
-
|
|
2342
|
-
if (isValidIso2) {
|
|
2405
|
+
if (isIso2(iso2Lower)) {
|
|
2343
2406
|
intlTelInput.autoCountry = iso2Lower;
|
|
2344
2407
|
setTimeout(() => forEachInstance("handleAutoCountry"));
|
|
2345
2408
|
} else {
|
|
@@ -2362,6 +2425,11 @@ var Iti = class _Iti {
|
|
|
2362
2425
|
}
|
|
2363
2426
|
//* Initialize the tel input listeners.
|
|
2364
2427
|
_initTelInputListeners() {
|
|
2428
|
+
this._bindInputListener();
|
|
2429
|
+
this._maybeBindKeydownListener();
|
|
2430
|
+
this._maybeBindPasteListener();
|
|
2431
|
+
}
|
|
2432
|
+
_bindInputListener() {
|
|
2365
2433
|
const { strictMode, formatAsYouType, separateDialCode, allowDropdown, countrySearch } = this.options;
|
|
2366
2434
|
let userOverrideFormatting = false;
|
|
2367
2435
|
if (/\p{L}/u.test(this.telInput.value)) {
|
|
@@ -2392,13 +2460,23 @@ var Iti = class _Iti {
|
|
|
2392
2460
|
const valueBeforeCaret = this.telInput.value.substring(0, currentCaretPos);
|
|
2393
2461
|
const relevantCharsBeforeCaret = valueBeforeCaret.replace(/[^+0-9]/g, "").length;
|
|
2394
2462
|
const isDeleteForwards = e?.inputType === "deleteContentForward";
|
|
2395
|
-
const
|
|
2463
|
+
const fullNumber = this._getFullNumber();
|
|
2464
|
+
const formattedValue = formatNumberAsYouType(
|
|
2465
|
+
fullNumber,
|
|
2466
|
+
this.telInput.value,
|
|
2467
|
+
intlTelInput.utils,
|
|
2468
|
+
this.selectedCountryData,
|
|
2469
|
+
this.options.separateDialCode
|
|
2470
|
+
);
|
|
2396
2471
|
const newCaretPos = translateCursorPosition(relevantCharsBeforeCaret, formattedValue, currentCaretPos, isDeleteForwards);
|
|
2397
2472
|
this.telInput.value = formattedValue;
|
|
2398
2473
|
this.telInput.setSelectionRange(newCaretPos, newCaretPos);
|
|
2399
2474
|
}
|
|
2400
2475
|
};
|
|
2401
2476
|
this.telInput.addEventListener("input", this._handleInputEvent);
|
|
2477
|
+
}
|
|
2478
|
+
_maybeBindKeydownListener() {
|
|
2479
|
+
const { strictMode, separateDialCode, allowDropdown, countrySearch } = this.options;
|
|
2402
2480
|
if (strictMode || separateDialCode) {
|
|
2403
2481
|
this._handleKeydownEvent = (e) => {
|
|
2404
2482
|
if (e.key && e.key.length === 1 && !e.altKey && !e.ctrlKey && !e.metaKey) {
|
|
@@ -2428,6 +2506,48 @@ var Iti = class _Iti {
|
|
|
2428
2506
|
this.telInput.addEventListener("keydown", this._handleKeydownEvent);
|
|
2429
2507
|
}
|
|
2430
2508
|
}
|
|
2509
|
+
_maybeBindPasteListener() {
|
|
2510
|
+
if (this.options.strictMode) {
|
|
2511
|
+
this._handlePasteEvent = (e) => {
|
|
2512
|
+
e.preventDefault();
|
|
2513
|
+
const input = this.telInput;
|
|
2514
|
+
const selStart = input.selectionStart;
|
|
2515
|
+
const selEnd = input.selectionEnd;
|
|
2516
|
+
const before = input.value.slice(0, selStart);
|
|
2517
|
+
const after = input.value.slice(selEnd);
|
|
2518
|
+
const iso2 = this.selectedCountryData.iso2;
|
|
2519
|
+
const pasted = e.clipboardData.getData("text");
|
|
2520
|
+
const initialCharSelected = selStart === 0 && selEnd > 0;
|
|
2521
|
+
const allowLeadingPlus = !input.value.startsWith("+") || initialCharSelected;
|
|
2522
|
+
const allowedChars = pasted.replace(/[^0-9+]/g, "");
|
|
2523
|
+
const hasLeadingPlus = allowedChars.startsWith("+");
|
|
2524
|
+
const numerics = allowedChars.replace(/\+/g, "");
|
|
2525
|
+
const sanitised = hasLeadingPlus && allowLeadingPlus ? `+${numerics}` : numerics;
|
|
2526
|
+
let newVal = before + sanitised + after;
|
|
2527
|
+
let coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);
|
|
2528
|
+
while (coreNumber.length === 0 && newVal.length > 0) {
|
|
2529
|
+
newVal = newVal.slice(0, -1);
|
|
2530
|
+
coreNumber = intlTelInput.utils.getCoreNumber(newVal, iso2);
|
|
2531
|
+
}
|
|
2532
|
+
if (!coreNumber) {
|
|
2533
|
+
return;
|
|
2534
|
+
}
|
|
2535
|
+
if (this.maxCoreNumberLength && coreNumber.length > this.maxCoreNumberLength) {
|
|
2536
|
+
if (input.selectionEnd === input.value.length) {
|
|
2537
|
+
const trimLength = coreNumber.length - this.maxCoreNumberLength;
|
|
2538
|
+
newVal = newVal.slice(0, newVal.length - trimLength);
|
|
2539
|
+
} else {
|
|
2540
|
+
return;
|
|
2541
|
+
}
|
|
2542
|
+
}
|
|
2543
|
+
input.value = newVal;
|
|
2544
|
+
const caretPos = selStart + sanitised.length;
|
|
2545
|
+
input.setSelectionRange(caretPos, caretPos);
|
|
2546
|
+
input.dispatchEvent(new InputEvent("input", { bubbles: true }));
|
|
2547
|
+
};
|
|
2548
|
+
this.telInput.addEventListener("paste", this._handlePasteEvent);
|
|
2549
|
+
}
|
|
2550
|
+
}
|
|
2431
2551
|
//* Adhere to the input's maxlength attr.
|
|
2432
2552
|
_cap(number) {
|
|
2433
2553
|
const max = parseInt(this.telInput.getAttribute("maxlength") || "", 10);
|
|
@@ -2581,43 +2701,14 @@ var Iti = class _Iti {
|
|
|
2581
2701
|
}
|
|
2582
2702
|
//* Country search enabled: Filter the countries according to the search query.
|
|
2583
2703
|
_filterCountries(query) {
|
|
2584
|
-
let noCountriesAddedYet = true;
|
|
2585
2704
|
this.countryList.innerHTML = "";
|
|
2586
|
-
const normalisedQuery = normaliseString(query);
|
|
2587
2705
|
let matchedCountries;
|
|
2588
2706
|
if (query === "") {
|
|
2589
2707
|
matchedCountries = this.countries;
|
|
2590
2708
|
} else {
|
|
2591
|
-
|
|
2592
|
-
const nameStartWith = [];
|
|
2593
|
-
const nameContains = [];
|
|
2594
|
-
const dialCodeMatches = [];
|
|
2595
|
-
const dialCodeContains = [];
|
|
2596
|
-
const initialsMatches = [];
|
|
2597
|
-
for (const c of this.countries) {
|
|
2598
|
-
if (c.iso2 === normalisedQuery) {
|
|
2599
|
-
iso2Matches.push(c);
|
|
2600
|
-
} else if (c.normalisedName.startsWith(normalisedQuery)) {
|
|
2601
|
-
nameStartWith.push(c);
|
|
2602
|
-
} else if (c.normalisedName.includes(normalisedQuery)) {
|
|
2603
|
-
nameContains.push(c);
|
|
2604
|
-
} else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {
|
|
2605
|
-
dialCodeMatches.push(c);
|
|
2606
|
-
} else if (c.dialCodePlus.includes(normalisedQuery)) {
|
|
2607
|
-
dialCodeContains.push(c);
|
|
2608
|
-
} else if (c.initials.includes(normalisedQuery)) {
|
|
2609
|
-
initialsMatches.push(c);
|
|
2610
|
-
}
|
|
2611
|
-
}
|
|
2612
|
-
matchedCountries = [
|
|
2613
|
-
...iso2Matches.sort((a, b) => a.priority - b.priority),
|
|
2614
|
-
...nameStartWith.sort((a, b) => a.priority - b.priority),
|
|
2615
|
-
...nameContains.sort((a, b) => a.priority - b.priority),
|
|
2616
|
-
...dialCodeMatches.sort((a, b) => a.priority - b.priority),
|
|
2617
|
-
...dialCodeContains.sort((a, b) => a.priority - b.priority),
|
|
2618
|
-
...initialsMatches.sort((a, b) => a.priority - b.priority)
|
|
2619
|
-
];
|
|
2709
|
+
matchedCountries = this._getMatchedCountries(query);
|
|
2620
2710
|
}
|
|
2711
|
+
let noCountriesAddedYet = true;
|
|
2621
2712
|
for (const c of matchedCountries) {
|
|
2622
2713
|
const listItem = c.nodeById[this.id];
|
|
2623
2714
|
if (listItem) {
|
|
@@ -2639,6 +2730,38 @@ var Iti = class _Iti {
|
|
|
2639
2730
|
this.countryList.scrollTop = 0;
|
|
2640
2731
|
this._updateSearchResultsA11yText();
|
|
2641
2732
|
}
|
|
2733
|
+
_getMatchedCountries(query) {
|
|
2734
|
+
const normalisedQuery = normaliseString(query);
|
|
2735
|
+
const iso2Matches = [];
|
|
2736
|
+
const nameStartWith = [];
|
|
2737
|
+
const nameContains = [];
|
|
2738
|
+
const dialCodeMatches = [];
|
|
2739
|
+
const dialCodeContains = [];
|
|
2740
|
+
const initialsMatches = [];
|
|
2741
|
+
for (const c of this.countries) {
|
|
2742
|
+
if (c.iso2 === normalisedQuery) {
|
|
2743
|
+
iso2Matches.push(c);
|
|
2744
|
+
} else if (c.normalisedName.startsWith(normalisedQuery)) {
|
|
2745
|
+
nameStartWith.push(c);
|
|
2746
|
+
} else if (c.normalisedName.includes(normalisedQuery)) {
|
|
2747
|
+
nameContains.push(c);
|
|
2748
|
+
} else if (normalisedQuery === c.dialCode || normalisedQuery === c.dialCodePlus) {
|
|
2749
|
+
dialCodeMatches.push(c);
|
|
2750
|
+
} else if (c.dialCodePlus.includes(normalisedQuery)) {
|
|
2751
|
+
dialCodeContains.push(c);
|
|
2752
|
+
} else if (c.initials.includes(normalisedQuery)) {
|
|
2753
|
+
initialsMatches.push(c);
|
|
2754
|
+
}
|
|
2755
|
+
}
|
|
2756
|
+
return [
|
|
2757
|
+
...iso2Matches.sort((a, b) => a.priority - b.priority),
|
|
2758
|
+
...nameStartWith.sort((a, b) => a.priority - b.priority),
|
|
2759
|
+
...nameContains.sort((a, b) => a.priority - b.priority),
|
|
2760
|
+
...dialCodeMatches.sort((a, b) => a.priority - b.priority),
|
|
2761
|
+
...dialCodeContains.sort((a, b) => a.priority - b.priority),
|
|
2762
|
+
...initialsMatches.sort((a, b) => a.priority - b.priority)
|
|
2763
|
+
];
|
|
2764
|
+
}
|
|
2642
2765
|
//* Update search results text (for a11y).
|
|
2643
2766
|
_updateSearchResultsA11yText() {
|
|
2644
2767
|
const { i18n } = this.options;
|
|
@@ -2769,24 +2892,12 @@ var Iti = class _Iti {
|
|
|
2769
2892
|
this.highlightedItem.focus();
|
|
2770
2893
|
}
|
|
2771
2894
|
}
|
|
2772
|
-
//* Find the country data for the given iso2 code
|
|
2773
|
-
//* 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
|
|
2774
|
-
_getCountryData(iso2, allowFail) {
|
|
2775
|
-
const country = this.countryByIso2.get(iso2);
|
|
2776
|
-
if (country) {
|
|
2777
|
-
return country;
|
|
2778
|
-
}
|
|
2779
|
-
if (allowFail) {
|
|
2780
|
-
return null;
|
|
2781
|
-
}
|
|
2782
|
-
throw new Error(`No country data for '${iso2}'`);
|
|
2783
|
-
}
|
|
2784
2895
|
//* Update the selected country, dial code (if separateDialCode), placeholder, title, and active list item.
|
|
2785
2896
|
//* Note: called from _setInitialState, _updateCountryFromNumber, _selectListItem, setCountry.
|
|
2786
2897
|
_setCountry(iso2) {
|
|
2787
2898
|
const { separateDialCode, showFlags, i18n } = this.options;
|
|
2788
2899
|
const prevIso2 = this.selectedCountryData.iso2 || "";
|
|
2789
|
-
this.selectedCountryData = iso2 ? this.
|
|
2900
|
+
this.selectedCountryData = iso2 ? this.countryByIso2.get(iso2) : {};
|
|
2790
2901
|
if (this.selectedCountryData.iso2) {
|
|
2791
2902
|
this.defaultCountry = this.selectedCountryData.iso2;
|
|
2792
2903
|
}
|
|
@@ -2905,11 +3016,11 @@ var Iti = class _Iti {
|
|
|
2905
3016
|
}
|
|
2906
3017
|
//* Called when the user selects a list item from the dropdown.
|
|
2907
3018
|
_selectListItem(listItem) {
|
|
2908
|
-
const
|
|
2909
|
-
|
|
2910
|
-
);
|
|
3019
|
+
const iso2 = listItem.getAttribute("data-country-code");
|
|
3020
|
+
const countryChanged = this._setCountry(iso2);
|
|
2911
3021
|
this._closeDropdown();
|
|
2912
|
-
|
|
3022
|
+
const dialCode = listItem.getAttribute("data-dial-code");
|
|
3023
|
+
this._updateDialCode(dialCode);
|
|
2913
3024
|
if (this.options.formatOnDisplay) {
|
|
2914
3025
|
this._updateValFromNumber(this.telInput.value);
|
|
2915
3026
|
}
|
|
@@ -3032,32 +3143,19 @@ var Iti = class _Iti {
|
|
|
3032
3143
|
}
|
|
3033
3144
|
//* Remove the dial code if separateDialCode is enabled also cap the length if the input has a maxlength attribute
|
|
3034
3145
|
_beforeSetNumber(fullNumber) {
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
}
|
|
3043
|
-
}
|
|
3146
|
+
const dialCode = this._getDialCode(fullNumber);
|
|
3147
|
+
const number = beforeSetNumber(
|
|
3148
|
+
fullNumber,
|
|
3149
|
+
dialCode,
|
|
3150
|
+
this.options.separateDialCode,
|
|
3151
|
+
this.selectedCountryData
|
|
3152
|
+
);
|
|
3044
3153
|
return this._cap(number);
|
|
3045
3154
|
}
|
|
3046
3155
|
//* Trigger the 'countrychange' event.
|
|
3047
3156
|
_triggerCountryChange() {
|
|
3048
3157
|
this._trigger("countrychange");
|
|
3049
3158
|
}
|
|
3050
|
-
//* Format the number as the user types.
|
|
3051
|
-
_formatNumberAsYouType() {
|
|
3052
|
-
const val = this._getFullNumber();
|
|
3053
|
-
const result = intlTelInput.utils ? intlTelInput.utils.formatNumberAsYouType(val, this.selectedCountryData.iso2) : val;
|
|
3054
|
-
const { dialCode } = this.selectedCountryData;
|
|
3055
|
-
if (this.options.separateDialCode && this.telInput.value.charAt(0) !== "+" && result.includes(`+${dialCode}`)) {
|
|
3056
|
-
const afterDialCode = result.split(`+${dialCode}`)[1] || "";
|
|
3057
|
-
return afterDialCode.trim();
|
|
3058
|
-
}
|
|
3059
|
-
return result;
|
|
3060
|
-
}
|
|
3061
3159
|
//**************************
|
|
3062
3160
|
//* SECRET PUBLIC METHODS
|
|
3063
3161
|
//**************************
|
|
@@ -3115,6 +3213,9 @@ var Iti = class _Iti {
|
|
|
3115
3213
|
if (this._handleKeydownEvent) {
|
|
3116
3214
|
this.telInput.removeEventListener("keydown", this._handleKeydownEvent);
|
|
3117
3215
|
}
|
|
3216
|
+
if (this._handlePasteEvent) {
|
|
3217
|
+
this.telInput.removeEventListener("paste", this._handlePasteEvent);
|
|
3218
|
+
}
|
|
3118
3219
|
this.telInput.removeAttribute("data-intl-tel-input-id");
|
|
3119
3220
|
if (separateDialCode) {
|
|
3120
3221
|
if (this.isRTL) {
|
|
@@ -3206,6 +3307,9 @@ var Iti = class _Iti {
|
|
|
3206
3307
|
//* Update the selected country, and update the input val accordingly.
|
|
3207
3308
|
setCountry(iso2) {
|
|
3208
3309
|
const iso2Lower = iso2?.toLowerCase();
|
|
3310
|
+
if (!isIso2(iso2Lower)) {
|
|
3311
|
+
throw new Error(`Invalid country code: '${iso2Lower}'`);
|
|
3312
|
+
}
|
|
3209
3313
|
const currentCountry = this.selectedCountryData.iso2;
|
|
3210
3314
|
const isCountryChange = iso2 && iso2Lower !== currentCountry || !iso2 && currentCountry;
|
|
3211
3315
|
if (isCountryChange) {
|
|
@@ -3293,7 +3397,7 @@ var intlTelInput = Object.assign(
|
|
|
3293
3397
|
attachUtils,
|
|
3294
3398
|
startedLoadingUtilsScript: false,
|
|
3295
3399
|
startedLoadingAutoCountry: false,
|
|
3296
|
-
version: "25.10.
|
|
3400
|
+
version: "25.10.8"
|
|
3297
3401
|
}
|
|
3298
3402
|
);
|
|
3299
3403
|
var intl_tel_input_default = intlTelInput;
|
|
@@ -5042,12 +5146,12 @@ var intl_tel_input_default = intlTelInput;
|
|
|
5042
5146
|
,
|
|
5043
5147
|
,
|
|
5044
5148
|
[9]
|
|
5045
|
-
], [, , "(?:
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5049
|
-
[
|
|
5050
|
-
], , [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]], [, , "9(?:5\\d|7[2-4])\\d{6}", , , , "972123456", , , [9]], , , [, , "9(?:3\\d{9}|6\\d{7,10})", , , , "93123456789"]],
|
|
5149
|
+
], [, , "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"]], [
|
|
5150
|
+
,
|
|
5151
|
+
"(\\d{2})(\\d{3})(\\d{3})(\\d{3})",
|
|
5152
|
+
"$1 $2 $3 $4",
|
|
5153
|
+
["9"]
|
|
5154
|
+
], [, "(\\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"]],
|
|
5051
5155
|
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]], [
|
|
5052
5156
|
,
|
|
5053
5157
|
,
|
|
@@ -5068,6 +5172,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
5068
5172
|
["3[02]|40|[68]9"],
|
|
5069
5173
|
"0$1"
|
|
5070
5174
|
],
|
|
5175
|
+
[, "(\\d{6})", "$1", ["227", "2277"]],
|
|
5071
5176
|
[, "(\\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"],
|
|
5072
5177
|
[
|
|
5073
5178
|
,
|
|
@@ -5091,7 +5196,38 @@ var intl_tel_input_default = intlTelInput;
|
|
|
5091
5196
|
[, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"],
|
|
5092
5197
|
[, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"],
|
|
5093
5198
|
[, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]
|
|
5094
|
-
],
|
|
5199
|
+
], [
|
|
5200
|
+
[, "(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"],
|
|
5201
|
+
[
|
|
5202
|
+
,
|
|
5203
|
+
"(\\d{3})(\\d{3,12})",
|
|
5204
|
+
"$1 $2",
|
|
5205
|
+
["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"],
|
|
5206
|
+
"0$1"
|
|
5207
|
+
],
|
|
5208
|
+
[
|
|
5209
|
+
,
|
|
5210
|
+
"(\\d{4})(\\d{2,11})",
|
|
5211
|
+
"$1 $2",
|
|
5212
|
+
["[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]"],
|
|
5213
|
+
"0$1"
|
|
5214
|
+
],
|
|
5215
|
+
[, "(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"],
|
|
5216
|
+
[, "(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"],
|
|
5217
|
+
[, "(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"],
|
|
5218
|
+
[, "(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"],
|
|
5219
|
+
[, "(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"],
|
|
5220
|
+
[, "(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"],
|
|
5221
|
+
[, "(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"],
|
|
5222
|
+
[, "(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"],
|
|
5223
|
+
[, "(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"],
|
|
5224
|
+
[, "(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"],
|
|
5225
|
+
[, "(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|3[13])"], "0$1"],
|
|
5226
|
+
[, "(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"],
|
|
5227
|
+
[, "(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"],
|
|
5228
|
+
[, "(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"],
|
|
5229
|
+
[, "(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]
|
|
5230
|
+
], [, , "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]], , , [
|
|
5095
5231
|
,
|
|
5096
5232
|
,
|
|
5097
5233
|
"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}",
|
|
@@ -6189,17 +6325,14 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6189
6325
|
,
|
|
6190
6326
|
[7]
|
|
6191
6327
|
], [, , , , , , , , , [-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]]],
|
|
6192
|
-
IT: [, [, , "0\\d{5,
|
|
6193
|
-
,
|
|
6194
|
-
,
|
|
6195
|
-
"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}",
|
|
6328
|
+
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]], [
|
|
6196
6329
|
,
|
|
6197
6330
|
,
|
|
6331
|
+
"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}",
|
|
6198
6332
|
,
|
|
6199
|
-
"0212345678",
|
|
6200
6333
|
,
|
|
6201
6334
|
,
|
|
6202
|
-
|
|
6335
|
+
"0212345678"
|
|
6203
6336
|
], [, , "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", , , , , , , , [
|
|
6204
6337
|
[, "(\\d{4,5})", "$1", ["1(?:0|9[246])", "1(?:0|9(?:2[2-9]|[46]))"]],
|
|
6205
6338
|
[, "(\\d{6})", "$1", ["1(?:1|92)"]],
|
|
@@ -6212,13 +6345,13 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6212
6345
|
[, "(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]],
|
|
6213
6346
|
[, "(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]],
|
|
6214
6347
|
[, "(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]],
|
|
6215
|
-
[, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["
|
|
6348
|
+
[, "(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[03]"]]
|
|
6216
6349
|
], [[, "(\\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"]], [
|
|
6217
6350
|
,
|
|
6218
6351
|
"(\\d{3})(\\d{3})(\\d{3,4})",
|
|
6219
6352
|
"$1 $2 $3",
|
|
6220
6353
|
["1(?:44|[679])|[378]|43"]
|
|
6221
|
-
], [, "(\\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", ["
|
|
6354
|
+
], [, "(\\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]]],
|
|
6222
6355
|
JE: [, [, , "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", , , , , , , [10], [6]], [, , "1534[0-24-8]\\d{5}", , , , "1534456789", , , , [6]], [
|
|
6223
6356
|
,
|
|
6224
6357
|
,
|
|
@@ -6601,7 +6734,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6601
6734
|
,
|
|
6602
6735
|
"5002345678"
|
|
6603
6736
|
], [, , , , , , , , , [-1]], "LC", 1, "011", "1", , , "([2-8]\\d{6})$|1", "758$1", , , , , [, , , , , , , , , [-1]], , "758", [, , , , , , , , , [-1]], [, , , , , , , , , [-1]], , , [, , , , , , , , , [-1]]],
|
|
6604
|
-
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
|
|
6737
|
+
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"], [
|
|
6605
6738
|
,
|
|
6606
6739
|
,
|
|
6607
6740
|
"90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d",
|
|
@@ -6710,7 +6843,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6710
6843
|
,
|
|
6711
6844
|
"$CC $1"
|
|
6712
6845
|
], [, "(\\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]]],
|
|
6713
|
-
LV: [, [, , "(?:[268]\\d|90)\\d{6}", , , , , , , [8]], [
|
|
6846
|
+
LV: [, [, , "(?:[268]\\d|78|90)\\d{6}", , , , , , , [8]], [
|
|
6714
6847
|
,
|
|
6715
6848
|
,
|
|
6716
6849
|
"6\\d{7}",
|
|
@@ -6718,7 +6851,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6718
6851
|
,
|
|
6719
6852
|
,
|
|
6720
6853
|
"63123456"
|
|
6721
|
-
], [, , "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", ["[
|
|
6854
|
+
], [, , "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]]],
|
|
6722
6855
|
LY: [, [, , "[2-9]\\d{8}", , , , , , , [9], [7]], [
|
|
6723
6856
|
,
|
|
6724
6857
|
,
|
|
@@ -6780,7 +6913,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
6780
6913
|
,
|
|
6781
6914
|
[8],
|
|
6782
6915
|
[6]
|
|
6783
|
-
], [, , "6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}", , , , "
|
|
6916
|
+
], [, , "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]]],
|
|
6784
6917
|
MF: [
|
|
6785
6918
|
,
|
|
6786
6919
|
[, , "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", , , , , , , [9]],
|
|
@@ -7868,7 +8001,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
7868
8001
|
,
|
|
7869
8002
|
,
|
|
7870
8003
|
[8]
|
|
7871
|
-
], [, , "
|
|
8004
|
+
], [, , "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"]], [
|
|
7872
8005
|
,
|
|
7873
8006
|
"(\\d{4})(\\d{4})(\\d{3})",
|
|
7874
8007
|
"$1 $2 $3",
|
|
@@ -8446,7 +8579,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
8446
8579
|
], [
|
|
8447
8580
|
,
|
|
8448
8581
|
,
|
|
8449
|
-
"(?: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-
|
|
8582
|
+
"(?: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}",
|
|
8450
8583
|
,
|
|
8451
8584
|
,
|
|
8452
8585
|
,
|
|
@@ -8458,7 +8591,7 @@ var intl_tel_input_default = intlTelInput;
|
|
|
8458
8591
|
], [
|
|
8459
8592
|
,
|
|
8460
8593
|
,
|
|
8461
|
-
"(?: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-
|
|
8594
|
+
"(?: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}",
|
|
8462
8595
|
,
|
|
8463
8596
|
,
|
|
8464
8597
|
,
|