moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
109 lines • 8.58 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* Address class, each project can extend this address class
*/
export class Address {
// TODO: Why do we need this? - Remove - breaking change
// For backward compatibilty with applications that use street.
/**
* @return {?}
*/
get street() {
return this.addressLine1;
}
/**
* @param {?} val
* @return {?}
*/
set street(val) {
this.addressLine1 = val;
}
/**
* Overwrite the native JavaScript toString method to determine how the
* object should be printed, instead of [object Object]. This provides a
* standard way to print out an address. If you need something specific you
* should access the properties directly. We omit Province/Country because of
* PharmaCare's BC focus.
* @return {?}
*/
toString() {
return `${this.addressLine1}, ${this.city}`;
}
/**
* Address must have all fields filled out to be considered
* complete
* @return {?}
*/
isComplete() {
// All fields have data - not empty
return !!(this.addressLine1 && this.city && this.country &&
this.province && this.postal);
}
/**
* @return {?}
*/
get isBCOnly() {
/** @type {?} */
let isValid = false;
if (this.postal &&
this.postal.length > 0) {
/** @type {?} */
const regEx = new RegExp(Address.PostalCodeBCRegEx);
isValid = regEx.test(this.postal);
}
return isValid;
}
/* Copy function */
/**
* @param {?} object
* @return {?}
*/
copy(object) {
this.addressLine1 = object.addressLine1;
this.addressLine2 = object.addressLine2;
this.addressLine3 = object.addressLine3;
this.city = object.city;
this.country = object.country;
this.postal = object.postal;
this.province = object.province;
}
}
Address.PostalCodeBCRegEx = '^[Vv]\\d[ABCEGHJ-NPRSTV-Zabceghj-nprstv-z][ ]?\\d[ABCEGHJ-NPRSTV-Zabceghj-nprstv-z]\\d$';
if (false) {
/** @type {?} */
Address.PostalCodeBCRegEx;
/** @type {?} */
Address.prototype.addressLine1;
/**
* Used to store optional extra address fields. Can be used with addressLine1 OR street.
* @type {?}
*/
Address.prototype.addressLine2;
/**
* Used to store optional extra address fields. Can be used with addressLine1 OR street.
* @type {?}
*/
Address.prototype.addressLine3;
/** @type {?} */
Address.prototype.unitNumber;
/** @type {?} */
Address.prototype.streetNumber;
/** @type {?} */
Address.prototype.streetName;
/** @type {?} */
Address.prototype.postal;
/** @type {?} */
Address.prototype.country;
/** @type {?} */
Address.prototype.province;
/** @type {?} */
Address.prototype.city;
/** @type {?} */
Address.prototype.hasValue;
/** @type {?} */
Address.prototype.isValid;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL21vZGVscy9hZGRyZXNzLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxNQUFNLE9BQU8sT0FBTzs7Ozs7O0lBcUJsQixJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQzs7Ozs7SUFFRCxJQUFJLE1BQU0sQ0FBRSxHQUFXO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDO0lBQzFCLENBQUM7Ozs7Ozs7OztJQU9ELFFBQVE7UUFDTixPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDOUMsQ0FBQzs7Ozs7O0lBTUQsVUFBVTtRQUNSLG1DQUFtQztRQUNuQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTztZQUMvQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7O0lBRUQsSUFBSSxRQUFROztZQUNOLE9BQU8sR0FBRyxLQUFLO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU07WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7O2tCQUNsQixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO1lBQ25ELE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNuQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7Ozs7OztJQUdELElBQUksQ0FBQyxNQUFlO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRXhDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDOztBQWxFTSx5QkFBaUIsR0FBRyx5RkFBeUYsQ0FBQzs7O0lBQXJILDBCQUFxSDs7SUFFckgsK0JBQTRCOzs7OztJQUU1QiwrQkFBNEI7Ozs7O0lBRTVCLCtCQUE0Qjs7SUFDNUIsNkJBQTBCOztJQUMxQiwrQkFBNEI7O0lBQzVCLDZCQUEwQjs7SUFDMUIseUJBQXNCOztJQUN0QiwwQkFBdUI7O0lBQ3ZCLDJCQUF3Qjs7SUFDeEIsdUJBQW9COztJQUNwQiwyQkFBeUI7O0lBQ3pCLDBCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBZGRyZXNzIGNsYXNzLCBlYWNoIHByb2plY3QgY2FuIGV4dGVuZCB0aGlzIGFkZHJlc3MgY2xhc3NcclxuICovXHJcblxyXG5leHBvcnQgY2xhc3MgQWRkcmVzcyB7XHJcblxyXG4gIHN0YXRpYyBQb3N0YWxDb2RlQkNSZWdFeCA9ICdeW1Z2XVxcXFxkW0FCQ0VHSEotTlBSU1RWLVphYmNlZ2hqLW5wcnN0di16XVsgXT9cXFxcZFtBQkNFR0hKLU5QUlNUVi1aYWJjZWdoai1ucHJzdHYtel1cXFxcZCQnO1xyXG5cclxuICBwdWJsaWMgYWRkcmVzc0xpbmUxOiBzdHJpbmc7XHJcbiAgLyoqIFVzZWQgdG8gc3RvcmUgb3B0aW9uYWwgZXh0cmEgYWRkcmVzcyBmaWVsZHMuIENhbiBiZSB1c2VkIHdpdGggYWRkcmVzc0xpbmUxIE9SIHN0cmVldC4gKi9cclxuICBwdWJsaWMgYWRkcmVzc0xpbmUyOiBzdHJpbmc7XHJcbiAgLyoqIFVzZWQgdG8gc3RvcmUgb3B0aW9uYWwgZXh0cmEgYWRkcmVzcyBmaWVsZHMuIENhbiBiZSB1c2VkIHdpdGggYWRkcmVzc0xpbmUxIE9SIHN0cmVldC4gKi9cclxuICBwdWJsaWMgYWRkcmVzc0xpbmUzOiBzdHJpbmc7XHJcbiAgcHVibGljIHVuaXROdW1iZXI6IHN0cmluZztcclxuICBwdWJsaWMgc3RyZWV0TnVtYmVyOiBzdHJpbmc7XHJcbiAgcHVibGljIHN0cmVldE5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgcG9zdGFsOiBzdHJpbmc7XHJcbiAgcHVibGljIGNvdW50cnk6IHN0cmluZztcclxuICBwdWJsaWMgcHJvdmluY2U6IHN0cmluZztcclxuICBwdWJsaWMgY2l0eTogc3RyaW5nO1xyXG4gIHB1YmxpYyBoYXNWYWx1ZTogYm9vbGVhbjsgLy8gVE9ETzogV2h5IGRvIHdlIG5lZWQgdGhpcz8gLSBSZW1vdmUgLSBicmVha2luZyBjaGFuZ2VcclxuICBwdWJsaWMgaXNWYWxpZDogYm9vbGVhbjsgLy8gVE9ETzogV2h5IGRvIHdlIG5lZWQgdGhpcz8gLSBSZW1vdmUgLSBicmVha2luZyBjaGFuZ2VcclxuXHJcblxyXG4gIC8vIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsdHkgd2l0aCBhcHBsaWNhdGlvbnMgdGhhdCB1c2Ugc3RyZWV0LlxyXG4gIGdldCBzdHJlZXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRyZXNzTGluZTE7XHJcbiAgfVxyXG5cclxuICBzZXQgc3RyZWV0KCB2YWw6IHN0cmluZyApIHtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUxID0gdmFsO1xyXG4gIH1cclxuXHJcbiAgLyoqIE92ZXJ3cml0ZSB0aGUgbmF0aXZlIEphdmFTY3JpcHQgdG9TdHJpbmcgbWV0aG9kIHRvIGRldGVybWluZSBob3cgdGhlXHJcbiAgICogb2JqZWN0IHNob3VsZCBiZSBwcmludGVkLCBpbnN0ZWFkIG9mIFtvYmplY3QgT2JqZWN0XS4gIFRoaXMgcHJvdmlkZXMgYVxyXG4gICAqIHN0YW5kYXJkIHdheSB0byBwcmludCBvdXQgYW4gYWRkcmVzcy4gSWYgeW91IG5lZWQgc29tZXRoaW5nIHNwZWNpZmljIHlvdVxyXG4gICAqIHNob3VsZCBhY2Nlc3MgdGhlIHByb3BlcnRpZXMgZGlyZWN0bHkuIFdlIG9taXQgUHJvdmluY2UvQ291bnRyeSBiZWNhdXNlIG9mXHJcbiAgICogUGhhcm1hQ2FyZSdzIEJDIGZvY3VzLiAqL1xyXG4gIHRvU3RyaW5nKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuYWRkcmVzc0xpbmUxfSwgJHt0aGlzLmNpdHl9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHJlc3MgbXVzdCBoYXZlIGFsbCBmaWVsZHMgZmlsbGVkIG91dCB0byBiZSBjb25zaWRlcmVkXHJcbiAgICogY29tcGxldGVcclxuICAgKi9cclxuICBpc0NvbXBsZXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgLy8gQWxsIGZpZWxkcyBoYXZlIGRhdGEgLSBub3QgZW1wdHlcclxuICAgIHJldHVybiAhISh0aGlzLmFkZHJlc3NMaW5lMSAmJiB0aGlzLmNpdHkgJiYgdGhpcy5jb3VudHJ5ICYmXHJcbiAgICAgICAgICAgICB0aGlzLnByb3ZpbmNlICYmIHRoaXMucG9zdGFsKTtcclxuICB9XHJcblxyXG4gIGdldCBpc0JDT25seSgpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1ZhbGlkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5wb3N0YWwgJiZcclxuICAgICAgdGhpcy5wb3N0YWwubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCByZWdFeCA9IG5ldyBSZWdFeHAoQWRkcmVzcy5Qb3N0YWxDb2RlQkNSZWdFeCk7XHJcbiAgICAgIGlzVmFsaWQgPSByZWdFeC50ZXN0KHRoaXMucG9zdGFsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBpc1ZhbGlkO1xyXG4gIH1cclxuXHJcbiAgLyogQ29weSBmdW5jdGlvbiAqL1xyXG4gIGNvcHkob2JqZWN0OiBBZGRyZXNzKSB7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMSA9IG9iamVjdC5hZGRyZXNzTGluZTE7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMiA9IG9iamVjdC5hZGRyZXNzTGluZTI7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMyA9IG9iamVjdC5hZGRyZXNzTGluZTM7XHJcblxyXG4gICAgdGhpcy5jaXR5ID0gb2JqZWN0LmNpdHk7XHJcbiAgICB0aGlzLmNvdW50cnkgPSBvYmplY3QuY291bnRyeTtcclxuICAgIHRoaXMucG9zdGFsID0gb2JqZWN0LnBvc3RhbDtcclxuICAgIHRoaXMucHJvdmluY2UgPSBvYmplY3QucHJvdmluY2U7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG4iXX0=