UNPKG

fullstack-phone

Version:

A dual-module phone number system with dynamic regional metadata

100 lines (90 loc) 29.1 kB
(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a}; function ca(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var da=ca(this);function ea(a,b){if(b)a:{var c=da;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}} ea("Symbol",function(a){function b(f){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(f||"")+"_"+e++,f)}function c(f,g){this.g=f;ba(this,"description",{configurable:!0,writable:!0,value:g})}if(a)return a;c.prototype.toString=function(){return this.g};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b}); ea("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=da[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&ba(d.prototype,a,{configurable:!0,writable:!0,value:function(){return fa(aa(this))}})}return a});function fa(a){a={next:a};a[Symbol.iterator]=function(){return this};return a} function ha(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}ea("Array.prototype.keys",function(a){return a?a:function(){return ha(this,function(b){return b})}});var ia=this||self; function h(a,b){function c(){}c.prototype=b.prototype;a.qa=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.wa=function(d,e,f){for(var g=Array(arguments.length-2),k=2;k<arguments.length;k++)g[k-2]=arguments[k];return b.prototype[e].apply(d,g)}};function l(a,b){null!=a&&this.g.apply(this,arguments)}l.prototype.h="";l.prototype.set=function(a){this.h=""+a};l.prototype.g=function(a,b,c){this.h+=String(a);if(null!=b)for(var d=1;d<arguments.length;d++)this.h+=arguments[d];return this};function n(a){a.h=""}l.prototype.toString=function(){return this.h};function ja(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};function ka(a){if(la!==la)throw Error("SafeUrl is not meant to be built directly");this.g=a}ka.prototype.toString=function(){return this.g.toString()};var la={};new ka("about:invalid#zClosurez");new ka("about:blank");var ma={};function na(){if(ma!==ma)throw Error("SafeStyle is not meant to be built directly");}na.prototype.toString=function(){return"".toString()};new na;var oa={};function pa(){if(oa!==oa)throw Error("SafeStyleSheet is not meant to be built directly");}pa.prototype.toString=function(){return"".toString()};new pa;var qa={};function ra(){var a=ia.trustedTypes&&ia.trustedTypes.emptyHTML||"";if(qa!==qa)throw Error("SafeHtml is not meant to be built directly");this.g=a}ra.prototype.toString=function(){return this.g.toString()};new ra;function sa(a,b){this.h=a;this.g={};for(a=0;a<b.length;a++){var c=b[a];this.g[c.g]=c}}function ta(a){a=ja(a.g);a.sort(function(b,c){return b.g-c.g});return a};function ua(a,b){this.g=a;this.l=!!b.ga;this.h=b.i;this.s=b.type;this.o=!1;switch(this.h){case va:case wa:case xa:case ya:case za:case Aa:case Ba:this.o=!0}this.j=b.defaultValue}var Ba=1,Aa=2,va=3,wa=4,xa=6,ya=16,za=18;function p(){this.u={};this.h=this.m().g;this.g=this.j=null}p.prototype.has=function(a){return q(this,a.g)};p.prototype.get=function(a,b){return r(this,a.g,b)};p.prototype.set=function(a,b){t(this,a.g,b)};p.prototype.add=function(a,b){Ca(this,a.g,b)}; function Da(a,b){for(var c=ta(a.m()),d=0;d<c.length;d++){var e=c[d],f=e.g;if(q(b,f)){a.g&&delete a.g[e.g];var g=11==e.h||10==e.h;if(e.l){e=u(b,f);for(var k=0;k<e.length;k++)Ca(a,f,g?e[k].clone():e[k])}else e=v(b,f),g?(g=v(a,f))?Da(g,e):t(a,f,e.clone()):t(a,f,e)}}}p.prototype.clone=function(){var a=new this.constructor;a!=this&&(a.u={},a.g&&(a.g={}),Da(a,this));return a};function q(a,b){return null!=a.u[b]} function v(a,b){var c=a.u[b];if(null==c)return null;if(a.j){if(!(b in a.g)){var d=a.j,e=a.h[b];if(null!=c)if(e.l){for(var f=[],g=0;g<c.length;g++)f[g]=d.h(e,c[g]);c=f}else c=d.h(e,c);return a.g[b]=c}return a.g[b]}return c}function r(a,b,c){var d=v(a,b);return a.h[b].l?d[c||0]:d}function w(a,b){if(q(a,b))a=r(a,b);else a:{a=a.h[b];if(void 0===a.j)if(b=a.s,b===Boolean)a.j=!1;else if(b===Number)a.j=0;else if(b===String)a.j=a.o?"0":"";else{a=new b;break a}a=a.j}return a} function u(a,b){return v(a,b)||[]}function x(a,b){return a.h[b].l?q(a,b)?a.u[b].length:0:q(a,b)?1:0}function t(a,b,c){a.u[b]=c;a.g&&(a.g[b]=c)}function Ca(a,b,c){a.u[b]||(a.u[b]=[]);a.u[b].push(c);a.g&&delete a.g[b]}function y(a,b){var c=[],d;for(d in b)0!=d&&c.push(new ua(d,b[d]));return new sa(a,c)};/* Protocol Buffer 2 Copyright 2008 Google Inc. All other code copyright its respective owners. Copyright (C) 2010 The Libphonenumber Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ function z(){p.call(this)}h(z,p);var Ea=null;function A(){p.call(this)}h(A,p);var Fa=null;function B(){p.call(this)}h(B,p);var Ga=null; z.prototype.m=function(){var a=Ea;a||(Ea=a=y(z,{0:{name:"NumberFormat",ka:"i18n.phonenumbers.NumberFormat"},1:{name:"pattern",required:!0,i:9,type:String},2:{name:"format",required:!0,i:9,type:String},3:{name:"leading_digits_pattern",ga:!0,i:9,type:String},4:{name:"national_prefix_formatting_rule",i:9,type:String},6:{name:"national_prefix_optional_when_formatting",i:8,defaultValue:!1,type:Boolean},5:{name:"domestic_carrier_code_formatting_rule",i:9,type:String}}));return a};z.m=z.prototype.m; A.prototype.m=function(){var a=Fa;a||(Fa=a=y(A,{0:{name:"PhoneNumberDesc",ka:"i18n.phonenumbers.PhoneNumberDesc"},2:{name:"national_number_pattern",i:9,type:String},9:{name:"possible_length",ga:!0,i:5,type:Number},10:{name:"possible_length_local_only",ga:!0,i:5,type:Number},6:{name:"example_number",i:9,type:String}}));return a};A.m=A.prototype.m; B.prototype.m=function(){var a=Ga;a||(Ga=a=y(B,{0:{name:"PhoneMetadata",ka:"i18n.phonenumbers.PhoneMetadata"},1:{name:"general_desc",i:11,type:A},2:{name:"fixed_line",i:11,type:A},3:{name:"mobile",i:11,type:A},4:{name:"toll_free",i:11,type:A},5:{name:"premium_rate",i:11,type:A},6:{name:"shared_cost",i:11,type:A},7:{name:"personal_number",i:11,type:A},8:{name:"voip",i:11,type:A},21:{name:"pager",i:11,type:A},25:{name:"uan",i:11,type:A},27:{name:"emergency",i:11,type:A},28:{name:"voicemail",i:11,type:A}, 29:{name:"short_code",i:11,type:A},30:{name:"standard_rate",i:11,type:A},31:{name:"carrier_specific",i:11,type:A},33:{name:"sms_services",i:11,type:A},24:{name:"no_international_dialling",i:11,type:A},9:{name:"id",required:!0,i:9,type:String},10:{name:"country_code",i:5,type:Number},11:{name:"international_prefix",i:9,type:String},17:{name:"preferred_international_prefix",i:9,type:String},12:{name:"national_prefix",i:9,type:String},13:{name:"preferred_extn_prefix",i:9,type:String},15:{name:"national_prefix_for_parsing", i:9,type:String},16:{name:"national_prefix_transform_rule",i:9,type:String},18:{name:"same_mobile_and_fixed_line_pattern",i:8,defaultValue:!1,type:Boolean},19:{name:"number_format",ga:!0,i:11,type:z},20:{name:"intl_number_format",ga:!0,i:11,type:z},22:{name:"main_country_for_code",i:8,defaultValue:!1,type:Boolean},23:{name:"leading_digits",i:9,type:String}}));return a};B.m=B.prototype.m;function Ha(){}Ha.prototype.g=function(a){new a.h;throw Error("Unimplemented");};Ha.prototype.h=function(a,b){if(11==a.h||10==a.h)return b instanceof p?b:this.g(a.s.prototype.m(),b);if(14==a.h)return"string"===typeof b&&Ia.test(b)&&(a=Number(b),0<a)?a:b;if(!a.o)return b;a=a.s;if(a===String){if("number"===typeof b)return String(b)}else if(a===Number&&"string"===typeof b&&("Infinity"===b||"-Infinity"===b||"NaN"===b||Ia.test(b)))return Number(b);return b};var Ia=/^-?[0-9]+$/;function Ja(){}h(Ja,Ha);Ja.prototype.g=function(a,b){a=new a.h;a.j=this;a.u=b;a.g={};return a};function C(){}h(C,Ja);C.prototype.h=function(a,b){return 8==a.h?!!b:Ha.prototype.h.apply(this,arguments)};C.prototype.g=function(a,b){return C.qa.g.call(this,a,b)};function D(){p.call(this)}h(D,p);var Ka=null,La={va:0,ua:1,ta:5,sa:10,ra:20}; D.prototype.m=function(){var a=Ka;a||(Ka=a=y(D,{0:{name:"PhoneNumber",ka:"i18n.phonenumbers.PhoneNumber"},1:{name:"country_code",required:!0,i:5,type:Number},2:{name:"national_number",required:!0,i:4,type:Number},3:{name:"extension",i:9,type:String},4:{name:"italian_leading_zero",i:8,type:Boolean},8:{name:"number_of_leading_zeros",i:5,defaultValue:1,type:Number},5:{name:"raw_input",i:9,type:String},6:{name:"country_code_source",i:14,defaultValue:0,type:La},7:{name:"preferred_domestic_carrier_code", i:9,type:String}}));return a};D.ctor=D;D.ctor.m=D.prototype.m;var E,Ma;function F(a){E=a.countryCodeToRegionCodeMap;Ma=a.countryToMetadata};/* Copyright (C) 2010 The Libphonenumber Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ function G(){this.g={}}G.g=void 0;G.h=function(){return G.g?G.g:G.g=new G}; var Na={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9"},Oa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6", 7:"7",8:"8",9:"9","+":"+","*":"*","#":"#"},Pa={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","\uff10":"0","\uff11":"1","\uff12":"2","\uff13":"3","\uff14":"4","\uff15":"5","\uff16":"6","\uff17":"7","\uff18":"8","\uff19":"9","\u0660":"0","\u0661":"1","\u0662":"2","\u0663":"3","\u0664":"4","\u0665":"5","\u0666":"6","\u0667":"7","\u0668":"8","\u0669":"9","\u06f0":"0","\u06f1":"1","\u06f2":"2","\u06f3":"3","\u06f4":"4","\u06f5":"5","\u06f6":"6","\u06f7":"7","\u06f8":"8","\u06f9":"9",A:"2", B:"2",C:"2",D:"3",E:"3",F:"3",G:"4",H:"4",I:"4",J:"5",K:"5",L:"5",M:"6",N:"6",O:"6",P:"7",Q:"7",R:"7",S:"7",T:"8",U:"8",V:"8",W:"9",X:"9",Y:"9",Z:"9"},Qa=RegExp("[+\uff0b]+"),H=RegExp("^[+\uff0b]+"),Ra=RegExp("([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])"),Sa=RegExp("[+\uff0b0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]"),Ta=/[\\\/] *x/,Ua=RegExp("[^0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9A-Za-z#]+$"),Va=/(?:.*?[A-Za-z]){3}.*/,Wa=RegExp("^\\+([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]|[\\-\\.\\(\\)]?)*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]|[\\-\\.\\(\\)]?)*$"), Xa=RegExp("^([A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]+((\\-)*[A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])*\\.)*[A-Za-z]+((\\-)*[A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9])*\\.?$");function I(a){return"([0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{1,"+a+"})"} function Ya(){return";ext="+I("20")+"|[ \u00a0\\t,]*(?:e?xt(?:ensi(?:o\u0301?|\u00f3))?n?|\uff45?\uff58\uff54\uff4e?|\u0434\u043e\u0431|anexo)[:\\.\uff0e]?[ \u00a0\\t,-]*"+(I("20")+"#?|[ \u00a0\\t,]*(?:[x\uff58#\uff03~\uff5e]|int|\uff49\uff4e\uff54)[:\\.\uff0e]?[ \u00a0\\t,-]*")+(I("9")+"#?|[- ]+")+(I("6")+"#|[ \u00a0\\t]*(?:,{2}|;)[:\\.\uff0e]?[ \u00a0\\t,-]*")+(I("15")+"#?|[ \u00a0\\t]*(?:,)+[:\\.\uff0e]?[ \u00a0\\t,-]*")+(I("9")+"#?")} var Za=new RegExp("(?:"+Ya()+")$","i"),$a=new RegExp("^[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]{2}$|^[+\uff0b]*(?:[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*]*[0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]){3,}[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e*A-Za-z0-9\uff10-\uff19\u0660-\u0669\u06f0-\u06f9]*(?:"+Ya()+")?$","i"),ab=/(\$\d)/, bb=/^\(?\$1\)?$/;function cb(a){return 2>a.length?!1:J($a,a)}function db(a){return J(Va,a)?eb(a,Pa):eb(a,Na)}function fb(a){var b=db(a.toString());n(a);a.g(b)}function gb(){return Object.keys(Ma).filter(function(a){return isNaN(a)})}function hb(a){return null!=a&&(1!=x(a,9)||-1!=u(a,9)[0])}function eb(a,b){for(var c=new l,d,e=a.length,f=0;f<e;++f)d=a.charAt(f),d=b[d.toUpperCase()],null!=d&&c.g(d);return c.toString()}function ib(a){return 0==a.length||bb.test(a)} function K(a){return null!=a&&isNaN(a)&&a.toUpperCase()in Ma} function jb(a,b){var c=L;if(0==r(a,2)&&q(a,5)){var d=w(a,5);if(0<d.length)return d}d=w(a,1);var e=N(a);if(0==b)return kb(d,0,e,"");if(!(d in E))return e;c=O(c,d,P(d));a=q(a,3)&&0!=r(a,3).length?3==b?";ext="+r(a,3):q(c,13)?r(c,13)+w(a,3):" ext. "+w(a,3):"";a:{c=0==u(c,20).length||2==b?u(c,19):u(c,20);for(var f,g=c.length,k=0;k<g;++k){f=c[k];var m=x(f,3);if(0==m||0==e.search(r(f,3,m-1)))if(m=new RegExp(r(f,1)),J(m,e)){c=f;break a}}c=null}null!=c&&(g=c,c=w(g,2),f=new RegExp(r(g,1)),w(g,5),g=w(g,4),e= 2==b&&null!=g&&0<g.length?e.replace(f,c.replace(ab,g)):e.replace(f,c),3==b&&(e=e.replace(RegExp("^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+"),""),e=e.replace(RegExp("[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]+","g"),"-")));return kb(d,b,e,a)}function O(a,b,c){return"001"==c?Q(a,""+b):Q(a,c)} function N(a){if(!q(a,2))return"";var b=""+r(a,2);return q(a,4)&&r(a,4)&&0<w(a,8)?Array(w(a,8)+1).join("0")+b:b}function kb(a,b,c,d){switch(b){case 0:return"+"+a+c+d;case 1:return"+"+a+" "+c+d;case 3:return"tel:+"+a+"-"+c+d;default:return c+d}} function lb(a,b){switch(b){case 4:return r(a,5);case 3:return r(a,4);case 1:return r(a,3);case 0:case 2:return r(a,2);case 5:return r(a,6);case 6:return r(a,8);case 7:return r(a,7);case 8:return r(a,21);case 9:return r(a,25);case 10:return r(a,28);default:return r(a,1)}}function mb(a,b){return R(a,r(b,1))?R(a,r(b,5))?4:R(a,r(b,4))?3:R(a,r(b,6))?5:R(a,r(b,8))?6:R(a,r(b,7))?7:R(a,r(b,21))?8:R(a,r(b,25))?9:R(a,r(b,28))?10:R(a,r(b,2))?r(b,18)||R(a,r(b,3))?2:0:!r(b,18)&&R(a,r(b,3))?1:-1:-1} function Q(a,b){if(null==b)return null;b=b.toUpperCase();var c=a.g[b];if(null==c){c=Ma[b];if(null==c)return null;c=(new C).g(B.m(),c);a.g[b]=c}return c}function R(a,b){var c=a.length;return 0<x(b,9)&&-1==u(b,9).indexOf(c)?!1:J(w(b,2),a)}function nb(a,b,c){var d=w(b,1),e=O(a,d,c);if(null==e||"001"!=c&&d!=S(a,c))return!1;a=N(b);return-1!=mb(a,e)} function ob(a,b){if(null==b)return null;var c=w(b,1);c=E[c];if(null==c)a=null;else if(1==c.length)a=c[0];else a:{b=N(b);for(var d,e=c.length,f=0;f<e;f++){d=c[f];var g=Q(a,d);if(q(g,23)){if(0==b.search(r(g,23))){a=d;break a}}else if(-1!=mb(b,g)){a=d;break a}}a=null}return a}function P(a){a=E[a];return null==a?"ZZ":a[0]}function S(a,b){a=Q(a,b);if(null==a)throw Error("Invalid region code: "+b);return w(a,10)} function pb(a,b,c,d){var e=lb(c,d),f=0==x(e,9)?u(r(c,1),9):u(e,9);e=u(e,10);if(2==d)if(hb(lb(c,0)))a=lb(c,1),hb(a)&&(f=f.concat(0==x(a,9)?u(r(c,1),9):u(a,9)),f.sort(),0==e.length?e=u(a,10):(e=e.concat(u(a,10)),e.sort()));else return pb(a,b,c,1);if(-1==f[0])return 5;b=b.length;if(-1<e.indexOf(b))return 4;c=f[0];return c==b?0:c>b?2:f[f.length-1]<b?3:-1<f.indexOf(b,1)?0:5}function qb(a){var b=N(a);a=w(a,1);a in E?(a=O(L,a,P(a)),b=pb(L,b,a,-1)):b=1;return b} function rb(a,b){a=a.toString();if(0==a.length||"0"==a.charAt(0))return 0;for(var c,d=a.length,e=1;3>=e&&e<=d;++e)if(c=parseInt(a.substring(0,e),10),c in E)return b.g(a.substring(e)),c;return 0} function sb(a,b,c,d,e){if(0==b.length)return 0;b=new l(b);var f;null!=c&&(f=r(c,11));null==f&&(f="NonMatch");var g=b.toString();if(0==g.length)f=20;else if(H.test(g))g=g.replace(H,""),n(b),b.g(db(g)),f=1;else{g=new RegExp(f);fb(b);f=b.toString();if(0==f.search(g)){g=f.match(g)[0].length;var k=f.substring(g).match(Ra);k&&null!=k[1]&&0<k[1].length&&"0"==eb(k[1],Na)?f=!1:(n(b),b.g(f.substring(g)),f=!0)}else f=!1;f=f?5:20}if(20!=f){if(2>=b.h.length)throw Error("Phone number too short after IDD");a=rb(b, d);if(0!=a)return t(e,1,a),a;throw Error("Invalid country calling code");}if(null!=c&&(f=w(c,10),g=""+f,k=b.toString(),0==k.lastIndexOf(g,0)&&(g=new l(k.substring(g.length)),k=r(c,1),k=new RegExp(w(k,2)),tb(g,c,null),g=g.toString(),!J(k,b.toString())&&J(k,g)||3==pb(a,b.toString(),c,-1))))return d.g(g),t(e,1,f),f;t(e,1,0);return 0} function tb(a,b,c){var d=a.toString(),e=d.length,f=r(b,15);if(0!=e&&null!=f&&0!=f.length){var g=new RegExp("^(?:"+f+")");if(e=g.exec(d)){f=new RegExp(w(r(b,1),2));var k=J(f,d),m=e.length-1;b=r(b,16);if(null==b||0==b.length||null==e[m]||0==e[m].length){if(!k||J(f,d.substring(e[0].length)))null!=c&&0<m&&null!=e[m]&&c.g(e[1]),a.set(d.substring(e[0].length))}else if(d=d.replace(g,b),!k||J(f,d))null!=c&&0<m&&c.g(e[1]),a.set(d)}}} function ub(a,b,c){if(null==b)throw Error("The string supplied did not seem to be a phone number");if(250<b.length)throw Error("The string supplied is too long to be a phone number");var d=new l;var e=b.indexOf(";phone-context=");if(-1===e)e=null;else if(e+=15,e>=b.length)e="";else{var f=b.indexOf(";",e);e=-1!==f?b.substring(e,f):b.substring(e)}var g=e;null==g?f=!0:0===g.length?f=!1:(f=Wa.exec(g),g=Xa.exec(g),f=null!==f||null!==g);if(!f)throw Error("The string supplied did not seem to be a phone number"); null!=e?("+"===e.charAt(0)&&d.g(e),e=b.indexOf("tel:"),d.g(b.substring(0<=e?e+4:0,b.indexOf(";phone-context=")))):(e=d.g,b=null!=b?b:"",f=b.search(Sa),0<=f?(b=b.substring(f),b=b.replace(Ua,""),f=b.search(Ta),0<=f&&(b=b.substring(0,f))):b="",e.call(d,b));b=d.toString();e=b.indexOf(";isub=");0<e&&(n(d),d.g(b.substring(0,e)));if(!cb(d.toString()))throw Error("The string supplied did not seem to be a phone number");b=d.toString();if(!(K(c)||null!=b&&0<b.length&&H.test(b)))throw Error("Invalid country calling code"); b=new D;a:{e=d.toString();f=e.search(Za);if(0<=f&&cb(e.substring(0,f))){g=e.match(Za);for(var k=g.length,m=1;m<k;++m)if(null!=g[m]&&0<g[m].length){n(d);d.g(e.substring(0,f));e=g[m];break a}}e=""}0<e.length&&t(b,3,e);f=Q(a,c);e=new l;g=0;k=d.toString();try{g=sb(a,k,f,e,b)}catch(M){if("Invalid country calling code"==M.message&&H.test(k)){if(k=k.replace(H,""),g=sb(a,k,f,e,b),0==g)throw M;}else throw M;}0!=g?(d=P(g),d!=c&&(f=O(a,g,d))):(fb(d),e.g(d.toString()),null!=c&&(g=w(f,10),t(b,1,g)));if(2>e.h.length)throw Error("The string supplied is too short to be a phone number"); null!=f&&(c=new l(e.toString()),tb(c,f,new l),a=pb(a,c.toString(),f,-1),2!=a&&4!=a&&5!=a&&(e=c));a=e.toString();c=a.length;if(2>c)throw Error("The string supplied is too short to be a phone number");if(17<c)throw Error("The string supplied is too long to be a phone number");if(1<a.length&&"0"==a.charAt(0)){t(b,4,!0);for(c=1;c<a.length-1&&"0"==a.charAt(c);)c++;1!=c&&t(b,8,c)}t(b,2,parseInt(a,10));return b} function J(a,b){return(a=b.match(new RegExp("^(?:"+("string"==typeof a?a:a.source)+")$","i")))&&a[0].length==b.length?!0:!1};function vb(a){this.ia=RegExp("\u2008");this.da="";this.aa=new l;this.ea="";this.o=new l;this.$=new l;this.v=!0;this.fa=this.ba=this.la=!1;this.na=G.h();this.oa=this.ma=this.ca=0;this.h=new l;this.ha=!1;this.s="";this.g=new l;this.j=[];this.ja=a;this.pa=this.l=wb(this,this.ja)}var xb=new B;t(xb,11,"NA"); var yb=RegExp("^[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]*\\$1[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]*(\\$\\d[-x\u2010-\u2015\u2212\u30fc\uff0d-\uff0f \u00a0\u00ad\u200b\u2060\u3000()\uff08\uff09\uff3b\uff3d.\\[\\]/~\u2053\u223c\uff5e]*)*$"),zb=/[- ]/;function wb(a,b){b=K(b)?S(a.na,b):0;a=Q(a.na,P(b));return null!=a?a:xb} function Ab(a){for(var b=a.j.length,c=0;c<b;++c){var d=a.j[c],e=w(d,1);if(a.ea==e)return!1;var f=a;var g=d,k=w(g,1);n(f.aa);var m=f;g=w(g,2);var M="999999999999999".match(k)[0];M.length<m.g.h.length?m="":(m=M.replace(new RegExp(k,"g"),g),m=m.replace(RegExp("9","g"),"\u2008"));0<m.length?(f.aa.g(m),f=!0):f=!1;if(f)return a.ea=e,a.ha=zb.test(r(d,4)),a.ca=0,!0}return a.v=!1} function Bb(a,b){for(var c=[],d=b.length-3,e=a.j.length,f=0;f<e;++f){var g=a.j[f];0==x(g,3)?c.push(a.j[f]):(g=r(g,3,Math.min(d,x(g,3)-1)),0==b.search(g)&&c.push(a.j[f]))}a.j=c} function Cb(a,b,c){a.o.g(b);c&&(a.ma=a.o.h.length);var d=b;Ra.test(d)||1==a.o.h.length&&Qa.test(d)?("+"==b?(d=b,a.$.g(b)):(d=Na[b],a.$.g(d),a.g.g(d)),c&&(a.oa=a.$.h.length),b=d):(a.v=!1,a.la=!0);if(!a.v){if(!a.la)if(Db(a)){if(Eb(a))return Fb(a)}else if(0<a.s.length&&(c=a.g.toString(),n(a.g),a.g.g(a.s),a.g.g(c),c=a.h.toString(),b=c.lastIndexOf(a.s),n(a.h),a.h.g(c.substring(0,b))),a.s!=Gb(a))return a.h.g(" "),Fb(a);return a.o.toString()}switch(a.$.h.length){case 0:case 1:case 2:return a.o.toString(); case 3:if(Db(a))a.fa=!0;else return a.s=Gb(a),Hb(a);default:if(a.fa)return Eb(a)&&(a.fa=!1),a.h.toString()+a.g.toString();if(0<a.j.length){c=Ib(a,b);b=Jb(a);if(0<b.length)return b;Bb(a,a.g.toString());return Ab(a)?Kb(a):a.v?Lb(a,c):a.o.toString()}return Hb(a)}}function Fb(a){a.v=!0;a.fa=!1;a.j=[];a.ca=0;n(a.aa);a.ea="";return Hb(a)} function Jb(a){for(var b=a.g.toString(),c=a.j.length,d=0;d<c;++d){var e=a.j[d],f=w(e,1);if((new RegExp("^(?:"+f+")$")).test(b)&&(a.ha=zb.test(r(e,4)),e=b.replace(new RegExp(f,"g"),r(e,2)),e=Lb(a,e),eb(e,Oa)==a.$))return e}return""}function Lb(a,b){var c=a.h.h.length;return a.ha&&0<c&&" "!=a.h.toString().charAt(c-1)?a.h+" "+b:a.h+b} function Hb(a){var b=a.g.toString();if(3<=b.length){for(var c=a.ba&&0==a.s.length&&0<x(a.l,20)?u(a.l,20):u(a.l,19),d=c.length,e=0;e<d;++e){var f=c[e];0<a.s.length&&ib(w(f,4))&&!r(f,6)&&!q(f,5)||(0!=a.s.length||a.ba||ib(w(f,4))||r(f,6))&&yb.test(w(f,2))&&a.j.push(f)}Bb(a,b);b=Jb(a);return 0<b.length?b:Ab(a)?Kb(a):a.o.toString()}return Lb(a,b)}function Kb(a){var b=a.g.toString(),c=b.length;if(0<c){for(var d="",e=0;e<c;e++)d=Ib(a,b.charAt(e));return a.v?Lb(a,d):a.o.toString()}return a.h.toString()} function Gb(a){var b=a.g.toString(),c=0;if(1!=r(a.l,10))var d=!1;else d=a.g.toString(),d="1"==d.charAt(0)&&"0"!=d.charAt(1)&&"1"!=d.charAt(1);d?(c=1,a.h.g("1").g(" "),a.ba=!0):q(a.l,15)&&(d=new RegExp("^(?:"+r(a.l,15)+")"),d=b.match(d),null!=d&&null!=d[0]&&0<d[0].length&&(a.ba=!0,c=d[0].length,a.h.g(b.substring(0,c))));n(a.g);a.g.g(b.substring(c));return b.substring(0,c)} function Db(a){var b=a.$.toString(),c=new RegExp("^(?:\\+|"+r(a.l,11)+")");c=b.match(c);return null!=c&&null!=c[0]&&0<c[0].length?(a.ba=!0,c=c[0].length,n(a.g),a.g.g(b.substring(c)),n(a.h),a.h.g(b.substring(0,c)),"+"!=b.charAt(0)&&a.h.g(" "),!0):!1}function Eb(a){if(0==a.g.h.length)return!1;var b=new l,c=rb(a.g,b);if(0==c)return!1;n(a.g);a.g.g(b.toString());b=P(c);"001"==b?a.l=Q(a.na,""+c):b!=a.ja&&(a.l=wb(a,b));a.h.g(""+c).g(" ");a.s="";return!0} function Ib(a,b){var c=a.aa.toString();if(0<=c.substring(a.ca).search(a.ia)){var d=c.search(a.ia);b=c.replace(a.ia,b);n(a.aa);a.aa.g(b);a.ca=d;return b.substring(0,a.ca+1)}1==a.j.length&&(a.v=!1);a.ea="";return a.o.toString()};var L=G.h(),Mb={e164:0,international:1,national:2,rfc3966:3},T={},Nb=(T["Invalid country calling code"]="PHONE_INVALID_COUNTRY_CODE",T["The string supplied is too short to be a phone number"]="PHONE_NUMBER_TOO_SHORT",T["The string supplied is too long to be a phone number"]="PHONE_NUMBER_TOO_LONG",T["The string supplied did not seem to be a phone number"]="PHONE_NOT_A_NUMBER",T["Phone number too short after IDD"]="PHONE_TOO_SHORT_AFTER_IDD",T),Ob={FIXED_LINE:0,MOBILE:1,FIXED_LINE_OR_MOBILE:2,TOLL_FREE:3, PREMIUM_RATE:4,SHARED_COST:5,VOIP:6,PERSONAL_NUMBER:7,PAGER:8,UAN:9,VOICEMAIL:10,UNKNOWN:-1},Pb=Object.keys(Ob).reduce(function(a,b){a[Ob[b]]=b;return a},{});function U(a){if(!Qb(a)||void 0===a.countryCode||void 0===a.nationalNumber||"string"!==typeof a.countryCode&&"number"!==typeof a.countryCode||"string"!==typeof a.nationalNumber&&"number"!==typeof a.nationalNumber||null!=a.extension&&"string"!==typeof a.extension&&"number"!==typeof a.extension)throw Error("Phone object conversion failed");} function Rb(a){if(!Qb(a))throw Error("Invalid metadata");var b=a.regionCodes;if(!b||!Array.isArray(b)||!b.length)throw Error("Invalid metadata");if(!Qb(a.countryCodeToRegionCodeMap)||!Qb(a.countryToMetadata))throw Error("Invalid metadata");}function Qb(a){return null!==a&&"[object Object]"===""+a&&a.constructor===Object}function V(a,b){if(-1===b.regionCodes.indexOf(a))throw Error("Metadata not loaded for region: "+a);} function Sb(a){if(null===a)return null;var b={countryCode:a.u[1].toString(),nationalNumber:a.u[2].toString()};if(q(a,4))for(var c=w(a,8),d=0;d<c;d++)b.nationalNumber="0"+b.nationalNumber;void 0!==a.u[3]&&(b.extension=a.u[3]);return b} function W(a){try{var b=new D,c=!1;t(b,1,Number(a.countryCode));var d=a.nationalNumber;if("string"===typeof d){for(var e=0;"0"===d.charAt(e);)c=!0,e++;c&&(t(b,4,!0),t(b,8,e));d=Number(d)}t(b,2,d);if(void 0!==a.extension&&null!==a.extension){var f=a.extension.toString();t(b,3,f)}return b}catch(g){throw Error("Phone object conversion failed: "+g.message);}} function Tb(a){Rb(a);return{getSupportedRegions:function(){F(a);return gb()},getCountryCodeForRegion:function(b){F(a);V(b,a);return K(b)?S(L,b):0},countryCodeToRegionCodeMap:function(){F(a);return E},inferPhoneNumberType:function(b){F(a);U(b);b=W(b);var c=L,d=ob(c,b);c=O(c,w(b,1),d);null==c?b=-1:(b=N(b),b=mb(b,c));return Pb[b]},inferPhoneNumberRegion:function(b){F(a);U(b);b=W(b);return ob(L,b)},formatPhoneNumber:function(b,c){F(a);U(b);b=W(b);c=c||{};var d=Mb[c.style];if(void 0===d)throw Error("Invalid style property: "+ c.style);return jb(b,d).toString()},validatePhoneNumber:function(b,c){F(a);U(b);if(void 0!==c){V(c,a);var d=K(c)?S(L,c):0;if(""+b.countryCode!==""+d)return Error("PHONE_INVALID_COUNTRY_CODE")}b=W(b);void 0===c?(c=L,d=ob(c,b),c=nb(c,b,d)):c=nb(L,b,c);if(c)return!0;b=qb(b);return Error(1===b?"PHONE_INVALID_COUNTRY_CODE":2===b?"PHONE_NUMBER_TOO_SHORT":3===b?"PHONE_NUMBER_TOO_LONG":5===b?"PHONE_NUMBER_INVALID_LENGTH":"PHONE_INVALID_FOR_REGION")},validateLength:function(b,c){F(a);U(b);if(void 0!==c){V(c, a);var d=K(c)?S(L,c):0;if(""+b.countryCode!==""+d)return Error("PHONE_INVALID_COUNTRY_CODE");var e={},f={};c={regionCodes:[c],countryCodeToRegionCodeMap:(e[d]=[c],e),countryToMetadata:(f[c]=a.countryToMetadata[c],f)};Rb(c);F(c)}b=W(b);b=qb(b);return 0===b?!0:Error(1===b?"PHONE_INVALID_COUNTRY_CODE":2===b?"PHONE_NUMBER_TOO_SHORT":3===b?"PHONE_NUMBER_TOO_LONG":5===b?"PHONE_NUMBER_INVALID_LENGTH":4===b?"PHONE_NUMBER_POSSIBLE_LOCAL_ONLY":"PHONE_INVALID_FOR_REGION")},parsePhoneNumber:function(b,c){F(a); void 0!==c&&V(c,a);try{var d=ub(L,b,c)}catch(e){return Error(Nb[e.message])}return Sb(d)},getExampleNumberForType:function(b,c){F(a);V(c,a);b=Ob[b];void 0===b&&(b=-1);a:{var d=b;b=L;if(K(c)){d=lb(Q(b,c),d);try{if(q(d,6)){var e=r(d,6);var f=ub(b,e,c);break a}}catch(g){}}f=null}return Sb(f)},getAsYouTypeFormatter:function(b){F(a);V(b,a);var c=new vb(b);return{inputDigit:function(d){c.da=Cb(c,d,!1);return c.da},clear:function(){c.da="";n(c.o);n(c.$);n(c.aa);c.ca=0;c.ea="";n(c.h);c.s="";n(c.g);c.v=!0; c.la=!1;c.oa=0;c.ma=0;c.ba=!1;c.fa=!1;c.j=[];c.ha=!1;c.l!=c.pa&&(c.l=wb(c,c.ja))},inputDigitAndRememberPosition:function(d){c.da=Cb(c,d,!0);return c.da},getRememberedPosition:function(){var d;if(c.v){for(var e=d=0,f=c.$.toString(),g=c.da.toString();d<c.oa&&e<g.length;)f.charAt(d)==g.charAt(e)&&d++,e++;d=e}else d=c.ma;return d}}}}}var X=["createPhoneHandler"],Y=ia;X[0]in Y||"undefined"==typeof Y.execScript||Y.execScript("var "+X[0]); for(var Z;X.length&&(Z=X.shift());)X.length||void 0===Tb?Y[Z]&&Y[Z]!==Object.prototype[Z]?Y=Y[Z]:Y=Y[Z]={}:Y[Z]=Tb;}).call(module.exports);