UNPKG

moh-common-lib

Version:

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

141 lines 10.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import { AbstractPgCheckService } from './abstract-pg-check.service'; import * as i0 from "@angular/core"; import * as i1 from "@angular/router"; import * as i2 from "./abstract-pg-check.service"; /** * @deprecated * Use this service to implement Route Guards in your application. This is for a * typical form flow, where the user must proceed sequentially from one page to * the next. * * To setup, you must: * * 1. Create a service implementing the abstract methods in `AbstractPgService` ("RegistrationService") * 2. Setup AbstractPgCheckService in NgModule providers, to `useExisting` the service from previous step. * 3. Add this RouteGuardService to same providers from previous step. * 4. Configure routes to use RouteGuardService - `canActivate` or `canActivateChild` * 5. Have each "page" in the form call `setPageIncomplete()` or `setPageComplete()` (from the "RegistrationService") * * * You must make sure to setup AbstractPgCheckService in NgModules correctly. * * \@example * //STEP 2 + STEP 3 * //registration.module.ts * providers: [ * ... * { provide: AbstractPgCheckService, useExisting: RegistrationService }, * RouteGuardService * ] * * * //STEP 4 * //registration-routing.modle.ts * const routes: Routes = [{ * path: '', * canActivateChild: [RouteGuardService] //or canActivate * } * ... * ] * * * //STEP 5 * //example.component.ts * ngOnInit() { this.setPageIncomplete(); } * continue() { this.setPageComplete(); } * * */ var RouteGuardService = /** @class */ (function () { function RouteGuardService(router, service) { this.router = router; this.service = service; } /** * @param {?} route * @param {?} state * @return {?} */ RouteGuardService.prototype.canActivate = /** * @param {?} route * @param {?} state * @return {?} */ function (route, state) { return this._continue(state.url); }; /** * @param {?} next * @param {?} state * @return {?} */ RouteGuardService.prototype.canActivateChild = /** * @param {?} next * @param {?} state * @return {?} */ function (next, state) { return this._continue(state.url); }; /** Logic to determine whether or not allow to continue to next page */ /** * Logic to determine whether or not allow to continue to next page * @private * @param {?} pageUrl * @return {?} */ RouteGuardService.prototype._continue = /** * Logic to determine whether or not allow to continue to next page * @private * @param {?} pageUrl * @return {?} */ function (pageUrl) { if (this.service.canBypassGuards()) { return true; } /** * Pre-requisite has not be completed */ if (false === this.service.isPrerequisiteComplete()) { this.router.navigate([this.service.getStartUrl()]); return false; } if (false === this.service.isPageComplete(pageUrl)) { return false; } return true; }; RouteGuardService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ RouteGuardService.ctorParameters = function () { return [ { type: Router }, { type: AbstractPgCheckService } ]; }; /** @nocollapse */ RouteGuardService.ngInjectableDef = i0.defineInjectable({ factory: function RouteGuardService_Factory() { return new RouteGuardService(i0.inject(i1.Router), i0.inject(i2.AbstractPgCheckService)); }, token: RouteGuardService, providedIn: "root" }); return RouteGuardService; }()); export { RouteGuardService }; if (false) { /** * @type {?} * @private */ RouteGuardService.prototype.router; /** * @type {?} * @private */ RouteGuardService.prototype.service; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3JvdXRlLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFvQixNQUFNLEVBQXFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThDckU7SUFLRSwyQkFBb0IsTUFBYyxFQUN4QixPQUErQjtRQURyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQ3pDLENBQUM7Ozs7OztJQUVELHVDQUFXOzs7OztJQUFYLFVBQ0UsS0FBNkIsRUFDN0IsS0FBMEI7UUFHMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDOzs7Ozs7SUFFRCw0Q0FBZ0I7Ozs7O0lBQWhCLFVBQ0UsSUFBNEIsRUFDNUIsS0FBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsdUVBQXVFOzs7Ozs7O0lBQy9ELHFDQUFTOzs7Ozs7SUFBakIsVUFBa0IsT0FBZTtRQUUvQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVEOztXQUVHO1FBQ0gsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O2dCQTNDRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2dCQWxEMEIsTUFBTTtnQkFFeEIsc0JBQXNCOzs7NEJBSC9CO0NBNkZDLEFBNUNELElBNENDO1NBekNZLGlCQUFpQjs7Ozs7O0lBRWhCLG1DQUFzQjs7Ozs7SUFDaEMsb0NBQXVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYW5BY3RpdmF0ZUNoaWxkLCBSb3V0ZXIsIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlclN0YXRlU25hcHNob3QsIFVybFRyZWUsIENhbkFjdGl2YXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdFBnQ2hlY2tTZXJ2aWNlIH0gZnJvbSAnLi9hYnN0cmFjdC1wZy1jaGVjay5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBAZGVwcmVjYXRlZFxyXG4gKiBVc2UgdGhpcyBzZXJ2aWNlIHRvIGltcGxlbWVudCBSb3V0ZSBHdWFyZHMgaW4geW91ciBhcHBsaWNhdGlvbi4gVGhpcyBpcyBmb3IgYVxyXG4gKiB0eXBpY2FsIGZvcm0gZmxvdywgd2hlcmUgdGhlIHVzZXIgbXVzdCBwcm9jZWVkIHNlcXVlbnRpYWxseSBmcm9tIG9uZSBwYWdlIHRvXHJcbiAqIHRoZSBuZXh0LlxyXG4gKlxyXG4gKiBUbyBzZXR1cCwgeW91IG11c3Q6XHJcbiAqXHJcbiAqIDEuIENyZWF0ZSBhIHNlcnZpY2UgaW1wbGVtZW50aW5nIHRoZSBhYnN0cmFjdCBtZXRob2RzIGluIGBBYnN0cmFjdFBnU2VydmljZWAgKFwiUmVnaXN0cmF0aW9uU2VydmljZVwiKVxyXG4gKiAyLiBTZXR1cCBBYnN0cmFjdFBnQ2hlY2tTZXJ2aWNlIGluIE5nTW9kdWxlIHByb3ZpZGVycywgdG8gYHVzZUV4aXN0aW5nYCB0aGUgc2VydmljZSBmcm9tIHByZXZpb3VzIHN0ZXAuXHJcbiAqIDMuIEFkZCB0aGlzIFJvdXRlR3VhcmRTZXJ2aWNlIHRvIHNhbWUgcHJvdmlkZXJzIGZyb20gcHJldmlvdXMgc3RlcC5cclxuICogNC4gQ29uZmlndXJlIHJvdXRlcyB0byB1c2UgUm91dGVHdWFyZFNlcnZpY2UgLSBgY2FuQWN0aXZhdGVgIG9yIGBjYW5BY3RpdmF0ZUNoaWxkYFxyXG4gKiA1LiBIYXZlIGVhY2ggXCJwYWdlXCIgaW4gdGhlIGZvcm0gY2FsbCBgc2V0UGFnZUluY29tcGxldGUoKWAgb3IgYHNldFBhZ2VDb21wbGV0ZSgpYCAoZnJvbSB0aGUgXCJSZWdpc3RyYXRpb25TZXJ2aWNlXCIpXHJcbiAqXHJcbiAqXHJcbiAqIFlvdSBtdXN0IG1ha2Ugc3VyZSB0byBzZXR1cCBBYnN0cmFjdFBnQ2hlY2tTZXJ2aWNlIGluIE5nTW9kdWxlcyBjb3JyZWN0bHkuXHJcbiAqXHJcbiAqICBAZXhhbXBsZVxyXG4gKiAgICAgICAgICAgICAgICAvL1NURVAgMiArIFNURVAgM1xyXG4gKiAgICAgICAgICAgICAgICAvL3JlZ2lzdHJhdGlvbi5tb2R1bGUudHNcclxuICogICAgICAgICAgICAgICAgcHJvdmlkZXJzOiBbXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgLi4uXHJcbiAqICAgICAgICAgICAgICAgICAgICAgICAgeyBwcm92aWRlOiBBYnN0cmFjdFBnQ2hlY2tTZXJ2aWNlLCB1c2VFeGlzdGluZzogUmVnaXN0cmF0aW9uU2VydmljZSB9LFxyXG4gKiAgICAgICAgICAgICAgICAgICAgICAgIFJvdXRlR3VhcmRTZXJ2aWNlXHJcbiAqICAgICAgICAgICAgICAgIF1cclxuICpcclxuICpcclxuICogICAgICAgICAgICAgICAgLy9TVEVQIDRcclxuICogICAgICAgICAgICAgICAgLy9yZWdpc3RyYXRpb24tcm91dGluZy5tb2RsZS50c1xyXG4gKiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZXM6IFJvdXRlcyA9IFt7XHJcbiAqICAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxyXG4gKiAgICAgICAgICAgICAgICAgICBjYW5BY3RpdmF0ZUNoaWxkOiBbUm91dGVHdWFyZFNlcnZpY2VdIC8vb3IgY2FuQWN0aXZhdGVcclxuICogICAgICAgICAgICAgICAgICB9XHJcbiAqICAgICAgICAgICAgICAgICAgIC4uLlxyXG4gKiAgICAgICAgICAgICAgICBdXHJcbiAqXHJcbiAqXHJcbiAqICAgICAgICAgICAgICAgIC8vU1RFUCA1XHJcbiAqICAgICAgICAgICAgICAgIC8vZXhhbXBsZS5jb21wb25lbnQudHNcclxuICogICAgICAgICAgICAgICAgbmdPbkluaXQoKSB7IHRoaXMuc2V0UGFnZUluY29tcGxldGUoKTsgfVxyXG4gKiAgICAgICAgICAgICAgICBjb250aW51ZSgpIHsgdGhpcy5zZXRQYWdlQ29tcGxldGUoKTsgfVxyXG4gKlxyXG4gKlxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUm91dGVHdWFyZFNlcnZpY2UgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSwgQ2FuQWN0aXZhdGVDaGlsZCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IEFic3RyYWN0UGdDaGVja1NlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdFxyXG4gICk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHwgUHJvbWlzZTxib29sZWFuIHwgVXJsVHJlZT4gfCBib29sZWFuIHwgVXJsVHJlZSB7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRpbnVlKHN0YXRlLnVybCk7XHJcbiAgfVxyXG5cclxuICBjYW5BY3RpdmF0ZUNoaWxkKFxyXG4gICAgbmV4dDogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICAgIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuPiB8IFByb21pc2U8Ym9vbGVhbj4gfCBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250aW51ZShzdGF0ZS51cmwpO1xyXG4gIH1cclxuXHJcbiAgLyoqIExvZ2ljIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCBhbGxvdyB0byBjb250aW51ZSB0byBuZXh0IHBhZ2UgKi9cclxuICBwcml2YXRlIF9jb250aW51ZShwYWdlVXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNhbkJ5cGFzc0d1YXJkcygpKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJlLXJlcXVpc2l0ZSBoYXMgbm90IGJlIGNvbXBsZXRlZFxyXG4gICAgICovXHJcbiAgICBpZiAoZmFsc2UgPT09IHRoaXMuc2VydmljZS5pc1ByZXJlcXVpc2l0ZUNvbXBsZXRlKCkpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuc2VydmljZS5nZXRTdGFydFVybCgpXSk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZmFsc2UgPT09IHRoaXMuc2VydmljZS5pc1BhZ2VDb21wbGV0ZShwYWdlVXJsKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=