@igo2/context 1.15.3 → 1.15.5

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 (128) hide show
  1. package/esm2020/igo2-context.mjs +4 -4
  2. package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +228 -228
  3. package/esm2020/lib/context-import-export/context-import-export.module.mjs +85 -85
  4. package/esm2020/lib/context-import-export/index.mjs +3 -3
  5. package/esm2020/lib/context-import-export/shared/context-export.errors.mjs +15 -15
  6. package/esm2020/lib/context-import-export/shared/context-export.interface.mjs +2 -2
  7. package/esm2020/lib/context-import-export/shared/context-export.service.mjs +38 -38
  8. package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +15 -15
  9. package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +33 -33
  10. package/esm2020/lib/context-import-export/shared/context-import.service.mjs +79 -79
  11. package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +133 -133
  12. package/esm2020/lib/context-import-export/shared/index.mjs +8 -8
  13. package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +50 -50
  14. package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +46 -46
  15. package/esm2020/lib/context-manager/context-edit/index.mjs +3 -3
  16. package/esm2020/lib/context-manager/context-form/context-form.component.mjs +143 -143
  17. package/esm2020/lib/context-manager/context-form/index.mjs +2 -2
  18. package/esm2020/lib/context-manager/context-item/context-item.component.mjs +245 -245
  19. package/esm2020/lib/context-manager/context-item/index.mjs +2 -2
  20. package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +240 -240
  21. package/esm2020/lib/context-manager/context-list/context-list.component.mjs +592 -592
  22. package/esm2020/lib/context-manager/context-list/context-list.enum.mjs +7 -7
  23. package/esm2020/lib/context-manager/context-list/index.mjs +3 -3
  24. package/esm2020/lib/context-manager/context-manager.module.mjs +162 -162
  25. package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +99 -99
  26. package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +306 -306
  27. package/esm2020/lib/context-manager/context-permissions/index.mjs +3 -3
  28. package/esm2020/lib/context-manager/index.mjs +7 -7
  29. package/esm2020/lib/context-manager/shared/context.enum.mjs +13 -13
  30. package/esm2020/lib/context-manager/shared/context.interface.mjs +2 -2
  31. package/esm2020/lib/context-manager/shared/context.service.mjs +632 -632
  32. package/esm2020/lib/context-manager/shared/index.mjs +6 -6
  33. package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +162 -162
  34. package/esm2020/lib/context-manager/shared/map-context.directive.mjs +70 -70
  35. package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +66 -66
  36. package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +50 -50
  37. package/esm2020/lib/context-map-button/bookmark-button/index.mjs +3 -3
  38. package/esm2020/lib/context-map-button/context-map-button.module.mjs +96 -96
  39. package/esm2020/lib/context-map-button/index.mjs +4 -4
  40. package/esm2020/lib/context-map-button/poi-button/index.mjs +4 -4
  41. package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +161 -161
  42. package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +50 -50
  43. package/esm2020/lib/context-map-button/poi-button/shared/index.mjs +3 -3
  44. package/esm2020/lib/context-map-button/poi-button/shared/poi.interface.mjs +2 -2
  45. package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +33 -33
  46. package/esm2020/lib/context-map-button/user-button/index.mjs +3 -3
  47. package/esm2020/lib/context-map-button/user-button/user-button.animation.mjs +17 -17
  48. package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +104 -104
  49. package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +66 -66
  50. package/esm2020/lib/context.module.mjs +45 -45
  51. package/esm2020/lib/share-map/index.mjs +5 -5
  52. package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +170 -170
  53. package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +243 -243
  54. package/esm2020/lib/share-map/share-map/share-map.component.mjs +57 -57
  55. package/esm2020/lib/share-map/share-map.module.mjs +67 -67
  56. package/esm2020/lib/share-map/shared/index.mjs +2 -2
  57. package/esm2020/lib/share-map/shared/share-map.service.mjs +210 -210
  58. package/esm2020/lib/sidenav/index.mjs +2 -2
  59. package/esm2020/lib/sidenav/sidenav.component.mjs +170 -170
  60. package/esm2020/lib/sidenav/sidenav.module.mjs +61 -61
  61. package/esm2020/public_api.mjs +15 -15
  62. package/fesm2015/igo2-context.mjs +4948 -4948
  63. package/fesm2015/igo2-context.mjs.map +1 -1
  64. package/fesm2020/igo2-context.mjs +4597 -4597
  65. package/fesm2020/igo2-context.mjs.map +1 -1
  66. package/index.d.ts +5 -5
  67. package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +44 -44
  68. package/lib/context-import-export/context-import-export.module.d.ts +23 -23
  69. package/lib/context-import-export/index.d.ts +2 -2
  70. package/lib/context-import-export/shared/context-export.errors.d.ts +8 -8
  71. package/lib/context-import-export/shared/context-export.interface.d.ts +5 -5
  72. package/lib/context-import-export/shared/context-export.service.d.ts +10 -10
  73. package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
  74. package/lib/context-import-export/shared/context-import.errors.d.ts +17 -17
  75. package/lib/context-import-export/shared/context-import.service.d.ts +18 -18
  76. package/lib/context-import-export/shared/context-import.utils.d.ts +17 -17
  77. package/lib/context-import-export/shared/index.d.ts +7 -7
  78. package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +20 -20
  79. package/lib/context-manager/context-edit/context-edit.component.d.ts +14 -14
  80. package/lib/context-manager/context-edit/index.d.ts +2 -2
  81. package/lib/context-manager/context-form/context-form.component.d.ts +30 -30
  82. package/lib/context-manager/context-form/index.d.ts +1 -1
  83. package/lib/context-manager/context-item/context-item.component.d.ts +32 -32
  84. package/lib/context-manager/context-item/index.d.ts +1 -1
  85. package/lib/context-manager/context-list/context-list-binding.directive.d.ts +46 -46
  86. package/lib/context-manager/context-list/context-list.component.d.ts +93 -93
  87. package/lib/context-manager/context-list/context-list.enum.d.ts +5 -5
  88. package/lib/context-manager/context-list/index.d.ts +2 -2
  89. package/lib/context-manager/context-manager.module.d.ts +37 -37
  90. package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +23 -23
  91. package/lib/context-manager/context-permissions/context-permissions.component.d.ts +40 -40
  92. package/lib/context-manager/context-permissions/index.d.ts +2 -2
  93. package/lib/context-manager/index.d.ts +6 -6
  94. package/lib/context-manager/shared/context.enum.d.ts +10 -10
  95. package/lib/context-manager/shared/context.interface.d.ts +75 -75
  96. package/lib/context-manager/shared/context.service.d.ts +75 -75
  97. package/lib/context-manager/shared/index.d.ts +5 -5
  98. package/lib/context-manager/shared/layer-context.directive.d.ts +28 -28
  99. package/lib/context-manager/shared/map-context.directive.d.ts +19 -19
  100. package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +20 -20
  101. package/lib/context-map-button/bookmark-button/bookmark-dialog.component.d.ts +9 -9
  102. package/lib/context-map-button/bookmark-button/index.d.ts +2 -2
  103. package/lib/context-map-button/context-map-button.module.d.ts +27 -27
  104. package/lib/context-map-button/index.d.ts +3 -3
  105. package/lib/context-map-button/poi-button/index.d.ts +3 -3
  106. package/lib/context-map-button/poi-button/poi-button.component.d.ts +34 -34
  107. package/lib/context-map-button/poi-button/poi-dialog.component.d.ts +9 -9
  108. package/lib/context-map-button/poi-button/shared/index.d.ts +2 -2
  109. package/lib/context-map-button/poi-button/shared/poi.interface.d.ts +7 -7
  110. package/lib/context-map-button/poi-button/shared/poi.service.d.ts +16 -16
  111. package/lib/context-map-button/user-button/index.d.ts +2 -2
  112. package/lib/context-map-button/user-button/user-button.animation.d.ts +2 -2
  113. package/lib/context-map-button/user-button/user-button.component.d.ts +25 -25
  114. package/lib/context-map-button/user-button/user-dialog.component.d.ts +15 -15
  115. package/lib/context.module.d.ts +16 -16
  116. package/lib/share-map/index.d.ts +4 -4
  117. package/lib/share-map/share-map/share-map-api.component.d.ts +27 -27
  118. package/lib/share-map/share-map/share-map-url.component.d.ts +26 -26
  119. package/lib/share-map/share-map/share-map.component.d.ts +11 -11
  120. package/lib/share-map/share-map.module.d.ts +21 -21
  121. package/lib/share-map/shared/index.d.ts +1 -1
  122. package/lib/share-map/shared/share-map.service.d.ts +17 -17
  123. package/lib/sidenav/index.d.ts +1 -1
  124. package/lib/sidenav/sidenav.component.d.ts +35 -35
  125. package/lib/sidenav/sidenav.module.d.ts +18 -18
  126. package/ngcc.config.js +3 -3
  127. package/package.json +6 -6
  128. package/public_api.d.ts +11 -11
@@ -1,99 +1,99 @@
1
- import { Directive, Self, HostListener } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./context-permissions.component";
4
- import * as i2 from "../shared/context.service";
5
- import * as i3 from "@igo2/core";
6
- export class ContextPermissionsBindingDirective {
7
- constructor(component, contextService, languageService, messageService, cd) {
8
- this.contextService = contextService;
9
- this.languageService = languageService;
10
- this.messageService = messageService;
11
- this.cd = cd;
12
- this.component = component;
13
- }
14
- onAddPermission(permission) {
15
- if (!permission.profil) {
16
- this.messageService.error('igo.context.contextManager.errors.addPermissionEmpty', 'igo.context.contextManager.errors.addPermissionTitle');
17
- return;
18
- }
19
- const contextId = this.component.context.id;
20
- this.contextService
21
- .addPermissionAssociation(contextId, permission.profil, permission.typePermission)
22
- .subscribe(profils => {
23
- for (const p of profils) {
24
- this.component.permissions[permission.typePermission].push(p);
25
- }
26
- const profil = permission.profil;
27
- this.messageService.success('igo.context.permission.dialog.addMsg', 'igo.context.permission.dialog.addTitle', undefined, { value: profil });
28
- this.cd.detectChanges();
29
- });
30
- }
31
- onRemovePermission(permission) {
32
- const contextId = this.component.context.id;
33
- this.contextService
34
- .deletePermissionAssociation(contextId, permission.id)
35
- .subscribe(() => {
36
- const index = this.component.permissions[permission.typePermission].findIndex(p => {
37
- return p.id === permission.id;
38
- });
39
- this.component.permissions[permission.typePermission].splice(index, 1);
40
- const profil = permission.profil;
41
- this.messageService.success('igo.context.permission.dialog.deleteMsg', 'igo.context.permission.dialog.deleteTitle', undefined, { value: profil });
42
- this.cd.detectChanges();
43
- });
44
- }
45
- onScopeChanged(context) {
46
- const scope = context.scope;
47
- this.contextService.update(context.id, { scope }).subscribe(() => {
48
- this.messageService.success('igo.context.permission.dialog.scopeChangedMsg', 'igo.context.permission.dialog.scopeChangedTitle', undefined, { value: 'igo.context.permission.scope.' + scope });
49
- });
50
- }
51
- ngOnInit() {
52
- this.editedContext$$ = this.contextService.editedContext$.subscribe(context => this.handleEditedContextChange(context));
53
- }
54
- ngOnDestroy() {
55
- this.editedContext$$.unsubscribe();
56
- this.contextService.editedContext$.next(undefined);
57
- }
58
- handleEditedContextChange(context) {
59
- this.component.context = context;
60
- if (context) {
61
- this.contextService
62
- .getPermissions(context.id)
63
- .subscribe(permissionsArray => {
64
- permissionsArray = permissionsArray || [];
65
- const permissions = {
66
- read: permissionsArray.filter(p => {
67
- return p.typePermission.toString() === 'read';
68
- }),
69
- write: permissionsArray.filter(p => {
70
- return p.typePermission.toString() === 'write';
71
- })
72
- };
73
- return (this.component.permissions = permissions);
74
- });
75
- }
76
- }
77
- }
78
- ContextPermissionsBindingDirective.ɵfac = function ContextPermissionsBindingDirective_Factory(t) { return new (t || ContextPermissionsBindingDirective)(i0.ɵɵdirectiveInject(i1.ContextPermissionsComponent, 2), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.LanguageService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
79
- ContextPermissionsBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ContextPermissionsBindingDirective, selectors: [["", "igoContextPermissionsBinding", ""]], hostBindings: function ContextPermissionsBindingDirective_HostBindings(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵlistener("addPermission", function ContextPermissionsBindingDirective_addPermission_HostBindingHandler($event) { return ctx.onAddPermission($event); })("removePermission", function ContextPermissionsBindingDirective_removePermission_HostBindingHandler($event) { return ctx.onRemovePermission($event); })("scopeChanged", function ContextPermissionsBindingDirective_scopeChanged_HostBindingHandler($event) { return ctx.onScopeChanged($event); });
81
- } } });
82
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextPermissionsBindingDirective, [{
83
- type: Directive,
84
- args: [{
85
- selector: '[igoContextPermissionsBinding]'
86
- }]
87
- }], function () { return [{ type: i1.ContextPermissionsComponent, decorators: [{
88
- type: Self
89
- }] }, { type: i2.ContextService }, { type: i3.LanguageService }, { type: i3.MessageService }, { type: i0.ChangeDetectorRef }]; }, { onAddPermission: [{
90
- type: HostListener,
91
- args: ['addPermission', ['$event']]
92
- }], onRemovePermission: [{
93
- type: HostListener,
94
- args: ['removePermission', ['$event']]
95
- }], onScopeChanged: [{
96
- type: HostListener,
97
- args: ['scopeChanged', ['$event']]
98
- }] }); })();
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1wZXJtaXNzaW9ucy9jb250ZXh0LXBlcm1pc3Npb25zLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFnQnZCLE1BQU0sT0FBTyxrQ0FBa0M7SUFxRTdDLFlBQ1UsU0FBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsRUFBcUI7UUFIckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQXhFRCxlQUFlLENBQUMsVUFBNkI7UUFFM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLHNEQUFzRCxFQUN0RCxzREFBc0QsQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDUjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYzthQUNoQix3QkFBd0IsQ0FDdkIsU0FBUyxFQUNULFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxjQUFjLENBQzFCO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksT0FB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MUMsTUFBTSxXQUFXLEdBQUc7b0JBQ2xCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUM7b0JBQ2hELENBQUMsQ0FBQztvQkFDRixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDO29CQUNqRCxDQUFDLENBQUM7aUJBQ0gsQ0FBQztnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7O29IQTdHVSxrQ0FBa0M7cUZBQWxDLGtDQUFrQztxSUFBbEMsMkJBQXVCLDBIQUF2Qiw4QkFBMEIsa0hBQTFCLDBCQUFzQjs7dUZBQXRCLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQzthQUMzQzs7c0JBdUVJLElBQUk7Z0pBakVQLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUErQnpDLGtCQUFrQjtrQkFEakIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXdCNUMsY0FBYztrQkFEYixZQUFZO21CQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIFNlbGYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIENvbnRleHQsXHJcbiAgQ29udGV4dFBlcm1pc3Npb24sXHJcbiAgRGV0YWlsZWRDb250ZXh0XHJcbn0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tpZ29Db250ZXh0UGVybWlzc2lvbnNCaW5kaW5nXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRleHRQZXJtaXNzaW9uc0JpbmRpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbnRleHRQZXJtaXNzaW9uc0NvbXBvbmVudDtcclxuICBwcml2YXRlIGVkaXRlZENvbnRleHQkJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASG9zdExpc3RlbmVyKCdhZGRQZXJtaXNzaW9uJywgWyckZXZlbnQnXSlcclxuICBvbkFkZFBlcm1pc3Npb24ocGVybWlzc2lvbjogQ29udGV4dFBlcm1pc3Npb24pIHtcclxuXHJcbiAgICBpZiAoIXBlcm1pc3Npb24ucHJvZmlsKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uRW1wdHknLFxyXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XHJcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXHJcbiAgICAgIC5hZGRQZXJtaXNzaW9uQXNzb2NpYXRpb24oXHJcbiAgICAgICAgY29udGV4dElkLFxyXG4gICAgICAgIHBlcm1pc3Npb24ucHJvZmlsLFxyXG4gICAgICAgIHBlcm1pc3Npb24udHlwZVBlcm1pc3Npb25cclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKHByb2ZpbHMgPT4ge1xyXG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwcm9maWxzKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1twZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXS5wdXNoKHApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwcm9maWwgPSBwZXJtaXNzaW9uLnByb2ZpbDtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5kaWFsb2cuYWRkTXNnJyxcclxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5hZGRUaXRsZScsXHJcbiAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICB7IHZhbHVlOiBwcm9maWwgfSk7XHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncmVtb3ZlUGVybWlzc2lvbicsIFsnJGV2ZW50J10pXHJcbiAgb25SZW1vdmVQZXJtaXNzaW9uKHBlcm1pc3Npb246IENvbnRleHRQZXJtaXNzaW9uKSB7XHJcbiAgICBjb25zdCBjb250ZXh0SWQgPSB0aGlzLmNvbXBvbmVudC5jb250ZXh0LmlkO1xyXG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxyXG4gICAgICAuZGVsZXRlUGVybWlzc2lvbkFzc29jaWF0aW9uKGNvbnRleHRJZCwgcGVybWlzc2lvbi5pZClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1tcclxuICAgICAgICAgIHBlcm1pc3Npb24udHlwZVBlcm1pc3Npb25cclxuICAgICAgICBdLmZpbmRJbmRleChwID0+IHtcclxuICAgICAgICAgIHJldHVybiBwLmlkID09PSBwZXJtaXNzaW9uLmlkO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuY29tcG9uZW50LnBlcm1pc3Npb25zW3Blcm1pc3Npb24udHlwZVBlcm1pc3Npb25dLnNwbGljZShpbmRleCwgMSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb2ZpbCA9IHBlcm1pc3Npb24ucHJvZmlsO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVNc2cnLFxyXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmRlbGV0ZVRpdGxlJyxcclxuICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgIHsgdmFsdWU6IHByb2ZpbCB9KTtcclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdzY29wZUNoYW5nZWQnLCBbJyRldmVudCddKVxyXG4gIG9uU2NvcGVDaGFuZ2VkKGNvbnRleHQ6IENvbnRleHQpIHtcclxuICAgIGNvbnN0IHNjb3BlID0gY29udGV4dC5zY29wZTtcclxuICAgIHRoaXMuY29udGV4dFNlcnZpY2UudXBkYXRlKGNvbnRleHQuaWQsIHsgc2NvcGUgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5zY29wZUNoYW5nZWRNc2cnLFxyXG4gICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5zY29wZUNoYW5nZWRUaXRsZScsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIHsgdmFsdWU6ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnNjb3BlLicgKyBzY29wZSB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBAU2VsZigpIGNvbXBvbmVudDogQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZWRpdGVkQ29udGV4dCQkID0gdGhpcy5jb250ZXh0U2VydmljZS5lZGl0ZWRDb250ZXh0JC5zdWJzY3JpYmUoXHJcbiAgICAgIGNvbnRleHQgPT4gdGhpcy5oYW5kbGVFZGl0ZWRDb250ZXh0Q2hhbmdlKGNvbnRleHQpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5jb250ZXh0U2VydmljZS5lZGl0ZWRDb250ZXh0JC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUVkaXRlZENvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudC5jb250ZXh0ID0gY29udGV4dDtcclxuXHJcbiAgICBpZiAoY29udGV4dCkge1xyXG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXHJcbiAgICAgICAgLmdldFBlcm1pc3Npb25zKGNvbnRleHQuaWQpXHJcbiAgICAgICAgLnN1YnNjcmliZShwZXJtaXNzaW9uc0FycmF5ID0+IHtcclxuICAgICAgICAgIHBlcm1pc3Npb25zQXJyYXkgPSBwZXJtaXNzaW9uc0FycmF5IHx8IFtdO1xyXG4gICAgICAgICAgY29uc3QgcGVybWlzc2lvbnMgPSB7XHJcbiAgICAgICAgICAgIHJlYWQ6IHBlcm1pc3Npb25zQXJyYXkuZmlsdGVyKHAgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBwLnR5cGVQZXJtaXNzaW9uLnRvU3RyaW5nKCkgPT09ICdyZWFkJztcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIHdyaXRlOiBwZXJtaXNzaW9uc0FycmF5LmZpbHRlcihwID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gcC50eXBlUGVybWlzc2lvbi50b1N0cmluZygpID09PSAnd3JpdGUnO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiAodGhpcy5jb21wb25lbnQucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucyk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Directive, Self, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "./context-permissions.component";
4
+ import * as i2 from "../shared/context.service";
5
+ import * as i3 from "@igo2/core";
6
+ export class ContextPermissionsBindingDirective {
7
+ constructor(component, contextService, languageService, messageService, cd) {
8
+ this.contextService = contextService;
9
+ this.languageService = languageService;
10
+ this.messageService = messageService;
11
+ this.cd = cd;
12
+ this.component = component;
13
+ }
14
+ onAddPermission(permission) {
15
+ if (!permission.profil) {
16
+ this.messageService.error('igo.context.contextManager.errors.addPermissionEmpty', 'igo.context.contextManager.errors.addPermissionTitle');
17
+ return;
18
+ }
19
+ const contextId = this.component.context.id;
20
+ this.contextService
21
+ .addPermissionAssociation(contextId, permission.profil, permission.typePermission)
22
+ .subscribe(profils => {
23
+ for (const p of profils) {
24
+ this.component.permissions[permission.typePermission].push(p);
25
+ }
26
+ const profil = permission.profil;
27
+ this.messageService.success('igo.context.permission.dialog.addMsg', 'igo.context.permission.dialog.addTitle', undefined, { value: profil });
28
+ this.cd.detectChanges();
29
+ });
30
+ }
31
+ onRemovePermission(permission) {
32
+ const contextId = this.component.context.id;
33
+ this.contextService
34
+ .deletePermissionAssociation(contextId, permission.id)
35
+ .subscribe(() => {
36
+ const index = this.component.permissions[permission.typePermission].findIndex(p => {
37
+ return p.id === permission.id;
38
+ });
39
+ this.component.permissions[permission.typePermission].splice(index, 1);
40
+ const profil = permission.profil;
41
+ this.messageService.success('igo.context.permission.dialog.deleteMsg', 'igo.context.permission.dialog.deleteTitle', undefined, { value: profil });
42
+ this.cd.detectChanges();
43
+ });
44
+ }
45
+ onScopeChanged(context) {
46
+ const scope = context.scope;
47
+ this.contextService.update(context.id, { scope }).subscribe(() => {
48
+ this.messageService.success('igo.context.permission.dialog.scopeChangedMsg', 'igo.context.permission.dialog.scopeChangedTitle', undefined, { value: 'igo.context.permission.scope.' + scope });
49
+ });
50
+ }
51
+ ngOnInit() {
52
+ this.editedContext$$ = this.contextService.editedContext$.subscribe(context => this.handleEditedContextChange(context));
53
+ }
54
+ ngOnDestroy() {
55
+ this.editedContext$$.unsubscribe();
56
+ this.contextService.editedContext$.next(undefined);
57
+ }
58
+ handleEditedContextChange(context) {
59
+ this.component.context = context;
60
+ if (context) {
61
+ this.contextService
62
+ .getPermissions(context.id)
63
+ .subscribe(permissionsArray => {
64
+ permissionsArray = permissionsArray || [];
65
+ const permissions = {
66
+ read: permissionsArray.filter(p => {
67
+ return p.typePermission.toString() === 'read';
68
+ }),
69
+ write: permissionsArray.filter(p => {
70
+ return p.typePermission.toString() === 'write';
71
+ })
72
+ };
73
+ return (this.component.permissions = permissions);
74
+ });
75
+ }
76
+ }
77
+ }
78
+ ContextPermissionsBindingDirective.ɵfac = function ContextPermissionsBindingDirective_Factory(t) { return new (t || ContextPermissionsBindingDirective)(i0.ɵɵdirectiveInject(i1.ContextPermissionsComponent, 2), i0.ɵɵdirectiveInject(i2.ContextService), i0.ɵɵdirectiveInject(i3.LanguageService), i0.ɵɵdirectiveInject(i3.MessageService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
79
+ ContextPermissionsBindingDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: ContextPermissionsBindingDirective, selectors: [["", "igoContextPermissionsBinding", ""]], hostBindings: function ContextPermissionsBindingDirective_HostBindings(rf, ctx) { if (rf & 1) {
80
+ i0.ɵɵlistener("addPermission", function ContextPermissionsBindingDirective_addPermission_HostBindingHandler($event) { return ctx.onAddPermission($event); })("removePermission", function ContextPermissionsBindingDirective_removePermission_HostBindingHandler($event) { return ctx.onRemovePermission($event); })("scopeChanged", function ContextPermissionsBindingDirective_scopeChanged_HostBindingHandler($event) { return ctx.onScopeChanged($event); });
81
+ } } });
82
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextPermissionsBindingDirective, [{
83
+ type: Directive,
84
+ args: [{
85
+ selector: '[igoContextPermissionsBinding]'
86
+ }]
87
+ }], function () { return [{ type: i1.ContextPermissionsComponent, decorators: [{
88
+ type: Self
89
+ }] }, { type: i2.ContextService }, { type: i3.LanguageService }, { type: i3.MessageService }, { type: i0.ChangeDetectorRef }]; }, { onAddPermission: [{
90
+ type: HostListener,
91
+ args: ['addPermission', ['$event']]
92
+ }], onRemovePermission: [{
93
+ type: HostListener,
94
+ args: ['removePermission', ['$event']]
95
+ }], onScopeChanged: [{
96
+ type: HostListener,
97
+ args: ['scopeChanged', ['$event']]
98
+ }] }); })();
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy1iaW5kaW5nLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hbmFnZXIvY29udGV4dC1wZXJtaXNzaW9ucy9jb250ZXh0LXBlcm1pc3Npb25zLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsSUFBSSxFQUdKLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFnQnZCLE1BQU0sT0FBTyxrQ0FBa0M7SUFxRTdDLFlBQ1UsU0FBc0MsRUFDdEMsY0FBOEIsRUFDOUIsZUFBZ0MsRUFDaEMsY0FBOEIsRUFDOUIsRUFBcUI7UUFIckIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQXhFRCxlQUFlLENBQUMsVUFBNkI7UUFFM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQ3ZCLHNEQUFzRCxFQUN0RCxzREFBc0QsQ0FBQyxDQUFDO1lBQzFELE9BQU87U0FDUjtRQUNELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsY0FBYzthQUNoQix3QkFBd0IsQ0FDdkIsU0FBUyxFQUNULFVBQVUsQ0FBQyxNQUFNLEVBQ2pCLFVBQVUsQ0FBQyxjQUFjLENBQzFCO2FBQ0EsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25CLEtBQUssTUFBTSxDQUFDLElBQUksT0FB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MUMsTUFBTSxXQUFXLEdBQUc7b0JBQ2xCLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQ2hDLE9BQU8sQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUM7b0JBQ2hELENBQUMsQ0FBQztvQkFDRixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUNqQyxPQUFPLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxDQUFDO29CQUNqRCxDQUFDLENBQUM7aUJBQ0gsQ0FBQztnQkFDRixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7O29IQTdHVSxrQ0FBa0M7cUZBQWxDLGtDQUFrQztxSUFBbEMsMkJBQXVCLDBIQUF2Qiw4QkFBMEIsa0hBQTFCLDBCQUFzQjs7dUZBQXRCLGtDQUFrQztjQUg5QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQzthQUMzQzs7c0JBdUVJLElBQUk7Z0pBakVQLGVBQWU7a0JBRGQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUErQnpDLGtCQUFrQjtrQkFEakIsWUFBWTttQkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztZQXdCNUMsY0FBYztrQkFEYixZQUFZO21CQUFDLGNBQWMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgU2VsZixcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG4gIEhvc3RMaXN0ZW5lcixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UsIExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb250ZXh0LFxuICBDb250ZXh0UGVybWlzc2lvbixcbiAgRGV0YWlsZWRDb250ZXh0XG59IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tpZ29Db250ZXh0UGVybWlzc2lvbnNCaW5kaW5nXSdcbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFBlcm1pc3Npb25zQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IENvbnRleHRQZXJtaXNzaW9uc0NvbXBvbmVudDtcbiAgcHJpdmF0ZSBlZGl0ZWRDb250ZXh0JCQ6IFN1YnNjcmlwdGlvbjtcblxuICBASG9zdExpc3RlbmVyKCdhZGRQZXJtaXNzaW9uJywgWyckZXZlbnQnXSlcbiAgb25BZGRQZXJtaXNzaW9uKHBlcm1pc3Npb246IENvbnRleHRQZXJtaXNzaW9uKSB7XG5cbiAgICBpZiAoIXBlcm1pc3Npb24ucHJvZmlsKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb25FbXB0eScsXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxuICAgICAgLmFkZFBlcm1pc3Npb25Bc3NvY2lhdGlvbihcbiAgICAgICAgY29udGV4dElkLFxuICAgICAgICBwZXJtaXNzaW9uLnByb2ZpbCxcbiAgICAgICAgcGVybWlzc2lvbi50eXBlUGVybWlzc2lvblxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShwcm9maWxzID0+IHtcbiAgICAgICAgZm9yIChjb25zdCBwIG9mIHByb2ZpbHMpIHtcbiAgICAgICAgICB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1twZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXS5wdXNoKHApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb2ZpbCA9IHBlcm1pc3Npb24ucHJvZmlsO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnN1Y2Nlc3MoXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmFkZE1zZycsXG4gICAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLmFkZFRpdGxlJyxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgeyB2YWx1ZTogcHJvZmlsIH0pO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncmVtb3ZlUGVybWlzc2lvbicsIFsnJGV2ZW50J10pXG4gIG9uUmVtb3ZlUGVybWlzc2lvbihwZXJtaXNzaW9uOiBDb250ZXh0UGVybWlzc2lvbikge1xuICAgIGNvbnN0IGNvbnRleHRJZCA9IHRoaXMuY29tcG9uZW50LmNvbnRleHQuaWQ7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZVxuICAgICAgLmRlbGV0ZVBlcm1pc3Npb25Bc3NvY2lhdGlvbihjb250ZXh0SWQsIHBlcm1pc3Npb24uaWQpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmNvbXBvbmVudC5wZXJtaXNzaW9uc1tcbiAgICAgICAgICBwZXJtaXNzaW9uLnR5cGVQZXJtaXNzaW9uXG4gICAgICAgIF0uZmluZEluZGV4KHAgPT4ge1xuICAgICAgICAgIHJldHVybiBwLmlkID09PSBwZXJtaXNzaW9uLmlkO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQucGVybWlzc2lvbnNbcGVybWlzc2lvbi50eXBlUGVybWlzc2lvbl0uc3BsaWNlKGluZGV4LCAxKTtcblxuICAgICAgICBjb25zdCBwcm9maWwgPSBwZXJtaXNzaW9uLnByb2ZpbDtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVNc2cnLFxuICAgICAgICAgICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRpYWxvZy5kZWxldGVUaXRsZScsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHsgdmFsdWU6IHByb2ZpbCB9KTtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3Njb3BlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIG9uU2NvcGVDaGFuZ2VkKGNvbnRleHQ6IENvbnRleHQpIHtcbiAgICBjb25zdCBzY29wZSA9IGNvbnRleHQuc2NvcGU7XG4gICAgdGhpcy5jb250ZXh0U2VydmljZS51cGRhdGUoY29udGV4dC5pZCwgeyBzY29wZSB9KS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxuICAgICAgICAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5kaWFsb2cuc2NvcGVDaGFuZ2VkTXNnJyxcbiAgICAgICAgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGlhbG9nLnNjb3BlQ2hhbmdlZFRpdGxlJyxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB7IHZhbHVlOiAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS4nICsgc2NvcGUgfSk7XG4gICAgfSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIGNvbXBvbmVudDogQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50LFxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmVkaXRlZENvbnRleHQkJCA9IHRoaXMuY29udGV4dFNlcnZpY2UuZWRpdGVkQ29udGV4dCQuc3Vic2NyaWJlKFxuICAgICAgY29udGV4dCA9PiB0aGlzLmhhbmRsZUVkaXRlZENvbnRleHRDaGFuZ2UoY29udGV4dClcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5lZGl0ZWRDb250ZXh0JCQudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmVkaXRlZENvbnRleHQkLm5leHQodW5kZWZpbmVkKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRWRpdGVkQ29udGV4dENoYW5nZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcbiAgICB0aGlzLmNvbXBvbmVudC5jb250ZXh0ID0gY29udGV4dDtcblxuICAgIGlmIChjb250ZXh0KSB7XG4gICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlXG4gICAgICAgIC5nZXRQZXJtaXNzaW9ucyhjb250ZXh0LmlkKVxuICAgICAgICAuc3Vic2NyaWJlKHBlcm1pc3Npb25zQXJyYXkgPT4ge1xuICAgICAgICAgIHBlcm1pc3Npb25zQXJyYXkgPSBwZXJtaXNzaW9uc0FycmF5IHx8IFtdO1xuICAgICAgICAgIGNvbnN0IHBlcm1pc3Npb25zID0ge1xuICAgICAgICAgICAgcmVhZDogcGVybWlzc2lvbnNBcnJheS5maWx0ZXIocCA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBwLnR5cGVQZXJtaXNzaW9uLnRvU3RyaW5nKCkgPT09ICdyZWFkJztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd3JpdGU6IHBlcm1pc3Npb25zQXJyYXkuZmlsdGVyKHAgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gcC50eXBlUGVybWlzc2lvbi50b1N0cmluZygpID09PSAnd3JpdGUnO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiAodGhpcy5jb21wb25lbnQucGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucyk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19