ngx-phone-validators
Version:
An implementation of angular validators for Angular 2 and higher
2 lines • 5.63 kB
JavaScript
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports,require("google-libphonenumber"),require("@angular/core"),require("@angular/forms")):"function"==typeof define&&define.amd?define("ngx-phone-validators",["exports","google-libphonenumber","@angular/core","@angular/forms"],o):o((e="undefined"!=typeof globalThis?globalThis:e||self)["ngx-phone-validators"]={},e.googleLibphonenumber,e.ng.core,e.ng.forms)}(this,(function(e,o,r,n){"use strict";var t=function(){function e(){}return e.isNotPresent=function(e){var o=e.value;return null==o||""===o},e.addError=function(e,o,r){var n;e.errors?e.hasError(o)||(e.errors[o]=r):e.setErrors(((n={})[o]=r,n))},e.removeError=function(e,o){e.errors&&e.hasError(o)&&delete e.errors[o]},e}(),i={UN001:"001",AD:"AD",AE:"AE",AF:"AF",AG:"AG",AI:"AI",AL:"AL",AM:"AM",AN:"AN",AO:"AO",AQ:"AQ",AR:"AR",AS:"AS",AT:"AT",AU:"AU",AW:"AW",AX:"AX",AZ:"AZ",BA:"BA",BB:"BB",BD:"BD",BE:"BE",BF:"BF",BG:"BG",BH:"BH",BI:"BI",BJ:"BJ",BL:"BL",BM:"BM",BN:"BN",BO:"BO",BR:"BR",BS:"BS",BT:"BT",BV:"BV",BW:"BW",BY:"BY",BZ:"BZ",CA:"CA",CC:"CC",CD:"CD",CF:"CF",CG:"CG",CH:"CH",CI:"CI",CK:"CK",CL:"CL",CM:"CM",CN:"CN",CO:"CO",CR:"CR",CU:"CU",CV:"CV",CX:"CX",CY:"CY",CZ:"CZ",DE:"DE",DJ:"DJ",DK:"DK",DM:"DM",DO:"DO",DZ:"DZ",EC:"EC",EE:"EE",EG:"EG",EH:"EH",ER:"ER",ES:"ES",ET:"ET",FI:"FI",FJ:"FJ",FK:"FK",FM:"FM",FO:"FO",FR:"FR",GA:"GA",GB:"GB",GD:"GD",GE:"GE",GF:"GF",GG:"GG",GH:"GH",GI:"GI",GL:"GL",GM:"GM",GN:"GN",GP:"GP",GQ:"GQ",GR:"GR",GS:"GS",GT:"GT",GU:"GU",GW:"GW",GY:"GY",HK:"HK",HM:"HM",HN:"HN",HR:"HR",HT:"HT",HU:"HU",ID:"ID",IE:"IE",IL:"IL",IM:"IM",IN:"IN",IO:"IO",IQ:"IQ",IR:"IR",IS:"IS",IT:"IT",JE:"JE",JM:"JM",JO:"JO",JP:"JP",KE:"KE",KG:"KG",KH:"KH",KI:"KI",KM:"KM",KN:"KN",KP:"KP",KR:"KR",KW:"KW",KY:"KY",KZ:"KZ",LA:"LA",LB:"LB",LC:"LC",LI:"LI",LK:"LK",LR:"LR",LS:"LS",LT:"LT",LU:"LU",LV:"LV",LY:"LY",MA:"MA",MC:"MC",MD:"MD",ME:"ME",MF:"MF",MG:"MG",MH:"MH",MK:"MK",ML:"ML",MM:"MM",MN:"MN",MO:"MO",MP:"MP",MQ:"MQ",MR:"MR",MS:"MS",MT:"MT",MU:"MU",MV:"MV",MW:"MW",MX:"MX",MY:"MY",MZ:"MZ",NA:"NA",NC:"NC",NE:"NE",NF:"NF",NG:"NG",NI:"NI",NL:"NL",NO:"NO",NP:"NP",NR:"NR",NU:"NU",NZ:"NZ",OM:"OM",PA:"PA",PE:"PE",PF:"PF",PG:"PG",PH:"PH",PK:"PK",PL:"PL",PM:"PM",PN:"PN",PR:"PR",PS:"PS",PT:"PT",PW:"PW",PY:"PY",QA:"QA",RE:"RE",RO:"RO",RS:"RS",RU:"RU",RW:"RW",SA:"SA",SB:"SB",SC:"SC",SD:"SD",SE:"SE",SG:"SG",SH:"SH",SI:"SI",SJ:"SJ",SK:"SK",SL:"SL",SM:"SM",SN:"SN",SO:"SO",SR:"SR",ST:"ST",SV:"SV",SY:"SY",SZ:"SZ",TC:"TC",TD:"TD",TF:"TF",TG:"TG",TH:"TH",TJ:"TJ",TK:"TK",TL:"TL",TM:"TM",TN:"TN",TO:"TO",TR:"TR",TT:"TT",TV:"TV",TW:"TW",TZ:"TZ",UA:"UA",UG:"UG",UM:"UM",US:"US",UY:"UY",UZ:"UZ",VA:"VA",VC:"VC",VE:"VE",VG:"VG",VI:"VI",VN:"VN",VU:"VU",WF:"WF",WS:"WS",YE:"YE",YT:"YT",ZA:"ZA",ZM:"ZM",ZW:"ZW",ZZ:"ZZ"},a=function(){function e(){}return e.checkRegionCode=function(e){return!(void 0===i[e])},e.isValidRegionCode=function(o){if(!t.isNotPresent(o))return e.checkRegionCode(o.value)?void 0:{noValidRegionCode:!0}},e.isPhoneNumber=function(r){return function(n){if(!t.isNotPresent(n)){if(!e.checkRegionCode(r))return{noValidRegionCode:!0};var i=o.PhoneNumberUtil.getInstance(),a={noPhoneNumber:!0};try{var u=i.parse(n.value,r);i.isValidNumber(u)&&(a=void 0)}catch(e){a={noPhoneNumber:!0}}return a}}},e.isPossibleNumberWithReason=function(r){return function(n){if(!t.isNotPresent(n)){if(!e.checkRegionCode(r))return{noValidRegionCode:!0};var i=o.PhoneNumberUtil.getInstance(),a={noPhoneNumber:!0};try{var u=i.parse(n.value,r);switch(i.isPossibleNumberWithReason(u)){case o.PhoneNumberUtil.ValidationResult.IS_POSSIBLE:a=void 0;break;case o.PhoneNumberUtil.ValidationResult.TOO_LONG:a={phoneNumberTooLong:!0};break;case o.PhoneNumberUtil.ValidationResult.TOO_SHORT:a={phoneNumberTooShort:!0};break;case o.PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE:a={phoneNumberInvalidCountryCode:!0};break;default:a={noPhoneNumber:!0}}}catch(e){a={noPhoneNumber:!0}}return a}}},e}(),u=function(){function e(){this.possiblePhone="US"}return e.prototype.ngOnInit=function(){this.validator=a.isPossibleNumberWithReason(this.possiblePhone)},e.prototype.validate=function(e){return this.validator(e)},e}();u.decorators=[{type:r.Directive,args:[{selector:"[possiblePhone][formControlName],[possiblePhone][formControl],[possiblePhone][ngModel]",providers:[{provide:n.NG_VALIDATORS,useExisting:r.forwardRef((function(){return u})),multi:!0}]}]}],u.propDecorators={possiblePhone:[{type:r.Input}]};var s=function(){function e(){this.phone="US"}return e.prototype.ngOnInit=function(){this.validator=a.isPhoneNumber(this.phone)},e.prototype.validate=function(e){return this.validator(e)},e}();s.decorators=[{type:r.Directive,args:[{selector:"[phone][formControlName],[phone][formControl],[phone][ngModel]",providers:[{provide:n.NG_VALIDATORS,useExisting:r.forwardRef((function(){return s})),multi:!0}]}]}],s.propDecorators={phone:[{type:r.Input}]};var l=function(){function e(){}return e.prototype.ngOnInit=function(){this.validator=a.isValidRegionCode},e.prototype.validate=function(e){return this.validator(e)},e}();l.decorators=[{type:r.Directive,args:[{selector:"[countryCode][formControlName],[countryCode][formControl],[countryCode][ngModel]",providers:[{provide:n.NG_VALIDATORS,useExisting:r.forwardRef((function(){return l})),multi:!0}]}]}];var M=function(){};M.decorators=[{type:r.NgModule,args:[{declarations:[s,u,l],exports:[s,u,l]}]}],e.CountryCodeValidatorDirective=l,e.PhoneValidatorDirective=s,e.PhoneValidators=a,e.PhoneValidatorsModule=M,e.PossiblePhoneValidatorDirective=u,e.ɵa=i,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=ngx-phone-validators.umd.min.js.map