{"version":3,"file":"ngx-vcard.mjs","sources":["../../../projects/ngx-vcard/src/lib/types/vCardEncoding.ts","../../../projects/ngx-vcard/src/lib/helpers.ts","../../../projects/ngx-vcard/src/lib/types/parameter/BasicPropertyParameters.type.ts","../../../projects/ngx-vcard/src/lib/ngx-vcard.formatter.ts","../../../projects/ngx-vcard/src/lib/download-vcard.directive.ts","../../../projects/ngx-vcard/src/lib/ngx-vcard.module.ts","../../../projects/ngx-vcard/src/public_api.ts","../../../projects/ngx-vcard/src/ngx-vcard.ts"],"sourcesContent":["export enum VCardEncoding {\n  none = '',\n  utf8 = ';CHARSET=utf-8',\n}\n","/**\n * Encodes string\n */\nexport function e(value: string | undefined): string {\n  if (value) {\n    if (typeof value !== 'string') {\n      value = '' + value;\n    }\n\n    return (\n      value\n        // From https://datatracker.ietf.org/doc/html/rfc6350\n        //  Some properties may contain one or more values delimited by a COMMA\n        //  character (U+002C).  Therefore, a COMMA character in a value MUST be\n        //  escaped with a BACKSLASH character (U+005C), even for properties that\n        //  don't allow multiple instances (for consistency).\n        .replace(/,/g, ',')\n\n        //  Some properties (e.g., N and ADR) comprise multiple fields delimited\n        //  by a SEMICOLON character (U+003B).  Therefore, a SEMICOLON in a field\n        //  of such a \"compound\" property MUST be escaped with a BACKSLASH\n        //  character.  SEMICOLON characters in non-compound properties MAY be\n        //  escaped.  On input, an escaped SEMICOLON character is never a field\n        //  separator.  An unescaped SEMICOLON character may be a field\n        //  separator, depending on the property in which it appears.\n        .replace(/;/g, ';')\n\n        //  Finally, BACKSLASH characters in values MUST be escaped with a\n        //  BACKSLASH character.\n\n        .replace(/\\\\/g, '\\\\\\\\')\n\n        // NEWLINE (U+000A) characters in values MUST be\n        //  encoded by two characters: a BACKSLASH followed by either an 'n'\n        //  (U+006E) or an 'N' (U+004E).\n        .replace(/\\n/g, '\\\\n')\n\n      //  In all other cases, escaping MUST NOT be used.\n    );\n  }\n  return '';\n}\n\n/**\n * Return new line characters\n */\nexport function nl(): string {\n  return '\\n';\n}\n","import { Address } from '../vCard';\nimport { e } from '../../helpers';\n\n/**\n * A property can have attributes associated with it.\n * These \"property parameters\" contain meta-information about the property or the property value.\n * @link https://tools.ietf.org/html/rfc6350#section-5\n */\nexport interface BasicPropertyParameters {\n  /**\n   * The LANGUAGE property parameter is used to identify data in multiple languages.\n   * @kind Property: LANGUAGE\n   * @link https://tools.ietf.org/html/rfc6350#section-5.1\n   *\n   */\n  language?: string;\n  /**\n   * The VALUE parameter is OPTIONAL, used to identify the value type (data type) and format of the value.\n   * @kind Property: VALUE\n   * @link https://tools.ietf.org/html/rfc6350#section-5.2\n   */\n  value?:\n    | 'text'\n    | 'uri'\n    | 'date'\n    | 'time'\n    | 'date-time'\n    | 'date-and-or-time'\n    | 'timestamp'\n    | 'boolean'\n    | 'integer'\n    | 'float'\n    | 'utc-offset'\n    | 'language-tag';\n  /**\n   * The PREF parameter is OPTIONAL and is used to indicate that the corresponding instance of a property is preferred by the vCard author.\n   * Its value MUST be an integer between 1 and 100 that quantifies the level of preference.\n   * Lower values correspond to a higher level of preference, with 1 being most preferred.\n   * @kind Property: PREF\n   * @link https://tools.ietf.org/html/rfc6350#section-5.3\n   */\n  pref?:\n    | 1\n    | 2\n    | 3\n    | 4\n    | 5\n    | 6\n    | 7\n    | 8\n    | 9\n    | 10\n    | 11\n    | 12\n    | 13\n    | 14\n    | 15\n    | 16\n    | 17\n    | 18\n    | 19\n    | 20\n    | 21\n    | 22\n    | 23\n    | 24\n    | 25\n    | 26\n    | 27\n    | 28\n    | 29\n    | 30\n    | 31\n    | 32\n    | 33\n    | 34\n    | 35\n    | 36\n    | 37\n    | 38\n    | 39\n    | 40\n    | 41\n    | 42\n    | 43\n    | 44\n    | 45\n    | 46\n    | 47\n    | 48\n    | 49\n    | 50\n    | 51\n    | 52\n    | 53\n    | 54\n    | 55\n    | 56\n    | 57\n    | 58\n    | 59\n    | 60\n    | 61\n    | 62\n    | 63\n    | 64\n    | 65\n    | 66\n    | 67\n    | 68\n    | 69\n    | 70\n    | 71\n    | 72\n    | 73\n    | 74\n    | 75\n    | 76\n    | 77\n    | 78\n    | 79\n    | 80\n    | 81\n    | 82\n    | 83\n    | 84\n    | 85\n    | 86\n    | 87\n    | 88\n    | 89\n    | 90\n    | 91\n    | 92\n    | 93\n    | 94\n    | 95\n    | 96\n    | 97\n    | 98\n    | 99\n    | 100;\n  /**\n   * The ALTID parameter is used to \"tag\" property instances as being alternative representations of the same logical property.\n   * For example, translations of a property in multiple languages generates multiple property instances\n   * having different LANGUAGE parameter that are tagged with the same ALTID value.\n   * @kind Property: ALTID\n   * @link https://tools.ietf.org/html/rfc6350#section-5.4\n   */\n  altid?: string;\n  /**\n   * The PID parameter is used to identify a specific property among multiple instances.\n   * @kind Property: PID\n   * @link https://tools.ietf.org/html/rfc6350#section-5.5\n   */\n  pid?: string[];\n  /**\n   * The TYPE parameter has multiple, different uses.\n   * In general, it is a way of specifying class characteristics of the associated property.\n   * @kind Property: TYPE\n   * @link https://tools.ietf.org/html/rfc6350#section-5.6\n   */\n  type?:\n    | Array<\n        | 'work'\n        | 'home'\n        | 'text'\n        | 'voice'\n        | 'fax'\n        | 'cell'\n        | 'video'\n        | 'pager'\n        | 'textphone'\n      >\n    | 'work'\n    | 'home'\n    | 'text'\n    | 'voice'\n    | 'fax'\n    | 'cell'\n    | 'video'\n    | 'pager'\n    | 'textphone';\n  /**\n   * The MEDIATYPE parameter is used with properties whose value is a URI.\n   * @kind Property: MEDIATYPE\n   * @link https://tools.ietf.org/html/rfc6350#section-5.7\n   */\n  mediatype?: string;\n  /**\n   * The CALSCALE parameter is used to define the calendar system in which a date or date-time value is expressed.\n   * @kind Property: CALSCALE\n   * @link https://tools.ietf.org/html/rfc6350#section-5.8\n   */\n  calscale?: 'gregorian';\n  /**\n   * The \"sort-as\" parameter is used to specify the string to be used for national-language-specific sorting.\n   * Without this information, sorting algorithms could incorrectly sort this vCard within a sequence of sorted vCards.\n   * @kind Property: SORT-AS\n   * @link https://tools.ietf.org/html/rfc6350#section-5.9\n   */\n  sortas?: string[];\n  /**\n   * The GEO parameter can be used to indicate global positioning information that is specific to an address.\n   * @kind Property: GEO\n   * @link https://tools.ietf.org/html/rfc6350#section-5.10\n   */\n  geo?: string;\n  /**\n   * The TZ parameter can be used to indicate time zone information that is specific to an address.\n   * @kind Property: TZ\n   * @link https://tools.ietf.org/html/rfc6350#section-5.11\n   */\n  timezone?: string;\n}\n\nexport function propertyToVCardString(\n  property: BasicPropertyParameters,\n): string {\n  let str = '';\n  if (property.language) {\n    str += ';LANGUAGE=' + e(property.language);\n  }\n  if (property.value) {\n    str += ';VALUE=' + e(property.value);\n  }\n  if (property.altid) {\n    str += ';ALTID=' + e(property.altid);\n  }\n  if (property.pid) {\n    str += ';PID=' + property.pid.map((s) => e(s)).join(',');\n  }\n  if (property.type) {\n    if (Array.isArray(property.type)) {\n      if (property.type.length === 1) {\n        str += ';TYPE=' + property.type[0];\n      } else {\n        str +=\n          ';TYPE=\"' + property.type.map((s) => s.toLowerCase()).join(',') + '\"';\n      }\n    } else {\n      str += ';TYPE=' + property.type;\n    }\n  }\n  if (property.mediatype) {\n    str += ';MEDIATYPE=' + e(property.mediatype);\n  }\n  if (property.pref) {\n    str += ';PREF=' + property.pref;\n  }\n  if (property.calscale) {\n    str += ';CALSCALE=' + e(property.calscale);\n  }\n  if (property.sortas) {\n    str += ';SORT-AS=\"' + property.sortas.map((s) => e(s)).join(',') + '\"';\n  }\n  if (property.geo) {\n    str += ';GEO=' + e(property.geo);\n  }\n  if (property.timezone) {\n    str += ';TZ=' + e(property.timezone);\n  }\n\n  return str;\n}\n\nexport function isPropertyWithParameters(\n  object: any,\n): object is { value?: string; param?: BasicPropertyParameters } {\n  const test = <{ value?: string; param?: BasicPropertyParameters }>object;\n  if (test == null || test.param == null || test.value == null) {\n    return false;\n  }\n  return (\n    test.param.language !== undefined ||\n    test.param.value !== undefined ||\n    test.param.pref !== undefined ||\n    test.param.altid !== undefined ||\n    test.param.pid !== undefined ||\n    test.param.type !== undefined ||\n    test.param.mediatype !== undefined ||\n    test.param.calscale !== undefined ||\n    test.param.sortas !== undefined ||\n    test.param.geo !== undefined ||\n    test.param.timezone !== undefined\n  );\n}\n\nexport function isPropertyWithParametersAddressValue(\n  object: any,\n): object is { value?: Address; param?: BasicPropertyParameters } {\n  const test = <{ value?: Address; param?: BasicPropertyParameters }>object;\n  if (test == null || test.param == null || test.value == null) {\n    return false;\n  }\n  return (\n    test.param.language !== undefined ||\n    test.param.value !== undefined ||\n    test.param.pref !== undefined ||\n    test.param.altid !== undefined ||\n    test.param.pid !== undefined ||\n    test.param.type !== undefined ||\n    test.param.mediatype !== undefined ||\n    test.param.calscale !== undefined ||\n    test.param.sortas !== undefined ||\n    test.param.geo !== undefined ||\n    test.param.timezone !== undefined\n  );\n}\n","import { VCard, Address } from './types/vCard';\nimport { VCardEncoding } from './types/vCardEncoding';\nimport {\n  isPropertyWithParameters,\n  propertyToVCardString,\n  BasicPropertyParameters,\n  isPropertyWithParametersAddressValue,\n} from './types/parameter/BasicPropertyParameters.type';\nimport { nl, e } from './helpers';\n\nexport class VCardFormatter {\n  public static getVCardAsBlob(\n    vCard: VCard,\n    encoding: VCardEncoding = VCardEncoding.none,\n  ): Blob {\n    const data = VCardFormatter.getVCardAsString(vCard, encoding);\n    return new Blob([data], { type: 'text/vcard' });\n  }\n\n  /**\n   * Get formatted vCard in VCF format\n   */\n  public static getVCardAsString(\n    vCard: VCard,\n    encodingPrefix: VCardEncoding = VCardEncoding.none,\n  ): string {\n    if (!vCard.version) {\n      vCard.version = '4.0';\n    }\n    const majorVersion = getMajorVersion(vCard.version);\n\n    let formattedVCardString = '';\n    formattedVCardString += 'BEGIN:VCARD' + nl();\n    formattedVCardString += 'VERSION:' + vCard.version + nl();\n\n    // const encodingPrefix = '';\n    let formattedName = '';\n    if (vCard.name == null) {\n      vCard.name = {};\n    }\n\n    let nameArray = [];\n    if (vCard.formattedName != null) {\n      nameArray = [\n        vCard.formattedName.firstNames,\n        vCard.formattedName.addtionalNames,\n        vCard.formattedName.lastNames,\n      ];\n    } else {\n      nameArray = [\n        vCard.name.firstNames,\n        vCard.name.addtionalNames,\n        vCard.name.lastNames,\n      ];\n    }\n\n    formattedName = nameArray.filter((string) => string != null).join(' ');\n\n    formattedVCardString +=\n      'FN' + encodingPrefix + ':' + e(formattedName) + nl();\n\n    formattedVCardString +=\n      'N' +\n      encodingPrefix +\n      ':' +\n      [\n        e(vCard.name.lastNames),\n        e(vCard.name.firstNames),\n        e(vCard.name.addtionalNames),\n        e(vCard.name.namePrefix),\n        e(vCard.name.nameSuffix),\n      ].join(';') +\n      nl();\n\n    if (vCard.nickname && majorVersion >= 3) {\n      formattedVCardString +=\n        'NICKNAME' + encodingPrefix + ':' + e(vCard.nickname) + nl();\n    }\n\n    if (vCard.gender) {\n      if (vCard.gender.sex) {\n        formattedVCardString += 'GENDER:' + e(vCard.gender.sex);\n        if (vCard.gender.text) {\n          formattedVCardString += ';' + e(vCard.gender.text);\n        }\n        formattedVCardString += nl();\n      } else {\n        formattedVCardString += 'GENDER:;' + e(vCard.gender.text) + nl();\n      }\n    }\n\n    if (vCard.uid) {\n      formattedVCardString +=\n        'UID' + encodingPrefix + ':' + e(vCard.uid) + nl();\n    }\n\n    if (vCard.birthday) {\n      formattedVCardString += 'BDAY:' + YYYYMMDD(vCard.birthday) + nl();\n    }\n\n    if (vCard.anniversary) {\n      formattedVCardString +=\n        'ANNIVERSARY:' + YYYYMMDD(vCard.anniversary) + nl();\n    }\n\n    if (vCard.language) {\n      vCard.language.forEach((language) => {\n        if (isPropertyWithParameters(language)) {\n          formattedVCardString +=\n            'LANG' +\n            propertyToVCardString(language.param) +\n            ':' +\n            e(language.value) +\n            nl();\n        } else {\n          formattedVCardString += 'LANG:' + e(language) + nl();\n        }\n      });\n    }\n\n    if (vCard.organization) {\n      if (isPropertyWithParameters(vCard.organization)) {\n        formattedVCardString +=\n          'ORG' +\n          propertyToVCardString(vCard.organization.param) +\n          ':' +\n          e(vCard.organization.value) +\n          nl();\n      } else {\n        formattedVCardString +=\n          'ORG' + encodingPrefix + ':' + e(vCard.organization) + nl();\n      }\n    }\n\n    if (vCard.address) {\n      vCard.address.forEach((address) => {\n        if (isPropertyWithParametersAddressValue(address)) {\n          formattedVCardString +=\n            'ADR' +\n            propertyToVCardString(address.param as BasicPropertyParameters) +\n            getFormattedAddress(address.value) +\n            nl();\n        } else {\n          formattedVCardString += 'ADR' + getFormattedAddress(address) + nl();\n        }\n      });\n    }\n\n    if (vCard.telephone) {\n      vCard.telephone.forEach((element) => {\n        if (!isPropertyWithParameters(element)) {\n          element = {\n            value: element,\n            param: {\n              type: 'voice',\n            },\n          };\n        }\n        formattedVCardString +=\n          'TEL' +\n          propertyToVCardString(element.param as BasicPropertyParameters) +\n          ':' +\n          e(element.value) +\n          nl();\n      });\n    }\n\n    if (vCard.email) {\n      vCard.email.forEach((email) => {\n        if (isPropertyWithParameters(email)) {\n          formattedVCardString +=\n            'EMAIL' +\n            propertyToVCardString(email.param) +\n            ':' +\n            e(email.value) +\n            nl();\n        } else {\n          formattedVCardString += 'EMAIL:' + e(email) + nl();\n        }\n      });\n    }\n\n    if (vCard.title) {\n      formattedVCardString +=\n        'TITLE' + encodingPrefix + ':' + e(vCard.title) + nl();\n    }\n\n    if (vCard.logo) {\n      if (isPropertyWithParameters(vCard.logo)) {\n        formattedVCardString +=\n          'LOGO' +\n          propertyToVCardString(vCard.logo.param) +\n          ':' +\n          e(vCard.logo.value) +\n          nl();\n      } else {\n        formattedVCardString += 'LOGO:' + e(vCard.logo) + nl();\n      }\n    }\n\n    if (vCard.photo) {\n      if (isPropertyWithParameters(vCard.photo)) {\n        formattedVCardString +=\n          'PHOTO' +\n          propertyToVCardString(vCard.photo.param) +\n          ':' +\n          e(vCard.photo.value) +\n          nl();\n      } else {\n        formattedVCardString += 'PHOTO:' + e(vCard.photo) + nl();\n      }\n    }\n\n    if (vCard.homeFax) {\n      vCard.homeFax.forEach(function (number) {\n        if (+majorVersion >= 4) {\n          formattedVCardString +=\n            'TEL;VALUE=uri;TYPE=\"fax,home\":tel:' + e(number) + nl();\n        } else {\n          formattedVCardString += 'TEL;TYPE=HOME,FAX:' + e(number) + nl();\n        }\n      });\n    }\n\n    if (vCard.workFax) {\n      vCard.workFax.forEach(function (number) {\n        if (+majorVersion >= 4) {\n          formattedVCardString +=\n            'TEL;VALUE=uri;TYPE=\"fax,work\":tel:' + e(number) + nl();\n        } else {\n          formattedVCardString += 'TEL;TYPE=WORK,FAX:' + e(number) + nl();\n        }\n      });\n    }\n\n    if (vCard.role) {\n      formattedVCardString +=\n        'ROLE' + encodingPrefix + ':' + e(vCard.role) + nl();\n    }\n\n    if (vCard.url) {\n      let urlNotSet = true;\n      if (hasProp(vCard.url, 'home')) {\n        formattedVCardString +=\n          'URL;type=HOME' +\n          encodingPrefix +\n          ':' +\n          e((vCard.url as { home: string }).home) +\n          nl();\n        urlNotSet = false;\n      }\n\n      if (hasProp(vCard.url, 'work')) {\n        formattedVCardString +=\n          'URL;type=WORK' +\n          encodingPrefix +\n          ':' +\n          e((vCard.url as { work: string }).work) +\n          nl();\n        urlNotSet = false;\n      }\n      if (urlNotSet) {\n        formattedVCardString +=\n          'URL' + encodingPrefix + ':' + e(vCard.url as string) + nl();\n      }\n    }\n\n    if (vCard.note) {\n      formattedVCardString +=\n        'NOTE' + encodingPrefix + ':' + e(vCard.note) + nl();\n    }\n\n    if (vCard.socialUrls) {\n      for (const key in vCard.socialUrls) {\n        if (vCard.socialUrls.hasOwnProperty(key) && vCard.socialUrls[key]) {\n          formattedVCardString +=\n            'X-SOCIALPROFILE' +\n            encodingPrefix +\n            ';TYPE=' +\n            key +\n            ':' +\n            e(vCard.socialUrls[key]) +\n            nl();\n        }\n      }\n    }\n\n    if (vCard.source) {\n      if (isPropertyWithParameters(vCard.source)) {\n        formattedVCardString +=\n          'SOURCE' +\n          encodingPrefix +\n          propertyToVCardString(vCard.source.param) +\n          ':' +\n          e(vCard.source.value) +\n          +nl();\n      } else {\n        formattedVCardString +=\n          'SOURCE' + encodingPrefix + ':' + e(vCard.source) + nl();\n      }\n    }\n    if (vCard.rev) {\n      formattedVCardString += 'REV:' + vCard.rev + nl();\n    }\n    formattedVCardString += 'END:VCARD' + nl();\n    return formattedVCardString;\n  }\n}\n\n/**\n * Get formatted photo\n * @param photoType       Photo type (PHOTO, LOGO)\n * @param url             URL to attach photo from\n * @param mediaType       Media-type of photo (JPEG, PNG, GIF)\n */\nfunction getFormattedPhoto(\n  photoType: 'PHOTO' | 'LOGO',\n  url: string,\n  mediaType: string,\n  base64: boolean,\n  majorVersion: number,\n) {\n  let params;\n\n  if (+majorVersion >= 4) {\n    params = base64 ? ';ENCODING=b;MEDIATYPE=image/' : ';MEDIATYPE=image/';\n  } else if (+majorVersion === 3) {\n    params = base64 ? ';ENCODING=b;TYPE=' : ';TYPE=';\n  } else {\n    params = base64 ? ';ENCODING=BASE64;' : ';';\n  }\n\n  const formattedPhoto = photoType + params + mediaType + ':' + e(url) + nl();\n  return formattedPhoto;\n}\n\n/**\n * Get formatted address\n */\nfunction getFormattedAddress(address: Address) {\n  return (\n    (address.label ? ';LABEL=\"' + e(address.label) + '\"' : '') +\n    ':' +\n    e(address.postOfficeBox) +\n    ';' +\n    e(address.extendedAddress) +\n    ';' +\n    e(address.street) +\n    ';' +\n    e(address.locality) +\n    ';' +\n    e(address.region) +\n    ';' +\n    e(address.postalCode) +\n    ';' +\n    e(address.countryName)\n  );\n}\n\n/**\n * Convert date to YYYYMMDD format\n */\nfunction YYYYMMDD(date: Date | undefined): string {\n  if (!date) {\n    return '';\n  }\n  return date.toLocaleDateString('se').replace(/\\D/g, ''); // use Swedish date format\n}\n\n/**\n * Get major version from version string\n */\nexport function getMajorVersion(version: string): number {\n  const majorVersionString = version ? version.slice(0, 1) : '4';\n  if (!isNaN(+majorVersionString)) {\n    return Number.parseInt(majorVersionString);\n  }\n  return 4;\n}\n\n/**\n * Determines if the object has the Property\n * @param obj Object to test\n * @param property Property to check\n */\nfunction hasProp(obj: any, property: string): boolean {\n  return Object.prototype.hasOwnProperty.call(obj, property);\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { VCardFormatter } from './ngx-vcard.formatter';\nimport { VCard } from './types/vCard';\nimport { VCardEncoding } from './types/vCardEncoding';\n\nconst ERROR_MESSAGE =\n  \"ngx-vcard: No input specified. You must specify either 'vcdDownloadVCard' or 'generateVCardFunction'\";\n\n// TODO: Remove @Directive\n@Directive({\n  selector: '[vcdDownloadVCard]',\n})\nexport class DownloadVCardDirective {\n  constructor(private element: ElementRef) {}\n  // This property is always specified as it is the selector,\n  // which means it can't be undefined\n  @Input('vcdDownloadVCard')\n  vCard!: VCard | '';\n  @Input('generateVCardFunction')\n  generateVCardFunction: (() => VCard) | '' | undefined;\n  @Input() public encoding: VCardEncoding = VCardEncoding.none;\n\n  @HostListener('click')\n  onclick() {\n    if (this.vCard == '') {\n      if (\n        this.generateVCardFunction != undefined &&\n        this.generateVCardFunction != ''\n      ) {\n        this.vCard = this.generateVCardFunction();\n      } else {\n        throw new Error(ERROR_MESSAGE);\n      }\n    }\n    const blob = VCardFormatter.getVCardAsBlob(this.vCard, this.encoding);\n    let filename = 'vCard';\n    if (this.vCard.name != null) {\n      filename =\n        this.vCard.name.firstNames + ' ' + this.vCard.name.lastNames + '.vcf';\n    }\n    this.download(blob, filename);\n  }\n\n  private download(data: Blob, filename: string) {\n    const a: HTMLAnchorElement = document.createElement('a');\n    const url = URL.createObjectURL(data);\n    (a as any).style.display = 'none';\n    a.href = url;\n    a.download = filename;\n    document.body.appendChild(a);\n    a.click();\n    document.body.removeChild(a);\n    window.URL.revokeObjectURL(url);\n  }\n\n  ngOnInit() {\n    if (\n      this.vCard == '' &&\n      (this.generateVCardFunction == '' ||\n        this.generateVCardFunction == undefined)\n    ) {\n      throw new Error(ERROR_MESSAGE);\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { DownloadVCardDirective } from './download-vcard.directive';\n\n@NgModule({\n  imports: [],\n  declarations: [DownloadVCardDirective],\n  exports: [DownloadVCardDirective],\n})\nexport class NgxVcardModule {}\n","/*\n * Public API Surface of ngx-vcard\n */\n\nexport * from './lib/ngx-vcard.module';\nexport * from './lib/ngx-vcard.formatter';\nexport * from './lib/download-vcard.directive';\nexport * from './lib/types/vCard';\nexport * from './lib/types/vCardEncoding';\nexport * from './lib/types/parameter/BasicPropertyParameters.type';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}