UNPKG

ngx-vcard

Version:

Generate an RFC compliant vCard and download it.

344 lines (343 loc) 10.9 kB
import { BasicPropertyParameters } from './parameter/BasicPropertyParameters.type'; /** * vCard interface with properties for the vCard format, which allows the capture and exchange of information normally stored within an address book or directory application. * Explanations from [RFC 6350](https://tools.ietf.org/html/rfc6350) * Does not support xml Encapsulation. */ export interface VCard { /*********************************************************************************************** * General Property ***********************************************************************************************/ /** * The source of directory information contained in the content type. * @kind SOURCE * @link https://tools.ietf.org/html/rfc6350#section-6.1.3 */ source?: string | { value: string; param: BasicPropertyParameters; }; /** * The kind of object the vCard represents. * @kind KIND */ kind?: 'individual' | 'group' | 'org' | 'location'; /** * Include extended XML-encoded vCard data in a plain vCard. * @kind XML * @link https://tools.ietf.org/html/rfc6350#section-6.1.5 */ xml?: string; /*********************************************************************************************** * Identification Properties ***********************************************************************************************/ /** * The formatted text corresponding to the name of the object the vCard represents. * (will automatically populatet if not set) * @kind FN */ formattedName?: Name; /** * The name of the object the vCard represents. * @kind N */ name?: Name; /** * The text corresponding to the nickname of the object the vCard represents. * @kind NICKNAME */ nickname?: string; /** * An image or photograph information that annotates some aspect of the object the vCard represents. * @kind PHOTO */ photo?: string | { value: string; param: BasicPropertyParameters; }; /** * The birth date of the object the vCard represents. * @kind BDAY */ birthday?: Date; /** * Date of marriage, or equivalent, of the object the vCard represents. * @kind ANNIVERSARY */ anniversary?: Date; /** * The components of the sex and gender identity of the object the vCard represents. * @kind GENDER */ gender?: Gender; /*********************************************************************************************** * Delivery Addressing Properties ***********************************************************************************************/ /** * The components of the delivery address for the vCard object. * @kind ADR */ address?: Array<Address | { value: Address; param: BasicPropertyParameters; }>; /*********************************************************************************************** * Communications Properties ***********************************************************************************************/ /** * The telephone number for telephony communication with the object the vCard represents. * @kind TEL */ telephone?: Array<string | { value: string; param: BasicPropertyParameters; }>; /** * Work facsimile */ workFax?: string[]; /** * Home facsimile */ homeFax?: string[]; /** * The electronic mail address for communication with the object the vCard represents. * @kind EMAIL */ email?: Array<string | { value: string; param: BasicPropertyParameters; }>; /** * The address for work-related electronic mail communication * @deprecated */ workEmail?: string[]; /** * The address for other electronic mail communication * @deprecated */ otherEmail?: string[]; /** * The URI for instant messaging and presence protocol communications with the object the vCard represents. * @kind IMPP */ instantMessagingPresenceProtocol?: string; /** * The language(s) that may be used for contacting the entity associated with the vCard. * @kind LANG */ language?: Array<string | { value: string; param: BasicPropertyParameters; }>; /*********************************************************************************************** * Geographical Properties ***********************************************************************************************/ /** * Information related to the time zone of the object the vCard represents. * @kind TZ */ timezone?: string; /** * Information related to the global positioning of the object the vCard represents. * @kind GEO */ geoPosition?: string; /*********************************************************************************************** * Organizational Properties ***********************************************************************************************/ /** * The position or job of the object the vCard represents. * @kind TITLE */ title?: string; /** * The function or part played in a particular situation by the object the vCard represents. * @kind ROLE */ role?: string; /** * A graphic image of a logo associated with the object the vCard represents. * @kind LOGO */ logo?: string | { value: string; param: BasicPropertyParameters; }; /** * The organizational name and units associated with the vCard. * @kind ORG */ organization?: string | { value: string; param: BasicPropertyParameters; }; /** * A member in the group this vCard represents. * @kind MEMBER */ member?: string; /** * A relationship between another entity and the entity represented by this vCard. * @kind RELATED */ related?: { type: 'contact' | 'acquaintance' | 'friend' | 'met' | 'co-worker' | 'colleague' | 'co-resident' | 'neighbor' | 'child' | 'parent' | 'sibling' | 'spouse' | 'kin' | 'muse' | 'crush' | 'date' | 'sweetheart' | 'me' | 'agent' | 'emergency'; value: string; }[]; /*********************************************************************************************** * Explanatory Properties ***********************************************************************************************/ /** * Application category information about the vCard, also known as "tags". * @kind CATEGORIES */ categories?: string[]; /** * Supplemental information or a comment that is associated with the vCard. * @kind NOTE */ note?: string; /** * The identifier for the product that created the vCard object. * @kind PRODID */ prodid?: string; /** * Revision information about the current vCard. * @kind REV */ rev?: string; /** * A digital sound content information that annotates some aspect of the vCard. * This property is often used to specify the proper pronunciation of the name property value of the vCard. * @kind SOUND */ sound?: string; /** * A value that represents a globally unique identifier corresponding to the entity associated with the vCard. * @kind UID */ uid?: string; /** * To give a global meaning to a local PID source identifier. * @kind CLIENTPIDMAP */ clientpidmap?: string; /** * A uniform resource locator associated with the object to which the vCard refers. * Examples for individuals include personal web sites, blogs, and social networking site identifiers. * @kind URL */ url?: string | { work: string; home: string; }; /** * The version of the vCard specification used to format this vCard. * @kind VERSION */ version?: string; /*********************************************************************************************** * Security Properties ***********************************************************************************************/ /** * A public key or authentication certificate associated with the object that the vCard represents. * @kind KEY */ key?: string; /*********************************************************************************************** * Calendar Properties ***********************************************************************************************/ /** * The URI for the busy time associated with the object that the vCard represents. * @kind FBURL */ fburl?: string; /** * The calendar user address to which a scheduling request should be sent for the object represented by the vCard. * @kind CALADRURI */ caladURI?: string; /** * The URI for a calendar associated with the object represented by the vCard. * @kind CALURI */ calenderURI?: string; socialUrls?: any; } export interface Address { /** * Represents the actual text that should be put on the mailing label when delivering a physical package */ label?: string; /** * The post office box * @deprecated Incompatibility with vCard Version 3 */ postOfficeBox?: string; /** * The extended address (e.g. apartment or suite number) * @deprecated Incompatibility with vCard Version 3 */ extendedAddress?: string; /** * Street address */ street?: string; /** * locality (e.g. city) */ locality?: string; /** * region (e.g. state or province) */ region?: string; /** * Postal code */ postalCode?: string; /** * country name (full name) */ countryName?: string; } export interface Name { /** * Family Names (Surnames) */ lastNames?: string; /** * First Names (Given Names) */ firstNames?: string; /** * Additional Names */ addtionalNames?: string; /** * Prefix for individual's name (Honorific Prefixes) */ namePrefix?: string; /** * Suffix for individual's name (Honorific Suffixes) */ nameSuffix?: string; } /** * To specify the components of the sex and gender identity of the object the vCard represents. */ export interface Gender { /** * sex (biological) * @description * M stands for "male", F stands for "female", O stands for "other", N stands for "none or not applicable", U stands for "unknown". */ sex?: 'M' | 'F' | 'O' | 'N' | 'U'; /** * Gender identity */ text?: string; }