UNPKG

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
/** * @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