@valtimo/access-control-management 12.14.1 → 13.0.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.
- package/fesm2022/valtimo-access-control-management.mjs +57 -60
- package/fesm2022/valtimo-access-control-management.mjs.map +1 -1
- package/lib/access-control-management.module.d.ts +1 -1
- package/lib/components/editor/access-control-editor.component.d.ts +3 -3
- package/lib/services/access-control.service.d.ts +1 -1
- package/package.json +4 -6
- package/esm2022/lib/access-control-management-routing.module.mjs +0 -55
- package/esm2022/lib/access-control-management.module.mjs +0 -101
- package/esm2022/lib/components/delete-role-modal/delete-role-modal.component.mjs +0 -39
- package/esm2022/lib/components/editor/access-control-editor.component.mjs +0 -186
- package/esm2022/lib/components/export-role-modal/export-role-modal.component.mjs +0 -78
- package/esm2022/lib/components/overview/access-control-overview.component.mjs +0 -117
- package/esm2022/lib/components/role-metadata-modal/role-metadata-modal.component.mjs +0 -78
- package/esm2022/lib/models/index.mjs +0 -17
- package/esm2022/lib/models/role.model.mjs +0 -17
- package/esm2022/lib/services/access-control-export.service.mjs +0 -53
- package/esm2022/lib/services/access-control.service.mjs +0 -72
- package/esm2022/lib/services/index.mjs +0 -17
- package/esm2022/public-api.mjs +0 -22
- package/esm2022/valtimo-access-control-management.mjs +0 -5
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { ChangeDetectionStrategy, Component, ViewChild } from '@angular/core';
|
|
17
|
-
import { CARBON_CONSTANTS, CarbonListComponent, ViewType } from '@valtimo/components';
|
|
18
|
-
import { BehaviorSubject, delay, finalize, Subject, tap } from 'rxjs';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "../../services/access-control.service";
|
|
21
|
-
import * as i2 from "../../services/access-control-export.service";
|
|
22
|
-
import * as i3 from "@angular/router";
|
|
23
|
-
import * as i4 from "@angular/common";
|
|
24
|
-
import * as i5 from "carbon-components-angular";
|
|
25
|
-
import * as i6 from "@valtimo/components";
|
|
26
|
-
import * as i7 from "../role-metadata-modal/role-metadata-modal.component";
|
|
27
|
-
import * as i8 from "../delete-role-modal/delete-role-modal.component";
|
|
28
|
-
import * as i9 from "../export-role-modal/export-role-modal.component";
|
|
29
|
-
import * as i10 from "@ngx-translate/core";
|
|
30
|
-
export class AccessControlOverviewComponent {
|
|
31
|
-
constructor(accessControlService, accessControlExportService, router) {
|
|
32
|
-
this.accessControlService = accessControlService;
|
|
33
|
-
this.accessControlExportService = accessControlExportService;
|
|
34
|
-
this.router = router;
|
|
35
|
-
this.fields = [
|
|
36
|
-
{
|
|
37
|
-
viewType: ViewType.TEXT,
|
|
38
|
-
key: 'roleKey',
|
|
39
|
-
label: 'accessControl.roles.key',
|
|
40
|
-
},
|
|
41
|
-
];
|
|
42
|
-
this.roles$ = this.accessControlService.roles$;
|
|
43
|
-
this.loading$ = this.accessControlService.loading$;
|
|
44
|
-
this.skeleton$ = new BehaviorSubject(false);
|
|
45
|
-
this.showAddModal$ = new BehaviorSubject(false);
|
|
46
|
-
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
47
|
-
this.showExportModal$ = new BehaviorSubject(false);
|
|
48
|
-
this.selectedRowKeys$ = new BehaviorSubject([]);
|
|
49
|
-
this.resetExportType$ = new Subject();
|
|
50
|
-
this.exportDisabled$ = new BehaviorSubject(false);
|
|
51
|
-
}
|
|
52
|
-
ngOnInit() {
|
|
53
|
-
this.accessControlService.loadRoles();
|
|
54
|
-
}
|
|
55
|
-
openAddModal() {
|
|
56
|
-
this.showAddModal$.next(true);
|
|
57
|
-
}
|
|
58
|
-
onAdd(data) {
|
|
59
|
-
this.showAddModal$.next(false);
|
|
60
|
-
if (!data) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
this.accessControlService.dispatchAction(this.accessControlService.addRole(data).pipe(finalize(() => {
|
|
64
|
-
this.showAddModal$.next(false);
|
|
65
|
-
})));
|
|
66
|
-
}
|
|
67
|
-
showDeleteModal() {
|
|
68
|
-
this.setSelectedRoleKeys();
|
|
69
|
-
this.showDeleteModal$.next(true);
|
|
70
|
-
}
|
|
71
|
-
showExportModal() {
|
|
72
|
-
this.setSelectedRoleKeys();
|
|
73
|
-
this.showExportModal$.next(true);
|
|
74
|
-
}
|
|
75
|
-
closeExportModal() {
|
|
76
|
-
this.showExportModal$.next(false);
|
|
77
|
-
}
|
|
78
|
-
onDelete(roles) {
|
|
79
|
-
this.enableSkeleton();
|
|
80
|
-
this.accessControlService.dispatchAction(this.accessControlService.deleteRoles({ roles }).pipe(finalize(() => {
|
|
81
|
-
this.disableSkeleton();
|
|
82
|
-
})));
|
|
83
|
-
}
|
|
84
|
-
onExport(event) {
|
|
85
|
-
this.exportDisabled$.next(true);
|
|
86
|
-
this.accessControlExportService
|
|
87
|
-
.exportRoles(event)
|
|
88
|
-
.pipe(tap(() => {
|
|
89
|
-
this.resetExportType$.next(null);
|
|
90
|
-
}), delay(CARBON_CONSTANTS.modalAnimationMs), tap(() => {
|
|
91
|
-
this.exportDisabled$.next(false);
|
|
92
|
-
}))
|
|
93
|
-
.subscribe();
|
|
94
|
-
}
|
|
95
|
-
onRowClick(role) {
|
|
96
|
-
this.router.navigate([`/access-control/${role.roleKey}`]);
|
|
97
|
-
}
|
|
98
|
-
enableSkeleton() {
|
|
99
|
-
this.skeleton$.next(true);
|
|
100
|
-
}
|
|
101
|
-
disableSkeleton() {
|
|
102
|
-
this.skeleton$.next(false);
|
|
103
|
-
}
|
|
104
|
-
setSelectedRoleKeys() {
|
|
105
|
-
this.selectedRowKeys$.next(this.carbonList.selectedItems.map((role) => role.roleKey));
|
|
106
|
-
}
|
|
107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlOverviewComponent, deps: [{ token: i1.AccessControlService }, { token: i2.AccessControlExportService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
108
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccessControlOverviewComponent, selector: "ng-component", viewQueries: [{ propertyName: "carbonList", first: true, predicate: CarbonListComponent, descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"roles$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"true\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'accessControl.roles.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addRoleButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n\n <button cdsButton=\"primary\" (click)=\"showExportModal()\">\n {{ 'interface.export' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addRoleButton\"\n description=\"{{ 'accessControl.roles.noResults.description' | translate }}\"\n title=\"{{ 'accessControl.roles.noResults.title' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-role-metadata-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-role-metadata-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-delete-role-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-delete-role-modal>\n\n <valtimo-export-role-modal\n [disabled]=\"exportDisabled$ | async\"\n [exportRowKeys]=\"obs.selectedRowKeys\"\n [open]=\"showExportModal$ | async\"\n [reset$]=\"resetExportType$\"\n (exportEvent)=\"onExport($event)\"\n (closeEvent)=\"closeExportModal()\"\n >\n </valtimo-export-role-modal>\n</ng-container>\n\n<ng-template #addRoleButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'accessControl.roles.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i6.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i6.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "component", type: i7.RoleMetadataModalComponent, selector: "valtimo-role-metadata-modal", inputs: ["open", "type", "defaultKeyValue"], outputs: ["closeEvent"] }, { kind: "component", type: i8.DeleteRoleModalComponent, selector: "valtimo-delete-role-modal", inputs: ["deleteRowKeys", "showDeleteModal$"], outputs: ["deleteEvent"] }, { kind: "component", type: i9.ExportRoleModalComponent, selector: "valtimo-export-role-modal", inputs: ["open", "exportRowKeys", "reset$", "disabled"], outputs: ["exportEvent", "closeEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
109
|
-
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlOverviewComponent, decorators: [{
|
|
111
|
-
type: Component,
|
|
112
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-carbon-list\n [header]=\"false\"\n [items]=\"roles$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"true\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'accessControl.roles.title' | translate }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addRoleButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n\n <button cdsButton=\"primary\" (click)=\"showExportModal()\">\n {{ 'interface.export' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"download\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addRoleButton\"\n description=\"{{ 'accessControl.roles.noResults.description' | translate }}\"\n title=\"{{ 'accessControl.roles.noResults.title' | translate }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-role-metadata-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-role-metadata-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-delete-role-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-delete-role-modal>\n\n <valtimo-export-role-modal\n [disabled]=\"exportDisabled$ | async\"\n [exportRowKeys]=\"obs.selectedRowKeys\"\n [open]=\"showExportModal$ | async\"\n [reset$]=\"resetExportType$\"\n (exportEvent)=\"onExport($event)\"\n (closeEvent)=\"closeExportModal()\"\n >\n </valtimo-export-role-modal>\n</ng-container>\n\n<ng-template #addRoleButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'accessControl.roles.add' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n" }]
|
|
113
|
-
}], ctorParameters: () => [{ type: i1.AccessControlService }, { type: i2.AccessControlExportService }, { type: i3.Router }], propDecorators: { carbonList: [{
|
|
114
|
-
type: ViewChild,
|
|
115
|
-
args: [CarbonListComponent]
|
|
116
|
-
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtb3ZlcnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9vdmVydmlldy9hY2Nlc3MtY29udHJvbC1vdmVydmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL292ZXJ2aWV3L2FjY2Vzcy1jb250cm9sLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFcEYsT0FBTyxFQUFDLGdCQUFnQixFQUFFLG1CQUFtQixFQUFnQixRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQWMsT0FBTyxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0FBU2hGLE1BQU0sT0FBTyw4QkFBOEI7SUFxQnpDLFlBQ21CLG9CQUEwQyxFQUMxQywwQkFBc0QsRUFDdEQsTUFBYztRQUZkLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQUN0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBckIxQixXQUFNLEdBQW1CO1lBQzlCO2dCQUNFLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSTtnQkFDdkIsR0FBRyxFQUFFLFNBQVM7Z0JBQ2QsS0FBSyxFQUFFLHlCQUF5QjthQUNqQztTQUNGLENBQUM7UUFFYyxXQUFNLEdBQXVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUM7UUFDOUQsYUFBUSxHQUF3QixJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDO1FBQ25FLGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNoRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFnQixFQUFFLENBQUMsQ0FBQztRQUMxRCxxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3ZDLG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFNbkUsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFpQjtRQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUMxQyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxDQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLEVBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQ2pELFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUF1QjtRQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsMEJBQTBCO2FBQzVCLFdBQVcsQ0FBQyxLQUFLLENBQUM7YUFDbEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUN4QyxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVU7UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDOytHQTVHVSw4QkFBOEI7bUdBQTlCLDhCQUE4QixnR0FDOUIsbUJBQW1CLGdEQzVCaEMsZ3VGQWtGQTs7NEZEdkRhLDhCQUE4QjtrQkFKMUMsU0FBUztzQ0FFUyx1QkFBdUIsQ0FBQyxNQUFNO3VKQUdmLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NBUkJPTl9DT05TVEFOVFMsIENhcmJvbkxpc3RDb21wb25lbnQsIENvbHVtbkNvbmZpZywgVmlld1R5cGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlbGF5LCBmaW5hbGl6ZSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7RXhwb3J0Um9sZU91dHB1dCwgUm9sZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbEV4cG9ydFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjY2Vzcy1jb250cm9sLWV4cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY2Vzcy1jb250cm9sLW92ZXJ2aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xPdmVydmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBWaWV3Q2hpbGQoQ2FyYm9uTGlzdENvbXBvbmVudCkgY2FyYm9uTGlzdDogQ2FyYm9uTGlzdENvbXBvbmVudDtcblxuICBwdWJsaWMgZmllbGRzOiBDb2x1bW5Db25maWdbXSA9IFtcbiAgICB7XG4gICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICAgIGtleTogJ3JvbGVLZXknLFxuICAgICAgbGFiZWw6ICdhY2Nlc3NDb250cm9sLnJvbGVzLmtleScsXG4gICAgfSxcbiAgXTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcm9sZXMkOiBPYnNlcnZhYmxlPFJvbGVbXT4gPSB0aGlzLmFjY2Vzc0NvbnRyb2xTZXJ2aWNlLnJvbGVzJDtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5sb2FkaW5nJDtcbiAgcHVibGljIHJlYWRvbmx5IHNrZWxldG9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0FkZE1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2hvd0V4cG9ydE1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRSb3dLZXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8c3RyaW5nPj4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzZXRFeHBvcnRUeXBlJCA9IG5ldyBTdWJqZWN0PG51bGw+KCk7XG4gIHB1YmxpYyByZWFkb25seSBleHBvcnREaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xTZXJ2aWNlOiBBY2Nlc3NDb250cm9sU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xFeHBvcnRTZXJ2aWNlOiBBY2Nlc3NDb250cm9sRXhwb3J0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5sb2FkUm9sZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQWRkTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93QWRkTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25BZGQoZGF0YTogUm9sZSB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dBZGRNb2RhbCQubmV4dChmYWxzZSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xTZXJ2aWNlLmRpc3BhdGNoQWN0aW9uKFxuICAgICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5hZGRSb2xlKGRhdGEpLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnNob3dBZGRNb2RhbCQubmV4dChmYWxzZSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RGVsZXRlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRTZWxlY3RlZFJvbGVLZXlzKCk7XG4gICAgdGhpcy5zaG93RGVsZXRlTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0V4cG9ydE1vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0U2VsZWN0ZWRSb2xlS2V5cygpO1xuICAgIHRoaXMuc2hvd0V4cG9ydE1vZGFsJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlRXhwb3J0TW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RXhwb3J0TW9kYWwkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlKHJvbGVzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5lbmFibGVTa2VsZXRvbigpO1xuXG4gICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5kaXNwYXRjaEFjdGlvbihcbiAgICAgIHRoaXMuYWNjZXNzQ29udHJvbFNlcnZpY2UuZGVsZXRlUm9sZXMoe3JvbGVzfSkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzYWJsZVNrZWxldG9uKCk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkV4cG9ydChldmVudDogRXhwb3J0Um9sZU91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuZXhwb3J0RGlzYWJsZWQkLm5leHQodHJ1ZSk7XG5cbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xFeHBvcnRTZXJ2aWNlXG4gICAgICAuZXhwb3J0Um9sZXMoZXZlbnQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0RXhwb3J0VHlwZSQubmV4dChudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIGRlbGF5KENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25NcyksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5leHBvcnREaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Sb3dDbGljayhyb2xlOiBSb2xlKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvYWNjZXNzLWNvbnRyb2wvJHtyb2xlLnJvbGVLZXl9YF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVTa2VsZXRvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNrZWxldG9uJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlU2tlbGV0b24oKTogdm9pZCB7XG4gICAgdGhpcy5za2VsZXRvbiQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFNlbGVjdGVkUm9sZUtleXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFJvd0tleXMkLm5leHQodGhpcy5jYXJib25MaXN0LnNlbGVjdGVkSXRlbXMubWFwKChyb2xlOiBSb2xlKSA9PiByb2xlLnJvbGVLZXkpKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1jYXJib24tbGlzdFxuICBbaGVhZGVyXT1cImZhbHNlXCJcbiAgW2l0ZW1zXT1cInJvbGVzJCB8IGFzeW5jXCJcbiAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICBbbG9hZGluZ109XCJsb2FkaW5nJCB8IGFzeW5jXCJcbiAgW3Nob3dTZWxlY3Rpb25Db2x1bW5dPVwidHJ1ZVwiXG4gIChyb3dDbGlja2VkKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyPiB7eyAnYWNjZXNzQ29udHJvbC5yb2xlcy50aXRsZScgfCB0cmFuc2xhdGUgfX0gPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjYXJib25Ub29sYmFyQ29udGVudD5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFkZFJvbGVCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciBjYXJib25Ub29sYmFyQWN0aW9ucz5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiAoY2xpY2spPVwic2hvd0RlbGV0ZU1vZGFsKClcIj5cbiAgICAgIHt7ICdpbnRlcmZhY2UuZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwidHJhc2gtY2FuXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiAoY2xpY2spPVwic2hvd0V4cG9ydE1vZGFsKClcIj5cbiAgICAgIHt7ICdpbnRlcmZhY2UuZXhwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiZG93bmxvYWRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgIFthY3Rpb25dPVwiYWRkUm9sZUJ1dHRvblwiXG4gICAgZGVzY3JpcHRpb249XCJ7eyAnYWNjZXNzQ29udHJvbC5yb2xlcy5ub1Jlc3VsdHMuZGVzY3JpcHRpb24nIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0aXRsZT1cInt7ICdhY2Nlc3NDb250cm9sLnJvbGVzLm5vUmVzdWx0cy50aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxuICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG48L3ZhbHRpbW8tY2FyYm9uLWxpc3Q+XG5cbjx2YWx0aW1vLXJvbGUtbWV0YWRhdGEtbW9kYWxcbiAgW29wZW5dPVwic2hvd0FkZE1vZGFsJCB8IGFzeW5jXCJcbiAgKGNsb3NlRXZlbnQpPVwib25BZGQoJGV2ZW50KVwiXG4+PC92YWx0aW1vLXJvbGUtbWV0YWRhdGEtbW9kYWw+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ7c2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICA8dmFsdGltby1kZWxldGUtcm9sZS1tb2RhbFxuICAgIFtkZWxldGVSb3dLZXlzXT1cIm9icy5zZWxlY3RlZFJvd0tleXNcIlxuICAgIFtzaG93RGVsZXRlTW9kYWwkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICAgIChkZWxldGVFdmVudCk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICA8L3ZhbHRpbW8tZGVsZXRlLXJvbGUtbW9kYWw+XG5cbiAgPHZhbHRpbW8tZXhwb3J0LXJvbGUtbW9kYWxcbiAgICBbZGlzYWJsZWRdPVwiZXhwb3J0RGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgIFtleHBvcnRSb3dLZXlzXT1cIm9icy5zZWxlY3RlZFJvd0tleXNcIlxuICAgIFtvcGVuXT1cInNob3dFeHBvcnRNb2RhbCQgfCBhc3luY1wiXG4gICAgW3Jlc2V0JF09XCJyZXNldEV4cG9ydFR5cGUkXCJcbiAgICAoZXhwb3J0RXZlbnQpPVwib25FeHBvcnQoJGV2ZW50KVwiXG4gICAgKGNsb3NlRXZlbnQpPVwiY2xvc2VFeHBvcnRNb2RhbCgpXCJcbiAgPlxuICA8L3ZhbHRpbW8tZXhwb3J0LXJvbGUtbW9kYWw+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNhZGRSb2xlQnV0dG9uPlxuICA8YnV0dG9uIGNkc0J1dHRvbj1cInByaW1hcnlcIiAoY2xpY2spPVwib3BlbkFkZE1vZGFsKClcIj5cbiAgICB7eyAnYWNjZXNzQ29udHJvbC5yb2xlcy5hZGQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwiYWRkXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
17
|
-
import { Validators } from '@angular/forms';
|
|
18
|
-
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/forms";
|
|
21
|
-
import * as i2 from "@angular/common";
|
|
22
|
-
import * as i3 from "carbon-components-angular";
|
|
23
|
-
import * as i4 from "@ngx-translate/core";
|
|
24
|
-
export class RoleMetadataModalComponent {
|
|
25
|
-
set defaultKeyValue(value) {
|
|
26
|
-
this._defaultKeyValue = value;
|
|
27
|
-
this.setDefaultKeyValue(value);
|
|
28
|
-
}
|
|
29
|
-
get key() {
|
|
30
|
-
return this.form?.get('key');
|
|
31
|
-
}
|
|
32
|
-
constructor(fb) {
|
|
33
|
-
this.fb = fb;
|
|
34
|
-
this.open = false;
|
|
35
|
-
this.type = 'add';
|
|
36
|
-
this.closeEvent = new EventEmitter();
|
|
37
|
-
this.form = this.fb.group({
|
|
38
|
-
key: this.fb.control('', Validators.required),
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
onCancel() {
|
|
42
|
-
this.closeEvent.emit(null);
|
|
43
|
-
this.resetForm();
|
|
44
|
-
}
|
|
45
|
-
onConfirm() {
|
|
46
|
-
if (!this.key) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
this.closeEvent.emit({ roleKey: this.key.value });
|
|
50
|
-
this.resetForm();
|
|
51
|
-
}
|
|
52
|
-
setDefaultKeyValue(value) {
|
|
53
|
-
this.key.setValue(value);
|
|
54
|
-
}
|
|
55
|
-
resetForm() {
|
|
56
|
-
setTimeout(() => {
|
|
57
|
-
this.form.reset();
|
|
58
|
-
if (this.type === 'edit') {
|
|
59
|
-
this.setDefaultKeyValue(this._defaultKeyValue);
|
|
60
|
-
}
|
|
61
|
-
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
62
|
-
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RoleMetadataModalComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: RoleMetadataModalComponent, selector: "valtimo-role-metadata-modal", inputs: { open: "open", type: "type", defaultKeyValue: "defaultKeyValue" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add',\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? ('accessControl.roles.add' | translate)\n : ('accessControl.roles.editRole' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'accessControl.roles.name' | translate }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'accessControl.roles.name' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i3.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i3.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i3.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i3.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i3.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i3.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
65
|
-
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RoleMetadataModalComponent, decorators: [{
|
|
67
|
-
type: Component,
|
|
68
|
-
args: [{ selector: 'valtimo-role-metadata-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add',\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? ('accessControl.roles.add' | translate)\n : ('accessControl.roles.editRole' | translate)\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'accessControl.roles.name' | translate }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'accessControl.roles.name' | translate }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n" }]
|
|
69
|
-
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { open: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], type: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], defaultKeyValue: [{
|
|
74
|
-
type: Input
|
|
75
|
-
}], closeEvent: [{
|
|
76
|
-
type: Output
|
|
77
|
-
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1tZXRhZGF0YS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3JvbGUtbWV0YWRhdGEtbW9kYWwvcm9sZS1tZXRhZGF0YS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL3JvbGUtbWV0YWRhdGEtbW9kYWwvcm9sZS1tZXRhZGF0YS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFjLFVBQVUsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFPckQsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxJQUFhLGVBQWUsQ0FBQyxLQUFhO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFTRCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUE2QixFQUFlO1FBQWYsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQWxCbkMsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLFNBQUksR0FBc0IsS0FBSyxDQUFDO1FBSy9CLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRWhELFNBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBUTRDLENBQUM7SUFFekMsUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFNBQVM7UUFDZixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEMsQ0FBQzsrR0E5Q1UsMEJBQTBCO21HQUExQiwwQkFBMEIsc0xDMUJ2Qyw4NkRBNkRBOzs0RkRuQ2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLDZCQUE2QixtQkFFdEIsdUJBQXVCLENBQUMsTUFBTTtnRkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDTyxlQUFlO3NCQUEzQixLQUFLO2dCQUlJLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBWYWxpZGF0b3JzfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvbGUsIFJvbGVNZXRhZGF0YU1vZGFsfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtDQVJCT05fQ09OU1RBTlRTfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1yb2xlLW1ldGFkYXRhLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JvbGUtbWV0YWRhdGEtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUm9sZU1ldGFkYXRhTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHR5cGU6IFJvbGVNZXRhZGF0YU1vZGFsID0gJ2FkZCc7XG4gIEBJbnB1dCgpIHNldCBkZWZhdWx0S2V5VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2RlZmF1bHRLZXlWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0RGVmYXVsdEtleVZhbHVlKHZhbHVlKTtcbiAgfVxuICBAT3V0cHV0KCkgY2xvc2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Um9sZSB8IG51bGw+KCk7XG5cbiAgcHVibGljIGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICBrZXk6IHRoaXMuZmIuY29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gIH0pO1xuXG4gIHByaXZhdGUgX2RlZmF1bHRLZXlWYWx1ZSE6IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IGtleSgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtPy5nZXQoJ2tleScpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KG51bGwpO1xuICAgIHRoaXMucmVzZXRGb3JtKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maXJtKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdCh7cm9sZUtleTogdGhpcy5rZXkudmFsdWV9KTtcbiAgICB0aGlzLnJlc2V0Rm9ybSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREZWZhdWx0S2V5VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMua2V5LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICBpZiAodGhpcy50eXBlID09PSAnZWRpdCcpIHtcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0S2V5VmFsdWUodGhpcy5fZGVmYXVsdEtleVZhbHVlKTtcbiAgICAgIH1cbiAgICB9LCBDQVJCT05fQ09OU1RBTlRTLm1vZGFsQW5pbWF0aW9uTXMpO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxjZHMtbW9kYWxcbiAgKm5nSWY9XCJ7XG4gICAgaXNBZGQ6IHR5cGUgPT09ICdhZGQnLFxuICB9IGFzIHZhcnNcIlxuICBbb3Blbl09XCJvcGVuXCJcbiAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICBbdGl0bGVdPVwidmFycy50aXRsZVwiXG4gIHZhbHRpbW9DZHNNb2RhbFxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DYW5jZWwoKVwiPlxuICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICB7e1xuICAgICAgICB2YXJzLmlzQWRkXG4gICAgICAgICAgPyAoJ2FjY2Vzc0NvbnRyb2wucm9sZXMuYWRkJyB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgnYWNjZXNzQ29udHJvbC5yb2xlcy5lZGl0Um9sZScgfCB0cmFuc2xhdGUpXG4gICAgICB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8c2VjdGlvbiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICA8Y2RzLWxhYmVsIFtpbnZhbGlkXT1cImtleS5kaXJ0eSAmJiBrZXkuaW52YWxpZFwiPlxuICAgICAgICB7eyAnYWNjZXNzQ29udHJvbC5yb2xlcy5uYW1lJyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2FjY2Vzc0NvbnRyb2wucm9sZXMubmFtZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwia2V5LmRpcnR5ICYmIGtleS5pbnZhbGlkXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZm9ybT5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAge3sgJ2ludGVyZmFjZS5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0aGlzLmZvcm0uaW52YWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiIGNkc0J1dHRvbj1cInByaW1hcnlcIj5cbiAgICAgIHt7IHZhcnMuaXNBZGQgPyAoJ2ludGVyZmFjZS5jcmVhdGUnIHwgdHJhbnNsYXRlKSA6ICgnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlKSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './role.model';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcm9sZS5tb2RlbCc7XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vYWNjZXNzLWNvbnRyb2wtbWFuYWdlbWVudC9zcmMvbGliL21vZGVscy9yb2xlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW50ZXJmYWNlIFJvbGUge1xuICByb2xlS2V5OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBEZWxldGVSb2xlc1JlcXVlc3Qge1xuICByb2xlczogQXJyYXk8c3RyaW5nPjtcbn1cblxudHlwZSBSb2xlTWV0YWRhdGFNb2RhbCA9ICdhZGQnIHwgJ2VkaXQnO1xuXG50eXBlIFJvbGVFeHBvcnQgPSAndW5pZmllZCcgfCAnc2VwYXJhdGUnO1xuXG5pbnRlcmZhY2UgRXhwb3J0Um9sZU91dHB1dCB7XG4gIHJvbGVLZXlzOiBBcnJheTxzdHJpbmc+O1xuICB0eXBlOiBSb2xlRXhwb3J0O1xufVxuXG5leHBvcnQge1JvbGUsIERlbGV0ZVJvbGVzUmVxdWVzdCwgUm9sZU1ldGFkYXRhTW9kYWwsIFJvbGVFeHBvcnQsIEV4cG9ydFJvbGVPdXRwdXR9O1xuIl19
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
import { Injectable } from '@angular/core';
|
|
17
|
-
import { catchError, combineLatest, map, of, tap } from 'rxjs';
|
|
18
|
-
import * as i0 from "@angular/core";
|
|
19
|
-
import * as i1 from "./access-control.service";
|
|
20
|
-
export class AccessControlExportService {
|
|
21
|
-
constructor(accessControlService) {
|
|
22
|
-
this.accessControlService = accessControlService;
|
|
23
|
-
}
|
|
24
|
-
exportRoles(event) {
|
|
25
|
-
return (event.type === 'unified'
|
|
26
|
-
? this.accessControlService.exportRolePermissions(event.roleKeys).pipe(tap(res => {
|
|
27
|
-
this.downloadJson(res, event.type);
|
|
28
|
-
}))
|
|
29
|
-
: combineLatest(event.roleKeys.map((roleKey) => this.accessControlService.exportRolePermissions([roleKey]))).pipe(tap(res => {
|
|
30
|
-
res.forEach((permissions, index) => {
|
|
31
|
-
const roleKey = event.roleKeys[index];
|
|
32
|
-
this.downloadJson(permissions, event.type, roleKey);
|
|
33
|
-
});
|
|
34
|
-
}))).pipe(map(() => true), catchError(() => of(false)));
|
|
35
|
-
}
|
|
36
|
-
downloadJson(permissions, type, roleKey) {
|
|
37
|
-
const sJson = JSON.stringify({ permissions }, null, 2);
|
|
38
|
-
const element = document.createElement('a');
|
|
39
|
-
element.setAttribute('href', 'data:text/json;charset=UTF-8,' + encodeURIComponent(sJson));
|
|
40
|
-
element.setAttribute('download', `${type === 'separate' ? roleKey : 'combined'}.permission.json`);
|
|
41
|
-
element.style.display = 'none';
|
|
42
|
-
document.body.appendChild(element);
|
|
43
|
-
element.click(); // simulate click
|
|
44
|
-
document.body.removeChild(element);
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlExportService, deps: [{ token: i1.AccessControlService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
47
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlExportService, providedIn: 'root' }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlExportService, decorators: [{
|
|
50
|
-
type: Injectable,
|
|
51
|
-
args: [{ providedIn: 'root' }]
|
|
52
|
-
}], ctorParameters: () => [{ type: i1.AccessControlService }] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtZXhwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9hY2Nlc3MtY29udHJvbC1leHBvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFHekMsT0FBTyxFQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7OztBQUd6RSxNQUFNLE9BQU8sMEJBQTBCO0lBQ3JDLFlBQTZCLG9CQUEwQztRQUExQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBQUcsQ0FBQztJQUVwRSxXQUFXLENBQUMsS0FBdUI7UUFDeEMsT0FBTyxDQUNMLEtBQUssQ0FBQyxJQUFJLEtBQUssU0FBUztZQUN0QixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ2xFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDUixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQ0g7WUFDSCxDQUFDLENBQUMsYUFBYSxDQUNYLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FDckMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDM0QsQ0FDRixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FDSCxDQUNOLENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDZixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWSxDQUFDLFdBQTBCLEVBQUUsSUFBZ0IsRUFBRSxPQUFnQjtRQUNqRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUMsV0FBVyxFQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsK0JBQStCLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMxRixPQUFPLENBQUMsWUFBWSxDQUNsQixVQUFVLEVBQ1YsR0FBRyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsa0JBQWtCLENBQ2hFLENBQUM7UUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDL0IsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsaUJBQWlCO1FBQ2xDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBekNVLDBCQUEwQjttSEFBMUIsMEJBQTBCLGNBRGQsTUFBTTs7NEZBQ2xCLDBCQUEwQjtrQkFEdEMsVUFBVTttQkFBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBY2Nlc3NDb250cm9sU2VydmljZX0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7RXhwb3J0Um9sZU91dHB1dCwgUm9sZUV4cG9ydH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFwfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbEV4cG9ydFNlcnZpY2Uge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xTZXJ2aWNlOiBBY2Nlc3NDb250cm9sU2VydmljZSkge31cblxuICBwdWJsaWMgZXhwb3J0Um9sZXMoZXZlbnQ6IEV4cG9ydFJvbGVPdXRwdXQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gKFxuICAgICAgZXZlbnQudHlwZSA9PT0gJ3VuaWZpZWQnXG4gICAgICAgID8gdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5leHBvcnRSb2xlUGVybWlzc2lvbnMoZXZlbnQucm9sZUtleXMpLnBpcGUoXG4gICAgICAgICAgICB0YXAocmVzID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5kb3dubG9hZEpzb24ocmVzLCBldmVudC50eXBlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICA6IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICBldmVudC5yb2xlS2V5cy5tYXAoKHJvbGVLZXk6IHN0cmluZykgPT5cbiAgICAgICAgICAgICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5leHBvcnRSb2xlUGVybWlzc2lvbnMoW3JvbGVLZXldKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIHRhcChyZXMgPT4ge1xuICAgICAgICAgICAgICByZXMuZm9yRWFjaCgocGVybWlzc2lvbnMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9sZUtleSA9IGV2ZW50LnJvbGVLZXlzW2luZGV4XTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25sb2FkSnNvbihwZXJtaXNzaW9ucywgZXZlbnQudHlwZSwgcm9sZUtleSk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgKS5waXBlKFxuICAgICAgbWFwKCgpID0+IHRydWUpLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihmYWxzZSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZG93bmxvYWRKc29uKHBlcm1pc3Npb25zOiBBcnJheTxvYmplY3Q+LCB0eXBlOiBSb2xlRXhwb3J0LCByb2xlS2V5Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgc0pzb24gPSBKU09OLnN0cmluZ2lmeSh7cGVybWlzc2lvbnN9LCBudWxsLCAyKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdocmVmJywgJ2RhdGE6dGV4dC9qc29uO2NoYXJzZXQ9VVRGLTgsJyArIGVuY29kZVVSSUNvbXBvbmVudChzSnNvbikpO1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ2Rvd25sb2FkJyxcbiAgICAgIGAke3R5cGUgPT09ICdzZXBhcmF0ZScgPyByb2xlS2V5IDogJ2NvbWJpbmVkJ30ucGVybWlzc2lvbi5qc29uYFxuICAgICk7XG4gICAgZWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7XG4gICAgZWxlbWVudC5jbGljaygpOyAvLyBzaW11bGF0ZSBjbGlja1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, catchError, of, switchMap, take, tap } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@valtimo/config";
|
|
5
|
-
import * as i2 from "@angular/common/http";
|
|
6
|
-
export class AccessControlService {
|
|
7
|
-
get roleDtos$() {
|
|
8
|
-
return this.http.get(`${this.valtimoEndpointUri}v1/roles`);
|
|
9
|
-
}
|
|
10
|
-
constructor(configService, http) {
|
|
11
|
-
this.configService = configService;
|
|
12
|
-
this.http = http;
|
|
13
|
-
this.roles$ = new BehaviorSubject([]);
|
|
14
|
-
this.loading$ = new BehaviorSubject(false);
|
|
15
|
-
this.valtimoEndpointUri = `${this.configService.config.valtimoApi.endpointUri}management/`;
|
|
16
|
-
}
|
|
17
|
-
addRole(role) {
|
|
18
|
-
return this.http.post(`${this.valtimoEndpointUri}v1/roles`, role);
|
|
19
|
-
}
|
|
20
|
-
deleteRoles(request) {
|
|
21
|
-
return this.http.delete(`${this.valtimoEndpointUri}v1/roles`, { body: request });
|
|
22
|
-
}
|
|
23
|
-
dispatchAction(actionResult) {
|
|
24
|
-
actionResult
|
|
25
|
-
.pipe(tap(() => {
|
|
26
|
-
this.loading$.next(true);
|
|
27
|
-
}), switchMap(() => this.roleDtos$), take(1), catchError(error => of(error)))
|
|
28
|
-
.subscribe({
|
|
29
|
-
next: (roles) => {
|
|
30
|
-
this.roles$.next(roles);
|
|
31
|
-
this.loading$.next(false);
|
|
32
|
-
},
|
|
33
|
-
error: error => {
|
|
34
|
-
console.error(error);
|
|
35
|
-
},
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
loadRoles() {
|
|
39
|
-
this.roleDtos$
|
|
40
|
-
.pipe(tap(() => {
|
|
41
|
-
this.loading$.next(true);
|
|
42
|
-
}), take(1))
|
|
43
|
-
.subscribe({
|
|
44
|
-
next: (items) => {
|
|
45
|
-
this.roles$.next(items);
|
|
46
|
-
this.loading$.next(false);
|
|
47
|
-
},
|
|
48
|
-
error: error => {
|
|
49
|
-
console.error(error);
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
getRolePermissions(roleKey) {
|
|
54
|
-
return this.http.get(`${this.valtimoEndpointUri}v1/roles/${roleKey}/permissions`);
|
|
55
|
-
}
|
|
56
|
-
exportRolePermissions(roles) {
|
|
57
|
-
return this.http.post(`${this.valtimoEndpointUri}v1/permissions/search`, { roles });
|
|
58
|
-
}
|
|
59
|
-
updateRolePermissions(roleKey, updatedPermission) {
|
|
60
|
-
return this.http.put(`${this.valtimoEndpointUri}v1/roles/${roleKey}/permissions`, updatedPermission);
|
|
61
|
-
}
|
|
62
|
-
updateRole(roleKey, request) {
|
|
63
|
-
return this.http.put(`${this.valtimoEndpointUri}v1/roles/${roleKey}`, request);
|
|
64
|
-
}
|
|
65
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlService, deps: [{ token: i1.ConfigService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
66
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlService, providedIn: 'root' }); }
|
|
67
|
-
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlService, decorators: [{
|
|
69
|
-
type: Injectable,
|
|
70
|
-
args: [{ providedIn: 'root' }]
|
|
71
|
-
}], ctorParameters: () => [{ type: i1.ConfigService }, { type: i2.HttpClient }] });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vYWNjZXNzLWNvbnRyb2wtbWFuYWdlbWVudC9zcmMvbGliL3NlcnZpY2VzL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUJBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxVQUFVLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBSXZGLE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLFVBQVUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxZQUNtQixhQUE0QixFQUM1QixJQUFnQjtRQURoQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBWG5CLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUN6QyxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFZN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsYUFBYSxDQUFDO0lBQzdGLENBQUM7SUFFTSxPQUFPLENBQUMsSUFBVTtRQUN2QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUEyQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFPLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRU0sY0FBYyxDQUFDLFlBQXFDO1FBQ3pELFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQy9CLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDL0I7YUFDQSxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLENBQUM7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFNBQVM7UUFDZCxJQUFJLENBQUMsU0FBUzthQUNYLElBQUksQ0FDSCxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2FBQ0EsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM1QixDQUFDO1lBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxPQUFlO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixZQUFZLE9BQU8sY0FBYyxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVNLHFCQUFxQixDQUFDLEtBQWU7UUFDMUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsdUJBQXVCLEVBQUUsRUFBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxPQUFlLEVBQUUsaUJBQXlCO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQ2xCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixZQUFZLE9BQU8sY0FBYyxFQUMzRCxpQkFBaUIsQ0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsT0FBZSxFQUFFLE9BQWE7UUFDOUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsWUFBWSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RixDQUFDOytHQXBGVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURSLE1BQU07OzRGQUNsQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb25maWdTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb25maWcnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0RlbGV0ZVJvbGVzUmVxdWVzdCwgUm9sZX0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbFNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSb2xlW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSB2YWx0aW1vRW5kcG9pbnRVcmk6IHN0cmluZztcblxuICBwcml2YXRlIGdldCByb2xlRHRvcyQoKTogT2JzZXJ2YWJsZTxSb2xlW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxSb2xlW10+KGAke3RoaXMudmFsdGltb0VuZHBvaW50VXJpfXYxL3JvbGVzYCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHRoaXMudmFsdGltb0VuZHBvaW50VXJpID0gYCR7dGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZy52YWx0aW1vQXBpLmVuZHBvaW50VXJpfW1hbmFnZW1lbnQvYDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRSb2xlKHJvbGU6IFJvbGUpOiBPYnNlcnZhYmxlPFJvbGU+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Um9sZT4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcm9sZXNgLCByb2xlKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVSb2xlcyhyZXF1ZXN0OiBEZWxldGVSb2xlc1JlcXVlc3QpOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTxudWxsPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9yb2xlc2AsIHtib2R5OiByZXF1ZXN0fSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uUmVzdWx0OiBPYnNlcnZhYmxlPFJvbGUgfCBudWxsPik6IHZvaWQge1xuICAgIGFjdGlvblJlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpO1xuICAgICAgICB9KSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMucm9sZUR0b3MkKSxcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZihlcnJvcikpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHJvbGVzOiBSb2xlW10pID0+IHtcbiAgICAgICAgICB0aGlzLnJvbGVzJC5uZXh0KHJvbGVzKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbG9hZFJvbGVzKCk6IHZvaWQge1xuICAgIHRoaXMucm9sZUR0b3MkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlKDEpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGl0ZW1zOiBSb2xlW10pID0+IHtcbiAgICAgICAgICB0aGlzLnJvbGVzJC5uZXh0KGl0ZW1zKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZVBlcm1pc3Npb25zKHJvbGVLZXk6IHN0cmluZyk6IE9ic2VydmFibGU8QXJyYXk8b2JqZWN0Pj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PEFycmF5PG9iamVjdD4+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcm9sZXMvJHtyb2xlS2V5fS9wZXJtaXNzaW9uc2BcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGV4cG9ydFJvbGVQZXJtaXNzaW9ucyhyb2xlczogc3RyaW5nW10pOiBPYnNlcnZhYmxlPG9iamVjdFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG9iamVjdFtdPihgJHt0aGlzLnZhbHRpbW9FbmRwb2ludFVyaX12MS9wZXJtaXNzaW9ucy9zZWFyY2hgLCB7cm9sZXN9KTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVSb2xlUGVybWlzc2lvbnMocm9sZUtleTogc3RyaW5nLCB1cGRhdGVkUGVybWlzc2lvbjogb2JqZWN0KTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxvYmplY3Q+KFxuICAgICAgYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcm9sZXMvJHtyb2xlS2V5fS9wZXJtaXNzaW9uc2AsXG4gICAgICB1cGRhdGVkUGVybWlzc2lvblxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm9sZShyb2xlS2V5OiBzdHJpbmcsIHJlcXVlc3Q6IFJvbGUpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucHV0PG9iamVjdD4oYCR7dGhpcy52YWx0aW1vRW5kcG9pbnRVcml9djEvcm9sZXMvJHtyb2xlS2V5fWAsIHJlcXVlc3QpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
export * from './access-control.service';
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FjY2Vzcy1jb250cm9sLnNlcnZpY2UnO1xuIl19
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2015-2024 Ritense BV, the Netherlands.
|
|
3
|
-
*
|
|
4
|
-
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
-
* you may not use this file except in compliance with the License.
|
|
6
|
-
* You may obtain a copy of the License at
|
|
7
|
-
*
|
|
8
|
-
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
-
*
|
|
10
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
-
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
-
* See the License for the specific language governing permissions and
|
|
14
|
-
* limitations under the License.
|
|
15
|
-
*/
|
|
16
|
-
/*
|
|
17
|
-
* Public API Surface of access-control
|
|
18
|
-
*/
|
|
19
|
-
export * from './lib/models';
|
|
20
|
-
export * from './lib/services';
|
|
21
|
-
export * from './lib/access-control-management.module';
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vYWNjZXNzLWNvbnRyb2wtbWFuYWdlbWVudC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVIOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHdDQUF3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBhY2Nlc3MtY29udHJvbFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50Lm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdGltby1hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50L3NyYy92YWx0aW1vLWFjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|