{"version":3,"sources":["webpack:///./node_modules/vcards-js/index.js","webpack:///./node_modules/vcards-js/lib/vCardFormatter.js","webpack:///./node_modules/path-browserify/index.js"],"names":["vCard","getPhoto","url","mediaType","base64","attachFromUrl","this","embedFromFile","fileLocation","fs","path","extname","toUpperCase","replace","imgData","readFileSync","toString","embedFromString","base64String","getMailingAddress","label","street","city","stateProvince","postalCode","countryRegion","getSocialUrls","uid","birthday","cellPhone","pagerPhone","email","workEmail","firstName","formattedName","gender","homeAddress","homePhone","homeFax","lastName","logo","middleName","namePrefix","nameSuffix","nickname","note","organization","photo","role","socialUrls","source","title","workUrl","workAddress","workPhone","workFax","version","getMajorVersion","majorVersionString","split","isNaN","parseInt","getFormattedString","vCardFormatter","saveToFile","filename","contents","writeFileSync","encoding","module","exports","majorVersion","e","value","nl","getFormattedPhoto","photoType","params","formattedPhoto","getFormattedAddress","encodingPrefix","address","formattedAddress","details","type","YYYYMMDD","date","getFullYear","getMonth","slice","getDate","formattedVCardString","forEach","name","anniversary","Array","isArray","otherEmail","number","otherPhone","key","hasOwnProperty","Date","toISOString","isOrganization","normalizeArray","parts","allowAboveRoot","up","i","length","last","splice","unshift","basename","start","end","matchedSlash","charCodeAt","filter","xs","f","res","push","resolve","resolvedPath","resolvedAbsolute","arguments","process","cwd","TypeError","charAt","p","join","normalize","isAbsolute","trailingSlash","substr","paths","prototype","call","index","relative","from","to","trim","arr","fromParts","toParts","Math","min","samePartsLength","outputParts","concat","sep","delimiter","dirname","code","hasRoot","ext","startDot","startPart","preDotState","str","len"],"mappings":"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","file":"js/chunk-vendors~f9ca8911.f8486896.js","sourcesContent":["/********************************************************************************\n vCards-js, Eric J Nesser, November 2014\n********************************************************************************/\n/*jslint node: true */\n'use strict';\n\n/**\n * Represents a contact that can be imported into Outlook, iOS, Mac OS, Android devices, and more\n */\nvar vCard = (function () {\n /**\n * Get photo object for storing photos in vCards\n */\n function getPhoto() {\n return {\n url: '',\n mediaType: '',\n base64: false,\n\n /**\n * Attach a photo from a URL\n * @param {string} url URL where photo can be found\n * @param {string} mediaType Media type of photo (JPEG, PNG, GIF)\n */\n attachFromUrl: function(url, mediaType) {\n this.url = url;\n this.mediaType = mediaType;\n this.base64 = false;\n },\n\n /**\n * Embed a photo from a file using base-64 encoding (not implemented yet)\n * @param {string} filename\n */\n embedFromFile: function(fileLocation) {\n var fs = require('fs');\n var path = require('path');\n this.mediaType = path.extname(fileLocation).toUpperCase().replace(/\\./g, \"\");\n var imgData = fs.readFileSync(fileLocation);\n this.url = imgData.toString('base64');\n this.base64 = true;\n },\n\n /**\n * Embed a photo from a base-64 string\n * @param {string} base64String\n */\n embedFromString: function(base64String, mediaType) {\n this.mediaType = mediaType;\n this.url = base64String;\n this.base64 = true;\n }\n };\n }\n\n /**\n * Get a mailing address to attach to a vCard.\n */\n function getMailingAddress() {\n return {\n /**\n * Represents the actual text that should be put on the mailing label when delivering a physical package\n * @type {String}\n */\n label: '',\n\n /**\n * Street address\n * @type {String}\n */\n street: '',\n\n /**\n * City\n * @type {String}\n */\n city: '',\n\n /**\n * State or province\n * @type {String}\n */\n stateProvince: '',\n\n /**\n * Postal code\n * @type {String}\n */\n postalCode: '',\n\n /**\n * Country or region\n * @type {String}\n */\n countryRegion: ''\n };\n }\n\n /**\n * Get social media URLs\n * @return {object} Social media URL hash group\n */\n function getSocialUrls() {\n return {\n 'facebook': '',\n 'linkedIn': '',\n 'twitter': '',\n 'flickr': ''\n };\n }\n\n /********************************************************************************\n * Public interface for vCard\n ********************************************************************************/\n return {\n\n /**\n * Specifies a value that represents a persistent, globally unique identifier associated with the vCard\n * @type {String}\n */\n uid: '',\n\n /**\n * Date of birth\n * @type {Datetime}\n */\n birthday: '',\n\n /**\n * Cell phone number\n * @type {String}\n */\n cellPhone: '',\n\n /**\n * Other cell phone number or pager\n * @type {String}\n */\n pagerPhone: '',\n\n /**\n * The address for private electronic mail communication\n * @type {String}\n */\n email: '',\n\n /**\n * The address for work-related electronic mail communication\n * @type {String}\n */\n workEmail: '',\n\n /**\n * First name\n * @type {String}\n */\n firstName: '',\n\n /**\n * Formatted name string associated with the vCard object (will automatically populate if not set)\n * @type {String}\n */\n formattedName: '',\n\n /**\n * Gender.\n * @type {String} Must be M or F for Male or Female\n */\n gender: '',\n\n /**\n * Home mailing address\n * @type {object}\n */\n homeAddress: getMailingAddress(),\n\n /**\n * Home phone\n * @type {String}\n */\n homePhone: '',\n\n /**\n * Home facsimile\n * @type {String}\n */\n homeFax: '',\n\n /**\n * Last name\n * @type {String}\n */\n lastName: '',\n\n /**\n * Logo\n * @type {object}\n */\n logo: getPhoto(),\n\n /**\n * Middle name\n * @type {String}\n */\n middleName: '',\n\n /**\n * Prefix for individual's name\n * @type {String}\n */\n namePrefix: '',\n\n /**\n * Suffix for individual's name\n * @type {String}\n */\n nameSuffix: '',\n\n /**\n * Nickname of individual\n * @type {String}\n */\n nickname: '',\n\n /**\n * Specifies supplemental information or a comment that is associated with the vCard\n * @type {String}\n */\n note: '',\n\n /**\n * The name and optionally the unit(s) of the organization associated with the vCard object\n * @type {String}\n */\n organization: '',\n\n /**\n * Individual's photo\n * @type {object}\n */\n photo: getPhoto(),\n\n /**\n * The role, occupation, or business category of the vCard object within an organization\n * @type {String}\n */\n role: '',\n\n /**\n * Social URLs attached to the vCard object (ex: Facebook, Twitter, LinkedIn)\n * @type {String}\n */\n socialUrls: getSocialUrls(),\n\n /**\n * A URL that can be used to get the latest version of this vCard\n * @type {String}\n */\n source: '',\n\n /**\n * Specifies the job title, functional position or function of the individual within an organization\n * @type {String}\n */\n title: '',\n\n /**\n * URL pointing to a website that represents the person in some way\n * @type {String}\n */\n url: '',\n\n /**\n * URL pointing to a website that represents the person's work in some way\n * @type {String}\n */\n workUrl: '',\n\n /**\n * Work mailing address\n * @type {object}\n */\n workAddress: getMailingAddress(),\n\n /**\n * Work phone\n * @type {String}\n */\n workPhone: '',\n\n /**\n * Work facsimile\n * @type {String}\n */\n workFax: '',\n\n /**\n * vCard version\n * @type {String}\n */\n version: '3.0',\n\n /**\n * Get major version of the vCard format\n * @return {integer}\n */\n getMajorVersion: function() {\n var majorVersionString = this.version ? this.version.split('.')[0] : '4';\n if (!isNaN(majorVersionString)) {\n return parseInt(majorVersionString);\n }\n return 4;\n },\n\n /**\n * Get formatted vCard\n * @return {String} Formatted vCard in VCF format\n */\n getFormattedString: function() {\n var vCardFormatter = require('./lib/vCardFormatter');\n return vCardFormatter.getFormattedString(this);\n },\n\n /**\n * Save formatted vCard to file\n * @param {String} filename\n */\n saveToFile: function(filename) {\n var vCardFormatter = require('./lib/vCardFormatter');\n var contents = vCardFormatter.getFormattedString(this);\n\n var fs = require('fs');\n fs.writeFileSync(filename, contents, { encoding: 'utf8' });\n }\n };\n});\n\nmodule.exports = vCard;\n","/********************************************************************************\n vCards-js, Eric J Nesser, November 2014,\n ********************************************************************************/\n/*jslint node: true */\n'use strict';\n\n/**\n * vCard formatter for formatting vCards in VCF format\n */\n(function vCardFormatter() {\n\tvar majorVersion = '3';\n\n\t/**\n\t * Encode string\n\t * @param {String} value to encode\n\t * @return {String} encoded string\n\t */\n\tfunction e(value) {\n\t\tif (value) {\n\t\t\tif (typeof(value) !== 'string') {\n\t\t\t\tvalue = '' + value;\n\t\t\t}\n\t\t\treturn value.replace(/\\n/g, '\\\\n').replace(/,/g, '\\\\,').replace(/;/g, '\\\\;');\n\t\t}\n\t\treturn '';\n\t}\n\n\t/**\n\t * Return new line characters\n\t * @return {String} new line characters\n\t */\n\tfunction nl() {\n\t\treturn '\\r\\n';\n\t}\n\n\t/**\n\t * Get formatted photo\n\t * @param {String} photoType Photo type (PHOTO, LOGO)\n\t * @param {String} url URL to attach photo from\n\t * @param {String} mediaType Media-type of photo (JPEG, PNG, GIF)\n\t * @return {String} Formatted photo\n\t */\n\tfunction getFormattedPhoto(photoType, url, mediaType, base64) {\n\n\t\tvar params;\n\n\t\tif (majorVersion >= 4) {\n\t\t\tparams = base64 ? ';ENCODING=b;MEDIATYPE=image/' : ';MEDIATYPE=image/';\n\t\t} else if (majorVersion === 3) {\n\t\t\tparams = base64 ? ';ENCODING=b;TYPE=' : ';TYPE=';\n\t\t} else {\n\t\t\tparams = base64 ? ';ENCODING=BASE64;' : ';';\n\t\t}\n\n\t\tvar formattedPhoto = photoType + params + mediaType + ':' + e(url) + nl();\n\t\treturn formattedPhoto;\n\t}\n\n\t/**\n\t * Get formatted address\n\t * @param {object} address\n\t * @param {object} encoding prefix\n\t * @return {String} Formatted address\n\t */\n\tfunction getFormattedAddress(encodingPrefix, address) {\n\n\t\tvar formattedAddress = '';\n\n\t\tif (address.details.label ||\n\t\t\taddress.details.street ||\n\t\t\taddress.details.city ||\n\t\t\taddress.details.stateProvince ||\n\t\t\taddress.details.postalCode ||\n\t\t\taddress.details.countryRegion) {\n\n\t\t\tif (majorVersion >= 4) {\n\t\t\t\tformattedAddress = 'ADR' + encodingPrefix + ';TYPE=' + address.type +\n\t\t\t\t\t(address.details.label ? ';LABEL=\"' + e(address.details.label) + '\"' : '') + ':;;' +\n\t\t\t\t\te(address.details.street) + ';' +\n\t\t\t\t\te(address.details.city) + ';' +\n\t\t\t\t\te(address.details.stateProvince) + ';' +\n\t\t\t\t\te(address.details.postalCode) + ';' +\n\t\t\t\t\te(address.details.countryRegion) + nl();\n\t\t\t} else {\n\t\t\t\tif (address.details.label) {\n\t\t\t\t\tformattedAddress = 'LABEL' + encodingPrefix + ';TYPE=' + address.type + ':' + e(address.details.label) + nl();\n\t\t\t\t}\n\t\t\t\tformattedAddress += 'ADR' + encodingPrefix + ';TYPE=' + address.type + ':;;' +\n\t\t\t\t\te(address.details.street) + ';' +\n\t\t\t\t\te(address.details.city) + ';' +\n\t\t\t\t\te(address.details.stateProvince) + ';' +\n\t\t\t\t\te(address.details.postalCode) + ';' +\n\t\t\t\t\te(address.details.countryRegion) + nl();\n\n\t\t\t}\n\t\t}\n\n\t\treturn formattedAddress;\n\t}\n\n\t/**\n\t * Convert date to YYYYMMDD format\n\t * @param {Date} date to encode\n\t * @return {String} encoded date\n\t */\n\tfunction YYYYMMDD(date) {\n\t\treturn date.getFullYear() + ('0' + (date.getMonth()+1)).slice(-2) + ('0' + date.getDate()).slice(-2);\n\t}\n\n\tmodule.exports = {\n\n\t\t/**\n\t\t * Get formatted vCard in VCF format\n\t\t * @param {object} vCard object\n\t\t * @return {String} Formatted vCard in VCF format\n\t\t */\n\t\tgetFormattedString: function(vCard) {\n\n\t\t\tmajorVersion = vCard.getMajorVersion();\n\n\t\t\tvar formattedVCardString = '';\n\t\t\tformattedVCardString += 'BEGIN:VCARD' + nl();\n\t\t\tformattedVCardString += 'VERSION:' + vCard.version + nl();\n\n\t\t\tvar encodingPrefix = majorVersion >= 4 ? '' : ';CHARSET=UTF-8';\n\t\t\tvar formattedName = vCard.formattedName;\n\n\t\t\tif (!formattedName) {\n\t\t\t\tformattedName = '';\n\n\t\t\t\t[vCard.firstName, vCard.middleName, vCard.lastName]\n\t\t\t\t\t.forEach(function(name) {\n\t\t\t\t\t\tif (name) {\n\t\t\t\t\t\t\tif (formattedName) {\n\t\t\t\t\t\t\t\tformattedName += ' ';\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tformattedName += name;\n\t\t\t\t\t});\n\t\t\t}\n\n\t\t\tformattedVCardString += 'FN' + encodingPrefix + ':' + e(formattedName) + nl();\n\t\t\tformattedVCardString += 'N' + encodingPrefix + ':' +\n\t\t\t\te(vCard.lastName) + ';' +\n\t\t\t\te(vCard.firstName) + ';' +\n\t\t\t\te(vCard.middleName) + ';' +\n\t\t\t\te(vCard.namePrefix) + ';' +\n\t\t\t\te(vCard.nameSuffix) + nl();\n\n\t\t\tif (vCard.nickname && majorVersion >= 3) {\n\t\t\t\tformattedVCardString += 'NICKNAME' + encodingPrefix + ':' + e(vCard.nickname) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.gender) {\n\t\t\t\tformattedVCardString += 'GENDER:' + e(vCard.gender) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.uid) {\n\t\t\t\tformattedVCardString += 'UID' + encodingPrefix + ':' + e(vCard.uid) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.birthday) {\n\t\t\t\tformattedVCardString += 'BDAY:' + YYYYMMDD(vCard.birthday) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.anniversary) {\n\t\t\t\tformattedVCardString += 'ANNIVERSARY:' + YYYYMMDD(vCard.anniversary) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.email) {\n\t\t\t\tif(!Array.isArray(vCard.email)){\n\t\t\t\t\tvCard.email = [vCard.email];\n\t\t\t\t}\n\t\t\t\tvCard.email.forEach(\n\t\t\t\t\tfunction(address) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=HOME:' + e(address) + nl();\n\t\t\t\t\t\t} else if (majorVersion >= 3 && majorVersion < 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=HOME,INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';HOME;INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.workEmail) {\n\t\t\t\tif(!Array.isArray(vCard.workEmail)){\n\t\t\t\t\tvCard.workEmail = [vCard.workEmail];\n\t\t\t\t}\n\t\t\t\tvCard.workEmail.forEach(\n\t\t\t\t\tfunction(address) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=WORK:' + e(address) + nl();\n\t\t\t\t\t\t} else if (majorVersion >= 3 && majorVersion < 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=WORK,INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';WORK;INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.otherEmail) {\n\t\t\t\tif(!Array.isArray(vCard.otherEmail)){\n\t\t\t\t\tvCard.otherEmail = [vCard.otherEmail];\n\t\t\t\t}\n\t\t\t\tvCard.otherEmail.forEach(\n\t\t\t\t\tfunction(address) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=OTHER:' + e(address) + nl();\n\t\t\t\t\t\t} else if (majorVersion >= 3 && majorVersion < 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';type=OTHER,INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'EMAIL' + encodingPrefix + ';OTHER;INTERNET:' + e(address) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.logo.url) {\n\t\t\t\tformattedVCardString += getFormattedPhoto('LOGO', vCard.logo.url, vCard.logo.mediaType, vCard.logo.base64);\n\t\t\t}\n\n\t\t\tif (vCard.photo.url) {\n\t\t\t\tformattedVCardString += getFormattedPhoto('PHOTO', vCard.photo.url, vCard.photo.mediaType, vCard.photo.base64);\n\t\t\t}\n\n\t\t\tif (vCard.cellPhone) {\n\t\t\t\tif(!Array.isArray(vCard.cellPhone)){\n\t\t\t\t\tvCard.cellPhone = [vCard.cellPhone];\n\t\t\t\t}\n\t\t\t\tvCard.cellPhone.forEach(\n\t\t\t\t\tfunction(number){\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"voice,cell\":tel:' + e(number) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=CELL:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.pagerPhone) {\n\t\t\t\tif(!Array.isArray(vCard.pagerPhone)){\n\t\t\t\t\tvCard.pagerPhone = [vCard.pagerPhone];\n\t\t\t\t}\n\t\t\t\tvCard.pagerPhone.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"pager,cell\":tel:' + e(number) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=PAGER:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.homePhone) {\n\t\t\t\tif(!Array.isArray(vCard.homePhone)){\n\t\t\t\t\tvCard.homePhone = [vCard.homePhone];\n\t\t\t\t}\n\t\t\t\tvCard.homePhone.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"voice,home\":tel:' + e(number) + nl();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=HOME,VOICE:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.workPhone) {\n\t\t\t\tif(!Array.isArray(vCard.workPhone)){\n\t\t\t\t\tvCard.workPhone = [vCard.workPhone];\n\t\t\t\t}\n\t\t\t\tvCard.workPhone.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"voice,work\":tel:' + e(number) + nl();\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=WORK,VOICE:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.homeFax) {\n\t\t\t\tif(!Array.isArray(vCard.homeFax)){\n\t\t\t\t\tvCard.homeFax = [vCard.homeFax];\n\t\t\t\t}\n\t\t\t\tvCard.homeFax.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"fax,home\":tel:' + e(number) + nl();\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=HOME,FAX:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.workFax) {\n\t\t\t\tif(!Array.isArray(vCard.workFax)){\n\t\t\t\t\tvCard.workFax = [vCard.workFax];\n\t\t\t\t}\n\t\t\t\tvCard.workFax.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"fax,work\":tel:' + e(number) + nl();\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=WORK,FAX:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (vCard.otherPhone) {\n\t\t\t\tif(!Array.isArray(vCard.otherPhone)){\n\t\t\t\t\tvCard.otherPhone = [vCard.otherPhone];\n\t\t\t\t}\n\t\t\t\tvCard.otherPhone.forEach(\n\t\t\t\t\tfunction(number) {\n\t\t\t\t\t\tif (majorVersion >= 4) {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;VALUE=uri;TYPE=\"voice,other\":tel:' + e(number) + nl();\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tformattedVCardString += 'TEL;TYPE=OTHER:' + e(number) + nl();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t[{\n\t\t\t\tdetails: vCard.homeAddress,\n\t\t\t\ttype: 'HOME'\n\t\t\t}, {\n\t\t\t\tdetails: vCard.workAddress,\n\t\t\t\ttype: 'WORK'\n\t\t\t}].forEach(\n\t\t\t\tfunction(address) {\n\t\t\t\t\tformattedVCardString += getFormattedAddress(encodingPrefix, address);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif (vCard.title) {\n\t\t\t\tformattedVCardString += 'TITLE' + encodingPrefix + ':' + e(vCard.title) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.role) {\n\t\t\t\tformattedVCardString += 'ROLE' + encodingPrefix + ':' + e(vCard.role) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.organization) {\n\t\t\t\tformattedVCardString += 'ORG' + encodingPrefix + ':' + e(vCard.organization) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.url) {\n\t\t\t\tformattedVCardString += 'URL' + encodingPrefix + ':' + e(vCard.url) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.workUrl) {\n\t\t\t\tformattedVCardString += 'URL;type=WORK' + encodingPrefix + ':' + e(vCard.workUrl) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.note) {\n\t\t\t\tformattedVCardString += 'NOTE' + encodingPrefix + ':' + e(vCard.note) + nl();\n\t\t\t}\n\n\t\t\tif (vCard.socialUrls) {\n\t\t\t\tfor (var key in vCard.socialUrls) {\n\t\t\t\t\tif (vCard.socialUrls.hasOwnProperty(key) &&\n\t\t\t\t\t\tvCard.socialUrls[key]) {\n\t\t\t\t\t\tformattedVCardString += 'X-SOCIALPROFILE' + encodingPrefix + ';TYPE=' + key + ':' + e(vCard.socialUrls[key]) + nl();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (vCard.source) {\n\t\t\t\tformattedVCardString += 'SOURCE' + encodingPrefix + ':' + e(vCard.source) + nl();\n\t\t\t}\n\n\t\t\tformattedVCardString += 'REV:' + (new Date()).toISOString() + nl();\n\t\t\t\n\t\t\tif (vCard.isOrganization) {\n\t\t\t\tformattedVCardString += 'X-ABShowAs:COMPANY' + nl();\n\t\t\t} \n\t\t\t\n\t\t\tformattedVCardString += 'END:VCARD' + nl();\n\t\t\treturn formattedVCardString;\n\t\t}\n\t};\n})();","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n"],"sourceRoot":""}