UNPKG

moh-common-lib

Version:

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

103 lines 8.57 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 var START_PAGE_URL = new InjectionToken('StartPageUrl'); /** @type {?} */ export var 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 * ] * */ var DefaultPageGuardService = /** @class */ (function () { function DefaultPageGuardService(pageStateService, injector) { this.pageStateService = pageStateService; this.injector = injector; this.bypassGuards = false; this.startPageUrl = ''; } /** * @return {?} */ DefaultPageGuardService.prototype.canBypassGuards = /** * @return {?} */ function () { /** @type {?} */ var bypass = this.injector.get(BYPASS_GUARDS); return bypass ? bypass : this.bypassGuards; }; /** * @param {?} url * @return {?} */ DefaultPageGuardService.prototype.canNavigateToUrl = /** * @param {?} url * @return {?} */ function (url) { /** @type {?} */ var startUrl = this.injector.get(START_PAGE_URL); /** @type {?} */ var _startUrl = startUrl ? startUrl : this.startPageUrl; /** @type {?} */ var 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 = function () { return [ { 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" }); return DefaultPageGuardService; }()); export { DefaultPageGuardService }; 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1wYWdlLWd1YXJkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9tb2gtY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9kZWZhdWx0LXBhZ2UtZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7O0FBR3hELE1BQU0sS0FBTyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQVUsY0FBYyxDQUFFOztBQUMxRSxNQUFNLEtBQU8sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGNBQWMsQ0FBRTs7Ozs7Ozs7Ozs7Ozs7OztBQWtCMUU7SUFRRSxpQ0FBcUIsZ0JBQWtDLEVBQVUsUUFBa0I7UUFBOUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFIbkYsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsaUJBQVksR0FBVyxFQUFFLENBQUM7SUFFNkQsQ0FBQzs7OztJQUVqRixpREFBZTs7O0lBQXRCOztZQUVRLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBRSxhQUFhLENBQUU7UUFFakQsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDOzs7OztJQUVNLGtEQUFnQjs7OztJQUF2QixVQUF5QixHQUFXOztZQUU1QixRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUUsY0FBYyxDQUFFOztZQUM5QyxTQUFTLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZOztZQUNuRCxlQUFlLEdBQVksR0FBRyxDQUFDLFFBQVEsQ0FBRSxTQUFTLENBQUU7UUFFMUQsNENBQTRDO1FBQzVDLElBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsRUFBRSxFQUFHO1lBRTdDLG1DQUFtQztZQUNuQyxJQUFLLGVBQWUsRUFBRztnQkFDckIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELHlCQUF5QjtZQUN6QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFFLFNBQVMsQ0FBRSxDQUFDO1lBQ2pELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBRSxHQUFHLENBQUUsQ0FBQztJQUN4RCxDQUFDOztnQkFyQ0YsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkF4QlEsZ0JBQWdCO2dCQURZLFFBQVE7OztrQ0FBN0M7Q0E2REMsQUF0Q0QsSUFzQ0M7U0FuQ1ksdUJBQXVCOzs7SUFFbEMsK0NBQThCOztJQUM5QiwrQ0FBMEI7Ozs7O0lBRWIsbURBQTBDOzs7OztJQUFFLDJDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQYWdlU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9wYWdlLXN0YXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdFBhZ2VHdWFyZFNlcnZpY2UgfSBmcm9tICcuL2Fic3RyYWN0LXBhZ2UtZ3VhcmQuc2VydmljZSc7XHJcblxyXG5leHBvcnQgY29uc3QgU1RBUlRfUEFHRV9VUkwgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPiggJ1N0YXJ0UGFnZVVybCcgKTtcclxuZXhwb3J0IGNvbnN0IEJZUEFTU19HVUFSRFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Ym9vbGVhbj4oICdCeVBhc3NHdWFyZHMnICk7XHJcblxyXG4vKipcclxuICogRGVmYXVsdCBwYWdlIGd1YXJkIHNlcnZpY2UsIEJ5UGFzc0d1YXJkcyAmIFN0YXJ0UGFnZVVybCBhcmUgaW5qZWN0ZWQgb25seSBpZiBub3QgZXh0ZW5kaW5nIHNlcnZpY2VcclxuICpcclxuICogIEBleGFtcGxlXHJcbiAqXHJcbiAqICAgICAgICAgICAgICAgIHByb3ZpZGVyczogW1xyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAuLi5cclxuICogICAgICAgICAgICAgICAgICAgICAgICB7IHByb3ZpZGU6IEJ5UGFzc0d1YXJkcywgdXNlVmFsdWU6IGVudmlyb25tZW50LmJ5cGFzc0d1YXJkcyB9LFxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogU3RhcnRQYWdlVXJsLCB1c2VWYWx1ZTogQ1JFQVRFX0ZBQ0lMSVRZX1BBR0VTLkhPTUUuZnVsbHBhdGggfSxcclxuICogICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0UGFnZUd1YXJkU2VydmljZVxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogQWJzdHJhY3RQYWdlR3VhcmRTZXJ2aWNlLCB1c2VFeGlzdGluZzogRGVmYXVsdFBhZ2VHdWFyZFNlcnZpY2UgfSxcclxuICogICAgICAgICAgICAgICAgICAgICAgICBMb2FkUGFnZUd1YXJkU2VydmljZVxyXG4gKiAgICAgICAgICAgICAgICBdXHJcbiAqXHJcblxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBhZ2VHdWFyZFNlcnZpY2UgaW1wbGVtZW50cyBBYnN0cmFjdFBhZ2VHdWFyZFNlcnZpY2Uge1xyXG5cclxuICBieXBhc3NHdWFyZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzdGFydFBhZ2VVcmw6IHN0cmluZyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBwYWdlU3RhdGVTZXJ2aWNlOiBQYWdlU3RhdGVTZXJ2aWNlLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciApIHt9XHJcblxyXG4gIHB1YmxpYyBjYW5CeXBhc3NHdWFyZHMoKTogYm9vbGVhbiB7XHJcblxyXG4gICAgY29uc3QgYnlwYXNzID0gdGhpcy5pbmplY3Rvci5nZXQoIEJZUEFTU19HVUFSRFMgKTtcclxuXHJcbiAgICByZXR1cm4gYnlwYXNzID8gYnlwYXNzIDogdGhpcy5ieXBhc3NHdWFyZHM7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FuTmF2aWdhdGVUb1VybCggdXJsOiBzdHJpbmcgKTogYm9vbGVhbiB7XHJcblxyXG4gICAgY29uc3Qgc3RhcnRVcmwgPSB0aGlzLmluamVjdG9yLmdldCggU1RBUlRfUEFHRV9VUkwgKTtcclxuICAgIGNvbnN0IF9zdGFydFVybCA9IHN0YXJ0VXJsID8gc3RhcnRVcmwgOiB0aGlzLnN0YXJ0UGFnZVVybDtcclxuICAgIGNvbnN0IGNvbnRhaW5TdGFydFVybDogYm9vbGVhbiA9IHVybC5pbmNsdWRlcyggX3N0YXJ0VXJsICk7XHJcblxyXG4gICAgLy8gRW1wdHkgbGlzdCBhbGxvdyBuYXZpZ2F0aW9uIHRvIGZpcnN0IHBhZ2VcclxuICAgIGlmICggdGhpcy5wYWdlU3RhdGVTZXJ2aWNlLnBhZ2VMaXN0SXNDbGVhcigpICkge1xyXG5cclxuICAgICAgLy8gVHJ5aW5nIHRvIG5hdmlnYXRlIHRvIHN0YXJ0IHBhZ2VcclxuICAgICAgaWYgKCBjb250YWluU3RhcnRVcmwgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFJlZGlyZWN0IHRvIHN0YXJ0IHBhZ2VcclxuICAgICAgdGhpcy5wYWdlU3RhdGVTZXJ2aWNlLm5hdmlnYXRlQnlVcmwoIF9zdGFydFVybCApO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGFnZVN0YXRlU2VydmljZS5jYW5OYXZpZ2F0ZVRvUGFnZSggdXJsICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==