moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
172 lines • 12.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Base } from './base';
import { format, startOfToday, differenceInYears } from 'date-fns';
/**
* Person, each project can extend this person class
* NPM package dependencies:
* a) moment
*/
var /**
* Person, each project can extend this person class
* NPM package dependencies:
* a) moment
*/
Person = /** @class */ (function (_super) {
tslib_1.__extends(Person, _super);
function Person() {
var _this = _super !== null && _super.apply(this, arguments) || this;
/**
* Format to display birthdate
*/
_this.dobFormat = 'yyyy/MM/dd';
_this.apiDobFormat = 'yyyyMMdd';
return _this;
}
Object.defineProperty(Person.prototype, "dateOfBirthShort", {
/** Returns DoB in YYYYMMDD format, used by API. */
get: /**
* Returns DoB in YYYYMMDD format, used by API.
* @return {?}
*/
function () {
return this.dateOfBirth ? format(this.dateOfBirth, this.apiDobFormat) : null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Person.prototype, "formatDateOfBirth", {
/** Returns DoB in dobFormat (default: YYYY/MM/DD), for display purposes */
get: /**
* Returns DoB in dobFormat (default: YYYY/MM/DD), for display purposes
* @return {?}
*/
function () {
return this.dateOfBirth ? format(this.dateOfBirth, this.dobFormat) : null;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Person.prototype, "name", {
/** Concatenates the first and last name together */
get: /**
* Concatenates the first and last name together
* @return {?}
*/
function () {
/** @type {?} */
var _name = null;
if (this.firstName) {
_name = this.firstName;
}
if (this.lastName) {
_name = _name ? _name.concat(' ' + this.lastName) : this.lastName;
}
return _name;
},
/**
* Sets the full name for the person (first, middle and last names)
* NOTE: Just for development with dummy data and unit tests
*/
set: /**
* Sets the full name for the person (first, middle and last names)
* NOTE: Just for development with dummy data and unit tests
* @param {?} fullName
* @return {?}
*/
function (fullName) {
/** @type {?} */
var names = fullName.split(' ');
this.firstName = names[0];
if (names.length === 2) {
this.lastName = names[1];
}
else if (names.length === 3) {
this.middleName = names[1];
this.lastName = names[2];
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(Person.prototype, "fullname", {
/** Returns the person's full name - first middle last name concatenated together */
get: /**
* Returns the person's full name - first middle last name concatenated together
* @return {?}
*/
function () {
/** @type {?} */
var _name = null;
if (this.firstName) {
_name = this.firstName;
}
if (this.middleName) {
_name = _name ? _name.concat(' ' + this.middleName) : this.middleName;
}
if (this.lastName) {
_name = _name ? _name.concat(' ' + this.lastName) : this.lastName;
}
return _name;
},
enumerable: true,
configurable: true
});
/** Calculates the age from date of birth */
/**
* Calculates the age from date of birth
* @return {?}
*/
Person.prototype.getAge = /**
* Calculates the age from date of birth
* @return {?}
*/
function () {
return differenceInYears(this.dateOfBirth, startOfToday());
};
/* Copy function */
/* Copy function */
/**
* @param {?} object
* @return {?}
*/
Person.prototype.copy = /* Copy function */
/**
* @param {?} object
* @return {?}
*/
function (object) {
this.firstName = object.firstName;
this.middleName = object.middleName;
this.lastName = object.lastName;
this.dateOfBirth = object.dateOfBirth;
};
return Person;
}(Base));
/**
* Person, each project can extend this person class
* NPM package dependencies:
* a) moment
*/
export { Person };
if (false) {
/** @type {?} */
Person.prototype.firstName;
/** @type {?} */
Person.prototype.middleName;
/** @type {?} */
Person.prototype.lastName;
/**
* Format to display birthdate
* @type {?}
*/
Person.prototype.dobFormat;
/** @type {?} */
Person.prototype.apiDobFormat;
/** @type {?} */
Person.prototype.dateOfBirth;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL3BlcnNvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7OztBQU9uRTs7Ozs7O0lBQTRCLGtDQUFJO0lBQWhDO1FBQUEscUVBdUZDOzs7O1FBL0VRLGVBQVMsR0FBRyxZQUFZLENBQUM7UUFDekIsa0JBQVksR0FBRyxVQUFVLENBQUM7O0lBOEVuQyxDQUFDO0lBeEVDLHNCQUFJLG9DQUFnQjtRQURwQixtREFBbUQ7Ozs7O1FBQ25EO1lBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNqRixDQUFDOzs7T0FBQTtJQUdELHNCQUFJLHFDQUFpQjtRQURyQiwyRUFBMkU7Ozs7O1FBQzNFO1lBQ0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5RSxDQUFDOzs7T0FBQTtJQUdELHNCQUFJLHdCQUFJO1FBRFIsb0RBQW9EOzs7OztRQUNwRDs7Z0JBQ00sS0FBSyxHQUFHLElBQUk7WUFFaEIsSUFBSyxJQUFJLENBQUMsU0FBUyxFQUFHO2dCQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN4QjtZQUVELElBQUssSUFBSSxDQUFDLFFBQVEsRUFBRztnQkFDbkIsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQ3JFO1lBRUQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQ7OztXQUdHOzs7Ozs7O1FBQ0gsVUFBVSxRQUFnQjs7Z0JBRWxCLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFFLEdBQUcsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQixJQUFLLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFHO2dCQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMxQjtpQkFBTSxJQUFLLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFHO2dCQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDOzs7T0FqQkE7SUFvQkQsc0JBQUksNEJBQVE7UUFEWixvRkFBb0Y7Ozs7O1FBQ3BGOztnQkFDTSxLQUFLLEdBQUcsSUFBSTtZQUVoQixJQUFLLElBQUksQ0FBQyxTQUFTLEVBQUc7Z0JBQ3BCLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3hCO1lBRUQsSUFBSyxJQUFJLENBQUMsVUFBVSxFQUFHO2dCQUNyQixLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7YUFDekU7WUFFRCxJQUFLLElBQUksQ0FBQyxRQUFRLEVBQUc7Z0JBQ25CLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQzthQUNyRTtZQUVELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzs7O09BQUE7SUFFRCw0Q0FBNEM7Ozs7O0lBQzVDLHVCQUFNOzs7O0lBQU47UUFDRSxPQUFPLGlCQUFpQixDQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUUsQ0FBQztJQUMvRCxDQUFDO0lBRUQsbUJBQW1COzs7Ozs7SUFDbkIscUJBQUk7Ozs7O0lBQUosVUFBTSxNQUFjO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztJQUN4QyxDQUFDO0lBQ0gsYUFBQztBQUFELENBQUMsQUF2RkQsQ0FBNEIsSUFBSSxHQXVGL0I7Ozs7Ozs7OztJQXBGQywyQkFBeUI7O0lBQ3pCLDRCQUEwQjs7SUFDMUIsMEJBQXdCOzs7OztJQUd4QiwyQkFBZ0M7O0lBQ2hDLDhCQUFpQzs7SUFHakMsNkJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IEJhc2UgfSBmcm9tICcuL2Jhc2UnO1xyXG5pbXBvcnQgeyBmb3JtYXQsIHN0YXJ0T2ZUb2RheSwgZGlmZmVyZW5jZUluWWVhcnMgfSBmcm9tICdkYXRlLWZucyc7XHJcblxyXG4vKipcclxuICogUGVyc29uLCBlYWNoIHByb2plY3QgY2FuIGV4dGVuZCB0aGlzIHBlcnNvbiBjbGFzc1xyXG4gKiBOUE0gcGFja2FnZSBkZXBlbmRlbmNpZXM6XHJcbiAqICBhKSBtb21lbnRcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQZXJzb24gZXh0ZW5kcyBCYXNlIHtcclxuXHJcbiAgLy8gUGFydHMgb2YgYSBwZXJzb24ncyBuYW1lXHJcbiAgcHVibGljIGZpcnN0TmFtZTogc3RyaW5nO1xyXG4gIHB1YmxpYyBtaWRkbGVOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIGxhc3ROYW1lOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBGb3JtYXQgdG8gZGlzcGxheSBiaXJ0aGRhdGUgKi9cclxuICBwdWJsaWMgZG9iRm9ybWF0ID0gJ3l5eXkvTU0vZGQnO1xyXG4gIHB1YmxpYyBhcGlEb2JGb3JtYXQgPSAneXl5eU1NZGQnO1xyXG5cclxuICAvLyBJbml0aWFsaXplIGRvYiB0byBudWxscyAtIFRvIGJlIHJlbW92ZWRcclxuICBwdWJsaWMgZGF0ZU9mQmlydGg6IERhdGU7XHJcblxyXG4gIC8qKiBSZXR1cm5zIERvQiBpbiBZWVlZTU1ERCBmb3JtYXQsIHVzZWQgYnkgQVBJLiAqL1xyXG4gIGdldCBkYXRlT2ZCaXJ0aFNob3J0KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlT2ZCaXJ0aCA/IGZvcm1hdCggdGhpcy5kYXRlT2ZCaXJ0aCwgdGhpcy5hcGlEb2JGb3JtYXQgKSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyBEb0IgaW4gZG9iRm9ybWF0IChkZWZhdWx0OiBZWVlZL01NL0REKSwgZm9yIGRpc3BsYXkgcHVycG9zZXMgKi9cclxuICBnZXQgZm9ybWF0RGF0ZU9mQmlydGgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVPZkJpcnRoID8gZm9ybWF0KCB0aGlzLmRhdGVPZkJpcnRoLCB0aGlzLmRvYkZvcm1hdCApIDogbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKiBDb25jYXRlbmF0ZXMgdGhlIGZpcnN0IGFuZCBsYXN0IG5hbWUgdG9nZXRoZXIgKi9cclxuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IF9uYW1lID0gbnVsbDtcclxuXHJcbiAgICBpZiAoIHRoaXMuZmlyc3ROYW1lICkge1xyXG4gICAgICBfbmFtZSA9IHRoaXMuZmlyc3ROYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggdGhpcy5sYXN0TmFtZSApIHtcclxuICAgICAgX25hbWUgPSBfbmFtZSA/IF9uYW1lLmNvbmNhdCggJyAnICsgdGhpcy5sYXN0TmFtZSApIDogdGhpcy5sYXN0TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX25hbWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBmdWxsIG5hbWUgZm9yIHRoZSBwZXJzb24gKGZpcnN0LCBtaWRkbGUgYW5kIGxhc3QgbmFtZXMpXHJcbiAgICogTk9URTogSnVzdCBmb3IgZGV2ZWxvcG1lbnQgd2l0aCBkdW1teSBkYXRhIGFuZCB1bml0IHRlc3RzXHJcbiAgICovXHJcbiAgc2V0IG5hbWUoIGZ1bGxOYW1lOiBzdHJpbmcgKSB7XHJcblxyXG4gICAgY29uc3QgbmFtZXMgPSBmdWxsTmFtZS5zcGxpdCggJyAnKSA7XHJcbiAgICB0aGlzLmZpcnN0TmFtZSA9IG5hbWVzWzBdO1xyXG5cclxuICAgIGlmICggbmFtZXMubGVuZ3RoID09PSAyICkge1xyXG4gICAgICB0aGlzLmxhc3ROYW1lID0gbmFtZXNbMV07XHJcbiAgICB9IGVsc2UgaWYgKCBuYW1lcy5sZW5ndGggPT09IDMgKSB7XHJcbiAgICAgIHRoaXMubWlkZGxlTmFtZSA9IG5hbWVzWzFdO1xyXG4gICAgICB0aGlzLmxhc3ROYW1lID0gbmFtZXNbMl07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0aGUgcGVyc29uJ3MgZnVsbCBuYW1lIC0gZmlyc3QgbWlkZGxlIGxhc3QgbmFtZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIgKi9cclxuICBnZXQgZnVsbG5hbWUoKSB7XHJcbiAgICBsZXQgX25hbWUgPSBudWxsO1xyXG5cclxuICAgIGlmICggdGhpcy5maXJzdE5hbWUgKSB7XHJcbiAgICAgIF9uYW1lID0gdGhpcy5maXJzdE5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCB0aGlzLm1pZGRsZU5hbWUgKSB7XHJcbiAgICAgIF9uYW1lID0gX25hbWUgPyBfbmFtZS5jb25jYXQoICcgJyArIHRoaXMubWlkZGxlTmFtZSApIDogdGhpcy5taWRkbGVOYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICggdGhpcy5sYXN0TmFtZSApIHtcclxuICAgICAgX25hbWUgPSBfbmFtZSA/IF9uYW1lLmNvbmNhdCggJyAnICsgdGhpcy5sYXN0TmFtZSApIDogdGhpcy5sYXN0TmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gX25hbWU7XHJcbiAgfVxyXG5cclxuICAvKiogQ2FsY3VsYXRlcyB0aGUgYWdlIGZyb20gZGF0ZSBvZiBiaXJ0aCAqL1xyXG4gIGdldEFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRpZmZlcmVuY2VJblllYXJzKCB0aGlzLmRhdGVPZkJpcnRoLCBzdGFydE9mVG9kYXkoKSApO1xyXG4gIH1cclxuXHJcbiAgLyogQ29weSBmdW5jdGlvbiAqL1xyXG4gIGNvcHkoIG9iamVjdDogUGVyc29uICkge1xyXG4gICAgdGhpcy5maXJzdE5hbWUgPSBvYmplY3QuZmlyc3ROYW1lO1xyXG4gICAgdGhpcy5taWRkbGVOYW1lID0gb2JqZWN0Lm1pZGRsZU5hbWU7XHJcbiAgICB0aGlzLmxhc3ROYW1lID0gb2JqZWN0Lmxhc3ROYW1lO1xyXG4gICAgdGhpcy5kYXRlT2ZCaXJ0aCA9IG9iamVjdC5kYXRlT2ZCaXJ0aDtcclxuICB9XHJcbn1cclxuIl19