@csmart/ngc-smart-core 0.7.95 → 1.13.2

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.
Files changed (91) hide show
  1. package/csmart-ngc-smart-core.d.ts +1 -5
  2. package/esm2020/csmart-ngc-smart-core.mjs +5 -0
  3. package/esm2020/lib/ngc-smart-core.module.mjs +97 -0
  4. package/esm2020/lib/smart-auth/smart-access-control-config.mjs +12 -0
  5. package/esm2020/lib/smart-auth/smart-access-control.directive.mjs +40 -0
  6. package/esm2020/lib/smart-auth/smart-auth.service.mjs +479 -0
  7. package/esm2020/lib/smart-auth/smart-authorization-guard.service.mjs +35 -0
  8. package/esm2020/lib/smart-auth/smart-error.component.mjs +37 -0
  9. package/esm2020/lib/smart-auth/smart-login-staff-resolver.service.mjs +59 -0
  10. package/esm2020/lib/smart-auth/smart-selected-offender-resolver.service.mjs +49 -0
  11. package/esm2020/lib/smart-navbar/smart-navbar-config.mjs +2 -0
  12. package/esm2020/lib/smart-navbar/smart-navbar.component.mjs +132 -0
  13. package/esm2020/lib/smart-navbar/smart-navbar.service.mjs +63 -0
  14. package/esm2020/lib/smart-offender-header/smart-offender-header.component.mjs +151 -0
  15. package/esm2020/lib/smart-offender-header/smart-offender-header.service.mjs +41 -0
  16. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.mjs +25 -0
  17. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.component.mjs +78 -0
  18. package/esm2020/lib/smart-staff-offender-options/smart-staff-offender-options.service.mjs +134 -0
  19. package/esm2020/lib/smart-storage/smart-storage-model.mjs +30 -0
  20. package/esm2020/lib/smart-storage/xdm.service.mjs +158 -0
  21. package/esm2020/public-api.mjs +20 -0
  22. package/fesm2015/csmart-ngc-smart-core.mjs +1529 -0
  23. package/fesm2015/csmart-ngc-smart-core.mjs.map +1 -0
  24. package/fesm2020/csmart-ngc-smart-core.mjs +1514 -0
  25. package/fesm2020/csmart-ngc-smart-core.mjs.map +1 -0
  26. package/lib/ngc-smart-core.module.d.ts +18 -0
  27. package/lib/smart-auth/smart-access-control.directive.d.ts +3 -0
  28. package/lib/smart-auth/smart-auth.service.d.ts +4 -0
  29. package/lib/smart-auth/smart-authorization-guard.service.d.ts +3 -0
  30. package/lib/smart-auth/smart-error.component.d.ts +3 -0
  31. package/lib/smart-auth/smart-login-staff-resolver.service.d.ts +3 -0
  32. package/lib/smart-auth/smart-selected-offender-resolver.service.d.ts +3 -0
  33. package/lib/smart-navbar/smart-navbar.component.d.ts +6 -3
  34. package/lib/smart-navbar/smart-navbar.service.d.ts +3 -0
  35. package/lib/smart-offender-header/smart-offender-header.component.d.ts +4 -1
  36. package/lib/smart-offender-header/smart-offender-header.service.d.ts +3 -0
  37. package/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.d.ts +3 -0
  38. package/lib/smart-staff-offender-options/smart-staff-offender-options.component.d.ts +3 -0
  39. package/lib/smart-staff-offender-options/smart-staff-offender-options.service.d.ts +6 -3
  40. package/lib/smart-storage/xdm.service.d.ts +3 -0
  41. package/package.json +25 -14
  42. package/public-api.d.ts +3 -0
  43. package/bundles/csmart-ngc-smart-core.umd.js +0 -2620
  44. package/bundles/csmart-ngc-smart-core.umd.js.map +0 -1
  45. package/bundles/csmart-ngc-smart-core.umd.min.js +0 -2
  46. package/bundles/csmart-ngc-smart-core.umd.min.js.map +0 -1
  47. package/csmart-ngc-smart-core.metadata.json +0 -1
  48. package/esm2015/csmart-ngc-smart-core.js +0 -15
  49. package/esm2015/lib/ngc-smart-core.module.js +0 -59
  50. package/esm2015/lib/smart-auth/smart-access-control-config.js +0 -32
  51. package/esm2015/lib/smart-auth/smart-access-control.directive.js +0 -70
  52. package/esm2015/lib/smart-auth/smart-auth.service.js +0 -693
  53. package/esm2015/lib/smart-auth/smart-authorization-guard.service.js +0 -63
  54. package/esm2015/lib/smart-auth/smart-error.component.js +0 -77
  55. package/esm2015/lib/smart-auth/smart-login-staff-resolver.service.js +0 -94
  56. package/esm2015/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -101
  57. package/esm2015/lib/smart-navbar/smart-navbar-config.js +0 -22
  58. package/esm2015/lib/smart-navbar/smart-navbar.component.js +0 -224
  59. package/esm2015/lib/smart-navbar/smart-navbar.service.js +0 -89
  60. package/esm2015/lib/smart-offender-header/smart-offender-header.component.js +0 -253
  61. package/esm2015/lib/smart-offender-header/smart-offender-header.service.js +0 -85
  62. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -49
  63. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -151
  64. package/esm2015/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -222
  65. package/esm2015/lib/smart-storage/smart-storage-model.js +0 -131
  66. package/esm2015/lib/smart-storage/xdm.service.js +0 -317
  67. package/esm2015/public-api.js +0 -22
  68. package/esm5/csmart-ngc-smart-core.js +0 -15
  69. package/esm5/lib/ngc-smart-core.module.js +0 -63
  70. package/esm5/lib/smart-auth/smart-access-control-config.js +0 -32
  71. package/esm5/lib/smart-auth/smart-access-control.directive.js +0 -74
  72. package/esm5/lib/smart-auth/smart-auth.service.js +0 -762
  73. package/esm5/lib/smart-auth/smart-authorization-guard.service.js +0 -67
  74. package/esm5/lib/smart-auth/smart-error.component.js +0 -83
  75. package/esm5/lib/smart-auth/smart-login-staff-resolver.service.js +0 -98
  76. package/esm5/lib/smart-auth/smart-selected-offender-resolver.service.js +0 -108
  77. package/esm5/lib/smart-navbar/smart-navbar-config.js +0 -22
  78. package/esm5/lib/smart-navbar/smart-navbar.component.js +0 -251
  79. package/esm5/lib/smart-navbar/smart-navbar.service.js +0 -114
  80. package/esm5/lib/smart-offender-header/smart-offender-header.component.js +0 -283
  81. package/esm5/lib/smart-offender-header/smart-offender-header.service.js +0 -76
  82. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options-resolver.service.js +0 -52
  83. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.component.js +0 -165
  84. package/esm5/lib/smart-staff-offender-options/smart-staff-offender-options.service.js +0 -232
  85. package/esm5/lib/smart-storage/smart-storage-model.js +0 -155
  86. package/esm5/lib/smart-storage/xdm.service.js +0 -389
  87. package/esm5/public-api.js +0 -22
  88. package/fesm2015/csmart-ngc-smart-core.js +0 -2231
  89. package/fesm2015/csmart-ngc-smart-core.js.map +0 -1
  90. package/fesm5/csmart-ngc-smart-core.js +0 -2502
  91. package/fesm5/csmart-ngc-smart-core.js.map +0 -1
@@ -1,63 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-auth/smart-authorization-guard.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- // smart-authorization.service
7
- import { Injectable } from '@angular/core';
8
- import { take, mergeMap, catchError } from 'rxjs/operators';
9
- import { of } from 'rxjs';
10
- import { SmartAuthService } from './smart-auth.service';
11
- export class SmartAuthorizationGuard {
12
- /**
13
- * @param {?} authnService
14
- */
15
- constructor(authnService) {
16
- this.authnService = authnService;
17
- }
18
- /**
19
- * @param {?} route
20
- * @return {?}
21
- */
22
- canActivate(route) {
23
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
24
- * @param {?} loginStaff
25
- * @return {?}
26
- */
27
- (loginStaff) => {
28
- if (!loginStaff || !route || !route.routeConfig) {
29
- return of(false);
30
- }
31
- // if (!this.authnService.isAuthEnable(loginStaff.roles, null)) {
32
- // return of(true);
33
- // }
34
- /** @type {?} */
35
- const resource = route.routeConfig.path
36
- ? route.routeConfig.path.split('/')[0]
37
- : '';
38
- /** @type {?} */
39
- const isFeatureValid = this.authnService.canAppFeatureActivate(loginStaff, resource);
40
- return of(isFeatureValid);
41
- })), catchError((/**
42
- * @param {?} error
43
- * @return {?}
44
- */
45
- (error) => {
46
- return of(false);
47
- })));
48
- }
49
- }
50
- SmartAuthorizationGuard.decorators = [
51
- { type: Injectable }
52
- ];
53
- /** @nocollapse */
54
- SmartAuthorizationGuard.ctorParameters = () => [
55
- { type: SmartAuthService }
56
- ];
57
- if (false) {
58
- /** @type {?} */
59
- SmartAuthorizationGuard.prototype.loginStaff;
60
- /** @type {?} */
61
- SmartAuthorizationGuard.prototype.authnService;
62
- }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtYXV0aG9yaXphdGlvbi1ndWFyZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWF1dGhvcml6YXRpb24tZ3VhcmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxFQUFFLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHeEQsTUFBTSxPQUFPLHVCQUF1Qjs7OztJQUdsQyxZQUFtQixZQUE4QjtRQUE5QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7SUFBSSxDQUFDOzs7OztJQUV0RCxXQUFXLENBQUMsS0FBNkI7UUFDdkMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVE7Ozs7UUFBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUMvQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNsQjs7Ozs7a0JBSUssUUFBUSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSTtnQkFDckMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxFQUFFOztrQkFDQSxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxxQkFBcUIsQ0FDNUQsVUFBVSxFQUNWLFFBQVEsQ0FDVDtZQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsRUFBQyxFQUNGLFVBQVU7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUE3QkYsVUFBVTs7OztZQUZGLGdCQUFnQjs7OztJQUl2Qiw2Q0FBdUI7O0lBRVgsK0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc21hcnQtYXV0aG9yaXphdGlvbi5zZXJ2aWNlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBDYW5BY3RpdmF0ZSxcclxuICBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3QsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgdGFrZSwgbWVyZ2VNYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExvZ2luU3RhZmYgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5pbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU21hcnRBdXRob3JpemF0aW9uR3VhcmQgaW1wbGVtZW50cyBDYW5BY3RpdmF0ZSB7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGF1dGhuU2VydmljZTogU21hcnRBdXRoU2VydmljZSkgeyB9XHJcblxyXG4gIGNhbkFjdGl2YXRlKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5hdXRoblNlcnZpY2UuZ2V0TG9naW5TdGFmZigpLnBpcGUoXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIG1lcmdlTWFwKChsb2dpblN0YWZmKSA9PiB7XHJcbiAgICAgICAgaWYgKCFsb2dpblN0YWZmIHx8ICFyb3V0ZSB8fCAhcm91dGUucm91dGVDb25maWcpIHtcclxuICAgICAgICAgIHJldHVybiBvZihmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGlmICghdGhpcy5hdXRoblNlcnZpY2UuaXNBdXRoRW5hYmxlKGxvZ2luU3RhZmYucm9sZXMsIG51bGwpKSB7XHJcbiAgICAgICAgLy8gICByZXR1cm4gb2YodHJ1ZSk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGNvbnN0IHJlc291cmNlID0gcm91dGUucm91dGVDb25maWcucGF0aFxyXG4gICAgICAgICAgPyByb3V0ZS5yb3V0ZUNvbmZpZy5wYXRoLnNwbGl0KCcvJylbMF1cclxuICAgICAgICAgIDogJyc7XHJcbiAgICAgICAgY29uc3QgaXNGZWF0dXJlVmFsaWQgPSB0aGlzLmF1dGhuU2VydmljZS5jYW5BcHBGZWF0dXJlQWN0aXZhdGUoXHJcbiAgICAgICAgICBsb2dpblN0YWZmLFxyXG4gICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gb2YoaXNGZWF0dXJlVmFsaWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,77 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-auth/smart-error.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, Inject } from '@angular/core';
7
- // import { SmartAuthService } from './smart-auth.service';
8
- import { MsalService } from '@azure/msal-angular';
9
- import { ActivatedRoute } from '@angular/router';
10
- import { SMART_WEB_PORTAL_URL } from '../smart-storage/smart-storage-model';
11
- export class SmartErrorComponent {
12
- /**
13
- * @param {?} authnService
14
- * @param {?} route
15
- * @param {?} smartWebPortalUrl
16
- */
17
- constructor(authnService, route, smartWebPortalUrl) {
18
- this.authnService = authnService;
19
- this.route = route;
20
- this.smartWebPortalUrl = smartWebPortalUrl;
21
- }
22
- /**
23
- * @return {?}
24
- */
25
- ngOnInit() {
26
- this.type = this.route.snapshot.queryParamMap.get('type') || 'staff';
27
- this.message =
28
- this.route.snapshot.queryParamMap.get('message') || 'Error occured.';
29
- }
30
- /**
31
- * @return {?}
32
- */
33
- logout() {
34
- this.authnService.logout();
35
- }
36
- /**
37
- * @return {?}
38
- */
39
- portal() {
40
- window.location.href = this.smartWebPortalUrl;
41
- }
42
- }
43
- SmartErrorComponent.decorators = [
44
- { type: Component, args: [{
45
- selector: 'app-smart-error',
46
- template: "<div>\r\n <h2>\r\n {{ message }}\r\n </h2>\r\n <p>\r\n Please contact help desk if needed.\r\n </p>\r\n <div>\r\n <button (click)=\"logout()\" *ngIf=\"type === 'staff'\">OK</button>\r\n <button (click)=\"portal()\" *ngIf=\"type === 'offender'\">OK</button>\r\n </div>\r\n</div>\r\n",
47
- styles: ["div{text-align:center}"]
48
- }] }
49
- ];
50
- /** @nocollapse */
51
- SmartErrorComponent.ctorParameters = () => [
52
- { type: MsalService },
53
- { type: ActivatedRoute },
54
- { type: String, decorators: [{ type: Inject, args: [SMART_WEB_PORTAL_URL,] }] }
55
- ];
56
- if (false) {
57
- /** @type {?} */
58
- SmartErrorComponent.prototype.type;
59
- /** @type {?} */
60
- SmartErrorComponent.prototype.message;
61
- /**
62
- * @type {?}
63
- * @private
64
- */
65
- SmartErrorComponent.prototype.authnService;
66
- /**
67
- * @type {?}
68
- * @private
69
- */
70
- SmartErrorComponent.prototype.route;
71
- /**
72
- * @type {?}
73
- * @private
74
- */
75
- SmartErrorComponent.prototype.smartWebPortalUrl;
76
- }
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNzbWFydC9uZ2Mtc21hcnQtY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zbWFydC1hdXRoL3NtYXJ0LWVycm9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBTzVFLE1BQU0sT0FBTyxtQkFBbUI7Ozs7OztJQUk5QixZQUNVLFlBQXlCLEVBQ3pCLEtBQXFCLEVBQ1MsaUJBQXlCO1FBRnZELGlCQUFZLEdBQVosWUFBWSxDQUFhO1FBQ3pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ1Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFRO0lBQzlELENBQUM7Ozs7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE9BQU8sQ0FBQztRQUNyRSxJQUFJLENBQUMsT0FBTztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksZ0JBQWdCLENBQUM7SUFDekUsQ0FBQzs7OztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7SUFFRCxNQUFNO1FBQ0osTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELENBQUM7OztZQTNCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0IsdVRBQTJDOzthQUU1Qzs7OztZQVJRLFdBQVc7WUFDWCxjQUFjO3lDQWVsQixNQUFNLFNBQUMsb0JBQW9COzs7O0lBTjlCLG1DQUFhOztJQUNiLHNDQUFnQjs7Ozs7SUFHZCwyQ0FBaUM7Ozs7O0lBQ2pDLG9DQUE2Qjs7Ozs7SUFDN0IsZ0RBQStEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBpbXBvcnQgeyBTbWFydEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi9zbWFydC1hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFNNQVJUX1dFQl9QT1JUQUxfVVJMIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNtYXJ0LWVycm9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc21hcnQtZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LWVycm9yLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0RXJyb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoblNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBASW5qZWN0KFNNQVJUX1dFQl9QT1JUQUxfVVJMKSBwcml2YXRlIHNtYXJ0V2ViUG9ydGFsVXJsOiBzdHJpbmcsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZSA9IHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ3R5cGUnKSB8fCAnc3RhZmYnO1xyXG4gICAgdGhpcy5tZXNzYWdlID1cclxuICAgICAgdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnbWVzc2FnZScpIHx8ICdFcnJvciBvY2N1cmVkLic7XHJcbiAgfVxyXG5cclxuICBsb2dvdXQoKSB7XHJcbiAgICB0aGlzLmF1dGhuU2VydmljZS5sb2dvdXQoKTtcclxuICB9XHJcblxyXG4gIHBvcnRhbCgpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdGhpcy5zbWFydFdlYlBvcnRhbFVybDtcclxuICB9XHJcbn1cclxuIl19
@@ -1,94 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-auth/smart-login-staff-resolver.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Injectable, isDevMode } from '@angular/core';
7
- import { Router, } from '@angular/router';
8
- import { EMPTY, of, throwError } from 'rxjs';
9
- import { mergeMap, catchError, take } from 'rxjs/operators';
10
- import { SmartAuthService } from './smart-auth.service';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "./smart-auth.service";
13
- import * as i2 from "@angular/router";
14
- export class LoginStaffResolverService {
15
- /**
16
- * @param {?} authnService
17
- * @param {?} router
18
- */
19
- constructor(authnService, router) {
20
- this.authnService = authnService;
21
- this.router = router;
22
- }
23
- /**
24
- * @param {?} route
25
- * @param {?} state
26
- * @return {?}
27
- */
28
- resolve(route, state) {
29
- return this.authnService.getLoginStaff().pipe(take(1), mergeMap((/**
30
- * @param {?} loginStaff
31
- * @return {?}
32
- */
33
- (loginStaff) => {
34
- if (isDevMode) {
35
- console.log('LoginStaffResolverService: ', loginStaff);
36
- }
37
- if (loginStaff) {
38
- return of(loginStaff);
39
- }
40
- else {
41
- return throwError('Not authorized to access SMART.');
42
- // return EMPTY;
43
- /*
44
- this.zone.run(() => {
45
- this.router.navigate(['/smart-error'], {
46
- queryParams: {
47
- type: 'staff',
48
- message: 'Not authorized to access SMART.'
49
- }
50
- });
51
- });
52
- return EMPTY;
53
- */
54
- }
55
- })), catchError((/**
56
- * @param {?} error
57
- * @return {?}
58
- */
59
- (error) => {
60
- console.log('LoginStaffResolverService: ' + error);
61
- this.router.navigate(['/smart-error'], {
62
- queryParams: {
63
- type: 'staff',
64
- message: 'SMART Authentication: ' + error,
65
- },
66
- });
67
- return EMPTY;
68
- })));
69
- }
70
- }
71
- LoginStaffResolverService.decorators = [
72
- { type: Injectable, args: [{
73
- providedIn: 'root',
74
- },] }
75
- ];
76
- /** @nocollapse */
77
- LoginStaffResolverService.ctorParameters = () => [
78
- { type: SmartAuthService },
79
- { type: Router }
80
- ];
81
- /** @nocollapse */ LoginStaffResolverService.ngInjectableDef = i0.defineInjectable({ factory: function LoginStaffResolverService_Factory() { return new LoginStaffResolverService(i0.inject(i1.SmartAuthService), i0.inject(i2.Router)); }, token: LoginStaffResolverService, providedIn: "root" });
82
- if (false) {
83
- /**
84
- * @type {?}
85
- * @private
86
- */
87
- LoginStaffResolverService.prototype.authnService;
88
- /**
89
- * @type {?}
90
- * @private
91
- */
92
- LoginStaffResolverService.prototype.router;
93
- }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbG9naW4tc3RhZmYtcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJsaWIvc21hcnQtYXV0aC9zbWFydC1sb2dpbi1zdGFmZi1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUlMLE1BQU0sR0FDUCxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBYyxLQUFLLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQU14RCxNQUFNLE9BQU8seUJBQXlCOzs7OztJQUNwQyxZQUNVLFlBQThCLEVBRTlCLE1BQWM7UUFGZCxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFFOUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDOzs7Ozs7SUFFSixPQUFPLENBQ0wsS0FBNkIsRUFDN0IsS0FBMEI7UUFFMUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFFBQVE7Ozs7UUFBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RCLElBQUksU0FBUyxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDeEQ7WUFDRCxJQUFJLFVBQVUsRUFBRTtnQkFDZCxPQUFPLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN2QjtpQkFBTTtnQkFDTCxPQUFPLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUNyRCxnQkFBZ0I7Z0JBQ2hCOzs7Ozs7Ozs7O2tCQVVFO2FBQ0g7UUFDSCxDQUFDLEVBQUMsRUFDRixVQUFVOzs7O1FBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ3JDLFdBQVcsRUFBRTtvQkFDWCxJQUFJLEVBQUUsT0FBTztvQkFDYixPQUFPLEVBQUUsd0JBQXdCLEdBQUcsS0FBSztpQkFDMUM7YUFDRixDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUFqREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBTFEsZ0JBQWdCO1lBSnZCLE1BQU07Ozs7Ozs7O0lBWUosaURBQXNDOzs7OztJQUV0QywyQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFJlc29sdmUsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG4gIFJvdXRlcixcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBFTVBUWSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWVyZ2VNYXAsIGNhdGNoRXJyb3IsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNtYXJ0QXV0aFNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWF1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2luU3RhZmYgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ2luU3RhZmZSZXNvbHZlclNlcnZpY2UgaW1wbGVtZW50cyBSZXNvbHZlPExvZ2luU3RhZmY+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBTbWFydEF1dGhTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICkge31cclxuXHJcbiAgcmVzb2x2ZShcclxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxyXG4gICAgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QsXHJcbiAgKTogT2JzZXJ2YWJsZTxMb2dpblN0YWZmPiB8IE9ic2VydmFibGU8bmV2ZXI+IHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhuU2VydmljZS5nZXRMb2dpblN0YWZmKCkucGlwZShcclxuICAgICAgdGFrZSgxKSxcclxuICAgICAgbWVyZ2VNYXAoKGxvZ2luU3RhZmYpID0+IHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnTG9naW5TdGFmZlJlc29sdmVyU2VydmljZTogJywgbG9naW5TdGFmZik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsb2dpblN0YWZmKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YobG9naW5TdGFmZik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdOb3QgYXV0aG9yaXplZCB0byBhY2Nlc3MgU01BUlQuJyk7XHJcbiAgICAgICAgICAvLyByZXR1cm4gRU1QVFk7XHJcbiAgICAgICAgICAvKlxyXG4gICAgICAgICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogJ3N0YWZmJyxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdOb3QgYXV0aG9yaXplZCB0byBhY2Nlc3MgU01BUlQuJ1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgICovXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTG9naW5TdGFmZlJlc29sdmVyU2VydmljZTogJyArIGVycm9yKTtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zbWFydC1lcnJvciddLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczoge1xyXG4gICAgICAgICAgICB0eXBlOiAnc3RhZmYnLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiAnU01BUlQgQXV0aGVudGljYXRpb246ICcgKyBlcnJvcixcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICB9KSxcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,101 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-auth/smart-selected-offender-resolver.service.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Injectable, NgZone, isDevMode } from '@angular/core';
7
- import { Router, } from '@angular/router';
8
- import { from, of, EMPTY, throwError, concat } from 'rxjs';
9
- import { catchError, mergeMap, take, retryWhen, delay, } from 'rxjs/operators';
10
- import { XdmService } from '../smart-storage/xdm.service';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../smart-storage/xdm.service";
13
- import * as i2 from "@angular/router";
14
- export class SelectedOffenderResolverService {
15
- /**
16
- * @param {?} service
17
- * @param {?} zone
18
- * @param {?} router
19
- */
20
- constructor(service, zone, router) {
21
- this.service = service;
22
- this.zone = zone;
23
- this.router = router;
24
- }
25
- /**
26
- * @param {?} route
27
- * @param {?} state
28
- * @return {?}
29
- */
30
- resolve(route, state) {
31
- return from(this.service.getSelectedOffender()).pipe(mergeMap((/**
32
- * @param {?} selectedOffender
33
- * @return {?}
34
- */
35
- (selectedOffender) => {
36
- if (isDevMode) {
37
- console.log(selectedOffender);
38
- }
39
- if (!selectedOffender) {
40
- return throwError('No offender selected.');
41
- }
42
- return of(selectedOffender);
43
- })), retryWhen((/**
44
- * @param {?} errors
45
- * @return {?}
46
- */
47
- (errors) => errors.pipe(
48
- // tap(() => console.log('Retry getting selected offender.')),
49
- delay(1000), take(5), (/**
50
- * @param {?} o
51
- * @return {?}
52
- */
53
- (o) => concat(o, throwError('No offender selected (failed after retries).')))))), catchError((/**
54
- * @param {?} error
55
- * @return {?}
56
- */
57
- (error) => {
58
- /*
59
- this.zone.run(() => {
60
- this.router.navigate(['/smart-error'], {
61
- queryParams: { type: 'offender', message: error }
62
- });
63
- });
64
- */
65
- this.router.navigate(['/smart-error'], {
66
- queryParams: { type: 'offender', message: error },
67
- });
68
- return EMPTY;
69
- })));
70
- }
71
- }
72
- SelectedOffenderResolverService.decorators = [
73
- { type: Injectable, args: [{
74
- providedIn: 'root',
75
- },] }
76
- ];
77
- /** @nocollapse */
78
- SelectedOffenderResolverService.ctorParameters = () => [
79
- { type: XdmService },
80
- { type: NgZone },
81
- { type: Router }
82
- ];
83
- /** @nocollapse */ SelectedOffenderResolverService.ngInjectableDef = i0.defineInjectable({ factory: function SelectedOffenderResolverService_Factory() { return new SelectedOffenderResolverService(i0.inject(i1.XdmService), i0.inject(i0.NgZone), i0.inject(i2.Router)); }, token: SelectedOffenderResolverService, providedIn: "root" });
84
- if (false) {
85
- /**
86
- * @type {?}
87
- * @private
88
- */
89
- SelectedOffenderResolverService.prototype.service;
90
- /**
91
- * @type {?}
92
- * @private
93
- */
94
- SelectedOffenderResolverService.prototype.zone;
95
- /**
96
- * @type {?}
97
- * @private
98
- */
99
- SelectedOffenderResolverService.prototype.router;
100
- }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtc2VsZWN0ZWQtb2ZmZW5kZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJsaWIvc21hcnQtYXV0aC9zbWFydC1zZWxlY3RlZC1vZmZlbmRlci1yZXNvbHZlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFJTCxNQUFNLEdBQ1AsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQWMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2RSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFFBQVEsRUFFUixJQUFJLEVBQ0osU0FBUyxFQUVULEtBQUssR0FDTixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUsxRCxNQUFNLE9BQU8sK0JBQStCOzs7Ozs7SUFFMUMsWUFDVSxPQUFtQixFQUNuQixJQUFZLEVBQ1osTUFBYztRQUZkLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQzs7Ozs7O0lBRUosT0FBTyxDQUNMLEtBQTZCLEVBQzdCLEtBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDbEQsUUFBUTs7OztRQUFDLENBQUMsZ0JBQWdCLEVBQUUsRUFBRTtZQUM1QixJQUFJLFNBQVMsRUFBRTtnQkFDYixPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDL0I7WUFDRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JCLE9BQU8sVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUM7YUFDNUM7WUFDRCxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFBQyxFQUNGLFNBQVM7Ozs7UUFBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ25CLE1BQU0sQ0FBQyxJQUFJO1FBQ1QsOERBQThEO1FBQzlELEtBQUssQ0FBQyxJQUFJLENBQUMsRUFDWCxJQUFJLENBQUMsQ0FBQyxDQUFDOzs7O1FBQ1AsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLE1BQU0sQ0FDSixDQUFDLEVBQ0QsVUFBVSxDQUFDLDhDQUE4QyxDQUFDLENBQzNELEVBQ0osRUFDRixFQUNELFVBQVU7Ozs7UUFBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ25COzs7Ozs7Y0FNRTtZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ3JDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTthQUNsRCxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBQyxDQUNILENBQUM7SUFDSixDQUFDOzs7WUFuREYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7O1lBSlEsVUFBVTtZQWxCRSxNQUFNO1lBS3pCLE1BQU07Ozs7Ozs7O0lBcUJKLGtEQUEyQjs7Ozs7SUFDM0IsK0NBQW9COzs7OztJQUNwQixpREFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUsIGlzRGV2TW9kZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFJlc29sdmUsXHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXJTdGF0ZVNuYXBzaG90LFxyXG4gIFJvdXRlcixcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiwgRU1QVFksIHRocm93RXJyb3IsIGNvbmNhdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWVyZ2VNYXAsXHJcbiAgbWFwLFxyXG4gIHRha2UsXHJcbiAgcmV0cnlXaGVuLFxyXG4gIHRhcCxcclxuICBkZWxheSxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFNlbGVjdGVkT2ZmZW5kZXIgfSBmcm9tICcuLi9zbWFydC1zdG9yYWdlL3NtYXJ0LXN0b3JhZ2UtbW9kZWwnO1xyXG5pbXBvcnQgeyBYZG1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0ZWRPZmZlbmRlclJlc29sdmVyU2VydmljZVxyXG4gIGltcGxlbWVudHMgUmVzb2x2ZTxTZWxlY3RlZE9mZmVuZGVyPiB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgKSB7fVxyXG5cclxuICByZXNvbHZlKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICApOiBPYnNlcnZhYmxlPFNlbGVjdGVkT2ZmZW5kZXI+IHwgT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5zZXJ2aWNlLmdldFNlbGVjdGVkT2ZmZW5kZXIoKSkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKHNlbGVjdGVkT2ZmZW5kZXIpID0+IHtcclxuICAgICAgICBpZiAoaXNEZXZNb2RlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFzZWxlY3RlZE9mZmVuZGVyKSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcignTm8gb2ZmZW5kZXIgc2VsZWN0ZWQuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZihzZWxlY3RlZE9mZmVuZGVyKTtcclxuICAgICAgfSksXHJcbiAgICAgIHJldHJ5V2hlbigoZXJyb3JzKSA9PlxyXG4gICAgICAgIGVycm9ycy5waXBlKFxyXG4gICAgICAgICAgLy8gdGFwKCgpID0+IGNvbnNvbGUubG9nKCdSZXRyeSBnZXR0aW5nIHNlbGVjdGVkIG9mZmVuZGVyLicpKSxcclxuICAgICAgICAgIGRlbGF5KDEwMDApLFxyXG4gICAgICAgICAgdGFrZSg1KSxcclxuICAgICAgICAgIChvKSA9PlxyXG4gICAgICAgICAgICBjb25jYXQoXHJcbiAgICAgICAgICAgICAgbyxcclxuICAgICAgICAgICAgICB0aHJvd0Vycm9yKCdObyBvZmZlbmRlciBzZWxlY3RlZCAoZmFpbGVkIGFmdGVyIHJldHJpZXMpLicpLFxyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgICksXHJcbiAgICAgICksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgLypcclxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3NtYXJ0LWVycm9yJ10sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgdHlwZTogJ29mZmVuZGVyJywgbWVzc2FnZTogZXJyb3IgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgKi9cclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zbWFydC1lcnJvciddLCB7XHJcbiAgICAgICAgICBxdWVyeVBhcmFtczogeyB0eXBlOiAnb2ZmZW5kZXInLCBtZXNzYWdlOiBlcnJvciB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgfSksXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,22 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-navbar/smart-navbar-config.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- /**
7
- * @record
8
- */
9
- export function SmartNavbarConfig() { }
10
- if (false) {
11
- /** @type {?} */
12
- SmartNavbarConfig.prototype.appModuleId;
13
- /** @type {?} */
14
- SmartNavbarConfig.prototype.name;
15
- /** @type {?} */
16
- SmartNavbarConfig.prototype.url;
17
- /** @type {?} */
18
- SmartNavbarConfig.prototype.offenderSpecificFlag;
19
- /** @type {?} */
20
- SmartNavbarConfig.prototype.displayOrder;
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmF2YmFyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJsaWIvc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSx1Q0FNQzs7O0lBTEMsd0NBQW9COztJQUNwQixpQ0FBYTs7SUFDYixnQ0FBWTs7SUFDWixpREFBOEI7O0lBQzlCLHlDQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU21hcnROYXZiYXJDb25maWcge1xyXG4gIGFwcE1vZHVsZUlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIG9mZmVuZGVyU3BlY2lmaWNGbGFnOiBib29sZWFuO1xyXG4gIGRpc3BsYXlPcmRlcjogbnVtYmVyO1xyXG59XHJcbiJdfQ==
@@ -1,224 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * Generated from: lib/smart-navbar/smart-navbar.component.ts
4
- * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
5
- */
6
- import { Component, Input, ViewChild, ViewEncapsulation, } from '@angular/core';
7
- import { MatTabGroup } from '@angular/material';
8
- import { MsalService } from '@azure/msal-angular';
9
- import { SmartNavbarService } from './smart-navbar.service';
10
- import { XdmService } from '../smart-storage/xdm.service';
11
- export class SmartNavbarComponent {
12
- /**
13
- * @param {?} navbarConfigService
14
- * @param {?} xdmService
15
- * @param {?} authnService
16
- */
17
- constructor(navbarConfigService, xdmService, authnService) {
18
- this.navbarConfigService = navbarConfigService;
19
- this.xdmService = xdmService;
20
- this.authnService = authnService;
21
- this.appModuleId = 'SMART';
22
- this.isAuthenticated = false;
23
- }
24
- /**
25
- * @return {?}
26
- */
27
- ngOnChanges() {
28
- /*
29
- console.log(this.selectedTab);
30
- setTimeout(() => {
31
- this.tabGroup.selectedIndex = this.selectedTab;
32
- }, 1000);
33
- */
34
- }
35
- /**
36
- * @return {?}
37
- */
38
- ngOnInit() {
39
- this.xdmService.getSelectedOffender().then((/**
40
- * @param {?} selectedOffender
41
- * @return {?}
42
- */
43
- (selectedOffender) => {
44
- this.selectedOffender =
45
- selectedOffender && selectedOffender.offenderId
46
- ? selectedOffender
47
- : null;
48
- }));
49
- this.xdmService.getLoginStaff().then((/**
50
- * @param {?} loginStaff
51
- * @return {?}
52
- */
53
- (loginStaff) => {
54
- // this.zone.run(() => {
55
- this.loginStaff = loginStaff ? loginStaff : null;
56
- // });
57
- }));
58
- this.offenderSubscription = this.xdmService
59
- .getOffenderUpdate()
60
- .subscribe((/**
61
- * @param {?} selectedOffender
62
- * @return {?}
63
- */
64
- (selectedOffender) => {
65
- // this.zone.run(() => {
66
- this.selectedOffender = selectedOffender;
67
- // });
68
- }));
69
- this.staffSubscription = this.xdmService
70
- .getStaffUpdate()
71
- .subscribe((/**
72
- * @param {?} loginStaff
73
- * @return {?}
74
- */
75
- (loginStaff) => {
76
- // this.zone.run(() => {
77
- this.loginStaff = loginStaff;
78
- // });
79
- }));
80
- this.navbarConfigService
81
- .getNavbarConfigs(this.serviceApiUrl)
82
- .subscribe((/**
83
- * @param {?} configs
84
- * @return {?}
85
- */
86
- (configs) => {
87
- this.navbarConfigs = configs.sort((/**
88
- * @param {?} a
89
- * @param {?} b
90
- * @return {?}
91
- */
92
- (a, b) => {
93
- if (a.displayOrder < b.displayOrder) {
94
- return -1;
95
- }
96
- else if (a.displayOrder > b.displayOrder) {
97
- return 1;
98
- }
99
- return 0;
100
- }));
101
- }));
102
- this.isAuthenticated = this.authnService.getAccount() ? true : false;
103
- }
104
- /**
105
- * @return {?}
106
- */
107
- ngOnDestroy() {
108
- this.offenderSubscription.unsubscribe();
109
- this.staffSubscription.unsubscribe();
110
- }
111
- /**
112
- * @return {?}
113
- */
114
- logout() {
115
- this.xdmService.clearAll();
116
- this.authnService.logout();
117
- }
118
- /**
119
- * @param {?} config
120
- * @return {?}
121
- */
122
- getAppModuleUrl(config) {
123
- return (config && this.selectedOffender && config.appModuleId === 'PPMAS') ?
124
- `${config.url}?skipAppMetadata=true&OffenderId=${this.selectedOffender.offenderId}` : config.url;
125
- }
126
- /**
127
- * @param {?} appModuleId
128
- * @return {?}
129
- */
130
- hasAppModulePermission(appModuleId) {
131
- if (this.loginStaff && this.loginStaff.permissions && this.loginStaff.permissions.length > 0) {
132
- return this.loginStaff.permissions.findIndex((/**
133
- * @param {?} p
134
- * @return {?}
135
- */
136
- p => p.appModuleId === appModuleId)) > -1;
137
- }
138
- return false;
139
- }
140
- /**
141
- * @return {?}
142
- */
143
- get hasExternalUserRole() {
144
- if (this.loginStaff && this.loginStaff.roles && this.loginStaff.roles.length > 0) {
145
- return this.loginStaff.roles.findIndex(this.isExternalRole) > -1;
146
- }
147
- return false;
148
- }
149
- /**
150
- * @private
151
- * @param {?} role
152
- * @return {?}
153
- */
154
- isExternalRole(role) {
155
- switch (role.roleId) {
156
- case 'EUDTL':
157
- case 'EUDUSM':
158
- case 'EUJDG':
159
- case 'EUMPD':
160
- case 'EUSOTV':
161
- case 'EUUSA2':
162
- case 'EUUSAO':
163
- case 'EUUSPC':
164
- return true;
165
- default:
166
- return false;
167
- }
168
- }
169
- }
170
- SmartNavbarComponent.decorators = [
171
- { type: Component, args: [{
172
- selector: 'app-smart-navbar',
173
- template: "<!--\r\n<a class=\"smart-navbar-toggle open\" href=\"#nav\">\r\n <i class=\"material-icons\">menu</i>\r\n</a>\r\n\r\n<nav id=\"nav\" role=\"navigation\" class=\"smart-navbar-container\">\r\n <a class=\"smart-navbar-toggle close\" href=\"#\">\r\n <i class=\"material-icons\">close</i>\r\n </a>\r\n\r\n <span *ngFor=\"let config of navbarConfigs\">\r\n <a mat-button class=\"smart-navbar-item\" \r\n *ngIf=\"(config.offenderSpecificFlag === false || selectedOffender) && isAuthenticated && loginStaff\" href=\"{{config.url}}\">{{config.name}}</a>\r\n </span>\r\n\r\n <button mat-button class=\"smart-navbar-item\" [matMenuTriggerFor]=\"menuTheme\">Set Theme</button>\r\n <mat-menu #menuTheme=\"matMenu\">\r\n <button mat-menu-item (click)=\"onSetTheme('blue-theme')\">Blue</button>\r\n <button mat-menu-item (click)=\"onSetTheme('red-theme')\">Red</button>\r\n <button mat-menu-item (click)=\"onSetTheme('green-theme')\">Green</button>\r\n </mat-menu>\r\n <button mat-button class=\"smart-navbar-item smart-navbar-last-item\" [matMenuTriggerFor]=\"menu\"\r\n *ngIf=\"isAuthenticated && loginStaff\">{{loginStaff.firstName + ' ' + loginStaff.lastName}}</button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item>Profile</button>\r\n <button mat-menu-item (click)=\"logout()\">Sign Out</button>\r\n </mat-menu>\r\n</nav>\r\n-->\r\n\r\n<!-- <nav mat-tab-nav-bar>\r\n <a mat-tab-link mat-flat-button *ngFor=\"let config of navbarConfigs\" [active]=\"appModuleId == config.appModuleId\" href=\"{{config.url}}\">{{config.name}}</a>\r\n</nav> -->\r\n\r\n<mat-tab-group class=\"nav-tab-group\" [selectedIndex]=\"null\">\r\n <ng-container *ngFor=\"let config of navbarConfigs\">\r\n <mat-tab\r\n *ngIf=\"\r\n ((hasExternalUserRole && hasAppModulePermission(config.appModuleId)) ||\r\n (!hasExternalUserRole && (config.offenderSpecificFlag === false || selectedOffender))) &&\r\n isAuthenticated &&\r\n loginStaff \r\n \"\r\n label=\"config.name\"\r\n >\r\n <ng-template mat-tab-label>\r\n <a\r\n mat-flat-button\r\n [ngClass]=\"{ 'main-menu-active': appModuleId == config.appModuleId }\"\r\n [href]=\"getAppModuleUrl(config)\"\r\n >{{ config.name }}</a\r\n >\r\n </ng-template>\r\n </mat-tab>\r\n </ng-container>\r\n</mat-tab-group>\r\n",
174
- encapsulation: ViewEncapsulation.None,
175
- styles: [".smart-navbar-container{display:flex;flex-wrap:wrap;flex-direction:column}.smart-navbar-item{font-size:1.2rem;line-height:1.2rem;padding:.5rem;background-color:var(--primary-color,#9fa8da);-webkit-text-decoration-line:none;text-decoration-line:none;display:block;text-align:left;border-radius:.3rem;margin:.1rem}.smart-navbar-last-item{margin-left:auto}.main-menu-active{border-bottom:3px solid #00008b!important;border-radius:0!important}.nav-tab-group.mat-primary .mat-ink-bar{background-color:inherit!important}.mat-tab-links{flex-direction:row;margin:4px;flex-wrap:wrap;font-family:Roboto,arial,sans-serif;font-size:13px}.mat-tab-link{min-width:16px!important}@media only screen and (min-width:768px){.smart-navbar-container{flex-direction:row}.smart-navbar-item{text-align:center}.smart-navbar-toggle{display:none}}@media only screen and (max-width:767px){#nav{position:fixed;top:0;bottom:0;width:300px;left:-340px;transition:transform .3s ease-in-out}#nav:target{transform:translateX(340px)}}.mat-tab-labels{display:flex!important;justify-content:flex-start!important}.mat-tab-label,.mat-tab-label.mat-tab-label-active{min-width:25px!important;padding:0 5px!important;justify-content:flex-start!important;font-weight:700}"]
176
- }] }
177
- ];
178
- /** @nocollapse */
179
- SmartNavbarComponent.ctorParameters = () => [
180
- { type: SmartNavbarService },
181
- { type: XdmService },
182
- { type: MsalService }
183
- ];
184
- SmartNavbarComponent.propDecorators = {
185
- serviceApiUrl: [{ type: Input }],
186
- appModuleId: [{ type: Input }],
187
- tabGroup: [{ type: ViewChild, args: ['tabs',] }]
188
- };
189
- if (false) {
190
- /** @type {?} */
191
- SmartNavbarComponent.prototype.serviceApiUrl;
192
- /** @type {?} */
193
- SmartNavbarComponent.prototype.appModuleId;
194
- /** @type {?} */
195
- SmartNavbarComponent.prototype.tabGroup;
196
- /** @type {?} */
197
- SmartNavbarComponent.prototype.selectedOffender;
198
- /** @type {?} */
199
- SmartNavbarComponent.prototype.loginStaff;
200
- /** @type {?} */
201
- SmartNavbarComponent.prototype.offenderSubscription;
202
- /** @type {?} */
203
- SmartNavbarComponent.prototype.staffSubscription;
204
- /** @type {?} */
205
- SmartNavbarComponent.prototype.isAuthenticated;
206
- /** @type {?} */
207
- SmartNavbarComponent.prototype.navbarConfigs;
208
- /**
209
- * @type {?}
210
- * @private
211
- */
212
- SmartNavbarComponent.prototype.navbarConfigService;
213
- /**
214
- * @type {?}
215
- * @private
216
- */
217
- SmartNavbarComponent.prototype.xdmService;
218
- /**
219
- * @type {?}
220
- * @private
221
- */
222
- SmartNavbarComponent.prototype.authnService;
223
- }
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtbmF2YmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bjc21hcnQvbmdjLXNtYXJ0LWNvcmUvIiwic291cmNlcyI6WyJsaWIvc21hcnQtbmF2YmFyL3NtYXJ0LW5hdmJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUlULEtBQUssRUFFTCxTQUFTLEVBRVQsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBYzFELE1BQU0sT0FBTyxvQkFBb0I7Ozs7OztJQVkvQixZQUNVLG1CQUF1QyxFQUN2QyxVQUFzQixFQUV0QixZQUF5QjtRQUh6Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFFdEIsaUJBQVksR0FBWixZQUFZLENBQWE7UUFkMUIsZ0JBQVcsR0FBRyxPQUFPLENBQUM7UUFNL0Isb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFTckIsQ0FBQzs7OztJQUVKLFdBQVc7UUFDVDs7Ozs7VUFLRTtJQUNKLENBQUM7Ozs7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLElBQUk7Ozs7UUFBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGdCQUFnQjtnQkFDbkIsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsVUFBVTtvQkFDN0MsQ0FBQyxDQUFDLGdCQUFnQjtvQkFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNiLENBQUMsRUFBQyxDQUFD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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIFZpZXdDaGlsZCxcclxuICBpc0Rldk1vZGUsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYkdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwnO1xyXG5pbXBvcnQgeyBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xyXG5pbXBvcnQgeyBTbWFydE5hdmJhckNvbmZpZyB9IGZyb20gJy4vc21hcnQtbmF2YmFyLWNvbmZpZyc7XHJcbmltcG9ydCB7IFNtYXJ0TmF2YmFyU2VydmljZSB9IGZyb20gJy4vc21hcnQtbmF2YmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBYZG1TZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS94ZG0uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0ZWRPZmZlbmRlcixcclxuICBMb2dpblN0YWZmLFxyXG4gIFJvbGUsXHJcbn0gZnJvbSAnLi4vc21hcnQtc3RvcmFnZS9zbWFydC1zdG9yYWdlLW1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1zbWFydC1uYXZiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbWFydC1uYXZiYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NtYXJ0LW5hdmJhci5jb21wb25lbnQuY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNtYXJ0TmF2YmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgc2VydmljZUFwaVVybDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFwcE1vZHVsZUlkID0gJ1NNQVJUJztcclxuICBAVmlld0NoaWxkKCd0YWJzJykgdGFiR3JvdXA6IE1hdFRhYkdyb3VwO1xyXG4gIHNlbGVjdGVkT2ZmZW5kZXI6IFNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgbG9naW5TdGFmZjogTG9naW5TdGFmZjtcclxuICBvZmZlbmRlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHN0YWZmU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgaXNBdXRoZW50aWNhdGVkID0gZmFsc2U7XHJcblxyXG4gIG5hdmJhckNvbmZpZ3M6IFNtYXJ0TmF2YmFyQ29uZmlnW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXZiYXJDb25maWdTZXJ2aWNlOiBTbWFydE5hdmJhclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHhkbVNlcnZpY2U6IFhkbVNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIHByaXZhdGUgYXV0aG5TZXJ2aWNlOiBNc2FsU2VydmljZSxcclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgLypcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRUYWIpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMudGFiR3JvdXAuc2VsZWN0ZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRUYWI7XHJcbiAgICB9LCAxMDAwKTtcclxuICAgICovXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMueGRtU2VydmljZS5nZXRTZWxlY3RlZE9mZmVuZGVyKCkudGhlbigoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT2ZmZW5kZXIgPVxyXG4gICAgICAgIHNlbGVjdGVkT2ZmZW5kZXIgJiYgc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkXHJcbiAgICAgICAgICA/IHNlbGVjdGVkT2ZmZW5kZXJcclxuICAgICAgICAgIDogbnVsbDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMueGRtU2VydmljZS5nZXRMb2dpblN0YWZmKCkudGhlbigobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAvLyB0aGlzLnpvbmUucnVuKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2dpblN0YWZmID0gbG9naW5TdGFmZiA/IGxvZ2luU3RhZmYgOiBudWxsO1xyXG4gICAgICAvLyB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMub2ZmZW5kZXJTdWJzY3JpcHRpb24gPSB0aGlzLnhkbVNlcnZpY2VcclxuICAgICAgLmdldE9mZmVuZGVyVXBkYXRlKClcclxuICAgICAgLnN1YnNjcmliZSgoc2VsZWN0ZWRPZmZlbmRlcikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciA9IHNlbGVjdGVkT2ZmZW5kZXI7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc3RhZmZTdWJzY3JpcHRpb24gPSB0aGlzLnhkbVNlcnZpY2VcclxuICAgICAgLmdldFN0YWZmVXBkYXRlKClcclxuICAgICAgLnN1YnNjcmliZSgobG9naW5TdGFmZikgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuem9uZS5ydW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9naW5TdGFmZiA9IGxvZ2luU3RhZmY7XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubmF2YmFyQ29uZmlnU2VydmljZVxyXG4gICAgICAuZ2V0TmF2YmFyQ29uZmlncyh0aGlzLnNlcnZpY2VBcGlVcmwpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpZ3MpID0+IHtcclxuICAgICAgICB0aGlzLm5hdmJhckNvbmZpZ3MgPSBjb25maWdzLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgIGlmIChhLmRpc3BsYXlPcmRlciA8IGIuZGlzcGxheU9yZGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoYS5kaXNwbGF5T3JkZXIgPiBiLmRpc3BsYXlPcmRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzQXV0aGVudGljYXRlZCA9IHRoaXMuYXV0aG5TZXJ2aWNlLmdldEFjY291bnQoKSA/IHRydWUgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5vZmZlbmRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zdGFmZlN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ291dCgpOiB2b2lkIHtcclxuICAgIHRoaXMueGRtU2VydmljZS5jbGVhckFsbCgpO1xyXG4gICAgdGhpcy5hdXRoblNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QXBwTW9kdWxlVXJsKGNvbmZpZzogU21hcnROYXZiYXJDb25maWcpIHtcclxuICAgIHJldHVybiAoY29uZmlnICYmIHRoaXMuc2VsZWN0ZWRPZmZlbmRlciAmJiBjb25maWcuYXBwTW9kdWxlSWQgPT09ICdQUE1BUycpID9cclxuICAgICAgYCR7Y29uZmlnLnVybH0/c2tpcEFwcE1ldGFkYXRhPXRydWUmT2ZmZW5kZXJJZD0ke3RoaXMuc2VsZWN0ZWRPZmZlbmRlci5vZmZlbmRlcklkfWAgOiBjb25maWcudXJsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc0FwcE1vZHVsZVBlcm1pc3Npb24oYXBwTW9kdWxlSWQpIHtcclxuICAgIGlmICh0aGlzLmxvZ2luU3RhZmYgJiYgdGhpcy5sb2dpblN0YWZmLnBlcm1pc3Npb25zICYmIHRoaXMubG9naW5TdGFmZi5wZXJtaXNzaW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvZ2luU3RhZmYucGVybWlzc2lvbnMuZmluZEluZGV4KHAgPT4gcC5hcHBNb2R1bGVJZCA9PT0gYXBwTW9kdWxlSWQpID4gLTE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNFeHRlcm5hbFVzZXJSb2xlKCkge1xyXG4gICAgaWYgKHRoaXMubG9naW5TdGFmZiAmJiB0aGlzLmxvZ2luU3RhZmYucm9sZXMgJiYgdGhpcy5sb2dpblN0YWZmLnJvbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9naW5TdGFmZi5yb2xlcy5maW5kSW5kZXgodGhpcy5pc0V4dGVybmFsUm9sZSkgPiAtMTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNFeHRlcm5hbFJvbGUocm9sZTogUm9sZSkge1xyXG4gICAgIHN3aXRjaCAocm9sZS5yb2xlSWQpIHtcclxuICAgICAgY2FzZSAnRVVEVEwnOlxyXG4gICAgICBjYXNlICdFVURVU00nOlxyXG4gICAgICBjYXNlICdFVUpERyc6XHJcbiAgICAgIGNhc2UgJ0VVTVBEJzpcclxuICAgICAgY2FzZSAnRVVTT1RWJzpcclxuICAgICAgY2FzZSAnRVVVU0EyJzpcclxuICAgICAgY2FzZSAnRVVVU0FPJzpcclxuICAgICAgY2FzZSAnRVVVU1BDJzpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBFVURUTFxyXG4vLyBFVURVU01cclxuLy8gRVVKREdcclxuXHJcbi8vIEVVTVBEXHJcbi8vIEVVU09UVlxyXG4vLyBFVVVTQTJcclxuXHJcbi8vIEVVVVNBT1xyXG4vLyBFVVVTUENcclxuIl19