@igo2/context 1.15.3 → 16.0.0-rc.0

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 (167) hide show
  1. package/context-theme.scss +5 -0
  2. package/{esm2020 → esm2022}/igo2-context.mjs +4 -4
  3. package/esm2022/lib/context-import-export/context-import-export/context-import-export.component.mjs +258 -0
  4. package/esm2022/lib/context-import-export/context-import-export.module.mjs +81 -0
  5. package/{esm2020 → esm2022}/lib/context-import-export/index.mjs +3 -3
  6. package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.errors.mjs +15 -15
  7. package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.interface.mjs +2 -2
  8. package/esm2022/lib/context-import-export/shared/context-export.service.mjs +38 -0
  9. package/esm2022/lib/context-import-export/shared/context-export.utils.mjs +15 -0
  10. package/{esm2020 → esm2022}/lib/context-import-export/shared/context-import.errors.mjs +33 -33
  11. package/esm2022/lib/context-import-export/shared/context-import.service.mjs +82 -0
  12. package/esm2022/lib/context-import-export/shared/context-import.utils.mjs +148 -0
  13. package/{esm2020 → esm2022}/lib/context-import-export/shared/index.mjs +8 -8
  14. package/esm2022/lib/context-manager/context-edit/context-edit-binding.directive.mjs +57 -0
  15. package/esm2022/lib/context-manager/context-edit/context-edit.component.mjs +48 -0
  16. package/{esm2020 → esm2022}/lib/context-manager/context-edit/index.mjs +3 -3
  17. package/esm2022/lib/context-manager/context-form/context-form.component.mjs +151 -0
  18. package/{esm2020 → esm2022}/lib/context-manager/context-form/index.mjs +2 -2
  19. package/esm2022/lib/context-manager/context-item/context-item.component.mjs +251 -0
  20. package/{esm2020 → esm2022}/lib/context-manager/context-item/index.mjs +2 -2
  21. package/esm2022/lib/context-manager/context-list/context-list-binding.directive.mjs +259 -0
  22. package/esm2022/lib/context-manager/context-list/context-list.component.mjs +616 -0
  23. package/{esm2020 → esm2022}/lib/context-manager/context-list/context-list.enum.mjs +7 -7
  24. package/{esm2020 → esm2022}/lib/context-manager/context-list/index.mjs +3 -3
  25. package/esm2022/lib/context-manager/context-manager.module.mjs +157 -0
  26. package/esm2022/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +108 -0
  27. package/esm2022/lib/context-manager/context-permissions/context-permissions.component.mjs +331 -0
  28. package/{esm2020 → esm2022}/lib/context-manager/context-permissions/index.mjs +3 -3
  29. package/{esm2020 → esm2022}/lib/context-manager/index.mjs +7 -7
  30. package/{esm2020 → esm2022}/lib/context-manager/shared/context.enum.mjs +13 -13
  31. package/esm2022/lib/context-manager/shared/context.interface.mjs +2 -0
  32. package/esm2022/lib/context-manager/shared/context.service.mjs +662 -0
  33. package/{esm2020 → esm2022}/lib/context-manager/shared/index.mjs +6 -6
  34. package/esm2022/lib/context-manager/shared/layer-context.directive.mjs +172 -0
  35. package/esm2022/lib/context-manager/shared/map-context.directive.mjs +79 -0
  36. package/esm2022/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +74 -0
  37. package/esm2022/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +53 -0
  38. package/{esm2020 → esm2022}/lib/context-map-button/bookmark-button/index.mjs +3 -3
  39. package/esm2022/lib/context-map-button/context-map-button.module.mjs +104 -0
  40. package/{esm2020 → esm2022}/lib/context-map-button/index.mjs +4 -4
  41. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/index.mjs +4 -4
  42. package/esm2022/lib/context-map-button/poi-button/poi-button.component.mjs +179 -0
  43. package/esm2022/lib/context-map-button/poi-button/poi-dialog.component.mjs +53 -0
  44. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/index.mjs +3 -3
  45. package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/poi.interface.mjs +2 -2
  46. package/esm2022/lib/context-map-button/poi-button/shared/poi.service.mjs +38 -0
  47. package/{esm2020 → esm2022}/lib/context-map-button/user-button/index.mjs +3 -3
  48. package/{esm2020 → esm2022}/lib/context-map-button/user-button/user-button.animation.mjs +17 -17
  49. package/esm2022/lib/context-map-button/user-button/user-button.component.mjs +112 -0
  50. package/esm2022/lib/context-map-button/user-button/user-dialog.component.mjs +74 -0
  51. package/{esm2020 → esm2022}/lib/context.module.mjs +45 -45
  52. package/{esm2020 → esm2022}/lib/share-map/index.mjs +5 -5
  53. package/esm2022/lib/share-map/share-map/share-map-api.component.mjs +186 -0
  54. package/esm2022/lib/share-map/share-map/share-map-url.component.mjs +251 -0
  55. package/esm2022/lib/share-map/share-map/share-map.component.mjs +60 -0
  56. package/{esm2020 → esm2022}/lib/share-map/share-map.module.mjs +67 -67
  57. package/{esm2020 → esm2022}/lib/share-map/shared/index.mjs +2 -2
  58. package/esm2022/lib/share-map/shared/share-map.service.mjs +221 -0
  59. package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
  60. package/esm2022/lib/sidenav/sidenav.component.mjs +178 -0
  61. package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +61 -61
  62. package/{esm2020 → esm2022}/public_api.mjs +15 -15
  63. package/{fesm2020 → fesm2022}/igo2-context.mjs +4838 -4608
  64. package/fesm2022/igo2-context.mjs.map +1 -0
  65. package/index.d.ts +5 -5
  66. package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +46 -44
  67. package/lib/context-import-export/context-import-export.module.d.ts +23 -23
  68. package/lib/context-import-export/index.d.ts +2 -2
  69. package/lib/context-import-export/shared/context-export.errors.d.ts +8 -8
  70. package/lib/context-import-export/shared/context-export.interface.d.ts +5 -5
  71. package/lib/context-import-export/shared/context-export.service.d.ts +10 -10
  72. package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
  73. package/lib/context-import-export/shared/context-import.errors.d.ts +17 -17
  74. package/lib/context-import-export/shared/context-import.service.d.ts +18 -18
  75. package/lib/context-import-export/shared/context-import.utils.d.ts +15 -17
  76. package/lib/context-import-export/shared/index.d.ts +7 -7
  77. package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +20 -20
  78. package/lib/context-manager/context-edit/context-edit.component.d.ts +14 -14
  79. package/lib/context-manager/context-edit/index.d.ts +2 -2
  80. package/lib/context-manager/context-form/context-form.component.d.ts +30 -30
  81. package/lib/context-manager/context-form/index.d.ts +1 -1
  82. package/lib/context-manager/context-item/context-item.component.d.ts +32 -32
  83. package/lib/context-manager/context-item/context-item.theming.scss +21 -0
  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/context-list.theming.scss +23 -0
  89. package/lib/context-manager/context-list/index.d.ts +2 -2
  90. package/lib/context-manager/context-manager.module.d.ts +37 -37
  91. package/lib/context-manager/context-manager.theming.scss +7 -0
  92. package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +23 -23
  93. package/lib/context-manager/context-permissions/context-permissions.component.d.ts +40 -40
  94. package/lib/context-manager/context-permissions/index.d.ts +2 -2
  95. package/lib/context-manager/index.d.ts +6 -6
  96. package/lib/context-manager/shared/context.enum.d.ts +10 -10
  97. package/lib/context-manager/shared/context.interface.d.ts +81 -75
  98. package/lib/context-manager/shared/context.service.d.ts +76 -75
  99. package/lib/context-manager/shared/index.d.ts +5 -5
  100. package/lib/context-manager/shared/layer-context.directive.d.ts +28 -28
  101. package/lib/context-manager/shared/map-context.directive.d.ts +19 -19
  102. package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +20 -20
  103. package/lib/context-map-button/bookmark-button/bookmark-dialog.component.d.ts +9 -9
  104. package/lib/context-map-button/bookmark-button/index.d.ts +2 -2
  105. package/lib/context-map-button/context-map-button.module.d.ts +27 -27
  106. package/lib/context-map-button/index.d.ts +3 -3
  107. package/lib/context-map-button/poi-button/index.d.ts +3 -3
  108. package/lib/context-map-button/poi-button/poi-button.component.d.ts +34 -34
  109. package/lib/context-map-button/poi-button/poi-dialog.component.d.ts +9 -9
  110. package/lib/context-map-button/poi-button/shared/index.d.ts +2 -2
  111. package/lib/context-map-button/poi-button/shared/poi.interface.d.ts +7 -7
  112. package/lib/context-map-button/poi-button/shared/poi.service.d.ts +16 -16
  113. package/lib/context-map-button/user-button/index.d.ts +2 -2
  114. package/lib/context-map-button/user-button/user-button.animation.d.ts +2 -2
  115. package/lib/context-map-button/user-button/user-button.component.d.ts +25 -25
  116. package/lib/context-map-button/user-button/user-dialog.component.d.ts +15 -15
  117. package/lib/context.module.d.ts +16 -16
  118. package/lib/share-map/index.d.ts +4 -4
  119. package/lib/share-map/share-map/share-map-api.component.d.ts +27 -27
  120. package/lib/share-map/share-map/share-map-url.component.d.ts +26 -26
  121. package/lib/share-map/share-map/share-map.component.d.ts +11 -11
  122. package/lib/share-map/share-map.module.d.ts +21 -21
  123. package/lib/share-map/shared/index.d.ts +1 -1
  124. package/lib/share-map/shared/share-map.service.d.ts +17 -17
  125. package/lib/sidenav/index.d.ts +1 -1
  126. package/lib/sidenav/sidenav.component.d.ts +35 -35
  127. package/lib/sidenav/sidenav.module.d.ts +18 -18
  128. package/locale/en.context.json +199 -0
  129. package/locale/fr.context.json +199 -0
  130. package/package.json +20 -26
  131. package/public_api.d.ts +11 -11
  132. package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +0 -228
  133. package/esm2020/lib/context-import-export/context-import-export.module.mjs +0 -85
  134. package/esm2020/lib/context-import-export/shared/context-export.service.mjs +0 -38
  135. package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +0 -15
  136. package/esm2020/lib/context-import-export/shared/context-import.service.mjs +0 -79
  137. package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +0 -133
  138. package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +0 -50
  139. package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +0 -46
  140. package/esm2020/lib/context-manager/context-form/context-form.component.mjs +0 -143
  141. package/esm2020/lib/context-manager/context-item/context-item.component.mjs +0 -245
  142. package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +0 -240
  143. package/esm2020/lib/context-manager/context-list/context-list.component.mjs +0 -592
  144. package/esm2020/lib/context-manager/context-manager.module.mjs +0 -162
  145. package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +0 -99
  146. package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +0 -306
  147. package/esm2020/lib/context-manager/shared/context.interface.mjs +0 -2
  148. package/esm2020/lib/context-manager/shared/context.service.mjs +0 -632
  149. package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +0 -162
  150. package/esm2020/lib/context-manager/shared/map-context.directive.mjs +0 -70
  151. package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +0 -66
  152. package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +0 -50
  153. package/esm2020/lib/context-map-button/context-map-button.module.mjs +0 -96
  154. package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +0 -161
  155. package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +0 -50
  156. package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +0 -33
  157. package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +0 -104
  158. package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +0 -66
  159. package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +0 -170
  160. package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +0 -243
  161. package/esm2020/lib/share-map/share-map/share-map.component.mjs +0 -57
  162. package/esm2020/lib/share-map/shared/share-map.service.mjs +0 -210
  163. package/esm2020/lib/sidenav/sidenav.component.mjs +0 -170
  164. package/fesm2015/igo2-context.mjs +0 -5094
  165. package/fesm2015/igo2-context.mjs.map +0 -1
  166. package/fesm2020/igo2-context.mjs.map +0 -1
  167. package/ngcc.config.js +0 -3
@@ -0,0 +1,331 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
2
+ import { UntypedFormBuilder, UntypedFormControl } from '@angular/forms';
3
+ import { TypePermission } from '../shared/context.enum';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { AuthService } from '@igo2/auth';
6
+ import { ConfigService } from '@igo2/core';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ import * as i2 from "@angular/common/http";
10
+ import * as i3 from "@igo2/auth";
11
+ import * as i4 from "@igo2/core";
12
+ import * as i5 from "@angular/common";
13
+ import * as i6 from "@angular/material/form-field";
14
+ import * as i7 from "@angular/material/input";
15
+ import * as i8 from "@angular/material/icon";
16
+ import * as i9 from "@angular/material/button";
17
+ import * as i10 from "@angular/material/tooltip";
18
+ import * as i11 from "@angular/material/list";
19
+ import * as i12 from "@angular/material/radio";
20
+ import * as i13 from "@angular/material/core";
21
+ import * as i14 from "@angular/material/autocomplete";
22
+ import * as i15 from "@igo2/common";
23
+ import * as i16 from "@ngx-translate/core";
24
+ function ContextPermissionsComponent_div_0_div_1_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelementStart(0, "div", 3)(1, "h4");
26
+ i0.ɵɵtext(2);
27
+ i0.ɵɵpipe(3, "translate");
28
+ i0.ɵɵelementEnd();
29
+ i0.ɵɵelementStart(4, "p");
30
+ i0.ɵɵtext(5);
31
+ i0.ɵɵpipe(6, "translate");
32
+ i0.ɵɵelementEnd()();
33
+ } if (rf & 2) {
34
+ i0.ɵɵadvance(2);
35
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 2, "igo.context.permission.readOnlyTitle"));
36
+ i0.ɵɵadvance(3);
37
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 4, "igo.context.permission.readOnlyMsg"));
38
+ } }
39
+ function ContextPermissionsComponent_div_0_div_2_mat_radio_button_8_Template(rf, ctx) { if (rf & 1) {
40
+ i0.ɵɵelementStart(0, "mat-radio-button", 8);
41
+ i0.ɵɵtext(1);
42
+ i0.ɵɵpipe(2, "translate");
43
+ i0.ɵɵelementEnd();
44
+ } if (rf & 2) {
45
+ i0.ɵɵadvance(1);
46
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "igo.context.permission.scope.public"), " ");
47
+ } }
48
+ function ContextPermissionsComponent_div_0_div_2_Template(rf, ctx) { if (rf & 1) {
49
+ const _r7 = i0.ɵɵgetCurrentView();
50
+ i0.ɵɵelementStart(0, "div", 3)(1, "mat-radio-group", 4);
51
+ i0.ɵɵlistener("ngModelChange", function ContextPermissionsComponent_div_0_div_2_Template_mat_radio_group_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r6 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r6.context.scope = $event); })("change", function ContextPermissionsComponent_div_0_div_2_Template_mat_radio_group_change_1_listener() { i0.ɵɵrestoreView(_r7); const ctx_r8 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r8.scopeChanged.emit(ctx_r8.context)); });
52
+ i0.ɵɵelementStart(2, "mat-radio-button", 5);
53
+ i0.ɵɵtext(3);
54
+ i0.ɵɵpipe(4, "translate");
55
+ i0.ɵɵelementEnd();
56
+ i0.ɵɵelementStart(5, "mat-radio-button", 6);
57
+ i0.ɵɵtext(6);
58
+ i0.ɵɵpipe(7, "translate");
59
+ i0.ɵɵelementEnd();
60
+ i0.ɵɵtemplate(8, ContextPermissionsComponent_div_0_div_2_mat_radio_button_8_Template, 3, 3, "mat-radio-button", 7);
61
+ i0.ɵɵelementEnd()();
62
+ } if (rf & 2) {
63
+ const ctx_r2 = i0.ɵɵnextContext(2);
64
+ i0.ɵɵadvance(1);
65
+ i0.ɵɵproperty("ngModel", ctx_r2.context.scope);
66
+ i0.ɵɵadvance(2);
67
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(4, 4, "igo.context.permission.scope.private"), " ");
68
+ i0.ɵɵadvance(3);
69
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(7, 6, "igo.context.permission.scope.shared"), " ");
70
+ i0.ɵɵadvance(2);
71
+ i0.ɵɵproperty("ngIf", ctx_r2.authService.isAdmin);
72
+ } }
73
+ function ContextPermissionsComponent_div_0_form_3_mat_option_6_Template(rf, ctx) { if (rf & 1) {
74
+ i0.ɵɵelementStart(0, "mat-option", 20);
75
+ i0.ɵɵtext(1);
76
+ i0.ɵɵelement(2, "br");
77
+ i0.ɵɵelementStart(3, "small", 21);
78
+ i0.ɵɵtext(4);
79
+ i0.ɵɵelementEnd()();
80
+ } if (rf & 2) {
81
+ const profil_r11 = ctx.$implicit;
82
+ i0.ɵɵproperty("value", profil_r11);
83
+ i0.ɵɵadvance(1);
84
+ i0.ɵɵtextInterpolate1(" ", profil_r11.title, "");
85
+ i0.ɵɵadvance(3);
86
+ i0.ɵɵtextInterpolate(profil_r11.name);
87
+ } }
88
+ function ContextPermissionsComponent_div_0_form_3_Template(rf, ctx) { if (rf & 1) {
89
+ const _r13 = i0.ɵɵgetCurrentView();
90
+ i0.ɵɵelementStart(0, "form", 9);
91
+ i0.ɵɵlistener("ngSubmit", function ContextPermissionsComponent_div_0_form_3_Template_form_ngSubmit_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r12.handleFormSubmit(ctx_r12.form.value)); });
92
+ i0.ɵɵelementStart(1, "mat-form-field", 10);
93
+ i0.ɵɵelement(2, "input", 11);
94
+ i0.ɵɵpipe(3, "translate");
95
+ i0.ɵɵelementStart(4, "mat-autocomplete", 12, 13);
96
+ i0.ɵɵlistener("optionSelected", function ContextPermissionsComponent_div_0_form_3_Template_mat_autocomplete_optionSelected_4_listener($event) { i0.ɵɵrestoreView(_r13); const ctx_r14 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r14.onProfilSelected($event.option.value)); });
97
+ i0.ɵɵtemplate(6, ContextPermissionsComponent_div_0_form_3_mat_option_6_Template, 5, 3, "mat-option", 14);
98
+ i0.ɵɵelementEnd();
99
+ i0.ɵɵelementStart(7, "mat-error");
100
+ i0.ɵɵtext(8);
101
+ i0.ɵɵpipe(9, "translate");
102
+ i0.ɵɵelementEnd()();
103
+ i0.ɵɵelementStart(10, "mat-radio-group", 15)(11, "mat-radio-button", 16);
104
+ i0.ɵɵtext(12);
105
+ i0.ɵɵpipe(13, "translate");
106
+ i0.ɵɵelementEnd();
107
+ i0.ɵɵelementStart(14, "mat-radio-button", 17);
108
+ i0.ɵɵtext(15);
109
+ i0.ɵɵpipe(16, "translate");
110
+ i0.ɵɵelementEnd()();
111
+ i0.ɵɵelementStart(17, "div", 18)(18, "button", 19);
112
+ i0.ɵɵtext(19);
113
+ i0.ɵɵpipe(20, "translate");
114
+ i0.ɵɵelementEnd()()();
115
+ } if (rf & 2) {
116
+ const _r9 = i0.ɵɵreference(5);
117
+ const ctx_r3 = i0.ɵɵnextContext(2);
118
+ i0.ɵɵproperty("formGroup", ctx_r3.form);
119
+ i0.ɵɵadvance(2);
120
+ i0.ɵɵproperty("placeholder", i0.ɵɵpipeBind1(3, 11, "igo.context.permission.user"))("formControl", ctx_r3.formControl)("matAutocomplete", _r9);
121
+ i0.ɵɵadvance(2);
122
+ i0.ɵɵproperty("displayWith", ctx_r3.displayFn);
123
+ i0.ɵɵadvance(2);
124
+ i0.ɵɵproperty("ngForOf", ctx_r3.profils);
125
+ i0.ɵɵadvance(2);
126
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 13, "igo.context.permission.profilRequired"), " ");
127
+ i0.ɵɵadvance(4);
128
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(13, 15, "igo.context.permission.read"), " ");
129
+ i0.ɵɵadvance(3);
130
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(16, 17, "igo.context.permission.write"), " ");
131
+ i0.ɵɵadvance(3);
132
+ i0.ɵɵproperty("disabled", !ctx_r3.form.valid);
133
+ i0.ɵɵadvance(1);
134
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 19, "igo.context.permission.addBtn"), " ");
135
+ } }
136
+ function ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_ng_template_2_button_7_Template(rf, ctx) { if (rf & 1) {
137
+ const _r23 = i0.ɵɵgetCurrentView();
138
+ i0.ɵɵelementStart(0, "button", 29);
139
+ i0.ɵɵlistener("click", function ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_ng_template_2_button_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const permission_r19 = i0.ɵɵnextContext().$implicit; const ctx_r21 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r21.removePermission.emit(permission_r19)); });
140
+ i0.ɵɵpipe(1, "translate");
141
+ i0.ɵɵelement(2, "mat-icon", 30);
142
+ i0.ɵɵelementEnd();
143
+ } if (rf & 2) {
144
+ i0.ɵɵproperty("matTooltip", i0.ɵɵpipeBind1(1, 1, "igo.context.permission.delete"));
145
+ } }
146
+ function ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_ng_template_2_Template(rf, ctx) { if (rf & 1) {
147
+ i0.ɵɵelementStart(0, "mat-list-item");
148
+ i0.ɵɵelement(1, "mat-icon", 25);
149
+ i0.ɵɵelementStart(2, "h4", 26);
150
+ i0.ɵɵtext(3);
151
+ i0.ɵɵelementStart(4, "small", 21);
152
+ i0.ɵɵtext(5);
153
+ i0.ɵɵelementEnd()();
154
+ i0.ɵɵelementStart(6, "div", 27);
155
+ i0.ɵɵtemplate(7, ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_ng_template_2_button_7_Template, 3, 3, "button", 28);
156
+ i0.ɵɵelementEnd()();
157
+ } if (rf & 2) {
158
+ const permission_r19 = ctx.$implicit;
159
+ const ctx_r18 = i0.ɵɵnextContext(5);
160
+ i0.ɵɵadvance(3);
161
+ i0.ɵɵtextInterpolate1(" ", permission_r19.profilTitle, " ");
162
+ i0.ɵɵadvance(2);
163
+ i0.ɵɵtextInterpolate(permission_r19.profil);
164
+ i0.ɵɵadvance(2);
165
+ i0.ɵɵproperty("ngIf", ctx_r18.canWrite || permission_r19.profil === ctx_r18.authService.decodeToken().user.sourceId);
166
+ } }
167
+ function ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_Template(rf, ctx) { if (rf & 1) {
168
+ i0.ɵɵelementStart(0, "igo-collapsible", 24);
169
+ i0.ɵɵpipe(1, "translate");
170
+ i0.ɵɵtemplate(2, ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_ng_template_2_Template, 8, 3, "ng-template", 22);
171
+ i0.ɵɵelementEnd();
172
+ } if (rf & 2) {
173
+ const groupPermissions_r16 = i0.ɵɵnextContext().$implicit;
174
+ i0.ɵɵproperty("title", i0.ɵɵpipeBind1(1, 2, "igo.context.permission." + groupPermissions_r16.key));
175
+ i0.ɵɵadvance(2);
176
+ i0.ɵɵproperty("ngForOf", groupPermissions_r16.value);
177
+ } }
178
+ function ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_Template(rf, ctx) { if (rf & 1) {
179
+ i0.ɵɵtemplate(0, ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_igo_collapsible_0_Template, 3, 4, "igo-collapsible", 23);
180
+ } if (rf & 2) {
181
+ const groupPermissions_r16 = ctx.$implicit;
182
+ i0.ɵɵproperty("ngIf", groupPermissions_r16.value.length);
183
+ } }
184
+ function ContextPermissionsComponent_div_0_igo_list_4_Template(rf, ctx) { if (rf & 1) {
185
+ i0.ɵɵelementStart(0, "igo-list");
186
+ i0.ɵɵtemplate(1, ContextPermissionsComponent_div_0_igo_list_4_ng_template_1_Template, 1, 1, "ng-template", 22);
187
+ i0.ɵɵpipe(2, "keyvalue");
188
+ i0.ɵɵelementEnd();
189
+ } if (rf & 2) {
190
+ const ctx_r4 = i0.ɵɵnextContext(2);
191
+ i0.ɵɵadvance(1);
192
+ i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(2, 1, ctx_r4.permissions));
193
+ } }
194
+ function ContextPermissionsComponent_div_0_Template(rf, ctx) { if (rf & 1) {
195
+ i0.ɵɵelementStart(0, "div");
196
+ i0.ɵɵtemplate(1, ContextPermissionsComponent_div_0_div_1_Template, 7, 6, "div", 1);
197
+ i0.ɵɵtemplate(2, ContextPermissionsComponent_div_0_div_2_Template, 9, 8, "div", 1);
198
+ i0.ɵɵtemplate(3, ContextPermissionsComponent_div_0_form_3_Template, 21, 21, "form", 2);
199
+ i0.ɵɵtemplate(4, ContextPermissionsComponent_div_0_igo_list_4_Template, 3, 3, "igo-list", 0);
200
+ i0.ɵɵelementEnd();
201
+ } if (rf & 2) {
202
+ const ctx_r0 = i0.ɵɵnextContext();
203
+ i0.ɵɵadvance(1);
204
+ i0.ɵɵproperty("ngIf", !ctx_r0.canWrite);
205
+ i0.ɵɵadvance(1);
206
+ i0.ɵɵproperty("ngIf", ctx_r0.canWrite);
207
+ i0.ɵɵadvance(1);
208
+ i0.ɵɵproperty("ngIf", ctx_r0.context.scope !== "private" && ctx_r0.canWrite);
209
+ i0.ɵɵadvance(1);
210
+ i0.ɵɵproperty("ngIf", ctx_r0.permissions && ctx_r0.context.scope !== "private");
211
+ } }
212
+ export class ContextPermissionsComponent {
213
+ formBuilder;
214
+ cd;
215
+ http;
216
+ authService;
217
+ config;
218
+ form;
219
+ get context() {
220
+ return this._context;
221
+ }
222
+ set context(value) {
223
+ this._context = value;
224
+ this.cd.detectChanges();
225
+ }
226
+ _context;
227
+ get permissions() {
228
+ return this._permissions;
229
+ }
230
+ set permissions(value) {
231
+ this._permissions = value;
232
+ this.cd.detectChanges();
233
+ }
234
+ _permissions;
235
+ get profils() {
236
+ return this._profils;
237
+ }
238
+ set profils(value) {
239
+ this._profils = value;
240
+ this.cd.detectChanges();
241
+ }
242
+ _profils = [];
243
+ get canWrite() {
244
+ return this.context.permission === TypePermission[TypePermission.write];
245
+ }
246
+ baseUrlProfils;
247
+ formControl = new UntypedFormControl();
248
+ formValueChanges$$;
249
+ addPermission = new EventEmitter();
250
+ removePermission = new EventEmitter();
251
+ scopeChanged = new EventEmitter();
252
+ constructor(formBuilder, cd, http, authService, config) {
253
+ this.formBuilder = formBuilder;
254
+ this.cd = cd;
255
+ this.http = http;
256
+ this.authService = authService;
257
+ this.config = config;
258
+ }
259
+ ngOnInit() {
260
+ this.buildForm();
261
+ this.baseUrlProfils =
262
+ this.config.getConfig('context.url') + '/profils-users?';
263
+ this.formValueChanges$$ = this.formControl.valueChanges.subscribe((value) => {
264
+ if (value.length) {
265
+ this.http
266
+ .get(this.baseUrlProfils + 'q=' + value)
267
+ .subscribe((profils) => {
268
+ this.profils = profils;
269
+ });
270
+ this.profils.filter((profil) => {
271
+ const filterNormalized = value
272
+ .toLowerCase()
273
+ .normalize('NFD')
274
+ .replace(/[\u0300-\u036f]/g, '');
275
+ const profilTitleNormalized = profil.title
276
+ .toLowerCase()
277
+ .normalize('NFD')
278
+ .replace(/[\u0300-\u036f]/g, '');
279
+ const profilNameNormalized = profil.name
280
+ .toLowerCase()
281
+ .normalize('NFD')
282
+ .replace(/[\u0300-\u036f]/g, '');
283
+ const profilNormalized = profilNameNormalized + profilTitleNormalized;
284
+ return profilNormalized.includes(filterNormalized);
285
+ });
286
+ }
287
+ else {
288
+ this.profils = [];
289
+ }
290
+ });
291
+ }
292
+ displayFn(profil) {
293
+ return profil ? profil.title : undefined;
294
+ }
295
+ handleFormSubmit(value) {
296
+ this.addPermission.emit(value);
297
+ }
298
+ buildForm() {
299
+ this.form = this.formBuilder.group({
300
+ profil: [],
301
+ typePermission: ['read']
302
+ });
303
+ }
304
+ onProfilSelected(value) {
305
+ this.form.setValue({
306
+ profil: value.name,
307
+ typePermission: this.form.value.typePermission
308
+ });
309
+ }
310
+ static ɵfac = function ContextPermissionsComponent_Factory(t) { return new (t || ContextPermissionsComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i2.HttpClient), i0.ɵɵdirectiveInject(i3.AuthService), i0.ɵɵdirectiveInject(i4.ConfigService)); };
311
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContextPermissionsComponent, selectors: [["igo-context-permissions"]], inputs: { context: "context", permissions: "permissions" }, outputs: { addPermission: "addPermission", removePermission: "removePermission", scopeChanged: "scopeChanged" }, decls: 1, vars: 1, consts: [[4, "ngIf"], ["class", "scopeForm", 4, "ngIf"], [3, "formGroup", "ngSubmit", 4, "ngIf"], [1, "scopeForm"], [3, "ngModel", "ngModelChange", "change"], ["value", "private"], ["value", "protected"], ["value", "public", 4, "ngIf"], ["value", "public"], [3, "formGroup", "ngSubmit"], [1, "full-width"], ["matInput", "", "required", "", 3, "placeholder", "formControl", "matAutocomplete"], [3, "displayWith", "optionSelected"], ["auto", "matAutocomplete"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "typePermission"], ["value", "read"], ["value", "write"], [1, "igo-form-button-group"], ["mat-raised-button", "", "type", "submit", 3, "disabled"], [3, "value"], [1, "mat-typography"], ["ngFor", "", 3, "ngForOf"], [3, "title", 4, "ngIf"], [3, "title"], ["matListItemIcon", "", "svgIcon", "account-outline"], ["matListItemTitle", ""], ["igoStopPropagation", "", 1, "igo-actions-container"], ["mat-icon-button", "", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click", 4, "ngIf"], ["mat-icon-button", "", "matTooltipShowDelay", "500", "color", "warn", 3, "matTooltip", "click"], ["svgIcon", "delete"]], template: function ContextPermissionsComponent_Template(rf, ctx) { if (rf & 1) {
312
+ i0.ɵɵtemplate(0, ContextPermissionsComponent_div_0_Template, 5, 4, "div", 0);
313
+ } if (rf & 2) {
314
+ i0.ɵɵproperty("ngIf", ctx.context);
315
+ } }, dependencies: [i5.NgForOf, i5.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.RequiredValidator, i1.NgModel, i1.FormControlDirective, i1.FormGroupDirective, i1.FormControlName, i6.MatFormField, i6.MatError, i7.MatInput, i8.MatIcon, i9.MatButton, i9.MatIconButton, i10.MatTooltip, i11.MatListItem, i11.MatListItemIcon, i11.MatListItemTitle, i12.MatRadioGroup, i12.MatRadioButton, i13.MatOption, i14.MatAutocomplete, i14.MatAutocompleteTrigger, i15.ListComponent, i15.CollapsibleComponent, i15.StopPropagationDirective, i15.KeyValuePipe, i16.TranslatePipe], styles: ["[_nghost-%COMP%]{margin:10px}.full-width[_ngcontent-%COMP%]{width:100%}mat-radio-button[_ngcontent-%COMP%]{padding:14px 14px 14px 0}.scopeForm[_ngcontent-%COMP%], form[_ngcontent-%COMP%]{padding:5px}"] });
316
+ }
317
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContextPermissionsComponent, [{
318
+ type: Component,
319
+ args: [{ selector: 'igo-context-permissions', template: "<div *ngIf=\"context\">\r\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\r\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\r\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\r\n </div>\r\n\r\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\r\n <mat-radio-group\r\n [(ngModel)]=\"context.scope\"\r\n (change)=\"scopeChanged.emit(context)\"\r\n >\r\n <mat-radio-button value=\"private\">\r\n {{ 'igo.context.permission.scope.private' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"protected\">\r\n {{ 'igo.context.permission.scope.shared' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\r\n {{ 'igo.context.permission.scope.public' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n <form\r\n *ngIf=\"context.scope !== 'private' && canWrite\"\r\n [formGroup]=\"form\"\r\n (ngSubmit)=\"handleFormSubmit(form.value)\"\r\n >\r\n <mat-form-field class=\"full-width\">\r\n <input\r\n matInput\r\n required\r\n [placeholder]=\"'igo.context.permission.user' | translate\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n />\r\n <mat-autocomplete\r\n #auto=\"matAutocomplete\"\r\n (optionSelected)=\"onProfilSelected($event.option.value)\"\r\n [displayWith]=\"displayFn\"\r\n >\r\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\r\n {{ profil.title }}<br />\r\n <small class=\"mat-typography\">{{ profil.name }}</small>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error>\r\n {{ 'igo.context.permission.profilRequired' | translate }}\r\n </mat-error>\r\n </mat-form-field>\r\n\r\n <mat-radio-group formControlName=\"typePermission\">\r\n <mat-radio-button value=\"read\">\r\n {{ 'igo.context.permission.read' | translate }}\r\n </mat-radio-button>\r\n <mat-radio-button value=\"write\">\r\n {{ 'igo.context.permission.write' | translate }}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <div class=\"igo-form-button-group\">\r\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid\">\r\n {{ 'igo.context.permission.addBtn' | translate }}\r\n </button>\r\n </div>\r\n </form>\r\n\r\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\r\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\r\n <igo-collapsible\r\n *ngIf=\"groupPermissions.value.length\"\r\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\"\r\n >\r\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\r\n <mat-list-item>\r\n <mat-icon matListItemIcon svgIcon=\"account-outline\"></mat-icon>\r\n <h4 matListItemTitle>\r\n {{ permission.profilTitle }}\r\n <small class=\"mat-typography\">{{ permission.profil }}</small>\r\n </h4>\r\n\r\n <div igoStopPropagation class=\"igo-actions-container\">\r\n <button\r\n *ngIf=\"\r\n canWrite ||\r\n permission.profil === authService.decodeToken().user.sourceId\r\n \"\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\r\n matTooltipShowDelay=\"500\"\r\n color=\"warn\"\r\n (click)=\"removePermission.emit(permission)\"\r\n >\r\n <mat-icon svgIcon=\"delete\"></mat-icon>\r\n </button>\r\n </div>\r\n </mat-list-item>\r\n </ng-template>\r\n </igo-collapsible>\r\n </ng-template>\r\n </igo-list>\r\n</div>\r\n", styles: [":host{margin:10px}.full-width{width:100%}mat-radio-button{padding:14px 14px 14px 0}.scopeForm,form{padding:5px}\n"] }]
320
+ }], function () { return [{ type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.HttpClient }, { type: i3.AuthService }, { type: i4.ConfigService }]; }, { context: [{
321
+ type: Input
322
+ }], permissions: [{
323
+ type: Input
324
+ }], addPermission: [{
325
+ type: Output
326
+ }], removePermission: [{
327
+ type: Output
328
+ }], scopeChanged: [{
329
+ type: Output
330
+ }] }); })();
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBUXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDekJ6Qyw4QkFBeUMsU0FBQTtJQUNuQyxZQUF3RDs7SUFBQSxpQkFBSztJQUNqRSx5QkFBRztJQUFBLFlBQXNEOztJQUFBLGlCQUFJLEVBQUE7O0lBRHpELGVBQXdEO0lBQXhELGtGQUF3RDtJQUN6RCxlQUFzRDtJQUF0RCxnRkFBc0Q7OztJQWN2RCwyQ0FBNkQ7SUFDM0QsWUFDRjs7SUFBQSxpQkFBbUI7O0lBRGpCLGVBQ0Y7SUFERSw0RkFDRjs7OztJQWJKLDhCQUF3Qyx5QkFBQTtJQUVwQyw4TUFBYSw2Q0FDZCxJ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QUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDckQsQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUF1QjtRQUMvQixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFLO1FBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxNQUFNLEVBQUUsRUFBRTtZQUNWLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUN6QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNqQixNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDbEIsY0FBYyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7U0FDL0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztxRkFoSFUsMkJBQTJCOzZEQUEzQiwyQkFBMkI7WUNqQ3hDLDRFQXFHTTs7WUFyR0Esa0NBQWE7Ozt1RkRpQ04sMkJBQTJCO2NBTHZDLFNBQVM7MkJBQ0UseUJBQXlCO29MQVEvQixPQUFPO2tCQURWLEtBQUs7WUFXRixXQUFXO2tCQURkLEtBQUs7WUE0QkksYUFBYTtrQkFBdEIsTUFBTTtZQUNHLGdCQUFnQjtrQkFBekIsTUFBTTtZQUVHLFlBQVk7a0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIE9uSW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQ29udGV4dCxcclxuICBDb250ZXh0UGVybWlzc2lvbixcclxuICBDb250ZXh0UGVybWlzc2lvbnNMaXN0LFxyXG4gIENvbnRleHRQcm9maWxzXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2NvbnRleHQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVHlwZVBlcm1pc3Npb24gfSBmcm9tICcuLi9zaGFyZWQvY29udGV4dC5lbnVtJztcclxuXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tY29udGV4dC1wZXJtaXNzaW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtcGVybWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbnRleHQtcGVybWlzc2lvbnMuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgY29udGV4dCgpOiBDb250ZXh0IHtcclxuICAgIHJldHVybiB0aGlzLl9jb250ZXh0O1xyXG4gIH1cclxuICBzZXQgY29udGV4dCh2YWx1ZTogQ29udGV4dCkge1xyXG4gICAgdGhpcy5fY29udGV4dCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbnRleHQ6IENvbnRleHQ7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBlcm1pc3Npb25zKCk6IENvbnRleHRQZXJtaXNzaW9uc0xpc3Qge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xyXG4gIH1cclxuICBzZXQgcGVybWlzc2lvbnModmFsdWU6IENvbnRleHRQZXJtaXNzaW9uc0xpc3QpIHtcclxuICAgIHRoaXMuX3Blcm1pc3Npb25zID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcGVybWlzc2lvbnM6IENvbnRleHRQZXJtaXNzaW9uc0xpc3Q7XHJcblxyXG4gIGdldCBwcm9maWxzKCk6IENvbnRleHRQcm9maWxzW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2ZpbHM7XHJcbiAgfVxyXG4gIHNldCBwcm9maWxzKHZhbHVlOiBDb250ZXh0UHJvZmlsc1tdKSB7XHJcbiAgICB0aGlzLl9wcm9maWxzID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfcHJvZmlsczogQ29udGV4dFByb2ZpbHNbXSA9IFtdO1xyXG5cclxuICBnZXQgY2FuV3JpdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnBlcm1pc3Npb24gPT09IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmFzZVVybFByb2ZpbHM7XHJcblxyXG4gIHB1YmxpYyBmb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICBmb3JtVmFsdWVDaGFuZ2VzJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgQE91dHB1dCgpIGFkZFBlcm1pc3Npb246IEV2ZW50RW1pdHRlcjxDb250ZXh0UGVybWlzc2lvbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHJlbW92ZVBlcm1pc3Npb246IEV2ZW50RW1pdHRlcjxDb250ZXh0UGVybWlzc2lvbj4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzY29wZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDb250ZXh0PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmJ1aWxkRm9ybSgpO1xyXG5cclxuICAgIHRoaXMuYmFzZVVybFByb2ZpbHMgPVxyXG4gICAgICB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2NvbnRleHQudXJsJykgKyAnL3Byb2ZpbHMtdXNlcnM/JztcclxuXHJcbiAgICB0aGlzLmZvcm1WYWx1ZUNoYW5nZXMkJCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy5odHRwXHJcbiAgICAgICAgICAgIC5nZXQodGhpcy5iYXNlVXJsUHJvZmlscyArICdxPScgKyB2YWx1ZSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgocHJvZmlscykgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMucHJvZmlscyA9IHByb2ZpbHMgYXMgQ29udGV4dFByb2ZpbHNbXTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnByb2ZpbHMuZmlsdGVyKChwcm9maWwpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsdGVyTm9ybWFsaXplZCA9IHZhbHVlXHJcbiAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb2ZpbFRpdGxlTm9ybWFsaXplZCA9IHByb2ZpbC50aXRsZVxyXG4gICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcclxuICAgICAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl0vZywgJycpO1xyXG4gICAgICAgICAgICBjb25zdCBwcm9maWxOYW1lTm9ybWFsaXplZCA9IHByb2ZpbC5uYW1lXHJcbiAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAubm9ybWFsaXplKCdORkQnKVxyXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb2ZpbE5vcm1hbGl6ZWQgPVxyXG4gICAgICAgICAgICAgIHByb2ZpbE5hbWVOb3JtYWxpemVkICsgcHJvZmlsVGl0bGVOb3JtYWxpemVkO1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvZmlsTm9ybWFsaXplZC5pbmNsdWRlcyhmaWx0ZXJOb3JtYWxpemVkKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnByb2ZpbHMgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkaXNwbGF5Rm4ocHJvZmlsPzogQ29udGV4dFByb2ZpbHMpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHByb2ZpbCA/IHByb2ZpbC50aXRsZSA6IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVGb3JtU3VibWl0KHZhbHVlKSB7XHJcbiAgICB0aGlzLmFkZFBlcm1pc3Npb24uZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkRm9ybSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICBwcm9maWw6IFtdLFxyXG4gICAgICB0eXBlUGVybWlzc2lvbjogWydyZWFkJ11cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Qcm9maWxTZWxlY3RlZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcclxuICAgICAgcHJvZmlsOiB2YWx1ZS5uYW1lLFxyXG4gICAgICB0eXBlUGVybWlzc2lvbjogdGhpcy5mb3JtLnZhbHVlLnR5cGVQZXJtaXNzaW9uXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cImNvbnRleHRcIj5cclxuICA8ZGl2ICpuZ0lmPVwiIWNhbldyaXRlXCIgY2xhc3M9XCJzY29wZUZvcm1cIj5cclxuICAgIDxoND57eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5yZWFkT25seVRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XHJcbiAgICA8cD57eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5yZWFkT25seU1zZycgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCJjYW5Xcml0ZVwiIGNsYXNzPVwic2NvcGVGb3JtXCI+XHJcbiAgICA8bWF0LXJhZGlvLWdyb3VwXHJcbiAgICAgIFsobmdNb2RlbCldPVwiY29udGV4dC5zY29wZVwiXHJcbiAgICAgIChjaGFuZ2UpPVwic2NvcGVDaGFuZ2VkLmVtaXQoY29udGV4dClcIlxyXG4gICAgPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cInByaXZhdGVcIj5cclxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5wcml2YXRlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwicHJvdGVjdGVkXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uc2NvcGUuc2hhcmVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uICpuZ0lmPVwiYXV0aFNlcnZpY2UuaXNBZG1pblwiIHZhbHVlPVwicHVibGljXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uc2NvcGUucHVibGljJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGZvcm1cclxuICAgICpuZ0lmPVwiY29udGV4dC5zY29wZSAhPT0gJ3ByaXZhdGUnICYmIGNhbldyaXRlXCJcclxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXHJcbiAgICAobmdTdWJtaXQpPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlKVwiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIHJlcXVpcmVkXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLnVzZXInIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJvblByb2ZpbFNlbGVjdGVkKCRldmVudC5vcHRpb24udmFsdWUpXCJcclxuICAgICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBwcm9maWwgb2YgdGhpcy5wcm9maWxzXCIgW3ZhbHVlXT1cInByb2ZpbFwiPlxyXG4gICAgICAgICAge3sgcHJvZmlsLnRpdGxlIH19PGJyIC8+XHJcbiAgICAgICAgICA8c21hbGwgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPnt7IHByb2ZpbC5uYW1lIH19PC9zbWFsbD5cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPG1hdC1lcnJvcj5cclxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5wcm9maWxSZXF1aXJlZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVBlcm1pc3Npb25cIj5cclxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJyZWFkXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24ucmVhZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvbiB2YWx1ZT1cIndyaXRlXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24ud3JpdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCI+XHJcbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uYWRkQnRuJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuXHJcbiAgPGlnby1saXN0ICpuZ0lmPVwicGVybWlzc2lvbnMgJiYgY29udGV4dC5zY29wZSAhPT0gJ3ByaXZhdGUnXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LWdyb3VwUGVybWlzc2lvbnMgW25nRm9yT2ZdPVwicGVybWlzc2lvbnMgfCBrZXl2YWx1ZVwiPlxyXG4gICAgICA8aWdvLWNvbGxhcHNpYmxlXHJcbiAgICAgICAgKm5nSWY9XCJncm91cFBlcm1pc3Npb25zLnZhbHVlLmxlbmd0aFwiXHJcbiAgICAgICAgW3RpdGxlXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLicgKyBncm91cFBlcm1pc3Npb25zLmtleSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgbmdGb3IgbGV0LXBlcm1pc3Npb24gW25nRm9yT2ZdPVwiZ3JvdXBQZXJtaXNzaW9ucy52YWx1ZVwiPlxyXG4gICAgICAgICAgPG1hdC1saXN0LWl0ZW0+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24gc3ZnSWNvbj1cImFjY291bnQtb3V0bGluZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxoNCBtYXRMaXN0SXRlbVRpdGxlPlxyXG4gICAgICAgICAgICAgIHt7IHBlcm1pc3Npb24ucHJvZmlsVGl0bGUgfX1cclxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPnt7IHBlcm1pc3Npb24ucHJvZmlsIH19PC9zbWFsbD5cclxuICAgICAgICAgICAgPC9oND5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgaWdvU3RvcFByb3BhZ2F0aW9uIGNsYXNzPVwiaWdvLWFjdGlvbnMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgY2FuV3JpdGUgfHxcclxuICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbi5wcm9maWwgPT09IGF1dGhTZXJ2aWNlLmRlY29kZVRva2VuKCkudXNlci5zb3VyY2VJZFxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uZGVsZXRlJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwU2hvd0RlbGF5PVwiNTAwXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlUGVybWlzc2lvbi5lbWl0KHBlcm1pc3Npb24pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvaWdvLWNvbGxhcHNpYmxlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2lnby1saXN0PlxyXG48L2Rpdj5cclxuIl19
@@ -1,3 +1,3 @@
1
- export * from './context-permissions.component';
2
- export * from './context-permissions-binding.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1wZXJtaXNzaW9ucy1iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbiJdfQ==
1
+ export * from './context-permissions.component';
2
+ export * from './context-permissions-binding.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtcGVybWlzc2lvbnMtYmluZGluZy5kaXJlY3RpdmUnO1xuIl19
@@ -1,7 +1,7 @@
1
- export * from './shared';
2
- export * from './context-list';
3
- export * from './context-item';
4
- export * from './context-form';
5
- export * from './context-edit';
6
- export * from './context-permissions';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWxpc3QnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtaXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1mb3JtJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb250ZXh0LWVkaXQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQtcGVybWlzc2lvbnMnO1xyXG4iXX0=
1
+ export * from './shared';
2
+ export * from './context-list';
3
+ export * from './context-item';
4
+ export * from './context-form';
5
+ export * from './context-edit';
6
+ export * from './context-permissions';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2hhcmVkJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1pdGVtJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1mb3JtJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1lZGl0JztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dC1wZXJtaXNzaW9ucyc7XG4iXX0=
@@ -1,13 +1,13 @@
1
- export var TypePermission;
2
- (function (TypePermission) {
3
- TypePermission[TypePermission["null"] = 0] = "null";
4
- TypePermission[TypePermission["read"] = 1] = "read";
5
- TypePermission[TypePermission["write"] = 2] = "write";
6
- })(TypePermission || (TypePermission = {}));
7
- export var Scope;
8
- (function (Scope) {
9
- Scope[Scope["public"] = 0] = "public";
10
- Scope[Scope["protected"] = 1] = "protected";
11
- Scope[Scope["private"] = 2] = "private";
12
- })(Scope || (Scope = {}));
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsbURBQUksQ0FBQTtJQUNKLG1EQUFJLENBQUE7SUFDSixxREFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsTUFBTSxDQUFOLElBQVksS0FJWDtBQUpELFdBQVksS0FBSztJQUNmLHFDQUFNLENBQUE7SUFDTiwyQ0FBUyxDQUFBO0lBQ1QsdUNBQU8sQ0FBQTtBQUNULENBQUMsRUFKVyxLQUFLLEtBQUwsS0FBSyxRQUloQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFR5cGVQZXJtaXNzaW9uIHtcclxuICBudWxsLFxyXG4gIHJlYWQsXHJcbiAgd3JpdGVcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU2NvcGUge1xyXG4gIHB1YmxpYyxcclxuICBwcm90ZWN0ZWQsXHJcbiAgcHJpdmF0ZVxyXG59XHJcbiJdfQ==
1
+ export var TypePermission;
2
+ (function (TypePermission) {
3
+ TypePermission[TypePermission["null"] = 0] = "null";
4
+ TypePermission[TypePermission["read"] = 1] = "read";
5
+ TypePermission[TypePermission["write"] = 2] = "write";
6
+ })(TypePermission || (TypePermission = {}));
7
+ export var Scope;
8
+ (function (Scope) {
9
+ Scope[Scope["public"] = 0] = "public";
10
+ Scope[Scope["protected"] = 1] = "protected";
11
+ Scope[Scope["private"] = 2] = "private";
12
+ })(Scope || (Scope = {}));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDeEIsbURBQUksQ0FBQTtJQUNKLG1EQUFJLENBQUE7SUFDSixxREFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBRUQsTUFBTSxDQUFOLElBQVksS0FJWDtBQUpELFdBQVksS0FBSztJQUNmLHFDQUFNLENBQUE7SUFDTiwyQ0FBUyxDQUFBO0lBQ1QsdUNBQU8sQ0FBQTtBQUNULENBQUMsRUFKVyxLQUFLLEtBQUwsS0FBSyxRQUloQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFR5cGVQZXJtaXNzaW9uIHtcbiAgbnVsbCxcbiAgcmVhZCxcbiAgd3JpdGVcbn1cblxuZXhwb3J0IGVudW0gU2NvcGUge1xuICBwdWJsaWMsXG4gIHByb3RlY3RlZCxcbiAgcHJpdmF0ZVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBUb29sIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBNYXBWaWV3T3B0aW9ucyxcclxuICBMYXllck9wdGlvbnMsXHJcbiAgTWFwU2NhbGVMaW5lT3B0aW9ucyxcclxuICBNYXBBdHRyaWJ1dGlvbk9wdGlvbnMsXHJcbiAgTWFwRXh0ZW50XHJcbn0gZnJvbSAnQGlnbzIvZ2VvJztcclxuXHJcbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi9jb250ZXh0LmVudW0nO1xyXG5pbXBvcnQgeyBGZWF0dXJlQ29sbGVjdGlvbiB9IGZyb20gJ2dlb2pzb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0IHtcclxuICBpZD86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICB1cmk/OiBzdHJpbmc7XHJcbiAgc2NvcGU/OiBzdHJpbmc7IC8vIFNjb3BlOiAncHVibGljJyB8ICdwcm90ZWN0ZWQnIHwgJ3ByaXZhdGUnO1xyXG4gIHBlcm1pc3Npb24/OiBzdHJpbmc7IC8vIFR5cGVQZXJtaXNzaW9uOiAncmVhZCcgfCAnd3JpdGUnXHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICBpY29uSW1hZ2U/OiBzdHJpbmc7XHJcbiAgaGlkZGVuPzogYm9vbGVhbjtcclxuICBpbXBvcnRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dHNMaXN0IHtcclxuICBvdXJzOiBDb250ZXh0W107XHJcbiAgc2hhcmVkPzogQ29udGV4dFtdO1xyXG4gIHB1YmxpYz86IENvbnRleHRbXTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXh0cmFGZWF0dXJlcyA9IEZlYXR1cmVDb2xsZWN0aW9uICYge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBvcGFjaXR5OiBudW1iZXI7XHJcbiAgdmlzaWJsZTogYm9vbGVhbjtcclxufTtcclxuZXhwb3J0IGludGVyZmFjZSBEZXRhaWxlZENvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcclxuICBiYXNlPzogc3RyaW5nO1xyXG4gIG1hcD86IENvbnRleHRNYXA7XHJcbiAgbGF5ZXJzPzogTGF5ZXJPcHRpb25zW107XHJcbiAgdG9vbHM/OiBUb29sW107XHJcbiAgdG9vbGJhcj86IHN0cmluZ1tdO1xyXG4gIG1lc3NhZ2U/OiBNZXNzYWdlO1xyXG4gIG1lc3NhZ2VzPzogTWVzc2FnZVtdO1xyXG4gIHJlbW92ZUxheWVyc09uQ29udGV4dENoYW5nZT86IGJvb2xlYW47XHJcbiAgZXh0cmFGZWF0dXJlcz86IEV4dHJhRmVhdHVyZXNbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0TWFwVmlldyBleHRlbmRzIE1hcFZpZXdPcHRpb25zIHtcclxuICBrZWVwQ3VycmVudFZpZXc/OiBib29sZWFuO1xyXG4gIGhvbWVFeHRlbnQ/OiBDb250ZXh0SG9tZUV4dGVudDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0SG9tZUV4dGVudCB7XHJcbiAgZXh0ZW50PzogTWFwRXh0ZW50O1xyXG4gIGNlbnRlcj86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgem9vbT86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0TWFwIHtcclxuICB2aWV3OiBDb250ZXh0TWFwVmlldztcclxuICBjb250cm9scz86IHtcclxuICAgIHNjYWxlTGluZT86IGJvb2xlYW4gfCBNYXBTY2FsZUxpbmVPcHRpb25zO1xyXG4gICAgYXR0cmlidXRpb24/OiBib29sZWFuIHwgTWFwQXR0cmlidXRpb25PcHRpb25zO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFNlcnZpY2VPcHRpb25zIHtcclxuICB1cmw/OiBzdHJpbmc7XHJcbiAgYmFzZVBhdGg/OiBzdHJpbmc7XHJcbiAgY29udGV4dExpc3RGaWxlPzogc3RyaW5nO1xyXG4gIGRlZmF1bHRDb250ZXh0VXJpPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRQZXJtaXNzaW9uIHtcclxuICBpZD86IHN0cmluZztcclxuICBjb250ZXh0SWQ/OiBzdHJpbmc7XHJcbiAgcHJvZmlsOiBzdHJpbmc7XHJcbiAgcHJvZmlsVGl0bGU/OiBzdHJpbmc7XHJcbiAgdHlwZVBlcm1pc3Npb246IFR5cGVQZXJtaXNzaW9uO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRQZXJtaXNzaW9uc0xpc3Qge1xyXG4gIHJlYWQ6IENvbnRleHRQZXJtaXNzaW9uW107XHJcbiAgd3JpdGU6IENvbnRleHRQZXJtaXNzaW9uW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFVzZXJQZXJtaXNzaW9uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2hlY2tlZDogYm9vbGVhbjtcclxuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0UHJvZmlscyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgY2hpbGRzPzogQ29udGV4dFByb2ZpbHNbXTtcclxufVxyXG4iXX0=