UNPKG

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