UNPKG

moh-common-lib

Version:

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

98 lines 8.23 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, InjectionToken, Injector } from '@angular/core'; import { PageStateService } from './page-state.service'; import * as i0 from "@angular/core"; import * as i1 from "./page-state.service"; /** @type {?} */ export const START_PAGE_URL = new InjectionToken('StartPageUrl'); /** @type {?} */ export const BYPASS_GUARDS = new InjectionToken('ByPassGuards'); /** * Default page guard service, ByPassGuards & StartPageUrl are injected only if not extending service * * \@example * * providers: [ * ... * { provide: ByPassGuards, useValue: environment.bypassGuards }, * { provide: StartPageUrl, useValue: CREATE_FACILITY_PAGES.HOME.fullpath }, * DefaultPageGuardService * { provide: AbstractPageGuardService, useExisting: DefaultPageGuardService }, * LoadPageGuardService * ] * */ export class DefaultPageGuardService { /** * @param {?} pageStateService * @param {?} injector */ constructor(pageStateService, injector) { this.pageStateService = pageStateService; this.injector = injector; this.bypassGuards = false; this.startPageUrl = ''; } /** * @return {?} */ canBypassGuards() { /** @type {?} */ const bypass = this.injector.get(BYPASS_GUARDS); return bypass ? bypass : this.bypassGuards; } /** * @param {?} url * @return {?} */ canNavigateToUrl(url) { /** @type {?} */ const startUrl = this.injector.get(START_PAGE_URL); /** @type {?} */ const _startUrl = startUrl ? startUrl : this.startPageUrl; /** @type {?} */ const containStartUrl = url.includes(_startUrl); // Empty list allow navigation to first page if (this.pageStateService.pageListIsClear()) { // Trying to navigate to start page if (containStartUrl) { return true; } // Redirect to start page this.pageStateService.navigateByUrl(_startUrl); return false; } return this.pageStateService.canNavigateToPage(url); } } DefaultPageGuardService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ DefaultPageGuardService.ctorParameters = () => [ { type: PageStateService }, { type: Injector } ]; /** @nocollapse */ DefaultPageGuardService.ngInjectableDef = i0.defineInjectable({ factory: function DefaultPageGuardService_Factory() { return new DefaultPageGuardService(i0.inject(i1.PageStateService), i0.inject(i0.INJECTOR)); }, token: DefaultPageGuardService, providedIn: "root" }); if (false) { /** @type {?} */ DefaultPageGuardService.prototype.bypassGuards; /** @type {?} */ DefaultPageGuardService.prototype.startPageUrl; /** * @type {?} * @private */ DefaultPageGuardService.prototype.pageStateService; /** * @type {?} * @private */ DefaultPageGuardService.prototype.injector; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWdlLWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9kZWZhdWx0LXBhZ2UtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBR3hELE1BQU0sT0FBTyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsY0FBYyxDQUFFOztBQUMxRSxNQUFNLE9BQU8sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGNBQWMsQ0FBRTs7Ozs7Ozs7Ozs7Ozs7OztBQXFCMUUsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFLbEMsWUFBcUIsZ0JBQWtDLEVBQVUsUUFBa0I7UUFBOUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFIbkYsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBVyxFQUFFLENBQUM7SUFFNkQsQ0FBQzs7OztJQUVqRixlQUFlOztjQUVkLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxhQUFhLENBQUU7UUFFakQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVNLGdCQUFnQixDQUFFLEdBQVc7O2NBRTVCLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxjQUFjLENBQUU7O2NBQzlDLFNBQVMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVk7O2NBQ25ELGVBQWUsR0FBWSxHQUFHLENBQUMsUUFBUSxDQUFFLFNBQVMsQ0FBRTtRQUUxRCw0Q0FBNEM7UUFDNUMsSUFBSyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLEVBQUc7WUFFN0MsbUNBQW1DO1lBQ25DLElBQUssZUFBZSxFQUFHO2dCQUNyQixPQUFPLElBQUksQ0FBQzthQUNiO1lBRUQseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUUsU0FBUyxDQUFFLENBQUM7WUFDakQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBQ3hELENBQUM7OztZQXJDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7WUF4QlEsZ0JBQWdCO1lBRFksUUFBUTs7Ozs7SUE0QjNDLCtDQUE4Qjs7SUFDOUIsK0NBQTBCOzs7OztJQUViLG1EQUEwQzs7Ozs7SUFBRSwyQ0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFnZVN0YXRlU2VydmljZSB9IGZyb20gJy4vcGFnZS1zdGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RQYWdlR3VhcmRTZXJ2aWNlIH0gZnJvbSAnLi9hYnN0cmFjdC1wYWdlLWd1YXJkLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNUQVJUX1BBR0VfVVJMID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oICdTdGFydFBhZ2VVcmwnICk7XHJcbmV4cG9ydCBjb25zdCBCWVBBU1NfR1VBUkRTID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCAnQnlQYXNzR3VhcmRzJyApO1xyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgcGFnZSBndWFyZCBzZXJ2aWNlLCBCeVBhc3NHdWFyZHMgJiBTdGFydFBhZ2VVcmwgYXJlIGluamVjdGVkIG9ubHkgaWYgbm90IGV4dGVuZGluZyBzZXJ2aWNlXHJcbiAqXHJcbiAqICBAZXhhbXBsZVxyXG4gKlxyXG4gKiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcclxuICogICAgICAgICAgICAgICAgICAgICAgICAgLi4uXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBCeVBhc3NHdWFyZHMsIHVzZVZhbHVlOiBlbnZpcm9ubWVudC5ieXBhc3NHdWFyZHMgfSxcclxuICogICAgICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IFN0YXJ0UGFnZVVybCwgdXNlVmFsdWU6IENSRUFURV9GQUNJTElUWV9QQUdFUy5IT01FLmZ1bGxwYXRoIH0sXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgRGVmYXVsdFBhZ2VHdWFyZFNlcnZpY2VcclxuICogICAgICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEFic3RyYWN0UGFnZUd1YXJkU2VydmljZSwgdXNlRXhpc3Rpbmc6IERlZmF1bHRQYWdlR3VhcmRTZXJ2aWNlIH0sXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgTG9hZFBhZ2VHdWFyZFNlcnZpY2VcclxuICogICAgICAgICAgICAgICAgXVxyXG4gKlxyXG5cclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRQYWdlR3VhcmRTZXJ2aWNlIGltcGxlbWVudHMgQWJzdHJhY3RQYWdlR3VhcmRTZXJ2aWNlIHtcclxuXHJcbiAgYnlwYXNzR3VhcmRzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhcnRQYWdlVXJsOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgcGFnZVN0YXRlU2VydmljZTogUGFnZVN0YXRlU2VydmljZSwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IgKSB7fVxyXG5cclxuICBwdWJsaWMgY2FuQnlwYXNzR3VhcmRzKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGNvbnN0IGJ5cGFzcyA9IHRoaXMuaW5qZWN0b3IuZ2V0KCBCWVBBU1NfR1VBUkRTICk7XHJcblxyXG4gICAgcmV0dXJuIGJ5cGFzcyA/IGJ5cGFzcyA6IHRoaXMuYnlwYXNzR3VhcmRzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbk5hdmlnYXRlVG9VcmwoIHVybDogc3RyaW5nICk6IGJvb2xlYW4ge1xyXG5cclxuICAgIGNvbnN0IHN0YXJ0VXJsID0gdGhpcy5pbmplY3Rvci5nZXQoIFNUQVJUX1BBR0VfVVJMICk7XHJcbiAgICBjb25zdCBfc3RhcnRVcmwgPSBzdGFydFVybCA/IHN0YXJ0VXJsIDogdGhpcy5zdGFydFBhZ2VVcmw7XHJcbiAgICBjb25zdCBjb250YWluU3RhcnRVcmw6IGJvb2xlYW4gPSB1cmwuaW5jbHVkZXMoIF9zdGFydFVybCApO1xyXG5cclxuICAgIC8vIEVtcHR5IGxpc3QgYWxsb3cgbmF2aWdhdGlvbiB0byBmaXJzdCBwYWdlXHJcbiAgICBpZiAoIHRoaXMucGFnZVN0YXRlU2VydmljZS5wYWdlTGlzdElzQ2xlYXIoKSApIHtcclxuXHJcbiAgICAgIC8vIFRyeWluZyB0byBuYXZpZ2F0ZSB0byBzdGFydCBwYWdlXHJcbiAgICAgIGlmICggY29udGFpblN0YXJ0VXJsICkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBSZWRpcmVjdCB0byBzdGFydCBwYWdlXHJcbiAgICAgIHRoaXMucGFnZVN0YXRlU2VydmljZS5uYXZpZ2F0ZUJ5VXJsKCBfc3RhcnRVcmwgKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnBhZ2VTdGF0ZVNlcnZpY2UuY2FuTmF2aWdhdGVUb1BhZ2UoIHVybCApO1xyXG4gIH1cclxufVxyXG4iXX0=