UNPKG

3.79 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js"],"names":["extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","number","country","callingCode","metadata","countryCallingCode","indexOf","Metadata","selectNumberingPlan","possibleShorterNumber","slice","length","possibleShorterNationalNumber","nationalNumber","nationalNumberPattern"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA;;;;;;;;;AASe,SAASA,+DAAT,CACdC,MADc,EAEdC,OAFc,EAGdC,WAHc,EAIdC,QAJc,EAKb;AACD,MAAMC,kBAAkB,GAAGH,OAAO,GAAG,uCAAsBA,OAAtB,EAA+BE,QAA/B,CAAH,GAA8CD,WAAhF;;AACA,MAAIF,MAAM,CAACK,OAAP,CAAeD,kBAAf,MAAuC,CAA3C,EAA8C;AAC7CD,IAAAA,QAAQ,GAAG,IAAIG,oBAAJ,CAAaH,QAAb,CAAX;AACAA,IAAAA,QAAQ,CAACI,mBAAT,CAA6BN,OAA7B,EAAsCC,WAAtC;AACA,QAAMM,qBAAqB,GAAGR,MAAM,CAACS,KAAP,CAAaL,kBAAkB,CAACM,MAAhC,CAA9B;;AAH6C,gCAMzC,uCACHF,qBADG,EAEHL,QAFG,CANyC;AAAA,QAK5BQ,6BAL4B,yBAK5CC,cAL4C;;AAAA,iCAYzC,uCACHZ,MADG,EAEHG,QAFG,CAZyC;AAAA,QAW5CS,cAX4C,0BAW5CA,cAX4C,EAgB7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,QAEE,CAAC,iCAAgBA,cAAhB,EAAgCT,QAAQ,CAACU,qBAAT,EAAhC,CAAD,IAEA,iCAAgBF,6BAAhB,EAA+CR,QAAQ,CAACU,qBAAT,EAA/C,CAHD,IAMA,mCAAkBD,cAAlB,EAAkCT,QAAlC,MAAgD,UAPjD,EAQE;AACD,aAAO;AACNC,QAAAA,kBAAkB,EAAlBA,kBADM;AAENJ,QAAAA,MAAM,EAAEQ;AAFF,OAAP;AAIA;AACD;;AACD,SAAO;AAAER,IAAAA,MAAM,EAANA;AAAF,GAAP;AACA","sourcesContent":["import Metadata from '../metadata'\r\nimport matchesEntirely from './matchesEntirely'\r\nimport extractNationalNumber from './extractNationalNumber'\r\nimport checkNumberLength from './checkNumberLength'\r\nimport getCountryCallingCode from '../getCountryCallingCode'\r\n\r\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\r\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(\r\n\tnumber,\r\n\tcountry,\r\n\tcallingCode,\r\n\tmetadata\r\n) {\r\n\tconst countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode\r\n\tif (number.indexOf(countryCallingCode) === 0) {\r\n\t\tmetadata = new Metadata(metadata)\r\n\t\tmetadata.selectNumberingPlan(country, callingCode)\r\n\t\tconst possibleShorterNumber = number.slice(countryCallingCode.length)\r\n\t\tconst {\r\n\t\t\tnationalNumber: possibleShorterNationalNumber,\r\n\t\t} = extractNationalNumber(\r\n\t\t\tpossibleShorterNumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\tconst {\r\n\t\t\tnationalNumber\r\n\t\t} = extractNationalNumber(\r\n\t\t\tnumber,\r\n\t\t\tmetadata\r\n\t\t)\r\n\t\t// If the number was not valid before but is valid now,\r\n\t\t// or if it was too long before, we consider the number\r\n\t\t// with the country calling code stripped to be a better result\r\n\t\t// and keep that instead.\r\n\t\t// For example, in Germany (+49), `49` is a valid area code,\r\n\t\t// so if a number starts with `49`, it could be both a valid\r\n\t\t// national German number or an international number without\r\n\t\t// a leading `+`.\r\n\t\tif (\r\n\t\t\t(\r\n\t\t\t\t!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t\t&&\r\n\t\t\t\tmatchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern())\r\n\t\t\t)\r\n\t\t\t||\r\n\t\t\tcheckNumberLength(nationalNumber, metadata) === 'TOO_LONG'\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tcountryCallingCode,\r\n\t\t\t\tnumber: possibleShorterNumber\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn { number }\r\n}"],"file":"extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js"}
\No newline at end of file