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