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