UNPKG

moh-common-lib

Version:

A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).

198 lines 14.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { DefaultSubmitLabel } from '../services/container.service'; /** * @record */ export function WizardProgressItem() { } if (false) { /** @type {?} */ WizardProgressItem.prototype.title; /** @type {?} */ WizardProgressItem.prototype.route; } /** * Container class contains the basic functionality for containers. * * @example * Example of how to use Container * * export class RegistrationContainerComponent extends Container * implements AfterViewInit, OnDestroy { * * constructor( private headerService: HeaderService, * private pageStateService: PageStateService, * protected containerService: ContainerService) { * super( containerService ); * this.setProgressSteps(pages); * this.pageStateService.setPages( pages, PRACTITIONER_REGISTRATION_PAGES ); * this.headerService.setTitle('Practitioner Assignment to Medical Services Plan Facility for Business Cost Premium'); * } * * ngAfterViewInit() { * this.subscribeFormBar(); * } * * ngOnDestroy() { * this.unsubscribeFormBar(); * } * ... * } * * html would be: * * <common-core-breadcrumb> * <common-wizard-progress-bar center [progressSteps]="progressSteps"></common-wizard-progress-bar> * </common-core-breadcrumb> * <common-page-framework layout="blank"> * <router-outlet></router-outlet> * </common-page-framework> * <common-form-action-bar (btnClick)="continue()" <= function within Container * [submitLabel]="submitLabel" <= variable within Container * [isLoading]="isLoading" <= variable within Container * [defaultColor]="useDefaultColor" <= variable within Container * widthOption='extra-width-mobile-only'></common-form-action-bar> * * @export * */ /** * Base functionality for container that is used to display bread crumbs */ export class Container { /** * @param {?=} containerService */ constructor(containerService) { this.containerService = containerService; /** * Observables for form bar */ this.useDefaultColor = true; this.submitLabel = DefaultSubmitLabel; this.isLoading = false; } /** * Use when form bar is part of the container * @return {?} */ continue() { this.containerService.submitButtonClicked(); } /** * Converts a lower case string of a route in a user readable title. e.g. * "personal-info" -> "Personal Info" * @param {?} routePath * @return {?} */ convertRouteToTitle(routePath) { return routePath.split('-').map((/** * @param {?} x * @return {?} */ x => x[0].toUpperCase() + x.slice(1))).join(' '); } /** * @protected * @param {?} pageRoutes * @return {?} */ setProgressSteps(pageRoutes) { // Interface for wizard progress items this.progressSteps = pageRoutes.map((/** * @param {?} page * @return {?} */ page => { if (page.path !== '') { return { title: this.convertRouteToTitle(page.path), route: page.path }; } })).filter((/** * @param {?} x * @return {?} */ x => x)); } /** * Subscribe to form bar observables - Called in the AfterViewInit * Use when form bar is part of the container * @protected * @return {?} */ subscribeFormBar() { if (this.containerService) { this._subscriptions = [ this.containerService.$useDefaultColor .subscribe(((/** * @param {?} defaultColor * @return {?} */ (defaultColor) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.useDefaultColor = yield defaultColor; })))), this.containerService.$submitLabel .subscribe(((/** * @param {?} label * @return {?} */ (label) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.submitLabel = yield label; })))), this.containerService.$isLoading .subscribe(((/** * @param {?} isLoading * @return {?} */ (isLoading) => tslib_1.__awaiter(this, void 0, void 0, function* () { this.isLoading = yield isLoading; })))) ]; } } /** * Unsubscribe to form bar observables - Called in the onDestroy() * Use when form bar is part of the container * @protected * @return {?} */ unsubscribeFormBar() { this._subscriptions.forEach((/** * @param {?} x * @return {?} */ x => x.unsubscribe())); } } if (false) { /** * Route items for the stepper * @type {?} */ Container.prototype.progressSteps; /** * Observables for form bar * @type {?} */ Container.prototype.useDefaultColor; /** @type {?} */ Container.prototype.submitLabel; /** @type {?} */ Container.prototype.isLoading; /** * @type {?} * @private */ Container.prototype._subscriptions; /** * @type {?} * @protected */ Container.prototype.containerService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFpbmVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvbW9kZWxzL2NvbnRhaW5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBb0Isa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUdyRix3Q0FHQzs7O0lBRkMsbUNBQWM7O0lBQ2QsbUNBQWM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0RoQixNQUFNLE9BQU8sU0FBUzs7OztJQVlwQixZQUF1QixnQkFBbUM7UUFBbkMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQjs7OztRQU4xRCxvQkFBZSxHQUFZLElBQUksQ0FBQztRQUNoQyxnQkFBVyxHQUFXLGtCQUFrQixDQUFDO1FBQ3pDLGNBQVMsR0FBWSxLQUFLLENBQUM7SUFLM0IsQ0FBQzs7Ozs7SUFLRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDOUMsQ0FBQzs7Ozs7OztJQU1ELG1CQUFtQixDQUFDLFNBQWlCO1FBQ25DLE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHOzs7O1FBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRixDQUFDOzs7Ozs7SUFFUyxnQkFBZ0IsQ0FBRSxVQUFtQjtRQUM3QyxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRzs7OztRQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3pDLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxFQUFFLEVBQUU7Z0JBQ3BCLE9BQU87b0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUMxQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7aUJBQ2pCLENBQUM7YUFDSDtRQUNILENBQUMsRUFBQyxDQUFDLE1BQU07Ozs7UUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDO0lBQ3BCLENBQUM7Ozs7Ozs7SUFNUyxnQkFBZ0I7UUFDeEIsSUFBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUc7WUFFM0IsSUFBSSxDQUFDLGNBQWMsR0FBRztnQkFDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQjtxQkFDckMsU0FBUyxDQUNSOzs7O2dCQUFDLENBQU8sWUFBWSxFQUFFLEVBQUU7b0JBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxZQUFZLENBQUM7Z0JBQzlDLENBQUMsQ0FBQSxFQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVk7cUJBQ2pDLFNBQVMsQ0FDUjs7OztnQkFBQyxDQUFPLEtBQUssRUFBRSxFQUFFO29CQUNmLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxLQUFLLENBQUM7Z0JBQ25DLENBQUMsQ0FBQSxFQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7cUJBQy9CLFNBQVMsQ0FDUjs7OztnQkFBQyxDQUFPLFNBQVMsRUFBRSxFQUFFO29CQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sU0FBUyxDQUFDO2dCQUNyQyxDQUFDLENBQUEsRUFBQyxDQUFDO2FBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7Ozs7OztJQU1TLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU87Ozs7UUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ3RELENBQUM7Q0FDRjs7Ozs7O0lBekVDLGtDQUFvQzs7Ozs7SUFHcEMsb0NBQWdDOztJQUNoQyxnQ0FBeUM7O0lBQ3pDLDhCQUEyQjs7Ozs7SUFFM0IsbUNBQXVDOzs7OztJQUUxQixxQ0FBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvbnRhaW5lclNlcnZpY2UsIERlZmF1bHRTdWJtaXRMYWJlbCB9IGZyb20gJy4uL3NlcnZpY2VzL2NvbnRhaW5lci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFdpemFyZFByb2dyZXNzSXRlbSB7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICByb3V0ZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udGFpbmVyIGNsYXNzIGNvbnRhaW5zIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IGZvciBjb250YWluZXJzLlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiAgRXhhbXBsZSBvZiBob3cgdG8gdXNlIENvbnRhaW5lclxyXG4gKlxyXG4gKiAgICAgIGV4cG9ydCBjbGFzcyBSZWdpc3RyYXRpb25Db250YWluZXJDb21wb25lbnQgZXh0ZW5kcyBDb250YWluZXJcclxuICogICAgICAgICAgICAgICAgICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gKlxyXG4gKiAgICAgICAgY29uc3RydWN0b3IoIHByaXZhdGUgaGVhZGVyU2VydmljZTogSGVhZGVyU2VydmljZSxcclxuICogICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHBhZ2VTdGF0ZVNlcnZpY2U6IFBhZ2VTdGF0ZVNlcnZpY2UsXHJcbiAqICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkICBjb250YWluZXJTZXJ2aWNlOiBDb250YWluZXJTZXJ2aWNlKSB7XHJcbiAqICAgICAgICAgIHN1cGVyKCBjb250YWluZXJTZXJ2aWNlICk7XHJcbiAqICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NTdGVwcyhwYWdlcyk7XHJcbiAqICAgICAgICAgIHRoaXMucGFnZVN0YXRlU2VydmljZS5zZXRQYWdlcyggcGFnZXMsIFBSQUNUSVRJT05FUl9SRUdJU1RSQVRJT05fUEFHRVMgKTtcclxuICogICAgICAgICAgdGhpcy5oZWFkZXJTZXJ2aWNlLnNldFRpdGxlKCdQcmFjdGl0aW9uZXIgQXNzaWdubWVudCB0byBNZWRpY2FsIFNlcnZpY2VzIFBsYW4gRmFjaWxpdHkgZm9yIEJ1c2luZXNzIENvc3QgUHJlbWl1bScpO1xyXG4gKiAgICAgICAgfVxyXG4gKlxyXG4gKiAgICAgICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gKiAgICAgICAgICB0aGlzLnN1YnNjcmliZUZvcm1CYXIoKTtcclxuICogICAgICAgIH1cclxuICpcclxuICogICAgICAgIG5nT25EZXN0cm95KCkge1xyXG4gKiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlRm9ybUJhcigpO1xyXG4gKiAgICAgICAgfVxyXG4gKiAgICAgICAgLi4uXHJcbiAqICAgICAgfVxyXG4gKlxyXG4gKiBodG1sIHdvdWxkIGJlOlxyXG4gKlxyXG4gKiAgICA8Y29tbW9uLWNvcmUtYnJlYWRjcnVtYj5cclxuICogICAgICA8Y29tbW9uLXdpemFyZC1wcm9ncmVzcy1iYXIgY2VudGVyIFtwcm9ncmVzc1N0ZXBzXT1cInByb2dyZXNzU3RlcHNcIj48L2NvbW1vbi13aXphcmQtcHJvZ3Jlc3MtYmFyPlxyXG4gKiAgICA8L2NvbW1vbi1jb3JlLWJyZWFkY3J1bWI+XHJcbiAqICAgIDxjb21tb24tcGFnZS1mcmFtZXdvcmsgbGF5b3V0PVwiYmxhbmtcIj5cclxuICogICAgICA8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XHJcbiAqICAgIDwvY29tbW9uLXBhZ2UtZnJhbWV3b3JrPlxyXG4gKiAgICA8Y29tbW9uLWZvcm0tYWN0aW9uLWJhciAoYnRuQ2xpY2spPVwiY29udGludWUoKVwiICAgICAgICAgICAgPD0gZnVuY3Rpb24gd2l0aGluIENvbnRhaW5lclxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3VibWl0TGFiZWxdPVwic3VibWl0TGFiZWxcIiAgICAgICAgPD0gdmFyaWFibGUgd2l0aGluIENvbnRhaW5lclxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiICAgICAgICAgICAgPD0gdmFyaWFibGUgd2l0aGluIENvbnRhaW5lclxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdENvbG9yXT1cInVzZURlZmF1bHRDb2xvclwiICAgPD0gdmFyaWFibGUgd2l0aGluIENvbnRhaW5lclxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aE9wdGlvbj0nZXh0cmEtd2lkdGgtbW9iaWxlLW9ubHknPjwvY29tbW9uLWZvcm0tYWN0aW9uLWJhcj5cclxuICpcclxuICogQGV4cG9ydFxyXG4gKlxyXG4gKi9cclxuXHJcbi8qKiBCYXNlIGZ1bmN0aW9uYWxpdHkgZm9yIGNvbnRhaW5lciB0aGF0IGlzIHVzZWQgdG8gZGlzcGxheSBicmVhZCBjcnVtYnMgKi9cclxuZXhwb3J0IGNsYXNzIENvbnRhaW5lciB7XHJcblxyXG4gIC8qKiBSb3V0ZSBpdGVtcyBmb3IgdGhlIHN0ZXBwZXIgKi9cclxuICBwcm9ncmVzc1N0ZXBzOiBXaXphcmRQcm9ncmVzc0l0ZW1bXTtcclxuXHJcbiAgLyoqIE9ic2VydmFibGVzIGZvciBmb3JtIGJhciAqL1xyXG4gIHVzZURlZmF1bHRDb2xvcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3VibWl0TGFiZWw6IHN0cmluZyA9IERlZmF1bHRTdWJtaXRMYWJlbDtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCBwcm90ZWN0ZWQgY29udGFpbmVyU2VydmljZT86IENvbnRhaW5lclNlcnZpY2UgKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVc2Ugd2hlbiBmb3JtIGJhciBpcyBwYXJ0IG9mIHRoZSBjb250YWluZXJcclxuICAgKi9cclxuICBjb250aW51ZSgpIHtcclxuICAgIHRoaXMuY29udGFpbmVyU2VydmljZS5zdWJtaXRCdXR0b25DbGlja2VkKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0cyBhIGxvd2VyIGNhc2Ugc3RyaW5nIG9mIGEgcm91dGUgaW4gYSB1c2VyIHJlYWRhYmxlIHRpdGxlLiAgZS5nLlxyXG4gICAqIFwicGVyc29uYWwtaW5mb1wiIC0+IFwiUGVyc29uYWwgSW5mb1wiXHJcbiAgICovXHJcbiAgY29udmVydFJvdXRlVG9UaXRsZShyb3V0ZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gcm91dGVQYXRoLnNwbGl0KCctJykubWFwKHggPT4geFswXS50b1VwcGVyQ2FzZSgpICsgeC5zbGljZSgxKSkuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHNldFByb2dyZXNzU3RlcHMoIHBhZ2VSb3V0ZXM6IFJvdXRlW10gKTogdm9pZCB7XHJcbiAgICAvLyBJbnRlcmZhY2UgZm9yIHdpemFyZCBwcm9ncmVzcyBpdGVtc1xyXG4gICAgdGhpcy5wcm9ncmVzc1N0ZXBzID0gcGFnZVJvdXRlcy5tYXAocGFnZSA9PiB7XHJcbiAgICAgIGlmIChwYWdlLnBhdGggIT09ICcnKSB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIHRpdGxlOiB0aGlzLmNvbnZlcnRSb3V0ZVRvVGl0bGUocGFnZS5wYXRoKSxcclxuICAgICAgICAgIHJvdXRlOiBwYWdlLnBhdGhcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9KS5maWx0ZXIoeCA9PiB4KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1YnNjcmliZSB0byBmb3JtIGJhciBvYnNlcnZhYmxlcyAtIENhbGxlZCBpbiB0aGUgQWZ0ZXJWaWV3SW5pdFxyXG4gICAqIFVzZSB3aGVuIGZvcm0gYmFyIGlzIHBhcnQgb2YgdGhlIGNvbnRhaW5lclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzdWJzY3JpYmVGb3JtQmFyKCkge1xyXG4gICAgaWYgKCB0aGlzLmNvbnRhaW5lclNlcnZpY2UgKSB7XHJcblxyXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zID0gW1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyU2VydmljZS4kdXNlRGVmYXVsdENvbG9yXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChhc3luYyAoZGVmYXVsdENvbG9yKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXNlRGVmYXVsdENvbG9yID0gYXdhaXQgZGVmYXVsdENvbG9yO1xyXG4gICAgICAgIH0pKSxcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclNlcnZpY2UuJHN1Ym1pdExhYmVsXHJcbiAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgIChhc3luYyAobGFiZWwpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zdWJtaXRMYWJlbCA9IGF3YWl0IGxhYmVsO1xyXG4gICAgICAgIH0pKSxcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclNlcnZpY2UuJGlzTG9hZGluZ1xyXG4gICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoYXN5bmMgKGlzTG9hZGluZykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGF3YWl0IGlzTG9hZGluZztcclxuICAgICAgICB9KSlcclxuICAgICAgXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVuc3Vic2NyaWJlIHRvIGZvcm0gYmFyIG9ic2VydmFibGVzICAtIENhbGxlZCBpbiB0aGUgb25EZXN0cm95KClcclxuICAgKiBVc2Ugd2hlbiBmb3JtIGJhciBpcyBwYXJ0IG9mIHRoZSBjb250YWluZXJcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdW5zdWJzY3JpYmVGb3JtQmFyKCkge1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKCB4ID0+IHgudW5zdWJzY3JpYmUoKSApO1xyXG4gIH1cclxufVxyXG4iXX0=