@hmcts/rpx-xui-common-lib 1.7.22 → 1.7.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Injectable } from '@angular/core';
7
7
  import { Router } from '@angular/router';
8
+ import { map } from 'rxjs/operators';
8
9
  import { RoleService } from './role.service';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "./role.service";
@@ -31,25 +32,31 @@ export class RoleGuard {
31
32
  * @return {?}
32
33
  */
33
34
  canActivate(route) {
34
- /** @type {?} */
35
- const roles = ((/** @type {?} */ (route.data.needsRole)));
36
- /** @type {?} */
37
- const check = (/**
38
- * @param {?} roleRegEx
35
+ return this.roleService.roles$.pipe(map((/**
36
+ * @param {?} roles
39
37
  * @return {?}
40
38
  */
41
- (roleRegEx) => {
39
+ roles => {
42
40
  /** @type {?} */
43
- const regex = new RegExp(roleRegEx);
44
- return this.roleService.roles.some((/**
45
- * @param {?} role
41
+ const canActivateRoles = ((/** @type {?} */ (route.data.needsRole)));
42
+ /** @type {?} */
43
+ const check = (/**
44
+ * @param {?} roleRegEx
46
45
  * @return {?}
47
46
  */
48
- role => regex.test(role)));
49
- });
50
- /** @type {?} */
51
- const match = route.data.roleMatching === RoleMatching.ALL ? roles.every(check) : roles.some(check);
52
- return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
47
+ (roleRegEx) => {
48
+ /** @type {?} */
49
+ const regex = new RegExp(roleRegEx);
50
+ return roles.some((/**
51
+ * @param {?} role
52
+ * @return {?}
53
+ */
54
+ role => regex.test(role)));
55
+ });
56
+ /** @type {?} */
57
+ const match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);
58
+ return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
59
+ })));
53
60
  }
54
61
  }
55
62
  RoleGuard.decorators = [
@@ -75,4 +82,4 @@ if (false) {
75
82
  */
76
83
  RoleGuard.prototype.router;
77
84
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcm9sZS1ndWFyZC9yb2xlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0MsTUFBWSxZQUFZO0lBQ3BCLEdBQUcsR0FBQTtJQUNILEdBQUcsR0FBQTtFQUNOOzs7O0FBS0QsTUFBTSxPQUFPLFNBQVM7Ozs7O0lBRWxCLFlBQ3FCLFdBQXdCLEVBQ3hCLE1BQWM7UUFEZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2hDLENBQUM7Ozs7O0lBRUcsV0FBVyxDQUFDLEtBQTZCOztjQUN0QyxLQUFLLEdBQUcsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBWSxDQUFDOztjQUMxQyxLQUFLOzs7O1FBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7O2tCQUMxQixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSTs7OztZQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQTs7Y0FDSyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbkcsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsbUJBQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBVSxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7O1lBbkJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVRNLFdBQVc7WUFEMEIsTUFBTTs7Ozs7Ozs7SUFjNUMsZ0NBQXlDOzs7OztJQUN6QywyQkFBK0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFJvbGVTZXJ2aWNlIH0gZnJvbSAnLi9yb2xlLnNlcnZpY2UnO1xuXG5leHBvcnQgZW51bSBSb2xlTWF0Y2hpbmcge1xuICAgIEFMTCxcbiAgICBBTllcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xuICB9KVxuZXhwb3J0IGNsYXNzIFJvbGVHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb2xlU2VydmljZTogUm9sZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXJcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBib29sZWFuIHwgVXJsVHJlZSB7XG4gICAgICAgIGNvbnN0IHJvbGVzID0gKHJvdXRlLmRhdGEubmVlZHNSb2xlIGFzIHN0cmluZ1tdKTtcbiAgICAgICAgY29uc3QgY2hlY2sgPSAocm9sZVJlZ0V4OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChyb2xlUmVnRXgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm9sZVNlcnZpY2Uucm9sZXMuc29tZShyb2xlID0+IHJlZ2V4LnRlc3Qocm9sZSkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBtYXRjaCA9IHJvdXRlLmRhdGEucm9sZU1hdGNoaW5nID09PSBSb2xlTWF0Y2hpbmcuQUxMID8gcm9sZXMuZXZlcnkoY2hlY2spIDogcm9sZXMuc29tZShjaGVjayk7XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEubm9Sb2xlTWF0Y2hSZWRpcmVjdCBhcyBzdHJpbmcpO1xuICAgIH1cbn1cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcm9sZS1ndWFyZC9yb2xlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTdDLE1BQVksWUFBWTtJQUNwQixHQUFHLEdBQUE7SUFDSCxHQUFHLEdBQUE7RUFDTjs7OztBQUtELE1BQU0sT0FBTyxTQUFTOzs7OztJQUVsQixZQUNxQixXQUF3QixFQUN4QixNQUFjO1FBRGQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNoQyxDQUFDOzs7OztJQUVHLFdBQVcsQ0FBQyxLQUE2QjtRQUM5QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakMsR0FBRzs7OztRQUFDLEtBQUssQ0FBQyxFQUFFOztrQkFDSixnQkFBZ0IsR0FBRyxDQUFDLG1CQUFBLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFZLENBQUM7O2tCQUNyRCxLQUFLOzs7O1lBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQUU7O3NCQUM1QixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNuQyxPQUFPLEtBQUssQ0FBQyxJQUFJOzs7O2dCQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxDQUFDO1lBQzlDLENBQUMsQ0FBQTs7a0JBQ0ssS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUV6SCxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFVLENBQUMsQ0FBQztRQUNqRixDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7O1lBdkJKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OztZQVRNLFdBQVc7WUFIMEIsTUFBTTs7Ozs7Ozs7SUFnQjVDLGdDQUF5Qzs7Ozs7SUFDekMsMkJBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSb2xlU2VydmljZSB9IGZyb20gJy4vcm9sZS5zZXJ2aWNlJztcblxuZXhwb3J0IGVudW0gUm9sZU1hdGNoaW5nIHtcbiAgICBBTEwsXG4gICAgQU5ZXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBSb2xlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm9sZVNlcnZpY2U6IFJvbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogT2JzZXJ2YWJsZTxib29sZWFuIHwgVXJsVHJlZT4ge1xuICAgICAgcmV0dXJuIHRoaXMucm9sZVNlcnZpY2Uucm9sZXMkLnBpcGUoXG4gICAgICAgIG1hcChyb2xlcyA9PiB7XG4gICAgICAgICAgY29uc3QgY2FuQWN0aXZhdGVSb2xlcyA9IChyb3V0ZS5kYXRhLm5lZWRzUm9sZSBhcyBzdHJpbmdbXSk7XG4gICAgICAgICAgY29uc3QgY2hlY2sgPSAocm9sZVJlZ0V4OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChyb2xlUmVnRXgpO1xuICAgICAgICAgICAgcmV0dXJuIHJvbGVzLnNvbWUocm9sZSA9PiByZWdleC50ZXN0KHJvbGUpKTtcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IG1hdGNoID0gcm91dGUuZGF0YS5yb2xlTWF0Y2hpbmcgPT09IFJvbGVNYXRjaGluZy5BTEwgPyBjYW5BY3RpdmF0ZVJvbGVzLmV2ZXJ5KGNoZWNrKSA6IGNhbkFjdGl2YXRlUm9sZXMuc29tZShjaGVjayk7XG5cbiAgICAgICAgICByZXR1cm4gbWF0Y2ggfHwgdGhpcy5yb3V0ZXIucGFyc2VVcmwocm91dGUuZGF0YS5ub1JvbGVNYXRjaFJlZGlyZWN0IGFzIHN0cmluZyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -4,23 +4,24 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  import { Injectable } from '@angular/core';
7
+ import { BehaviorSubject } from 'rxjs';
8
+ import { skipWhile } from 'rxjs/operators';
7
9
  import * as i0 from "@angular/core";
8
10
  export class RoleService {
9
11
  constructor() {
10
- this.pRoles = [];
11
- }
12
- /**
13
- * @return {?}
14
- */
15
- get roles() {
16
- return this.pRoles;
12
+ this.pRoles = new BehaviorSubject(null);
13
+ this.roles$ = this.pRoles.asObservable().pipe(skipWhile((/**
14
+ * @param {?} item
15
+ * @return {?}
16
+ */
17
+ item => item === null)));
17
18
  }
18
19
  /**
19
20
  * @param {?} roles
20
21
  * @return {?}
21
22
  */
22
23
  set roles(roles) {
23
- this.pRoles = roles;
24
+ this.pRoles.next(roles);
24
25
  }
25
26
  }
26
27
  RoleService.decorators = [
@@ -30,10 +31,9 @@ RoleService.decorators = [
30
31
  ];
31
32
  /** @nocollapse */ RoleService.ngInjectableDef = i0.defineInjectable({ factory: function RoleService_Factory() { return new RoleService(); }, token: RoleService, providedIn: "root" });
32
33
  if (false) {
33
- /**
34
- * @type {?}
35
- * @private
36
- */
34
+ /** @type {?} */
37
35
  RoleService.prototype.pRoles;
36
+ /** @type {?} */
37
+ RoleService.prototype.roles$;
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yb2xlLWd1YXJkL3JvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxXQUFXO0lBSHhCO1FBSVksV0FBTSxHQUFVLEVBQUUsQ0FBQztLQVM5Qjs7OztJQVBHLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDOzs7OztJQUVELElBQVcsS0FBSyxDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQzs7O1lBWkosVUFBVSxTQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7Ozs7OztJQUVDLDZCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gdXNlIHR5cGVzIHNvIHdlIGNhbiBtb3ZlIHRvIHN0cmljdGVkIHR5cGluZyBsYXRlciBvblxuZXhwb3J0IHR5cGUgUm9sZSA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFJvbGVzID0gUm9sZVtdO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gIH0pXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcFJvbGVzOiBSb2xlcyA9IFtdO1xuXG4gICAgcHVibGljIGdldCByb2xlcygpOiBSb2xlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBSb2xlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJvbGVzKHJvbGVzOiBSb2xlcykge1xuICAgICAgICB0aGlzLnBSb2xlcyA9IHJvbGVzO1xuICAgIH1cbn1cbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yb2xlLWd1YXJkL3JvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBUzNDLE1BQU0sT0FBTyxXQUFXO0lBSHhCO1FBSW9CLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUSxJQUFJLENBQUMsQ0FBQztRQUNuRCxXQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUzs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBQyxDQUFDLENBQUM7S0FLckY7Ozs7O0lBSEcsSUFBVyxLQUFLLENBQUMsS0FBWTtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOzs7WUFUSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDbkI7Ozs7O0lBRUMsNkJBQTBEOztJQUMxRCw2QkFBa0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHNraXBXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLy8gdXNlIHR5cGVzIHNvIHdlIGNhbiBtb3ZlIHRvIHN0cmljdGVkIHR5cGluZyBsYXRlciBvblxuZXhwb3J0IHR5cGUgUm9sZSA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFJvbGVzID0gUm9sZVtdO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gIH0pXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2Uge1xuICAgIHB1YmxpYyByZWFkb25seSBwUm9sZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJvbGVzPihudWxsKTtcbiAgICBwdWJsaWMgcm9sZXMkID0gdGhpcy5wUm9sZXMuYXNPYnNlcnZhYmxlKCkucGlwZShza2lwV2hpbGUoaXRlbSA9PiBpdGVtID09PSBudWxsKSk7XG5cbiAgICBwdWJsaWMgc2V0IHJvbGVzKHJvbGVzOiBSb2xlcykge1xuICAgICAgICB0aGlzLnBSb2xlcy5uZXh0KHJvbGVzKTtcbiAgICB9XG59XG4iXX0=
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Injectable } from '@angular/core';
7
7
  import { Router } from '@angular/router';
8
+ import { map } from 'rxjs/operators';
8
9
  import { RoleService } from './role.service';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "./role.service";
@@ -32,25 +33,31 @@ var RoleGuard = /** @class */ (function () {
32
33
  */
33
34
  function (route) {
34
35
  var _this = this;
35
- /** @type {?} */
36
- var roles = ((/** @type {?} */ (route.data.needsRole)));
37
- /** @type {?} */
38
- var check = (/**
39
- * @param {?} roleRegEx
36
+ return this.roleService.roles$.pipe(map((/**
37
+ * @param {?} roles
40
38
  * @return {?}
41
39
  */
42
- function (roleRegEx) {
40
+ function (roles) {
43
41
  /** @type {?} */
44
- var regex = new RegExp(roleRegEx);
45
- return _this.roleService.roles.some((/**
46
- * @param {?} role
42
+ var canActivateRoles = ((/** @type {?} */ (route.data.needsRole)));
43
+ /** @type {?} */
44
+ var check = (/**
45
+ * @param {?} roleRegEx
47
46
  * @return {?}
48
47
  */
49
- function (role) { return regex.test(role); }));
50
- });
51
- /** @type {?} */
52
- var match = route.data.roleMatching === RoleMatching.ALL ? roles.every(check) : roles.some(check);
53
- return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
48
+ function (roleRegEx) {
49
+ /** @type {?} */
50
+ var regex = new RegExp(roleRegEx);
51
+ return roles.some((/**
52
+ * @param {?} role
53
+ * @return {?}
54
+ */
55
+ function (role) { return regex.test(role); }));
56
+ });
57
+ /** @type {?} */
58
+ var match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);
59
+ return match || _this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
60
+ })));
54
61
  };
55
62
  RoleGuard.decorators = [
56
63
  { type: Injectable, args: [{
@@ -78,4 +85,4 @@ if (false) {
78
85
  */
79
86
  RoleGuard.prototype.router;
80
87
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcm9sZS1ndWFyZC9yb2xlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFN0MsSUFBWSxZQUFZO0lBQ3BCLEdBQUcsR0FBQTtJQUNILEdBQUcsR0FBQTtFQUNOOzs7O0FBRUQ7SUFLSSxtQkFDcUIsV0FBd0IsRUFDeEIsTUFBYztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDaEMsQ0FBQzs7Ozs7SUFFRywrQkFBVzs7OztJQUFsQixVQUFtQixLQUE2QjtRQUFoRCxpQkFTQzs7WUFSUyxLQUFLLEdBQUcsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBWSxDQUFDOztZQUMxQyxLQUFLOzs7O1FBQUcsVUFBQyxTQUFpQjs7Z0JBQ3RCLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDbkMsT0FBTyxLQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJOzs7O1lBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFoQixDQUFnQixFQUFDLENBQUM7UUFDakUsQ0FBQyxDQUFBOztZQUNLLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUVuRyxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFVLENBQUMsQ0FBQztJQUNuRixDQUFDOztnQkFuQkosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztnQkFUTSxXQUFXO2dCQUQwQixNQUFNOzs7b0JBRHBEO0NBNkJDLEFBcEJELElBb0JDO1NBakJZLFNBQVM7Ozs7OztJQUdkLGdDQUF5Qzs7Ozs7SUFDekMsMkJBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgQ2FuQWN0aXZhdGUsIFJvdXRlciwgVXJsVHJlZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSb2xlU2VydmljZSB9IGZyb20gJy4vcm9sZS5zZXJ2aWNlJztcblxuZXhwb3J0IGVudW0gUm9sZU1hdGNoaW5nIHtcbiAgICBBTEwsXG4gICAgQU5ZXG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBSb2xlR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm9sZVNlcnZpY2U6IFJvbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICAgKSB7fVxuXG4gICAgcHVibGljIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogYm9vbGVhbiB8IFVybFRyZWUge1xuICAgICAgICBjb25zdCByb2xlcyA9IChyb3V0ZS5kYXRhLm5lZWRzUm9sZSBhcyBzdHJpbmdbXSk7XG4gICAgICAgIGNvbnN0IGNoZWNrID0gKHJvbGVSZWdFeDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocm9sZVJlZ0V4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJvbGVTZXJ2aWNlLnJvbGVzLnNvbWUocm9sZSA9PiByZWdleC50ZXN0KHJvbGUpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSByb3V0ZS5kYXRhLnJvbGVNYXRjaGluZyA9PT0gUm9sZU1hdGNoaW5nLkFMTCA/IHJvbGVzLmV2ZXJ5KGNoZWNrKSA6IHJvbGVzLnNvbWUoY2hlY2spO1xuXG4gICAgICAgIHJldHVybiBtYXRjaCB8fCB0aGlzLnJvdXRlci5wYXJzZVVybChyb3V0ZS5kYXRhLm5vUm9sZU1hdGNoUmVkaXJlY3QgYXMgc3RyaW5nKTtcbiAgICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BobWN0cy9ycHgteHVpLWNvbW1vbi1saWIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcm9sZS1ndWFyZC9yb2xlLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBVyxNQUFNLGlCQUFpQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBRTdDLElBQVksWUFBWTtJQUNwQixHQUFHLEdBQUE7SUFDSCxHQUFHLEdBQUE7RUFDTjs7OztBQUVEO0lBS0ksbUJBQ3FCLFdBQXdCLEVBQ3hCLE1BQWM7UUFEZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ2hDLENBQUM7Ozs7O0lBRUcsK0JBQVc7Ozs7SUFBbEIsVUFBbUIsS0FBNkI7UUFBaEQsaUJBYUM7UUFaQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDakMsR0FBRzs7OztRQUFDLFVBQUEsS0FBSzs7Z0JBQ0QsZ0JBQWdCLEdBQUcsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBWSxDQUFDOztnQkFDckQsS0FBSzs7OztZQUFHLFVBQUMsU0FBaUI7O29CQUN4QixLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNuQyxPQUFPLEtBQUssQ0FBQyxJQUFJOzs7O2dCQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBaEIsQ0FBZ0IsRUFBQyxDQUFDO1lBQzlDLENBQUMsQ0FBQTs7Z0JBQ0ssS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUV6SCxPQUFPLEtBQUssSUFBSSxLQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBQSxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFVLENBQUMsQ0FBQztRQUNqRixDQUFDLEVBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7Z0JBdkJKLFVBQVUsU0FBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7Ozs7Z0JBVE0sV0FBVztnQkFIMEIsTUFBTTs7O29CQURwRDtDQW1DQyxBQXhCRCxJQXdCQztTQXJCWSxTQUFTOzs7Ozs7SUFHZCxnQ0FBeUM7Ozs7O0lBQ3pDLDJCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIsIFVybFRyZWUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUm9sZVNlcnZpY2UgfSBmcm9tICcuL3JvbGUuc2VydmljZSc7XG5cbmV4cG9ydCBlbnVtIFJvbGVNYXRjaGluZyB7XG4gICAgQUxMLFxuICAgIEFOWVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gIH0pXG5leHBvcnQgY2xhc3MgUm9sZUd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvbGVTZXJ2aWNlOiBSb2xlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlclxuICAgICkge31cblxuICAgIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbiB8IFVybFRyZWU+IHtcbiAgICAgIHJldHVybiB0aGlzLnJvbGVTZXJ2aWNlLnJvbGVzJC5waXBlKFxuICAgICAgICBtYXAocm9sZXMgPT4ge1xuICAgICAgICAgIGNvbnN0IGNhbkFjdGl2YXRlUm9sZXMgPSAocm91dGUuZGF0YS5uZWVkc1JvbGUgYXMgc3RyaW5nW10pO1xuICAgICAgICAgIGNvbnN0IGNoZWNrID0gKHJvbGVSZWdFeDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAocm9sZVJlZ0V4KTtcbiAgICAgICAgICAgIHJldHVybiByb2xlcy5zb21lKHJvbGUgPT4gcmVnZXgudGVzdChyb2xlKSk7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBtYXRjaCA9IHJvdXRlLmRhdGEucm9sZU1hdGNoaW5nID09PSBSb2xlTWF0Y2hpbmcuQUxMID8gY2FuQWN0aXZhdGVSb2xlcy5ldmVyeShjaGVjaykgOiBjYW5BY3RpdmF0ZVJvbGVzLnNvbWUoY2hlY2spO1xuXG4gICAgICAgICAgcmV0dXJuIG1hdGNoIHx8IHRoaXMucm91dGVyLnBhcnNlVXJsKHJvdXRlLmRhdGEubm9Sb2xlTWF0Y2hSZWRpcmVjdCBhcyBzdHJpbmcpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -4,24 +4,25 @@
4
4
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
5
  */
6
6
  import { Injectable } from '@angular/core';
7
+ import { BehaviorSubject } from 'rxjs';
8
+ import { skipWhile } from 'rxjs/operators';
7
9
  import * as i0 from "@angular/core";
8
10
  var RoleService = /** @class */ (function () {
9
11
  function RoleService() {
10
- this.pRoles = [];
11
- }
12
- Object.defineProperty(RoleService.prototype, "roles", {
13
- get: /**
12
+ this.pRoles = new BehaviorSubject(null);
13
+ this.roles$ = this.pRoles.asObservable().pipe(skipWhile((/**
14
+ * @param {?} item
14
15
  * @return {?}
15
16
  */
16
- function () {
17
- return this.pRoles;
18
- },
17
+ function (item) { return item === null; })));
18
+ }
19
+ Object.defineProperty(RoleService.prototype, "roles", {
19
20
  set: /**
20
21
  * @param {?} roles
21
22
  * @return {?}
22
23
  */
23
24
  function (roles) {
24
- this.pRoles = roles;
25
+ this.pRoles.next(roles);
25
26
  },
26
27
  enumerable: true,
27
28
  configurable: true
@@ -36,10 +37,9 @@ var RoleService = /** @class */ (function () {
36
37
  }());
37
38
  export { RoleService };
38
39
  if (false) {
39
- /**
40
- * @type {?}
41
- * @private
42
- */
40
+ /** @type {?} */
43
41
  RoleService.prototype.pRoles;
42
+ /** @type {?} */
43
+ RoleService.prototype.roles$;
44
44
  }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yb2xlLWd1YXJkL3JvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDO0lBQUE7UUFJWSxXQUFNLEdBQVUsRUFBRSxDQUFDO0tBUzlCO0lBUEcsc0JBQVcsOEJBQUs7Ozs7UUFBaEI7WUFDSSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQzs7Ozs7UUFFRCxVQUFpQixLQUFZO1lBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUM7OztPQUpBOztnQkFSSixVQUFVLFNBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7c0JBUkg7Q0FtQkMsQUFiRCxJQWFDO1NBVlksV0FBVzs7Ozs7O0lBQ3BCLDZCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gdXNlIHR5cGVzIHNvIHdlIGNhbiBtb3ZlIHRvIHN0cmljdGVkIHR5cGluZyBsYXRlciBvblxuZXhwb3J0IHR5cGUgUm9sZSA9IHN0cmluZztcbmV4cG9ydCB0eXBlIFJvbGVzID0gUm9sZVtdO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG4gIH0pXG5leHBvcnQgY2xhc3MgUm9sZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcFJvbGVzOiBSb2xlcyA9IFtdO1xuXG4gICAgcHVibGljIGdldCByb2xlcygpOiBSb2xlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBSb2xlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJvbGVzKHJvbGVzOiBSb2xlcykge1xuICAgICAgICB0aGlzLnBSb2xlcyA9IHJvbGVzO1xuICAgIH1cbn1cbiJdfQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGhtY3RzL3JweC14dWktY29tbW9uLWxpYi8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9yb2xlLWd1YXJkL3JvbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBTTNDO0lBQUE7UUFJb0IsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxDQUFDO1FBQ25ELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTOzs7O1FBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLEtBQUssSUFBSSxFQUFiLENBQWEsRUFBQyxDQUFDLENBQUM7S0FLckY7SUFIRyxzQkFBVyw4QkFBSzs7Ozs7UUFBaEIsVUFBaUIsS0FBWTtZQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDOzs7T0FBQTs7Z0JBVEosVUFBVSxTQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7O3NCQVZIO0NBa0JDLEFBVkQsSUFVQztTQVBZLFdBQVc7OztJQUNwQiw2QkFBMEQ7O0lBQzFELDZCQUFrRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2tpcFdoaWxlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyB1c2UgdHlwZXMgc28gd2UgY2FuIG1vdmUgdG8gc3RyaWN0ZWQgdHlwaW5nIGxhdGVyIG9uXG5leHBvcnQgdHlwZSBSb2xlID0gc3RyaW5nO1xuZXhwb3J0IHR5cGUgUm9sZXMgPSBSb2xlW107XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbiAgfSlcbmV4cG9ydCBjbGFzcyBSb2xlU2VydmljZSB7XG4gICAgcHVibGljIHJlYWRvbmx5IHBSb2xlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Um9sZXM+KG51bGwpO1xuICAgIHB1YmxpYyByb2xlcyQgPSB0aGlzLnBSb2xlcy5hc09ic2VydmFibGUoKS5waXBlKHNraXBXaGlsZShpdGVtID0+IGl0ZW0gPT09IG51bGwpKTtcblxuICAgIHB1YmxpYyBzZXQgcm9sZXMocm9sZXM6IFJvbGVzKSB7XG4gICAgICAgIHRoaXMucFJvbGVzLm5leHQocm9sZXMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -11,7 +11,7 @@ import { Keepalive } from '@ng-idle/keepalive';
11
11
  import { RouterModule, Router, NavigationEnd } from '@angular/router';
12
12
  import { Component, EventEmitter, Input, Output, ViewEncapsulation, Injectable, Directive, TemplateRef, ViewContainerRef, ElementRef, Inject, ViewChild, ChangeDetectorRef, InjectionToken, ChangeDetectionStrategy, defineInjectable, inject, NgModule } from '@angular/core';
13
13
  import { BehaviorSubject, of, zip, Subject, combineLatest } from 'rxjs';
14
- import { distinctUntilChanged, map, debounceTime, filter, mergeMap, tap, catchError, switchMap, delay } from 'rxjs/operators';
14
+ import { distinctUntilChanged, map, debounceTime, filter, mergeMap, tap, catchError, switchMap, delay, skipWhile } from 'rxjs/operators';
15
15
 
16
16
  /**
17
17
  * @fileoverview added by tsickle
@@ -6267,20 +6267,19 @@ TimeoutNotificationsService.ctorParameters = () => [
6267
6267
  */
6268
6268
  class RoleService {
6269
6269
  constructor() {
6270
- this.pRoles = [];
6271
- }
6272
- /**
6273
- * @return {?}
6274
- */
6275
- get roles() {
6276
- return this.pRoles;
6270
+ this.pRoles = new BehaviorSubject(null);
6271
+ this.roles$ = this.pRoles.asObservable().pipe(skipWhile((/**
6272
+ * @param {?} item
6273
+ * @return {?}
6274
+ */
6275
+ item => item === null)));
6277
6276
  }
6278
6277
  /**
6279
6278
  * @param {?} roles
6280
6279
  * @return {?}
6281
6280
  */
6282
6281
  set roles(roles) {
6283
- this.pRoles = roles;
6282
+ this.pRoles.next(roles);
6284
6283
  }
6285
6284
  }
6286
6285
  RoleService.decorators = [
@@ -6316,25 +6315,31 @@ class RoleGuard {
6316
6315
  * @return {?}
6317
6316
  */
6318
6317
  canActivate(route) {
6319
- /** @type {?} */
6320
- const roles = ((/** @type {?} */ (route.data.needsRole)));
6321
- /** @type {?} */
6322
- const check = (/**
6323
- * @param {?} roleRegEx
6318
+ return this.roleService.roles$.pipe(map((/**
6319
+ * @param {?} roles
6324
6320
  * @return {?}
6325
6321
  */
6326
- (roleRegEx) => {
6322
+ roles => {
6327
6323
  /** @type {?} */
6328
- const regex = new RegExp(roleRegEx);
6329
- return this.roleService.roles.some((/**
6330
- * @param {?} role
6324
+ const canActivateRoles = ((/** @type {?} */ (route.data.needsRole)));
6325
+ /** @type {?} */
6326
+ const check = (/**
6327
+ * @param {?} roleRegEx
6331
6328
  * @return {?}
6332
6329
  */
6333
- role => regex.test(role)));
6334
- });
6335
- /** @type {?} */
6336
- const match = route.data.roleMatching === RoleMatching.ALL ? roles.every(check) : roles.some(check);
6337
- return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
6330
+ (roleRegEx) => {
6331
+ /** @type {?} */
6332
+ const regex = new RegExp(roleRegEx);
6333
+ return roles.some((/**
6334
+ * @param {?} role
6335
+ * @return {?}
6336
+ */
6337
+ role => regex.test(role)));
6338
+ });
6339
+ /** @type {?} */
6340
+ const match = route.data.roleMatching === RoleMatching.ALL ? canActivateRoles.every(check) : canActivateRoles.some(check);
6341
+ return match || this.router.parseUrl((/** @type {?} */ (route.data.noRoleMatchRedirect)));
6342
+ })));
6338
6343
  }
6339
6344
  }
6340
6345
  RoleGuard.decorators = [