Skip to content

Commit

Permalink
Fix: auto country ignored in some cases. Closes #1646
Browse files Browse the repository at this point in the history
  • Loading branch information
jackocnr committed Jun 7, 2024
1 parent 79e3bff commit a96fa77
Show file tree
Hide file tree
Showing 13 changed files with 114 additions and 74 deletions.
18 changes: 11 additions & 7 deletions build/js/intlTelInput.js
Original file line number Diff line number Diff line change
Expand Up @@ -1894,10 +1894,11 @@ var factoryOutput = (() => {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1976,18 +1977,20 @@ var factoryOutput = (() => {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2607,7 +2610,8 @@ var factoryOutput = (() => {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
2 changes: 1 addition & 1 deletion build/js/intlTelInput.min.js

Large diffs are not rendered by default.

18 changes: 11 additions & 7 deletions build/js/intlTelInputWithUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -1893,10 +1893,11 @@ var factoryOutput = (() => {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1975,18 +1976,20 @@ var factoryOutput = (() => {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2606,7 +2609,8 @@ var factoryOutput = (() => {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
2 changes: 1 addition & 1 deletion build/js/intlTelInputWithUtils.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion grunt/replace.js
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ module.exports = function(grunt) {
options: {
patterns: [
{
match: /e\.g\. v[0-9]+\.[0-9]+\.[0-9] \(please try latest version\)/,
match: /e\.g\. v[0-9]+\.[0-9]+\.[0-9]+ \(please try latest version\)/,
replacement: 'e.g. v<%= package.version %> (please try latest version)'
}
]
Expand Down
18 changes: 11 additions & 7 deletions react/build/IntlTelInput.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -1889,10 +1889,11 @@ var Iti = class {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1971,18 +1972,20 @@ var Iti = class {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2602,7 +2605,8 @@ var Iti = class {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
18 changes: 11 additions & 7 deletions react/build/IntlTelInput.js
Original file line number Diff line number Diff line change
Expand Up @@ -1853,10 +1853,11 @@ var Iti = class {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1935,18 +1936,20 @@ var Iti = class {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2566,7 +2569,8 @@ var Iti = class {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
18 changes: 11 additions & 7 deletions react/build/IntlTelInputWithUtils.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -1889,10 +1889,11 @@ var Iti = class {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1971,18 +1972,20 @@ var Iti = class {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2602,7 +2605,8 @@ var Iti = class {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
18 changes: 11 additions & 7 deletions react/build/IntlTelInputWithUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -1853,10 +1853,11 @@ var Iti = class {
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -1935,18 +1936,20 @@ var Iti = class {
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -2566,7 +2569,8 @@ var Iti = class {
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
18 changes: 11 additions & 7 deletions react/demo/set-number-bundle.js
Original file line number Diff line number Diff line change
Expand Up @@ -25382,10 +25382,11 @@
const val = useAttribute ? attributeValue : inputValue;
const dialCode = this._getDialCode(val);
const isRegionlessNanpNumber = isRegionlessNanp(val);
const { initialCountry } = this.options;
const { initialCountry, geoIpLookup } = this.options;
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (dialCode && !isRegionlessNanpNumber) {
this._updateCountryFromNumber(val);
} else if (initialCountry !== "auto" || overrideAutoCountry) {
} else if (!isAutoCountry || overrideAutoCountry) {
const lowerInitialCountry = initialCountry ? initialCountry.toLowerCase() : "";
const isValidInitialCountry = lowerInitialCountry && this._getCountryData(lowerInitialCountry, true);
if (isValidInitialCountry) {
Expand Down Expand Up @@ -25464,18 +25465,20 @@
}
//* Init many requests: utils script / geo ip lookup.
_initRequests() {
if (this.options.utilsScript && !intlTelInput.utils) {
const { utilsScript, initialCountry, geoIpLookup } = this.options;
if (utilsScript && !intlTelInput.utils) {
if (intlTelInput.documentReady()) {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
} else {
window.addEventListener("load", () => {
intlTelInput.loadUtils(this.options.utilsScript);
intlTelInput.loadUtils(utilsScript);
});
}
} else {
this.resolveUtilsScriptPromise();
}
if (this.options.initialCountry === "auto" && !this.selectedCountryData.iso2) {
const isAutoCountry = initialCountry === "auto" && geoIpLookup;
if (isAutoCountry && !this.selectedCountryData.iso2) {
this._loadAutoCountry();
} else {
this.resolveAutoCountryPromise();
Expand Down Expand Up @@ -26095,7 +26098,8 @@
handleAutoCountry() {
if (this.options.initialCountry === "auto" && intlTelInput.autoCountry) {
this.defaultCountry = intlTelInput.autoCountry;
if (!this.telInput.value) {
const hasSelectedCountryOrGlobe = this.selectedCountryData.iso2 || this.selectedCountryInner.classList.contains("iti__globe");
if (!hasSelectedCountryOrGlobe) {
this.setCountry(this.defaultCountry);
}
this.resolveAutoCountryPromise();
Expand Down
Loading

0 comments on commit a96fa77

Please sign in to comment.