@igo2/context 1.15.4 → 16.0.0-rc.1
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.
- package/context-theme.scss +5 -0
- package/{esm2020 → esm2022}/igo2-context.mjs +4 -4
- package/esm2022/lib/context-import-export/context-import-export/context-import-export.component.mjs +258 -0
- package/esm2022/lib/context-import-export/context-import-export.module.mjs +81 -0
- package/{esm2020 → esm2022}/lib/context-import-export/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.errors.mjs +15 -15
- package/{esm2020 → esm2022}/lib/context-import-export/shared/context-export.interface.mjs +2 -2
- package/esm2022/lib/context-import-export/shared/context-export.service.mjs +38 -0
- package/esm2022/lib/context-import-export/shared/context-export.utils.mjs +15 -0
- package/esm2022/lib/context-import-export/shared/context-import.errors.mjs +33 -0
- package/esm2022/lib/context-import-export/shared/context-import.service.mjs +82 -0
- package/esm2022/lib/context-import-export/shared/context-import.utils.mjs +148 -0
- package/{esm2020 → esm2022}/lib/context-import-export/shared/index.mjs +8 -8
- package/esm2022/lib/context-manager/context-edit/context-edit-binding.directive.mjs +57 -0
- package/esm2022/lib/context-manager/context-edit/context-edit.component.mjs +48 -0
- package/{esm2020 → esm2022}/lib/context-manager/context-edit/index.mjs +3 -3
- package/esm2022/lib/context-manager/context-form/context-form.component.mjs +151 -0
- package/{esm2020 → esm2022}/lib/context-manager/context-form/index.mjs +2 -2
- package/esm2022/lib/context-manager/context-item/context-item.component.mjs +251 -0
- package/{esm2020 → esm2022}/lib/context-manager/context-item/index.mjs +2 -2
- package/esm2022/lib/context-manager/context-list/context-list-binding.directive.mjs +259 -0
- package/esm2022/lib/context-manager/context-list/context-list.component.mjs +616 -0
- package/{esm2020 → esm2022}/lib/context-manager/context-list/context-list.enum.mjs +7 -7
- package/{esm2020 → esm2022}/lib/context-manager/context-list/index.mjs +3 -3
- package/esm2022/lib/context-manager/context-manager.module.mjs +157 -0
- package/esm2022/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +108 -0
- package/esm2022/lib/context-manager/context-permissions/context-permissions.component.mjs +331 -0
- package/{esm2020 → esm2022}/lib/context-manager/context-permissions/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/context-manager/index.mjs +7 -7
- package/{esm2020 → esm2022}/lib/context-manager/shared/context.enum.mjs +13 -13
- package/esm2022/lib/context-manager/shared/context.interface.mjs +2 -0
- package/esm2022/lib/context-manager/shared/context.service.mjs +662 -0
- package/{esm2020 → esm2022}/lib/context-manager/shared/index.mjs +6 -6
- package/esm2022/lib/context-manager/shared/layer-context.directive.mjs +172 -0
- package/esm2022/lib/context-manager/shared/map-context.directive.mjs +79 -0
- package/esm2022/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +74 -0
- package/esm2022/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/context-map-button/bookmark-button/index.mjs +3 -3
- package/esm2022/lib/context-map-button/context-map-button.module.mjs +104 -0
- package/{esm2020 → esm2022}/lib/context-map-button/index.mjs +4 -4
- package/{esm2020 → esm2022}/lib/context-map-button/poi-button/index.mjs +4 -4
- package/esm2022/lib/context-map-button/poi-button/poi-button.component.mjs +179 -0
- package/esm2022/lib/context-map-button/poi-button/poi-dialog.component.mjs +53 -0
- package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/context-map-button/poi-button/shared/poi.interface.mjs +2 -2
- package/esm2022/lib/context-map-button/poi-button/shared/poi.service.mjs +38 -0
- package/{esm2020 → esm2022}/lib/context-map-button/user-button/index.mjs +3 -3
- package/{esm2020 → esm2022}/lib/context-map-button/user-button/user-button.animation.mjs +17 -17
- package/esm2022/lib/context-map-button/user-button/user-button.component.mjs +112 -0
- package/esm2022/lib/context-map-button/user-button/user-dialog.component.mjs +74 -0
- package/{esm2020 → esm2022}/lib/context.module.mjs +45 -45
- package/{esm2020 → esm2022}/lib/share-map/index.mjs +5 -5
- package/esm2022/lib/share-map/share-map/share-map-api.component.mjs +186 -0
- package/esm2022/lib/share-map/share-map/share-map-url.component.mjs +251 -0
- package/esm2022/lib/share-map/share-map/share-map.component.mjs +60 -0
- package/{esm2020 → esm2022}/lib/share-map/share-map.module.mjs +67 -67
- package/{esm2020 → esm2022}/lib/share-map/shared/index.mjs +2 -2
- package/esm2022/lib/share-map/shared/share-map.service.mjs +221 -0
- package/{esm2020 → esm2022}/lib/sidenav/index.mjs +2 -2
- package/esm2022/lib/sidenav/sidenav.component.mjs +178 -0
- package/{esm2020 → esm2022}/lib/sidenav/sidenav.module.mjs +61 -61
- package/{esm2020 → esm2022}/public_api.mjs +15 -15
- package/{fesm2020 → fesm2022}/igo2-context.mjs +4844 -4614
- package/fesm2022/igo2-context.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +46 -44
- package/lib/context-import-export/context-import-export.module.d.ts +23 -23
- package/lib/context-import-export/index.d.ts +2 -2
- package/lib/context-import-export/shared/context-export.errors.d.ts +8 -8
- package/lib/context-import-export/shared/context-export.interface.d.ts +5 -5
- package/lib/context-import-export/shared/context-export.service.d.ts +10 -10
- package/lib/context-import-export/shared/context-export.utils.d.ts +4 -4
- package/lib/context-import-export/shared/context-import.errors.d.ts +17 -17
- package/lib/context-import-export/shared/context-import.service.d.ts +18 -18
- package/lib/context-import-export/shared/context-import.utils.d.ts +15 -17
- package/lib/context-import-export/shared/index.d.ts +7 -7
- package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +20 -20
- package/lib/context-manager/context-edit/context-edit.component.d.ts +14 -14
- package/lib/context-manager/context-edit/index.d.ts +2 -2
- package/lib/context-manager/context-form/context-form.component.d.ts +30 -30
- package/lib/context-manager/context-form/index.d.ts +1 -1
- package/lib/context-manager/context-item/context-item.component.d.ts +32 -32
- package/lib/context-manager/context-item/context-item.theming.scss +21 -0
- package/lib/context-manager/context-item/index.d.ts +1 -1
- package/lib/context-manager/context-list/context-list-binding.directive.d.ts +46 -46
- package/lib/context-manager/context-list/context-list.component.d.ts +93 -93
- package/lib/context-manager/context-list/context-list.enum.d.ts +5 -5
- package/lib/context-manager/context-list/context-list.theming.scss +23 -0
- package/lib/context-manager/context-list/index.d.ts +2 -2
- package/lib/context-manager/context-manager.module.d.ts +37 -37
- package/lib/context-manager/context-manager.theming.scss +7 -0
- package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +23 -23
- package/lib/context-manager/context-permissions/context-permissions.component.d.ts +40 -40
- package/lib/context-manager/context-permissions/index.d.ts +2 -2
- package/lib/context-manager/index.d.ts +6 -6
- package/lib/context-manager/shared/context.enum.d.ts +10 -10
- package/lib/context-manager/shared/context.interface.d.ts +81 -75
- package/lib/context-manager/shared/context.service.d.ts +76 -75
- package/lib/context-manager/shared/index.d.ts +5 -5
- package/lib/context-manager/shared/layer-context.directive.d.ts +28 -28
- package/lib/context-manager/shared/map-context.directive.d.ts +19 -19
- package/lib/context-map-button/bookmark-button/bookmark-button.component.d.ts +20 -20
- package/lib/context-map-button/bookmark-button/bookmark-dialog.component.d.ts +9 -9
- package/lib/context-map-button/bookmark-button/index.d.ts +2 -2
- package/lib/context-map-button/context-map-button.module.d.ts +27 -27
- package/lib/context-map-button/index.d.ts +3 -3
- package/lib/context-map-button/poi-button/index.d.ts +3 -3
- package/lib/context-map-button/poi-button/poi-button.component.d.ts +34 -34
- package/lib/context-map-button/poi-button/poi-dialog.component.d.ts +9 -9
- package/lib/context-map-button/poi-button/shared/index.d.ts +2 -2
- package/lib/context-map-button/poi-button/shared/poi.interface.d.ts +7 -7
- package/lib/context-map-button/poi-button/shared/poi.service.d.ts +16 -16
- package/lib/context-map-button/user-button/index.d.ts +2 -2
- package/lib/context-map-button/user-button/user-button.animation.d.ts +2 -2
- package/lib/context-map-button/user-button/user-button.component.d.ts +25 -25
- package/lib/context-map-button/user-button/user-dialog.component.d.ts +15 -15
- package/lib/context.module.d.ts +16 -16
- package/lib/share-map/index.d.ts +4 -4
- package/lib/share-map/share-map/share-map-api.component.d.ts +27 -27
- package/lib/share-map/share-map/share-map-url.component.d.ts +26 -26
- package/lib/share-map/share-map/share-map.component.d.ts +11 -11
- package/lib/share-map/share-map.module.d.ts +21 -21
- package/lib/share-map/shared/index.d.ts +1 -1
- package/lib/share-map/shared/share-map.service.d.ts +17 -17
- package/lib/sidenav/index.d.ts +1 -1
- package/lib/sidenav/sidenav.component.d.ts +35 -35
- package/lib/sidenav/sidenav.module.d.ts +18 -18
- package/locale/en.context.json +199 -0
- package/locale/fr.context.json +199 -0
- package/package.json +20 -26
- package/public_api.d.ts +11 -11
- package/esm2020/lib/context-import-export/context-import-export/context-import-export.component.mjs +0 -228
- package/esm2020/lib/context-import-export/context-import-export.module.mjs +0 -85
- package/esm2020/lib/context-import-export/shared/context-export.service.mjs +0 -38
- package/esm2020/lib/context-import-export/shared/context-export.utils.mjs +0 -15
- package/esm2020/lib/context-import-export/shared/context-import.errors.mjs +0 -33
- package/esm2020/lib/context-import-export/shared/context-import.service.mjs +0 -79
- package/esm2020/lib/context-import-export/shared/context-import.utils.mjs +0 -133
- package/esm2020/lib/context-manager/context-edit/context-edit-binding.directive.mjs +0 -50
- package/esm2020/lib/context-manager/context-edit/context-edit.component.mjs +0 -46
- package/esm2020/lib/context-manager/context-form/context-form.component.mjs +0 -143
- package/esm2020/lib/context-manager/context-item/context-item.component.mjs +0 -245
- package/esm2020/lib/context-manager/context-list/context-list-binding.directive.mjs +0 -240
- package/esm2020/lib/context-manager/context-list/context-list.component.mjs +0 -592
- package/esm2020/lib/context-manager/context-manager.module.mjs +0 -162
- package/esm2020/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +0 -99
- package/esm2020/lib/context-manager/context-permissions/context-permissions.component.mjs +0 -306
- package/esm2020/lib/context-manager/shared/context.interface.mjs +0 -2
- package/esm2020/lib/context-manager/shared/context.service.mjs +0 -632
- package/esm2020/lib/context-manager/shared/layer-context.directive.mjs +0 -162
- package/esm2020/lib/context-manager/shared/map-context.directive.mjs +0 -70
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +0 -66
- package/esm2020/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +0 -50
- package/esm2020/lib/context-map-button/context-map-button.module.mjs +0 -96
- package/esm2020/lib/context-map-button/poi-button/poi-button.component.mjs +0 -161
- package/esm2020/lib/context-map-button/poi-button/poi-dialog.component.mjs +0 -50
- package/esm2020/lib/context-map-button/poi-button/shared/poi.service.mjs +0 -33
- package/esm2020/lib/context-map-button/user-button/user-button.component.mjs +0 -104
- package/esm2020/lib/context-map-button/user-button/user-dialog.component.mjs +0 -66
- package/esm2020/lib/share-map/share-map/share-map-api.component.mjs +0 -170
- package/esm2020/lib/share-map/share-map/share-map-url.component.mjs +0 -243
- package/esm2020/lib/share-map/share-map/share-map.component.mjs +0 -57
- package/esm2020/lib/share-map/shared/share-map.service.mjs +0 -210
- package/esm2020/lib/sidenav/sidenav.component.mjs +0 -170
- package/fesm2015/igo2-context.mjs +0 -5094
- package/fesm2015/igo2-context.mjs.map +0 -1
- package/fesm2020/igo2-context.mjs.map +0 -1
- 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\">\n <div *ngIf=\"!canWrite\" class=\"scopeForm\">\n <h4>{{ 'igo.context.permission.readOnlyTitle' | translate }}</h4>\n <p>{{ 'igo.context.permission.readOnlyMsg' | translate }}</p>\n </div>\n\n <div *ngIf=\"canWrite\" class=\"scopeForm\">\n <mat-radio-group\n [(ngModel)]=\"context.scope\"\n (change)=\"scopeChanged.emit(context)\"\n >\n <mat-radio-button value=\"private\">\n {{ 'igo.context.permission.scope.private' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"protected\">\n {{ 'igo.context.permission.scope.shared' | translate }}\n </mat-radio-button>\n <mat-radio-button *ngIf=\"authService.isAdmin\" value=\"public\">\n {{ 'igo.context.permission.scope.public' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </div>\n\n <form\n *ngIf=\"context.scope !== 'private' && canWrite\"\n [formGroup]=\"form\"\n (ngSubmit)=\"handleFormSubmit(form.value)\"\n >\n <mat-form-field class=\"full-width\">\n <input\n matInput\n required\n [placeholder]=\"'igo.context.permission.user' | translate\"\n [formControl]=\"formControl\"\n [matAutocomplete]=\"auto\"\n />\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n (optionSelected)=\"onProfilSelected($event.option.value)\"\n [displayWith]=\"displayFn\"\n >\n <mat-option *ngFor=\"let profil of this.profils\" [value]=\"profil\">\n {{ profil.title }}<br />\n <small class=\"mat-typography\">{{ profil.name }}</small>\n </mat-option>\n </mat-autocomplete>\n <mat-error>\n {{ 'igo.context.permission.profilRequired' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-radio-group formControlName=\"typePermission\">\n <mat-radio-button value=\"read\">\n {{ 'igo.context.permission.read' | translate }}\n </mat-radio-button>\n <mat-radio-button value=\"write\">\n {{ 'igo.context.permission.write' | translate }}\n </mat-radio-button>\n </mat-radio-group>\n\n <div class=\"igo-form-button-group\">\n <button mat-raised-button type=\"submit\" [disabled]=\"!form.valid\">\n {{ 'igo.context.permission.addBtn' | translate }}\n </button>\n </div>\n </form>\n\n <igo-list *ngIf=\"permissions && context.scope !== 'private'\">\n <ng-template ngFor let-groupPermissions [ngForOf]=\"permissions | keyvalue\">\n <igo-collapsible\n *ngIf=\"groupPermissions.value.length\"\n [title]=\"'igo.context.permission.' + groupPermissions.key | translate\"\n >\n <ng-template ngFor let-permission [ngForOf]=\"groupPermissions.value\">\n <mat-list-item>\n <mat-icon matListItemIcon svgIcon=\"account-outline\"></mat-icon>\n <h4 matListItemTitle>\n {{ permission.profilTitle }}\n <small class=\"mat-typography\">{{ permission.profil }}</small>\n </h4>\n\n <div igoStopPropagation class=\"igo-actions-container\">\n <button\n *ngIf=\"\n canWrite ||\n permission.profil === authService.decodeToken().user.sourceId\n \"\n mat-icon-button\n [matTooltip]=\"'igo.context.permission.delete' | translate\"\n matTooltipShowDelay=\"500\"\n color=\"warn\"\n (click)=\"removePermission.emit(permission)\"\n >\n <mat-icon svgIcon=\"delete\"></mat-icon>\n </button>\n </div>\n </mat-list-item>\n </ng-template>\n </igo-collapsible>\n </ng-template>\n </igo-list>\n</div>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL2NvbnRleHQtcGVybWlzc2lvbnMvY29udGV4dC1wZXJtaXNzaW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUVaLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLGtCQUFrQixFQUNuQixNQUFNLGdCQUFnQixDQUFDO0FBUXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDekJ6Qyw4QkFBeUMsU0FBQTtJQUNuQyxZQUF3RDs7SUFBQSxpQkFBSztJQUNqRSx5QkFBRztJQUFBLFlBQXNEOztJQUFBLGlCQUFJLEVBQUE7O0lBRHpELGVBQXdEO0lBQXhELGtGQUF3RDtJQUN6RCxlQUFzRDtJQUF0RCxnRkFBc0Q7OztJQWN2RCwyQ0FBNkQ7SUFDM0QsWUFDRjs7SUFBQSxpQkFBbUI7O0lBRGpCLGVBQ0Y7SUFERSw0RkFDRjs7OztJQWJKLDhCQUF3Qyx5QkFBQTtJQUVwQyw4TUFBYSw2Q0FDYixJ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ZW50RW1pdHRlcixcbiAgT25Jbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVW50eXBlZEZvcm1Db250cm9sXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgQ29udGV4dFBlcm1pc3Npb24sXG4gIENvbnRleHRQZXJtaXNzaW9uc0xpc3QsXG4gIENvbnRleHRQcm9maWxzXG59IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZSc7XG5pbXBvcnQgeyBUeXBlUGVybWlzc2lvbiB9IGZyb20gJy4uL3NoYXJlZC9jb250ZXh0LmVudW0nO1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lnby1jb250ZXh0LXBlcm1pc3Npb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtcGVybWlzc2lvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb250ZXh0LXBlcm1pc3Npb25zLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29udGV4dFBlcm1pc3Npb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgZ2V0IGNvbnRleHQoKTogQ29udGV4dCB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRleHQ7XG4gIH1cbiAgc2V0IGNvbnRleHQodmFsdWU6IENvbnRleHQpIHtcbiAgICB0aGlzLl9jb250ZXh0ID0gdmFsdWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29udGV4dDogQ29udGV4dDtcblxuICBASW5wdXQoKVxuICBnZXQgcGVybWlzc2lvbnMoKTogQ29udGV4dFBlcm1pc3Npb25zTGlzdCB7XG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICB9XG4gIHNldCBwZXJtaXNzaW9ucyh2YWx1ZTogQ29udGV4dFBlcm1pc3Npb25zTGlzdCkge1xuICAgIHRoaXMuX3Blcm1pc3Npb25zID0gdmFsdWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfcGVybWlzc2lvbnM6IENvbnRleHRQZXJtaXNzaW9uc0xpc3Q7XG5cbiAgZ2V0IHByb2ZpbHMoKTogQ29udGV4dFByb2ZpbHNbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb2ZpbHM7XG4gIH1cbiAgc2V0IHByb2ZpbHModmFsdWU6IENvbnRleHRQcm9maWxzW10pIHtcbiAgICB0aGlzLl9wcm9maWxzID0gdmFsdWU7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbiAgcHJpdmF0ZSBfcHJvZmlsczogQ29udGV4dFByb2ZpbHNbXSA9IFtdO1xuXG4gIGdldCBjYW5Xcml0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0LnBlcm1pc3Npb24gPT09IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcbiAgfVxuXG4gIHByaXZhdGUgYmFzZVVybFByb2ZpbHM7XG5cbiAgcHVibGljIGZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBmb3JtVmFsdWVDaGFuZ2VzJCQ6IFN1YnNjcmlwdGlvbjtcblxuICBAT3V0cHV0KCkgYWRkUGVybWlzc2lvbjogRXZlbnRFbWl0dGVyPENvbnRleHRQZXJtaXNzaW9uPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHJlbW92ZVBlcm1pc3Npb246IEV2ZW50RW1pdHRlcjxDb250ZXh0UGVybWlzc2lvbj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNjb3BlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPENvbnRleHQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHVibGljIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5idWlsZEZvcm0oKTtcblxuICAgIHRoaXMuYmFzZVVybFByb2ZpbHMgPVxuICAgICAgdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdjb250ZXh0LnVybCcpICsgJy9wcm9maWxzLXVzZXJzPyc7XG5cbiAgICB0aGlzLmZvcm1WYWx1ZUNoYW5nZXMkJCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcbiAgICAgICh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgICAuZ2V0KHRoaXMuYmFzZVVybFByb2ZpbHMgKyAncT0nICsgdmFsdWUpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChwcm9maWxzKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucHJvZmlscyA9IHByb2ZpbHMgYXMgQ29udGV4dFByb2ZpbHNbXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMucHJvZmlscy5maWx0ZXIoKHByb2ZpbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyTm9ybWFsaXplZCA9IHZhbHVlXG4gICAgICAgICAgICAgIC50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgIC5ub3JtYWxpemUoJ05GRCcpXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9bXFx1MDMwMC1cXHUwMzZmXS9nLCAnJyk7XG4gICAgICAgICAgICBjb25zdCBwcm9maWxUaXRsZU5vcm1hbGl6ZWQgPSBwcm9maWwudGl0bGVcbiAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHByb2ZpbE5hbWVOb3JtYWxpemVkID0gcHJvZmlsLm5hbWVcbiAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKTtcbiAgICAgICAgICAgIGNvbnN0IHByb2ZpbE5vcm1hbGl6ZWQgPVxuICAgICAgICAgICAgICBwcm9maWxOYW1lTm9ybWFsaXplZCArIHByb2ZpbFRpdGxlTm9ybWFsaXplZDtcbiAgICAgICAgICAgIHJldHVybiBwcm9maWxOb3JtYWxpemVkLmluY2x1ZGVzKGZpbHRlck5vcm1hbGl6ZWQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMucHJvZmlscyA9IFtdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIGRpc3BsYXlGbihwcm9maWw/OiBDb250ZXh0UHJvZmlscyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHByb2ZpbCA/IHByb2ZpbC50aXRsZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVGb3JtU3VibWl0KHZhbHVlKSB7XG4gICAgdGhpcy5hZGRQZXJtaXNzaW9uLmVtaXQodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBwcm9maWw6IFtdLFxuICAgICAgdHlwZVBlcm1pc3Npb246IFsncmVhZCddXG4gICAgfSk7XG4gIH1cblxuICBvblByb2ZpbFNlbGVjdGVkKHZhbHVlKSB7XG4gICAgdGhpcy5mb3JtLnNldFZhbHVlKHtcbiAgICAgIHByb2ZpbDogdmFsdWUubmFtZSxcbiAgICAgIHR5cGVQZXJtaXNzaW9uOiB0aGlzLmZvcm0udmFsdWUudHlwZVBlcm1pc3Npb25cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImNvbnRleHRcIj5cbiAgPGRpdiAqbmdJZj1cIiFjYW5Xcml0ZVwiIGNsYXNzPVwic2NvcGVGb3JtXCI+XG4gICAgPGg0Pnt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnJlYWRPbmx5VGl0bGUnIHwgdHJhbnNsYXRlIH19PC9oND5cbiAgICA8cD57eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5yZWFkT25seU1zZycgfCB0cmFuc2xhdGUgfX08L3A+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJjYW5Xcml0ZVwiIGNsYXNzPVwic2NvcGVGb3JtXCI+XG4gICAgPG1hdC1yYWRpby1ncm91cFxuICAgICAgWyhuZ01vZGVsKV09XCJjb250ZXh0LnNjb3BlXCJcbiAgICAgIChjaGFuZ2UpPVwic2NvcGVDaGFuZ2VkLmVtaXQoY29udGV4dClcIlxuICAgID5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwicHJpdmF0ZVwiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5zY29wZS5wcml2YXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJwcm90ZWN0ZWRcIj5cbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uc2NvcGUuc2hhcmVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gKm5nSWY9XCJhdXRoU2VydmljZS5pc0FkbWluXCIgdmFsdWU9XCJwdWJsaWNcIj5cbiAgICAgICAge3sgJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uc2NvcGUucHVibGljJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICA8L2Rpdj5cblxuICA8Zm9ybVxuICAgICpuZ0lmPVwiY29udGV4dC5zY29wZSAhPT0gJ3ByaXZhdGUnICYmIGNhbldyaXRlXCJcbiAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgIChuZ1N1Ym1pdCk9XCJoYW5kbGVGb3JtU3VibWl0KGZvcm0udmFsdWUpXCJcbiAgPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICByZXF1aXJlZFxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24udXNlcicgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIlxuICAgICAgLz5cbiAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXG4gICAgICAgICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCJcbiAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cIm9uUHJvZmlsU2VsZWN0ZWQoJGV2ZW50Lm9wdGlvbi52YWx1ZSlcIlxuICAgICAgICBbZGlzcGxheVdpdGhdPVwiZGlzcGxheUZuXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHByb2ZpbCBvZiB0aGlzLnByb2ZpbHNcIiBbdmFsdWVdPVwicHJvZmlsXCI+XG4gICAgICAgICAge3sgcHJvZmlsLnRpdGxlIH19PGJyIC8+XG4gICAgICAgICAgPHNtYWxsIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj57eyBwcm9maWwubmFtZSB9fTwvc21hbGw+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIDxtYXQtZXJyb3I+XG4gICAgICAgIHt7ICdpZ28uY29udGV4dC5wZXJtaXNzaW9uLnByb2ZpbFJlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVBlcm1pc3Npb25cIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwicmVhZFwiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5yZWFkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJ3cml0ZVwiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi53cml0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICA8L21hdC1yYWRpby1ncm91cD5cblxuICAgIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiPlxuICAgICAgICB7eyAnaWdvLmNvbnRleHQucGVybWlzc2lvbi5hZGRCdG4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuXG4gIDxpZ28tbGlzdCAqbmdJZj1cInBlcm1pc3Npb25zICYmIGNvbnRleHQuc2NvcGUgIT09ICdwcml2YXRlJ1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBsZXQtZ3JvdXBQZXJtaXNzaW9ucyBbbmdGb3JPZl09XCJwZXJtaXNzaW9ucyB8IGtleXZhbHVlXCI+XG4gICAgICA8aWdvLWNvbGxhcHNpYmxlXG4gICAgICAgICpuZ0lmPVwiZ3JvdXBQZXJtaXNzaW9ucy52YWx1ZS5sZW5ndGhcIlxuICAgICAgICBbdGl0bGVdPVwiJ2lnby5jb250ZXh0LnBlcm1pc3Npb24uJyArIGdyb3VwUGVybWlzc2lvbnMua2V5IHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIGxldC1wZXJtaXNzaW9uIFtuZ0Zvck9mXT1cImdyb3VwUGVybWlzc2lvbnMudmFsdWVcIj5cbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbT5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SXRlbUljb24gc3ZnSWNvbj1cImFjY291bnQtb3V0bGluZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICA8aDQgbWF0TGlzdEl0ZW1UaXRsZT5cbiAgICAgICAgICAgICAge3sgcGVybWlzc2lvbi5wcm9maWxUaXRsZSB9fVxuICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPnt7IHBlcm1pc3Npb24ucHJvZmlsIH19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvaDQ+XG5cbiAgICAgICAgICAgIDxkaXYgaWdvU3RvcFByb3BhZ2F0aW9uIGNsYXNzPVwiaWdvLWFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgY2FuV3JpdGUgfHxcbiAgICAgICAgICAgICAgICAgIHBlcm1pc3Npb24ucHJvZmlsID09PSBhdXRoU2VydmljZS5kZWNvZGVUb2tlbigpLnVzZXIuc291cmNlSWRcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidpZ28uY29udGV4dC5wZXJtaXNzaW9uLmRlbGV0ZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBTaG93RGVsYXk9XCI1MDBcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVBlcm1pc3Npb24uZW1pdChwZXJtaXNzaW9uKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImRlbGV0ZVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9pZ28tY29sbGFwc2libGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9pZ28tbGlzdD5cbjwvZGl2PlxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './context-permissions.component';
|
|
2
|
-
export * from './context-permissions-binding.directive';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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,
|
|
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,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9jb250ZXh0LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVzc2FnZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgVG9vbCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XG5pbXBvcnQge1xuICBNYXBWaWV3T3B0aW9ucyxcbiAgTGF5ZXJPcHRpb25zLFxuICBNYXBTY2FsZUxpbmVPcHRpb25zLFxuICBNYXBBdHRyaWJ1dGlvbk9wdGlvbnMsXG4gIE1hcEV4dGVudFxufSBmcm9tICdAaWdvMi9nZW8nO1xuXG5pbXBvcnQgeyBUeXBlUGVybWlzc2lvbiB9IGZyb20gJy4vY29udGV4dC5lbnVtJztcbmltcG9ydCB7IEZlYXR1cmVDb2xsZWN0aW9uIH0gZnJvbSAnZ2VvanNvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dCB7XG4gIGlkPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdXJpPzogc3RyaW5nO1xuICBzY29wZT86IHN0cmluZzsgLy8gU2NvcGU6ICdwdWJsaWMnIHwgJ3Byb3RlY3RlZCcgfCAncHJpdmF0ZSc7XG4gIHBlcm1pc3Npb24/OiBzdHJpbmc7IC8vIFR5cGVQZXJtaXNzaW9uOiAncmVhZCcgfCAnd3JpdGUnXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBpY29uSW1hZ2U/OiBzdHJpbmc7XG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIGltcG9ydGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0c0xpc3Qge1xuICBvdXJzOiBDb250ZXh0W107XG4gIHNoYXJlZD86IENvbnRleHRbXTtcbiAgcHVibGljPzogQ29udGV4dFtdO1xufVxuXG5leHBvcnQgdHlwZSBFeHRyYUZlYXR1cmVzID0gRmVhdHVyZUNvbGxlY3Rpb24gJiB7XG4gIG5hbWU6IHN0cmluZztcbiAgb3BhY2l0eTogbnVtYmVyO1xuICB2aXNpYmxlOiBib29sZWFuO1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgRGV0YWlsZWRDb250ZXh0IGV4dGVuZHMgQ29udGV4dCB7XG4gIGJhc2U/OiBzdHJpbmc7XG4gIG1hcD86IENvbnRleHRNYXA7XG4gIGxheWVycz86IExheWVyT3B0aW9uc1tdO1xuICB0b29scz86IFRvb2xbXTtcbiAgdG9vbGJhcj86IHN0cmluZ1tdO1xuICBtZXNzYWdlPzogTWVzc2FnZTtcbiAgbWVzc2FnZXM/OiBNZXNzYWdlW107XG4gIHJlbW92ZUxheWVyc09uQ29udGV4dENoYW5nZT86IGJvb2xlYW47XG4gIGV4dHJhRmVhdHVyZXM/OiBFeHRyYUZlYXR1cmVzW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dE1hcFZpZXcgZXh0ZW5kcyBNYXBWaWV3T3B0aW9ucyB7XG4gIGtlZXBDdXJyZW50Vmlldz86IGJvb2xlYW47XG4gIGhvbWVFeHRlbnQ/OiBDb250ZXh0SG9tZUV4dGVudDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0SG9tZUV4dGVudCB7XG4gIGV4dGVudD86IE1hcEV4dGVudDtcbiAgY2VudGVyPzogW251bWJlciwgbnVtYmVyXTtcbiAgem9vbT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0TWFwIHtcbiAgdmlldzogQ29udGV4dE1hcFZpZXc7XG4gIGNvbnRyb2xzPzoge1xuICAgIHNjYWxlTGluZT86IGJvb2xlYW4gfCBNYXBTY2FsZUxpbmVPcHRpb25zO1xuICAgIGF0dHJpYnV0aW9uPzogYm9vbGVhbiB8IE1hcEF0dHJpYnV0aW9uT3B0aW9ucztcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZXh0U2VydmljZU9wdGlvbnMge1xuICB1cmw/OiBzdHJpbmc7XG4gIGJhc2VQYXRoPzogc3RyaW5nO1xuICBjb250ZXh0TGlzdEZpbGU/OiBzdHJpbmc7XG4gIGRlZmF1bHRDb250ZXh0VXJpPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRQZXJtaXNzaW9uIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIGNvbnRleHRJZD86IHN0cmluZztcbiAgcHJvZmlsOiBzdHJpbmc7XG4gIHByb2ZpbFRpdGxlPzogc3RyaW5nO1xuICB0eXBlUGVybWlzc2lvbjogVHlwZVBlcm1pc3Npb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFBlcm1pc3Npb25zTGlzdCB7XG4gIHJlYWQ6IENvbnRleHRQZXJtaXNzaW9uW107XG4gIHdyaXRlOiBDb250ZXh0UGVybWlzc2lvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRVc2VyUGVybWlzc2lvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGV4dFByb2ZpbHMge1xuICBuYW1lOiBzdHJpbmc7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGNoaWxkcz86IENvbnRleHRQcm9maWxzW107XG59XG4iXX0=
|