moh-common-lib
Version:
A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).
237 lines • 14.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Router } from '@angular/router';
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/router";
/**
* Interface for used when checking completeness of item
* @record
*/
export function PageListInterface() { }
if (false) {
/** @type {?} */
PageListInterface.prototype.route;
/** @type {?} */
PageListInterface.prototype.isComplete;
/* Skipping unhandled member: [key: string]: any;*/
}
/**
* Extend this class when creating a service to create your custom Route Guard
* logic. This class should work as-is for simple use-cases. For Route Guard
* setup \@see RouteGuardService.
*
* @see RouteGuardService
*/
var CheckCompleteBaseService = /** @class */ (function () {
function CheckCompleteBaseService(router) {
this.router = router;
this.pageCheckList = [];
this._startUrl = '';
this._bypassGuards = false;
}
Object.defineProperty(CheckCompleteBaseService.prototype, "startUrl", {
set: /**
* @param {?} url
* @return {?}
*/
function (url) {
this._startUrl = url;
},
enumerable: true,
configurable: true
});
Object.defineProperty(CheckCompleteBaseService.prototype, "bypassGuards", {
set: /**
* @param {?} bypass
* @return {?}
*/
function (bypass) {
this._bypassGuards = bypass;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
CheckCompleteBaseService.prototype.canBypassGuards = /**
* @return {?}
*/
function () {
return this._bypassGuards;
};
/**
* @return {?}
*/
CheckCompleteBaseService.prototype.getStartUrl = /**
* @return {?}
*/
function () {
return this._startUrl;
};
/** Any prerequisites that need list of pages */
/**
* Any prerequisites that need list of pages
* @return {?}
*/
CheckCompleteBaseService.prototype.isPrerequisiteComplete = /**
* Any prerequisites that need list of pages
* @return {?}
*/
function () {
return !this.isPageListEmpty();
};
/**
* Sets page to not be completed, so applicants cannot complete application out of sequence
*/
/**
* Sets page to not be completed, so applicants cannot complete application out of sequence
* @return {?}
*/
CheckCompleteBaseService.prototype.setPageIncomplete = /**
* Sets page to not be completed, so applicants cannot complete application out of sequence
* @return {?}
*/
function () {
/** @type {?} */
var idx = this.getUrlIndex(this.router.url);
if (!this.isPageListEmpty()) { // Check guards could be turned off in dev environment
this.pageCheckList = this.pageCheckList.map((/**
* @param {?} item
* @param {?} index
* @return {?}
*/
function (item, index) {
if (index >= idx) {
item.isComplete = false;
}
return item;
}));
}
};
/**
* Sets the page to completed, allowing applicant to proceed to next page.
*/
/**
* Sets the page to completed, allowing applicant to proceed to next page.
* @return {?}
*/
CheckCompleteBaseService.prototype.setPageComplete = /**
* Sets the page to completed, allowing applicant to proceed to next page.
* @return {?}
*/
function () {
/** @type {?} */
var idx = this.getUrlIndex(this.router.url);
if (!this.isPageListEmpty()) { // Check guards could be turned in dev environment
this.pageCheckList[idx].isComplete = true;
}
};
/**
* Indicates whether page has been completed or not.
*/
/**
* Indicates whether page has been completed or not.
* @param {?} url
* @return {?}
*/
CheckCompleteBaseService.prototype.isPageComplete = /**
* Indicates whether page has been completed or not.
* @param {?} url
* @return {?}
*/
function (url) {
/** @type {?} */
var idx = this.getUrlIndex(url);
// returns previous items isComplete value
return (idx - 1 >= 0) ? this.pageCheckList[idx - 1].isComplete : true;
};
/**
* Check for incomplete pages
*/
/**
* Check for incomplete pages
* @return {?}
*/
CheckCompleteBaseService.prototype.isComplete = /**
* Check for incomplete pages
* @return {?}
*/
function () {
/** @type {?} */
var incompletePages = this.pageCheckList.filter((/**
* @param {?} x
* @return {?}
*/
function (x) { return x.isComplete !== true; }));
return (incompletePages.length !== 0 ? false : true);
};
/**
* Index of URL in the items list, -1 if not exist
*/
/**
* Index of URL in the items list, -1 if not exist
* @protected
* @param {?} url
* @return {?}
*/
CheckCompleteBaseService.prototype.getUrlIndex = /**
* Index of URL in the items list, -1 if not exist
* @protected
* @param {?} url
* @return {?}
*/
function (url) {
return this.pageCheckList.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return url.includes(x.route); }));
};
/**
* @protected
* @return {?}
*/
CheckCompleteBaseService.prototype.isPageListEmpty = /**
* @protected
* @return {?}
*/
function () {
return (this.pageCheckList.length === 0);
};
CheckCompleteBaseService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
/** @nocollapse */
CheckCompleteBaseService.ctorParameters = function () { return [
{ type: Router }
]; };
/** @nocollapse */ CheckCompleteBaseService.ngInjectableDef = i0.defineInjectable({ factory: function CheckCompleteBaseService_Factory() { return new CheckCompleteBaseService(i0.inject(i1.Router)); }, token: CheckCompleteBaseService, providedIn: "root" });
return CheckCompleteBaseService;
}());
export { CheckCompleteBaseService };
if (false) {
/** @type {?} */
CheckCompleteBaseService.prototype.pageCheckList;
/**
* @type {?}
* @private
*/
CheckCompleteBaseService.prototype._startUrl;
/**
* @type {?}
* @private
*/
CheckCompleteBaseService.prototype._bypassGuards;
/**
* @type {?}
* @protected
*/
CheckCompleteBaseService.prototype.router;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stY29tcGxldGUtYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbW9oLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvY2hlY2stY29tcGxldGUtYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7OztBQVczQyx1Q0FJQzs7O0lBSEMsa0NBQWM7O0lBQ2QsdUNBQW9COzs7Ozs7Ozs7O0FBV3RCO0lBVUUsa0NBQXVCLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTDlCLGtCQUFhLEdBQXlCLEVBQUUsQ0FBQztRQUV4QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLGtCQUFhLEdBQVksS0FBSyxDQUFDO0lBRUUsQ0FBQztJQUUxQyxzQkFBSSw4Q0FBUTs7Ozs7UUFBWixVQUFjLEdBQVc7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7UUFDdkIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBSSxrREFBWTs7Ozs7UUFBaEIsVUFBa0IsTUFBZTtZQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUM5QixDQUFDOzs7T0FBQTs7OztJQUVNLGtEQUFlOzs7SUFBdEI7UUFDRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzs7OztJQUVNLDhDQUFXOzs7SUFBbEI7UUFDRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELGdEQUFnRDs7Ozs7SUFDekMseURBQXNCOzs7O0lBQTdCO1FBQ0UsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0ksb0RBQWlCOzs7O0lBQXhCOztZQUNRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFFO1FBQy9DLElBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUcsRUFBRSxzREFBc0Q7WUFDckYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUc7Ozs7O1lBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSztnQkFDdEQsSUFBSSxLQUFLLElBQUksR0FBRyxFQUFFO29CQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztpQkFDekI7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLEVBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOztPQUVHOzs7OztJQUNJLGtEQUFlOzs7O0lBQXRCOztZQUNRLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFFO1FBQy9DLElBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUcsRUFBRSxrREFBa0Q7WUFDakYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVEOztPQUVHOzs7Ozs7SUFDSSxpREFBYzs7Ozs7SUFBckIsVUFBdUIsR0FBVzs7WUFFMUIsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUUsR0FBRyxDQUFFO1FBRW5DLDBDQUEwQztRQUMxQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDeEUsQ0FBQztJQUVEOztPQUVHOzs7OztJQUNJLDZDQUFVOzs7O0lBQWpCOztZQUNRLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU07Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFyQixDQUFxQixFQUFFO1FBQy9FLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUUsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7Ozs7Ozs7SUFDTyw4Q0FBVzs7Ozs7O0lBQXJCLFVBQXVCLEdBQVc7UUFDaEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVM7Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLEdBQUcsQ0FBQyxRQUFRLENBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBRSxFQUF2QixDQUF1QixFQUFFLENBQUM7SUFDdEUsQ0FBQzs7Ozs7SUFFUyxrREFBZTs7OztJQUF6QjtRQUNFLE9BQU8sQ0FBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUUsQ0FBQztJQUM3QyxDQUFDOztnQkF0RkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkE1QlEsTUFBTTs7O21DQUFmO0NBaUhDLEFBdkZELElBdUZDO1NBcEZZLHdCQUF3Qjs7O0lBRW5DLGlEQUFnRDs7Ozs7SUFFaEQsNkNBQStCOzs7OztJQUMvQixpREFBdUM7Ozs7O0lBRTFCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFic3RyYWN0UGdDaGVja1NlcnZpY2UgfSBmcm9tICcuL2Fic3RyYWN0LXBnLWNoZWNrLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKiBUT0RPOiBSZXZpc2UgLSBkb2VzIG5vdCB3b3JrIHF1aXRlIGNvcnJlY3Qgd2hlbiB0aGVyZSBpcyBubyBsYW5kaW5nIHBhZ2UuXHJcbiAqIEBkZXByZWNpYXRlZFxyXG4gKi9cclxuXHJcblxyXG5cclxuLyoqXHJcbiAqIEludGVyZmFjZSBmb3IgdXNlZCB3aGVuIGNoZWNraW5nIGNvbXBsZXRlbmVzcyBvZiBpdGVtXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VMaXN0SW50ZXJmYWNlIHtcclxuICByb3V0ZTogc3RyaW5nO1xyXG4gIGlzQ29tcGxldGU6IGJvb2xlYW47XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogRXh0ZW5kIHRoaXMgY2xhc3Mgd2hlbiBjcmVhdGluZyBhIHNlcnZpY2UgdG8gY3JlYXRlIHlvdXIgY3VzdG9tIFJvdXRlIEd1YXJkXHJcbiAqIGxvZ2ljLiAgVGhpcyBjbGFzcyBzaG91bGQgd29yayBhcy1pcyBmb3Igc2ltcGxlIHVzZS1jYXNlcy4gIEZvciBSb3V0ZSBHdWFyZFxyXG4gKiBzZXR1cCBAc2VlIFJvdXRlR3VhcmRTZXJ2aWNlLlxyXG4gKlxyXG4gKiBAc2VlIFJvdXRlR3VhcmRTZXJ2aWNlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja0NvbXBsZXRlQmFzZVNlcnZpY2UgaW1wbGVtZW50cyBBYnN0cmFjdFBnQ2hlY2tTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIHBhZ2VDaGVja0xpc3Q6IFBhZ2VMaXN0SW50ZXJmYWNlIFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3N0YXJ0VXJsOiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIF9ieXBhc3NHdWFyZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlciApIHt9XHJcblxyXG4gIHNldCBzdGFydFVybCggdXJsOiBzdHJpbmcgKSB7XHJcbiAgICB0aGlzLl9zdGFydFVybCA9IHVybDtcclxuICB9XHJcblxyXG4gIHNldCBieXBhc3NHdWFyZHMoIGJ5cGFzczogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fYnlwYXNzR3VhcmRzID0gYnlwYXNzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbkJ5cGFzc0d1YXJkcygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9ieXBhc3NHdWFyZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U3RhcnRVcmwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGFydFVybDtcclxuICB9XHJcblxyXG4gIC8qKiBBbnkgcHJlcmVxdWlzaXRlcyB0aGF0IG5lZWQgbGlzdCBvZiBwYWdlcyAqL1xyXG4gIHB1YmxpYyBpc1ByZXJlcXVpc2l0ZUNvbXBsZXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmlzUGFnZUxpc3RFbXB0eSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIFNldHMgcGFnZSB0byBub3QgYmUgY29tcGxldGVkLCBzbyBhcHBsaWNhbnRzIGNhbm5vdCBjb21wbGV0ZSBhcHBsaWNhdGlvbiBvdXQgb2Ygc2VxdWVuY2VcclxuICAgKi9cclxuICBwdWJsaWMgc2V0UGFnZUluY29tcGxldGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZHggPSB0aGlzLmdldFVybEluZGV4KCB0aGlzLnJvdXRlci51cmwgKTtcclxuICAgIGlmICggIXRoaXMuaXNQYWdlTGlzdEVtcHR5KCkgKSB7IC8vIENoZWNrIGd1YXJkcyBjb3VsZCBiZSB0dXJuZWQgb2ZmIGluIGRldiBlbnZpcm9ubWVudFxyXG4gICAgICB0aGlzLnBhZ2VDaGVja0xpc3QgPSB0aGlzLnBhZ2VDaGVja0xpc3QubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIGlmIChpbmRleCA+PSBpZHgpIHtcclxuICAgICAgICAgIGl0ZW0uaXNDb21wbGV0ZSA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSBwYWdlIHRvIGNvbXBsZXRlZCwgYWxsb3dpbmcgYXBwbGljYW50IHRvIHByb2NlZWQgdG8gbmV4dCBwYWdlLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRQYWdlQ29tcGxldGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZHggPSB0aGlzLmdldFVybEluZGV4KCB0aGlzLnJvdXRlci51cmwgKTtcclxuICAgIGlmICggIXRoaXMuaXNQYWdlTGlzdEVtcHR5KCkgKSB7IC8vIENoZWNrIGd1YXJkcyBjb3VsZCBiZSB0dXJuZWQgaW4gZGV2IGVudmlyb25tZW50XHJcbiAgICAgIHRoaXMucGFnZUNoZWNrTGlzdFtpZHhdLmlzQ29tcGxldGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgcGFnZSBoYXMgYmVlbiBjb21wbGV0ZWQgb3Igbm90LlxyXG4gICAqL1xyXG4gIHB1YmxpYyBpc1BhZ2VDb21wbGV0ZSggdXJsOiBzdHJpbmcgKTogYm9vbGVhbiB7XHJcblxyXG4gICAgY29uc3QgaWR4ID0gdGhpcy5nZXRVcmxJbmRleCggdXJsICk7XHJcblxyXG4gICAgLy8gcmV0dXJucyBwcmV2aW91cyBpdGVtcyBpc0NvbXBsZXRlIHZhbHVlXHJcbiAgICByZXR1cm4gKGlkeCAtIDEgPj0gMCkgPyB0aGlzLnBhZ2VDaGVja0xpc3RbaWR4IC0gMV0uaXNDb21wbGV0ZSA6IHRydWU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBmb3IgaW5jb21wbGV0ZSBwYWdlc1xyXG4gICAqL1xyXG4gIHB1YmxpYyBpc0NvbXBsZXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5jb21wbGV0ZVBhZ2VzID0gdGhpcy5wYWdlQ2hlY2tMaXN0LmZpbHRlciggeCA9PiB4LmlzQ29tcGxldGUgIT09IHRydWUgKTtcclxuICAgIHJldHVybiAoaW5jb21wbGV0ZVBhZ2VzLmxlbmd0aCAhPT0gMCA/IGZhbHNlIDogdHJ1ZSApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5kZXggb2YgVVJMIGluIHRoZSBpdGVtcyBsaXN0LCAtMSBpZiBub3QgZXhpc3RcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZ2V0VXJsSW5kZXgoIHVybDogc3RyaW5nICk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5wYWdlQ2hlY2tMaXN0LmZpbmRJbmRleCggeCA9PiB1cmwuaW5jbHVkZXMoIHgucm91dGUgKSApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzUGFnZUxpc3RFbXB0eSgpIHtcclxuICAgIHJldHVybiAoIHRoaXMucGFnZUNoZWNrTGlzdC5sZW5ndGggPT09IDAgKTtcclxuICB9XHJcbn1cclxuIl19