From 345800b606e91167cfd1f2f905e59ae338d6ef89 Mon Sep 17 00:00:00 2001 From: Zaitsev Date: Wed, 25 Nov 2015 22:00:14 +0200 Subject: [PATCH 1/2] country: two-way binding --- releases/international-phone-number.js | 8 +++++++- releases/international-phone-number.min.js | 4 ++-- src/international-phone-number.coffee | 4 ++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/releases/international-phone-number.js b/releases/international-phone-number.js index 85e0d18..c56dd74 100644 --- a/releases/international-phone-number.js +++ b/releases/international-phone-number.js @@ -12,6 +12,7 @@ numberType: "MOBILE", onlyCountries: void 0, preferredCountries: ['us', 'gb'], + skipUtilScriptDownload: false, utilsScript: "" }).directive('internationalPhoneNumber', [ '$timeout', 'ipnConfig', function($timeout, ipnConfig) { @@ -33,6 +34,11 @@ } } read = function() { + if (typeof element.intlTelInput("getSelectedCountryData").iso2 !== 'undefined') { + scope.country = element.intlTelInput("getSelectedCountryData").iso2; + } else { + scope.country = null; + } return ctrl.$setViewValue(element.val()); }; handleWhatsSupposedToBeAnArray = function(value) { @@ -68,7 +74,7 @@ element.val(newValue); } element.intlTelInput(options); - if (!(attrs.skipUtilScriptDownload !== void 0 || options.utilsScript)) { + if (!(options.skipUtilScriptDownload || attrs.skipUtilScriptDownload !== void 0 || options.utilsScript)) { element.intlTelInput('loadUtils', '/bower_components/intl-tel-input/lib/libphonenumber/build/utils.js'); } return watchOnce(); diff --git a/releases/international-phone-number.min.js b/releases/international-phone-number.min.js index 056165c..9741f3d 100644 --- a/releases/international-phone-number.min.js +++ b/releases/international-phone-number.min.js @@ -1,2 +1,2 @@ -/*! international-phone-number 2015-11-11 */ -(function(){"use strict";angular.module("internationalPhoneNumber",[]).constant("ipnConfig",{allowExtensions:!1,autoFormat:!0,autoHideDialCode:!0,autoPlaceholder:!0,customPlaceholder:null,defaultCountry:"",geoIpLookup:null,nationalMode:!0,numberType:"MOBILE",onlyCountries:void 0,preferredCountries:["us","gb"],utilsScript:""}).directive("internationalPhoneNumber",["$timeout","ipnConfig",function(a,b){return{restrict:"A",require:"^ngModel",scope:{ngModel:"=",country:"="},link:function(c,d,e,f){var g,h,i,j;return f&&""!==d.val()&&a(function(){return d.intlTelInput("setNumber",d.val()),f.$setViewValue(d.val())},0),i=function(){return f.$setViewValue(d.val())},g=function(a){return a instanceof Array?a:a.toString().replace(/[ ]/g,"").split(",")},h=angular.copy(b),angular.forEach(h,function(a,b){var c;if(e.hasOwnProperty(b)&&angular.isDefined(e[b]))return c=e[b],"preferredCountries"===b?h.preferredCountries=g(c):"onlyCountries"===b?h.onlyCountries=g(c):"boolean"==typeof a?h[b]="true"===c:h[b]=c}),j=c.$watch("ngModel",function(a){return c.$$postDigest(function(){return null!==a&&void 0!==a&&a.length>0&&("+"!==a[0]&&(a="+"+a),d.val(a)),d.intlTelInput(h),void 0!==e.skipUtilScriptDownload||h.utilsScript||d.intlTelInput("loadUtils","/bower_components/intl-tel-input/lib/libphonenumber/build/utils.js"),j()})}),c.$watch("country",function(a){return null!==a&&void 0!==a&&""!==a?d.intlTelInput("selectCountry",a):void 0}),f.$formatters.push(function(a){return a?(d.intlTelInput("setNumber",a),d.val()):a}),f.$parsers.push(function(a){return a?a.replace(/[^\d]/g,""):a}),f.$validators.internationalPhoneNumber=function(a){var b;return b=d.intlTelInput("getSelectedCountryData"),!a||b&&b.dialCode===a?!0:d.intlTelInput("isValidNumber")},d.on("blur keyup change",function(a){return c.$apply(i)}),d.on("$destroy",function(){return d.intlTelInput("destroy"),d.off("blur keyup change")})}}}])}).call(this); \ No newline at end of file +/*! international-phone-number 2015-11-25 */ +(function(){"use strict";angular.module("internationalPhoneNumber",[]).constant("ipnConfig",{allowExtensions:!1,autoFormat:!0,autoHideDialCode:!0,autoPlaceholder:!0,customPlaceholder:null,defaultCountry:"",geoIpLookup:null,nationalMode:!0,numberType:"MOBILE",onlyCountries:void 0,preferredCountries:["us","gb"],skipUtilScriptDownload:!1,utilsScript:""}).directive("internationalPhoneNumber",["$timeout","ipnConfig",function(a,b){return{restrict:"A",require:"^ngModel",scope:{ngModel:"=",country:"="},link:function(c,d,e,f){var g,h,i,j;return f&&""!==d.val()&&a(function(){return d.intlTelInput("setNumber",d.val()),f.$setViewValue(d.val())},0),i=function(){return"undefined"!=typeof d.intlTelInput("getSelectedCountryData").iso2?c.country=d.intlTelInput("getSelectedCountryData").iso2:c.country=null,f.$setViewValue(d.val())},g=function(a){return a instanceof Array?a:a.toString().replace(/[ ]/g,"").split(",")},h=angular.copy(b),angular.forEach(h,function(a,b){var c;if(e.hasOwnProperty(b)&&angular.isDefined(e[b]))return c=e[b],"preferredCountries"===b?h.preferredCountries=g(c):"onlyCountries"===b?h.onlyCountries=g(c):"boolean"==typeof a?h[b]="true"===c:h[b]=c}),j=c.$watch("ngModel",function(a){return c.$$postDigest(function(){return null!==a&&void 0!==a&&a.length>0&&("+"!==a[0]&&(a="+"+a),d.val(a)),d.intlTelInput(h),h.skipUtilScriptDownload||void 0!==e.skipUtilScriptDownload||h.utilsScript||d.intlTelInput("loadUtils","/bower_components/intl-tel-input/lib/libphonenumber/build/utils.js"),j()})}),c.$watch("country",function(a){return null!==a&&void 0!==a&&""!==a?d.intlTelInput("selectCountry",a):void 0}),f.$formatters.push(function(a){return a?(d.intlTelInput("setNumber",a),d.val()):a}),f.$parsers.push(function(a){return a?a.replace(/[^\d]/g,""):a}),f.$validators.internationalPhoneNumber=function(a){var b;return b=d.intlTelInput("getSelectedCountryData"),!a||b&&b.dialCode===a?!0:d.intlTelInput("isValidNumber")},d.on("blur keyup change",function(a){return c.$apply(i)}),d.on("$destroy",function(){return d.intlTelInput("destroy"),d.off("blur keyup change")})}}}])}).call(this); \ No newline at end of file diff --git a/src/international-phone-number.coffee b/src/international-phone-number.coffee index e5c83f3..ca5fe91 100644 --- a/src/international-phone-number.coffee +++ b/src/international-phone-number.coffee @@ -39,6 +39,10 @@ angular.module("internationalPhoneNumber", []) read = () -> + if (typeof element.intlTelInput("getSelectedCountryData").iso2 != 'undefined') + scope.country = element.intlTelInput("getSelectedCountryData").iso2 + else + scope.country = null ctrl.$setViewValue element.val() handleWhatsSupposedToBeAnArray = (value) -> From e03a5a95e9dfb6bf9cb921d8f40adffe9f39a74f Mon Sep 17 00:00:00 2001 From: Zaitsev Date: Wed, 25 Nov 2015 22:19:56 +0200 Subject: [PATCH 2/2] intl-tel-input 6.4.3 --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 85ed0fb..ba7a3d2 100644 --- a/bower.json +++ b/bower.json @@ -6,6 +6,6 @@ "license": "MIT", "dependencies": { "angular": ">1.3.0", - "intl-tel-input": "~5.1.0" + "intl-tel-input": "~6.4.3" } }