@valtimo/access-control-management 12.14.1 → 13.0.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/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,101 +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 { CommonModule } from '@angular/common';
|
|
17
|
-
import { NgModule } from '@angular/core';
|
|
18
|
-
import { TranslateModule } from '@ngx-translate/core';
|
|
19
|
-
import { CarbonListModule, ConfirmationModalModule, EditorModule, RenderInPageHeaderDirectiveModule, } from '@valtimo/components';
|
|
20
|
-
import { AccessControlManagementRoutingModule } from './access-control-management-routing.module';
|
|
21
|
-
import { AccessControlOverviewComponent } from './components/overview/access-control-overview.component';
|
|
22
|
-
import { RoleMetadataModalComponent } from './components/role-metadata-modal/role-metadata-modal.component';
|
|
23
|
-
import { ButtonModule, DialogModule, IconModule, InputModule, LoadingModule, ModalModule, NotificationModule, } from 'carbon-components-angular';
|
|
24
|
-
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
25
|
-
import { AccessControlEditorComponent } from './components/editor/access-control-editor.component';
|
|
26
|
-
import { DeleteRoleModalComponent } from './components/delete-role-modal/delete-role-modal.component';
|
|
27
|
-
import { ExportRoleModalComponent } from './components/export-role-modal/export-role-modal.component';
|
|
28
|
-
import * as i0 from "@angular/core";
|
|
29
|
-
export class AccessControlManagementModule {
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
31
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: AccessControlManagementModule, declarations: [AccessControlOverviewComponent,
|
|
32
|
-
RoleMetadataModalComponent,
|
|
33
|
-
AccessControlEditorComponent,
|
|
34
|
-
DeleteRoleModalComponent,
|
|
35
|
-
ExportRoleModalComponent], imports: [CommonModule,
|
|
36
|
-
AccessControlManagementRoutingModule,
|
|
37
|
-
ButtonModule,
|
|
38
|
-
FormsModule,
|
|
39
|
-
ModalModule,
|
|
40
|
-
TranslateModule,
|
|
41
|
-
ReactiveFormsModule,
|
|
42
|
-
InputModule,
|
|
43
|
-
IconModule,
|
|
44
|
-
ConfirmationModalModule,
|
|
45
|
-
EditorModule,
|
|
46
|
-
RenderInPageHeaderDirectiveModule,
|
|
47
|
-
LoadingModule,
|
|
48
|
-
IconModule,
|
|
49
|
-
DialogModule,
|
|
50
|
-
NotificationModule,
|
|
51
|
-
CarbonListModule] }); }
|
|
52
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlManagementModule, imports: [CommonModule,
|
|
53
|
-
AccessControlManagementRoutingModule,
|
|
54
|
-
ButtonModule,
|
|
55
|
-
FormsModule,
|
|
56
|
-
ModalModule,
|
|
57
|
-
TranslateModule,
|
|
58
|
-
ReactiveFormsModule,
|
|
59
|
-
InputModule,
|
|
60
|
-
IconModule,
|
|
61
|
-
ConfirmationModalModule,
|
|
62
|
-
EditorModule,
|
|
63
|
-
RenderInPageHeaderDirectiveModule,
|
|
64
|
-
LoadingModule,
|
|
65
|
-
IconModule,
|
|
66
|
-
DialogModule,
|
|
67
|
-
NotificationModule,
|
|
68
|
-
CarbonListModule] }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlManagementModule, decorators: [{
|
|
71
|
-
type: NgModule,
|
|
72
|
-
args: [{
|
|
73
|
-
declarations: [
|
|
74
|
-
AccessControlOverviewComponent,
|
|
75
|
-
RoleMetadataModalComponent,
|
|
76
|
-
AccessControlEditorComponent,
|
|
77
|
-
DeleteRoleModalComponent,
|
|
78
|
-
ExportRoleModalComponent,
|
|
79
|
-
],
|
|
80
|
-
imports: [
|
|
81
|
-
CommonModule,
|
|
82
|
-
AccessControlManagementRoutingModule,
|
|
83
|
-
ButtonModule,
|
|
84
|
-
FormsModule,
|
|
85
|
-
ModalModule,
|
|
86
|
-
TranslateModule,
|
|
87
|
-
ReactiveFormsModule,
|
|
88
|
-
InputModule,
|
|
89
|
-
IconModule,
|
|
90
|
-
ConfirmationModalModule,
|
|
91
|
-
EditorModule,
|
|
92
|
-
RenderInPageHeaderDirectiveModule,
|
|
93
|
-
LoadingModule,
|
|
94
|
-
IconModule,
|
|
95
|
-
DialogModule,
|
|
96
|
-
NotificationModule,
|
|
97
|
-
CarbonListModule,
|
|
98
|
-
],
|
|
99
|
-
}]
|
|
100
|
-
}] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixZQUFZLEVBQ1osaUNBQWlDLEdBQ2xDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDaEcsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUNMLFlBQVksRUFDWixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxhQUFhLEVBQ2IsV0FBVyxFQUNYLGtCQUFrQixHQUNuQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBQyxXQUFXLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRSxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw0REFBNEQsQ0FBQzs7QUE4QnBHLE1BQU0sT0FBTyw2QkFBNkI7K0dBQTdCLDZCQUE2QjtnSEFBN0IsNkJBQTZCLGlCQTFCdEMsOEJBQThCO1lBQzlCLDBCQUEwQjtZQUMxQiw0QkFBNEI7WUFDNUIsd0JBQXdCO1lBQ3hCLHdCQUF3QixhQUd4QixZQUFZO1lBQ1osb0NBQW9DO1lBQ3BDLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLGVBQWU7WUFDZixtQkFBbUI7WUFDbkIsV0FBVztZQUNYLFVBQVU7WUFDVix1QkFBdUI7WUFDdkIsWUFBWTtZQUNaLGlDQUFpQztZQUNqQyxhQUFhO1lBQ2IsVUFBVTtZQUNWLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsZ0JBQWdCO2dIQUdQLDZCQUE2QixZQW5CdEMsWUFBWTtZQUNaLG9DQUFvQztZQUNwQyxZQUFZO1lBQ1osV0FBVztZQUNYLFdBQVc7WUFDWCxlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLFdBQVc7WUFDWCxVQUFVO1lBQ1YsdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixpQ0FBaUM7WUFDakMsYUFBYTtZQUNiLFVBQVU7WUFDVixZQUFZO1lBQ1osa0JBQWtCO1lBQ2xCLGdCQUFnQjs7NEZBR1AsNkJBQTZCO2tCQTVCekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osOEJBQThCO3dCQUM5QiwwQkFBMEI7d0JBQzFCLDRCQUE0Qjt3QkFDNUIsd0JBQXdCO3dCQUN4Qix3QkFBd0I7cUJBQ3pCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9DQUFvQzt3QkFDcEMsWUFBWTt3QkFDWixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osaUNBQWlDO3dCQUNqQyxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLGdCQUFnQjtxQkFDakI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIENhcmJvbkxpc3RNb2R1bGUsXG4gIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICBFZGl0b3JNb2R1bGUsXG4gIFJlbmRlckluUGFnZUhlYWRlckRpcmVjdGl2ZU1vZHVsZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0FjY2Vzc0NvbnRyb2xNYW5hZ2VtZW50Um91dGluZ01vZHVsZX0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7QWNjZXNzQ29udHJvbE92ZXJ2aWV3Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcnZpZXcvYWNjZXNzLWNvbnRyb2wtb3ZlcnZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7Um9sZU1ldGFkYXRhTW9kYWxDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9yb2xlLW1ldGFkYXRhLW1vZGFsL3JvbGUtbWV0YWRhdGEtbW9kYWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgRGlhbG9nTW9kdWxlLFxuICBJY29uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgTG9hZGluZ01vZHVsZSxcbiAgTW9kYWxNb2R1bGUsXG4gIE5vdGlmaWNhdGlvbk1vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0FjY2Vzc0NvbnRyb2xFZGl0b3JDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9lZGl0b3IvYWNjZXNzLWNvbnRyb2wtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQge0RlbGV0ZVJvbGVNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2RlbGV0ZS1yb2xlLW1vZGFsL2RlbGV0ZS1yb2xlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQge0V4cG9ydFJvbGVNb2RhbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2V4cG9ydC1yb2xlLW1vZGFsL2V4cG9ydC1yb2xlLW1vZGFsLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFjY2Vzc0NvbnRyb2xPdmVydmlld0NvbXBvbmVudCxcbiAgICBSb2xlTWV0YWRhdGFNb2RhbENvbXBvbmVudCxcbiAgICBBY2Nlc3NDb250cm9sRWRpdG9yQ29tcG9uZW50LFxuICAgIERlbGV0ZVJvbGVNb2RhbENvbXBvbmVudCxcbiAgICBFeHBvcnRSb2xlTW9kYWxDb21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQWNjZXNzQ29udHJvbE1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNb2RhbE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIENvbmZpcm1hdGlvbk1vZGFsTW9kdWxlLFxuICAgIEVkaXRvck1vZHVsZSxcbiAgICBSZW5kZXJJblBhZ2VIZWFkZXJEaXJlY3RpdmVNb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBJY29uTW9kdWxlLFxuICAgIERpYWxvZ01vZHVsZSxcbiAgICBOb3RpZmljYXRpb25Nb2R1bGUsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29udHJvbE1hbmFnZW1lbnRNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,39 +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 * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "@valtimo/components";
|
|
19
|
-
export class DeleteRoleModalComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.deleteEvent = new EventEmitter();
|
|
22
|
-
}
|
|
23
|
-
onDelete(roles) {
|
|
24
|
-
this.deleteEvent.emit(roles);
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteRoleModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DeleteRoleModalComponent, selector: "valtimo-delete-role-modal", inputs: { deleteRowKeys: "deleteRowKeys", showDeleteModal$: "showDeleteModal$" }, outputs: { deleteEvent: "deleteEvent" }, 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-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"accessControl.roles.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "component", type: i1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DeleteRoleModalComponent, decorators: [{
|
|
30
|
-
type: Component,
|
|
31
|
-
args: [{ selector: 'valtimo-delete-role-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<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"accessControl.roles.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n" }]
|
|
32
|
-
}], propDecorators: { deleteRowKeys: [{
|
|
33
|
-
type: Input
|
|
34
|
-
}], showDeleteModal$: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], deleteEvent: [{
|
|
37
|
-
type: Output
|
|
38
|
-
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXJvbGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9kZWxldGUtcm9sZS1tb2RhbC9kZWxldGUtcm9sZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2RlbGV0ZS1yb2xlLW1vZGFsL2RlbGV0ZS1yb2xlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQzs7O0FBUTlGLE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFRWSxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0tBSzNEO0lBSFEsUUFBUSxDQUFDLEtBQW9CO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7K0dBUFUsd0JBQXdCO21HQUF4Qix3QkFBd0IsNExDeEJyQyxpaENBeUJBOzs0RkREYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUVwQix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby1kZWxldGUtcm9sZS1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWxldGUtcm9sZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEZWxldGVSb2xlTW9kYWxDb21wb25lbnQge1xuICBASW5wdXQoKSBkZWxldGVSb3dLZXlzOiBBcnJheTxzdHJpbmc+O1xuICBASW5wdXQoKSBzaG93RGVsZXRlTW9kYWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBAT3V0cHV0KCkgZGVsZXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgcHVibGljIG9uRGVsZXRlKHJvbGVzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgdGhpcy5kZWxldGVFdmVudC5lbWl0KHJvbGVzKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVcIlxuICBjb25maXJtQnV0dG9uVHlwZT1cImRhbmdlclwiXG4gIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cImFjY2Vzc0NvbnRyb2wucm9sZXMuZGVsZXRlTW9kYWxDb250ZW50XCJcbiAgW291dHB1dE9uQ29uZmlybV09XCJkZWxldGVSb3dLZXlzXCJcbiAgW3Nob3dNb2RhbFN1YmplY3QkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwiaW50ZXJmYWNlLmRlbGV0ZVwiXG4gIChjb25maXJtRXZlbnQpPVwib25EZWxldGUoJGV2ZW50KVwiXG4+PC92YWx0aW1vLWNvbmZpcm1hdGlvbi1tb2RhbD5cbiJdfQ==
|
|
@@ -1,186 +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 } from '@angular/core';
|
|
17
|
-
import { BehaviorSubject, filter, finalize, map, switchMap, take, tap } from 'rxjs';
|
|
18
|
-
import { CARBON_CONSTANTS, } from '@valtimo/components';
|
|
19
|
-
import { NotificationService } from 'carbon-components-angular';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "../../services/access-control.service";
|
|
22
|
-
import * as i2 from "@angular/router";
|
|
23
|
-
import * as i3 from "@valtimo/components";
|
|
24
|
-
import * as i4 from "carbon-components-angular";
|
|
25
|
-
import * as i5 from "@ngx-translate/core";
|
|
26
|
-
import * as i6 from "../../services/access-control-export.service";
|
|
27
|
-
import * as i7 from "@angular/common";
|
|
28
|
-
import * as i8 from "../role-metadata-modal/role-metadata-modal.component";
|
|
29
|
-
import * as i9 from "../delete-role-modal/delete-role-modal.component";
|
|
30
|
-
export class AccessControlEditorComponent {
|
|
31
|
-
constructor(accessControlService, route, pageTitleService, router, notificationService, translateService, accessControlExportService, pageHeaderService) {
|
|
32
|
-
this.accessControlService = accessControlService;
|
|
33
|
-
this.route = route;
|
|
34
|
-
this.pageTitleService = pageTitleService;
|
|
35
|
-
this.router = router;
|
|
36
|
-
this.notificationService = notificationService;
|
|
37
|
-
this.translateService = translateService;
|
|
38
|
-
this.accessControlExportService = accessControlExportService;
|
|
39
|
-
this.pageHeaderService = pageHeaderService;
|
|
40
|
-
this.model$ = new BehaviorSubject(null);
|
|
41
|
-
this.saveDisabled$ = new BehaviorSubject(true);
|
|
42
|
-
this.editorDisabled$ = new BehaviorSubject(false);
|
|
43
|
-
this.moreDisabled$ = new BehaviorSubject(true);
|
|
44
|
-
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
45
|
-
this.showEditModal$ = new BehaviorSubject(false);
|
|
46
|
-
this.selectedRowKeys$ = new BehaviorSubject(null);
|
|
47
|
-
this.compactMode$ = this.pageHeaderService.compactMode$;
|
|
48
|
-
this._updatedModelValue$ = new BehaviorSubject('');
|
|
49
|
-
}
|
|
50
|
-
ngOnInit() {
|
|
51
|
-
this.getPermissions();
|
|
52
|
-
this.openRoleKeySubscription();
|
|
53
|
-
}
|
|
54
|
-
ngOnDestroy() {
|
|
55
|
-
this.pageTitleService.enableReset();
|
|
56
|
-
this._roleKeySubscription?.unsubscribe();
|
|
57
|
-
}
|
|
58
|
-
onValid(valid) {
|
|
59
|
-
this.saveDisabled$.next(valid === false);
|
|
60
|
-
}
|
|
61
|
-
onValueChange(value) {
|
|
62
|
-
this._updatedModelValue$.next(value);
|
|
63
|
-
}
|
|
64
|
-
updatePermissions() {
|
|
65
|
-
this.disableEditor();
|
|
66
|
-
this.disableSave();
|
|
67
|
-
this.disableMore();
|
|
68
|
-
this._updatedModelValue$
|
|
69
|
-
.pipe(take(1), switchMap(updatedModelValue => this.accessControlService.updateRolePermissions(this._roleKey, JSON.parse(updatedModelValue))))
|
|
70
|
-
.subscribe({
|
|
71
|
-
next: result => {
|
|
72
|
-
this.enableMore();
|
|
73
|
-
this.enableSave();
|
|
74
|
-
this.enableEditor();
|
|
75
|
-
this.showSuccessMessage(this._roleKey);
|
|
76
|
-
this.setModel(result);
|
|
77
|
-
},
|
|
78
|
-
error: () => {
|
|
79
|
-
this.enableMore();
|
|
80
|
-
this.enableSave();
|
|
81
|
-
this.enableEditor();
|
|
82
|
-
},
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
onDelete(roles) {
|
|
86
|
-
this.disableEditor();
|
|
87
|
-
this.disableSave();
|
|
88
|
-
this.disableMore();
|
|
89
|
-
this.accessControlService.dispatchAction(this.accessControlService.deleteRoles({ roles }).pipe(finalize(() => {
|
|
90
|
-
this.router.navigate(['/access-control']);
|
|
91
|
-
})));
|
|
92
|
-
}
|
|
93
|
-
showDeleteModal() {
|
|
94
|
-
this.showDeleteModal$.next(true);
|
|
95
|
-
}
|
|
96
|
-
showEditModal() {
|
|
97
|
-
this.showEditModal$.next(true);
|
|
98
|
-
}
|
|
99
|
-
onEdit(currentRoleKey, data) {
|
|
100
|
-
this.showEditModal$.next(false);
|
|
101
|
-
if (!data) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
this.disableEditor();
|
|
105
|
-
this.disableSave();
|
|
106
|
-
this.disableMore();
|
|
107
|
-
this.accessControlService.updateRole(currentRoleKey, data).subscribe(() => {
|
|
108
|
-
this.router.navigate([`/access-control/${data.roleKey}`]);
|
|
109
|
-
this.showSuccessMessage(data.roleKey);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
exportPermissions() {
|
|
113
|
-
this.accessControlExportService
|
|
114
|
-
.exportRoles({ type: 'separate', roleKeys: [this._roleKey] })
|
|
115
|
-
.subscribe();
|
|
116
|
-
}
|
|
117
|
-
openRoleKeySubscription() {
|
|
118
|
-
this._roleKeySubscription = this.route.params
|
|
119
|
-
.pipe(filter(params => params?.id), map(params => params.id), tap(roleKey => {
|
|
120
|
-
this._roleKey = roleKey;
|
|
121
|
-
this.pageTitleService.setCustomPageTitle(roleKey, true);
|
|
122
|
-
this.selectedRowKeys$.next([roleKey]);
|
|
123
|
-
}), switchMap(roleKey => this.accessControlService.getRolePermissions(roleKey)), tap(permissions => {
|
|
124
|
-
this.enableMore();
|
|
125
|
-
this.enableSave();
|
|
126
|
-
this.enableEditor();
|
|
127
|
-
this.setModel(permissions);
|
|
128
|
-
}))
|
|
129
|
-
.subscribe();
|
|
130
|
-
}
|
|
131
|
-
getPermissions() {
|
|
132
|
-
this.route.params
|
|
133
|
-
.pipe(tap(params => {
|
|
134
|
-
this.pageTitleService.setCustomPageTitle(params?.id);
|
|
135
|
-
this.selectedRowKeys$.next([params?.id]);
|
|
136
|
-
}), switchMap(params => this.accessControlService.getRolePermissions(params.id)))
|
|
137
|
-
.subscribe(permissions => {
|
|
138
|
-
this.enableMore();
|
|
139
|
-
this.enableSave();
|
|
140
|
-
this.enableEditor();
|
|
141
|
-
this.setModel(permissions);
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
setModel(permissions) {
|
|
145
|
-
this.model$.next({
|
|
146
|
-
value: JSON.stringify(permissions),
|
|
147
|
-
language: 'json',
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
disableMore() {
|
|
151
|
-
this.moreDisabled$.next(true);
|
|
152
|
-
}
|
|
153
|
-
enableMore() {
|
|
154
|
-
this.moreDisabled$.next(false);
|
|
155
|
-
}
|
|
156
|
-
disableSave() {
|
|
157
|
-
this.saveDisabled$.next(true);
|
|
158
|
-
}
|
|
159
|
-
enableSave() {
|
|
160
|
-
this.saveDisabled$.next(false);
|
|
161
|
-
}
|
|
162
|
-
disableEditor() {
|
|
163
|
-
this.editorDisabled$.next(true);
|
|
164
|
-
}
|
|
165
|
-
enableEditor() {
|
|
166
|
-
this.editorDisabled$.next(false);
|
|
167
|
-
}
|
|
168
|
-
showSuccessMessage(roleKey) {
|
|
169
|
-
this.notificationService.showToast({
|
|
170
|
-
caption: this.translateService.instant('accessControl.roles.savedSuccessTitleMessage', {
|
|
171
|
-
roleKey,
|
|
172
|
-
}),
|
|
173
|
-
type: 'success',
|
|
174
|
-
duration: CARBON_CONSTANTS.notificationDuration,
|
|
175
|
-
showClose: true,
|
|
176
|
-
title: this.translateService.instant('accessControl.roles.savedSuccessTitle'),
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlEditorComponent, deps: [{ token: i1.AccessControlService }, { token: i2.ActivatedRoute }, { token: i3.PageTitleService }, { token: i2.Router }, { token: i4.NotificationService }, { token: i5.TranslateService }, { token: i6.AccessControlExportService }, { token: i3.PageHeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AccessControlEditorComponent, selector: "ng-component", providers: [NotificationService], 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<ng-container *ngIf=\"model$ | async as model; else loading\">\n <valtimo-editor\n [disabled]=\"editorDisabled$ | async\"\n [model]=\"model\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option [disabled]=\"obs.moreDisabled\" (selected)=\"showEditModal()\">{{\n 'accessControl.roles.editMetadata' | translate\n }}</cds-overflow-menu-option>\n\n <cds-overflow-menu-option [disabled]=\"obs.moreDisabled\" (selected)=\"exportPermissions()\">{{\n 'interface.export' | translate\n }}</cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"saveDisabled$ | async\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updatePermissions()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\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-role-metadata-modal\n [defaultKeyValue]=\"obs.selectedRowKeys[0]\"\n [open]=\"showEditModal$ | async\"\n type=\"edit\"\n (closeEvent)=\"onEdit(obs.selectedRowKeys[0], $event)\"\n ></valtimo-role-metadata-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}.overflow-button{margin-right:16px}.buttons-container{display:flex;flex-direction:row;align-items:center}.buttons-container button{height:min-content}\n/*!\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"], dependencies: [{ kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "directive", type: i3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "component", type: i4.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i4.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "component", type: i8.RoleMetadataModalComponent, selector: "valtimo-role-metadata-modal", inputs: ["open", "type", "defaultKeyValue"], outputs: ["closeEvent"] }, { kind: "component", type: i9.DeleteRoleModalComponent, selector: "valtimo-delete-role-modal", inputs: ["deleteRowKeys", "showDeleteModal$"], outputs: ["deleteEvent"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
181
|
-
}
|
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AccessControlEditorComponent, decorators: [{
|
|
183
|
-
type: Component,
|
|
184
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [NotificationService], 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<ng-container *ngIf=\"model$ | async as model; else loading\">\n <valtimo-editor\n [disabled]=\"editorDisabled$ | async\"\n [model]=\"model\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n compactMode: compactMode$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option [disabled]=\"obs.moreDisabled\" (selected)=\"showEditModal()\">{{\n 'accessControl.roles.editMetadata' | translate\n }}</cds-overflow-menu-option>\n\n <cds-overflow-menu-option [disabled]=\"obs.moreDisabled\" (selected)=\"exportPermissions()\">{{\n 'interface.export' | translate\n }}</cds-overflow-menu-option>\n\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}</cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"saveDisabled$ | async\"\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"updatePermissions()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\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-role-metadata-modal\n [defaultKeyValue]=\"obs.selectedRowKeys[0]\"\n [open]=\"showEditModal$ | async\"\n type=\"edit\"\n (closeEvent)=\"onEdit(obs.selectedRowKeys[0], $event)\"\n ></valtimo-role-metadata-modal>\n</ng-container>\n\n<ng-template #loading>\n <div class=\"loading-container\">\n <cds-loading></cds-loading>\n </div>\n</ng-template>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}.overflow-button{margin-right:16px}.buttons-container{display:flex;flex-direction:row;align-items:center}.buttons-container button{height:min-content}\n/*!\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"] }]
|
|
185
|
-
}], ctorParameters: () => [{ type: i1.AccessControlService }, { type: i2.ActivatedRoute }, { type: i3.PageTitleService }, { type: i2.Router }, { type: i4.NotificationService }, { type: i5.TranslateService }, { type: i6.AccessControlExportService }, { type: i3.PageHeaderService }] });
|
|
186
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjZXNzLWNvbnRyb2wtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vYWNjZXNzLWNvbnRyb2wtbWFuYWdlbWVudC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2FjY2Vzcy1jb250cm9sLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9hY2Nlc3MtY29udHJvbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUVwRixPQUFPLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFnQixTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoRyxPQUFPLEVBQ0wsZ0JBQWdCLEdBSWpCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7Ozs7O0FBVTlELE1BQU0sT0FBTyw0QkFBNEI7SUFjdkMsWUFDbUIsb0JBQTBDLEVBQzFDLEtBQXFCLEVBQ3JCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQywwQkFBc0QsRUFDdEQsaUJBQW9DO1FBUHBDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsd0JBQW1C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bEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQWU7UUFDeEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQztZQUNqQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyw4Q0FBOEMsRUFBRTtnQkFDckYsT0FBTzthQUNSLENBQUM7WUFDRixJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxvQkFBb0I7WUFDL0MsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyx1Q0FBdUMsQ0FBQztTQUM5RSxDQUFDLENBQUM7SUFDTCxDQUFDOytHQXRNVSw0QkFBNEI7bUdBQTVCLDRCQUE0Qix1Q0FGNUIsQ0FBQyxtQkFBbUIsQ0FBQywwQkNuQ2xDLDg0RkF3RkE7OzRGRG5EYSw0QkFBNEI7a0JBTnhDLFNBQVM7c0NBRVMsdUJBQXVCLENBQUMsTUFBTSxhQUVwQyxDQUFDLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjY2Vzc0NvbnRyb2xTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hY2Nlc3MtY29udHJvbC5zZXJ2aWNlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YWtlLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgQ0FSQk9OX0NPTlNUQU5UUyxcbiAgRWRpdG9yTW9kZWwsXG4gIFBhZ2VIZWFkZXJTZXJ2aWNlLFxuICBQYWdlVGl0bGVTZXJ2aWNlLFxufSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Um9sZX0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBY2Nlc3NDb250cm9sRXhwb3J0U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvYWNjZXNzLWNvbnRyb2wtZXhwb3J0LnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2FjY2Vzcy1jb250cm9sLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdHlsZVVybHM6IFsnLi9hY2Nlc3MtY29udHJvbC1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIEFjY2Vzc0NvbnRyb2xFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBtb2RlbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVkaXRvck1vZGVsIHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzYXZlRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGVkaXRvckRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgbW9yZURpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RGVsZXRlTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93RWRpdE1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRSb3dLZXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXJyYXk8c3RyaW5nPiB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgY29tcGFjdE1vZGUkID0gdGhpcy5wYWdlSGVhZGVyU2VydmljZS5jb21wYWN0TW9kZSQ7XG5cbiAgcHJpdmF0ZSBfcm9sZUtleVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfcm9sZUtleSE6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBfdXBkYXRlZE1vZGVsVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2Vzc0NvbnRyb2xTZXJ2aWNlOiBBY2Nlc3NDb250cm9sU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXNzQ29udHJvbEV4cG9ydFNlcnZpY2U6IEFjY2Vzc0NvbnRyb2xFeHBvcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUhlYWRlclNlcnZpY2U6IFBhZ2VIZWFkZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQZXJtaXNzaW9ucygpO1xuICAgIHRoaXMub3BlblJvbGVLZXlTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VUaXRsZVNlcnZpY2UuZW5hYmxlUmVzZXQoKTtcbiAgICB0aGlzLl9yb2xlS2V5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uVmFsaWQodmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVEaXNhYmxlZCQubmV4dCh2YWxpZCA9PT0gZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIG9uVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0ZWRNb2RlbFZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVQZXJtaXNzaW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVFZGl0b3IoKTtcbiAgICB0aGlzLmRpc2FibGVTYXZlKCk7XG4gICAgdGhpcy5kaXNhYmxlTW9yZSgpO1xuXG4gICAgdGhpcy5fdXBkYXRlZE1vZGVsVmFsdWUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgc3dpdGNoTWFwKHVwZGF0ZWRNb2RlbFZhbHVlID0+XG4gICAgICAgICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS51cGRhdGVSb2xlUGVybWlzc2lvbnMoXG4gICAgICAgICAgICB0aGlzLl9yb2xlS2V5LFxuICAgICAgICAgICAgSlNPTi5wYXJzZSh1cGRhdGVkTW9kZWxWYWx1ZSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiByZXN1bHQgPT4ge1xuICAgICAgICAgIHRoaXMuZW5hYmxlTW9yZSgpO1xuICAgICAgICAgIHRoaXMuZW5hYmxlU2F2ZSgpO1xuICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgICAgdGhpcy5zaG93U3VjY2Vzc01lc3NhZ2UodGhpcy5fcm9sZUtleSk7XG4gICAgICAgICAgdGhpcy5zZXRNb2RlbChyZXN1bHQpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuZW5hYmxlTW9yZSgpO1xuICAgICAgICAgIHRoaXMuZW5hYmxlU2F2ZSgpO1xuICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZShyb2xlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZUVkaXRvcigpO1xuICAgIHRoaXMuZGlzYWJsZVNhdmUoKTtcbiAgICB0aGlzLmRpc2FibGVNb3JlKCk7XG5cbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xTZXJ2aWNlLmRpc3BhdGNoQWN0aW9uKFxuICAgICAgdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5kZWxldGVSb2xlcyh7cm9sZXN9KS5waXBlKFxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYWNjZXNzLWNvbnRyb2wnXSk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RGVsZXRlTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RGVsZXRlTW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2hvd0VkaXRNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dFZGl0TW9kYWwkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb25FZGl0KGN1cnJlbnRSb2xlS2V5OiBzdHJpbmcsIGRhdGE6IFJvbGUgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy5zaG93RWRpdE1vZGFsJC5uZXh0KGZhbHNlKTtcblxuICAgIGlmICghZGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZUVkaXRvcigpO1xuICAgIHRoaXMuZGlzYWJsZVNhdmUoKTtcbiAgICB0aGlzLmRpc2FibGVNb3JlKCk7XG5cbiAgICB0aGlzLmFjY2Vzc0NvbnRyb2xTZXJ2aWNlLnVwZGF0ZVJvbGUoY3VycmVudFJvbGVLZXksIGRhdGEpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9hY2Nlc3MtY29udHJvbC8ke2RhdGEucm9sZUtleX1gXSk7XG4gICAgICB0aGlzLnNob3dTdWNjZXNzTWVzc2FnZShkYXRhLnJvbGVLZXkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGV4cG9ydFBlcm1pc3Npb25zKCk6IHZvaWQge1xuICAgIHRoaXMuYWNjZXNzQ29udHJvbEV4cG9ydFNlcnZpY2VcbiAgICAgIC5leHBvcnRSb2xlcyh7dHlwZTogJ3NlcGFyYXRlJywgcm9sZUtleXM6IFt0aGlzLl9yb2xlS2V5XX0pXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5Sb2xlS2V5U3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX3JvbGVLZXlTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlLnBhcmFtc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcihwYXJhbXMgPT4gcGFyYW1zPy5pZCksXG4gICAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zLmlkKSxcbiAgICAgICAgdGFwKHJvbGVLZXkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JvbGVLZXkgPSByb2xlS2V5O1xuICAgICAgICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5zZXRDdXN0b21QYWdlVGl0bGUocm9sZUtleSwgdHJ1ZSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0tleXMkLm5leHQoW3JvbGVLZXldKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcChyb2xlS2V5ID0+IHRoaXMuYWNjZXNzQ29udHJvbFNlcnZpY2UuZ2V0Um9sZVBlcm1pc3Npb25zKHJvbGVLZXkpKSxcbiAgICAgICAgdGFwKHBlcm1pc3Npb25zID0+IHtcbiAgICAgICAgICB0aGlzLmVuYWJsZU1vcmUoKTtcbiAgICAgICAgICB0aGlzLmVuYWJsZVNhdmUoKTtcbiAgICAgICAgICB0aGlzLmVuYWJsZUVkaXRvcigpO1xuICAgICAgICAgIHRoaXMuc2V0TW9kZWwocGVybWlzc2lvbnMpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQZXJtaXNzaW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChwYXJhbXMgPT4ge1xuICAgICAgICAgIHRoaXMucGFnZVRpdGxlU2VydmljZS5zZXRDdXN0b21QYWdlVGl0bGUocGFyYW1zPy5pZCk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJvd0tleXMkLm5leHQoW3BhcmFtcz8uaWRdKTtcbiAgICAgICAgfSksXG4gICAgICAgIHN3aXRjaE1hcChwYXJhbXMgPT4gdGhpcy5hY2Nlc3NDb250cm9sU2VydmljZS5nZXRSb2xlUGVybWlzc2lvbnMocGFyYW1zLmlkKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUocGVybWlzc2lvbnMgPT4ge1xuICAgICAgICB0aGlzLmVuYWJsZU1vcmUoKTtcbiAgICAgICAgdGhpcy5lbmFibGVTYXZlKCk7XG4gICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgIHRoaXMuc2V0TW9kZWwocGVybWlzc2lvbnMpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldE1vZGVsKHBlcm1pc3Npb25zOiBvYmplY3QpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGVsJC5uZXh0KHtcbiAgICAgIHZhbHVlOiBKU09OLnN0cmluZ2lmeShwZXJtaXNzaW9ucyksXG4gICAgICBsYW5ndWFnZTogJ2pzb24nLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNhYmxlTW9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vcmVEaXNhYmxlZCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5hYmxlTW9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLm1vcmVEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGRpc2FibGVTYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZURpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVTYXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZURpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZUVkaXRvcigpOiB2b2lkIHtcbiAgICB0aGlzLmVkaXRvckRpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGVFZGl0b3IoKTogdm9pZCB7XG4gICAgdGhpcy5lZGl0b3JEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dTdWNjZXNzTWVzc2FnZShyb2xlS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd1RvYXN0KHtcbiAgICAgIGNhcHRpb246IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdhY2Nlc3NDb250cm9sLnJvbGVzLnNhdmVkU3VjY2Vzc1RpdGxlTWVzc2FnZScsIHtcbiAgICAgICAgcm9sZUtleSxcbiAgICAgIH0pLFxuICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgZHVyYXRpb246IENBUkJPTl9DT05TVEFOVFMubm90aWZpY2F0aW9uRHVyYXRpb24sXG4gICAgICBzaG93Q2xvc2U6IHRydWUsXG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2FjY2Vzc0NvbnRyb2wucm9sZXMuc2F2ZWRTdWNjZXNzVGl0bGUnKSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwkIHwgYXN5bmMgYXMgbW9kZWw7IGVsc2UgbG9hZGluZ1wiPlxuICA8dmFsdGltby1lZGl0b3JcbiAgICBbZGlzYWJsZWRdPVwiZWRpdG9yRGlzYWJsZWQkIHwgYXN5bmNcIlxuICAgIFttb2RlbF09XCJtb2RlbFwiXG4gICAgKHZhbGlkRXZlbnQpPVwib25WYWxpZCgkZXZlbnQpXCJcbiAgICAodmFsdWVDaGFuZ2VFdmVudCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgIFtmaXRQYWdlXT1cInRydWVcIlxuICA+PC92YWx0aW1vLWVkaXRvcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyIHJlbmRlckluUGFnZUhlYWRlcj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwie1xuICAgICAgICBtb2RlbDogbW9kZWwkIHwgYXN5bmMsXG4gICAgICAgIG1vcmVEaXNhYmxlZDogbW9yZURpc2FibGVkJCB8IGFzeW5jLFxuICAgICAgICBjb21wYWN0TW9kZTogY29tcGFjdE1vZGUkIHwgYXN5bmMsXG4gICAgICB9IGFzIG9ic1wiXG4gICAgICBjbGFzcz1cImJ1dHRvbnMtY29udGFpbmVyXCJcbiAgICA+XG4gICAgICA8Y2RzLW92ZXJmbG93LW1lbnUgY2xhc3M9XCJvdmVyZmxvdy1idXR0b25cIj5cbiAgICAgICAgPGNkcy1vdmVyZmxvdy1tZW51LW9wdGlvbiBbZGlzYWJsZWRdPVwib2JzLm1vcmVEaXNhYmxlZFwiIChzZWxlY3RlZCk9XCJzaG93RWRpdE1vZGFsKClcIj57e1xuICAgICAgICAgICdhY2Nlc3NDb250cm9sLnJvbGVzLmVkaXRNZXRhZGF0YScgfCB0cmFuc2xhdGVcbiAgICAgICAgfX08L2Nkcy1vdmVyZmxvdy1tZW51LW9wdGlvbj5cblxuICAgICAgICA8Y2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uIFtkaXNhYmxlZF09XCJvYnMubW9yZURpc2FibGVkXCIgKHNlbGVjdGVkKT1cImV4cG9ydFBlcm1pc3Npb25zKClcIj57e1xuICAgICAgICAgICdpbnRlcmZhY2UuZXhwb3J0JyB8IHRyYW5zbGF0ZVxuICAgICAgICB9fTwvY2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uPlxuXG4gICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwib2JzLm1vcmVEaXNhYmxlZFwiXG4gICAgICAgICAgdHlwZT1cImRhbmdlclwiXG4gICAgICAgICAgKHNlbGVjdGVkKT1cInNob3dEZWxldGVNb2RhbCgpXCJcbiAgICAgICAgICA+e3sgJ2ludGVyZmFjZS5kZWxldGUnIHwgdHJhbnNsYXRlIH19PC9jZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICAgPlxuICAgICAgPC9jZHMtb3ZlcmZsb3ctbWVudT5cblxuICAgICAgPGJ1dHRvblxuICAgICAgICBbZGlzYWJsZWRdPVwic2F2ZURpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaXplXT1cIm9icy5jb21wYWN0TW9kZSA/ICdzbScgOiAnbWQnXCJcbiAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVBlcm1pc3Npb25zKClcIlxuICAgICAgPlxuICAgICAgICB7eyAnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInNhdmVcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ7c2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICA8dmFsdGltby1kZWxldGUtcm9sZS1tb2RhbFxuICAgIFtkZWxldGVSb3dLZXlzXT1cIm9icy5zZWxlY3RlZFJvd0tleXNcIlxuICAgIFtzaG93RGVsZXRlTW9kYWwkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICAgIChkZWxldGVFdmVudCk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgPlxuICA8L3ZhbHRpbW8tZGVsZXRlLXJvbGUtbW9kYWw+XG5cbiAgPHZhbHRpbW8tcm9sZS1tZXRhZGF0YS1tb2RhbFxuICAgIFtkZWZhdWx0S2V5VmFsdWVdPVwib2JzLnNlbGVjdGVkUm93S2V5c1swXVwiXG4gICAgW29wZW5dPVwic2hvd0VkaXRNb2RhbCQgfCBhc3luY1wiXG4gICAgdHlwZT1cImVkaXRcIlxuICAgIChjbG9zZUV2ZW50KT1cIm9uRWRpdChvYnMuc2VsZWN0ZWRSb3dLZXlzWzBdLCAkZXZlbnQpXCJcbiAgPjwvdmFsdGltby1yb2xlLW1ldGFkYXRhLW1vZGFsPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+XG4gICAgPGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -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 { BehaviorSubject } from 'rxjs';
|
|
18
|
-
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/common";
|
|
21
|
-
import * as i2 from "carbon-components-angular";
|
|
22
|
-
import * as i3 from "@ngx-translate/core";
|
|
23
|
-
export class ExportRoleModalComponent {
|
|
24
|
-
constructor() {
|
|
25
|
-
this.open = false;
|
|
26
|
-
this.exportEvent = new EventEmitter();
|
|
27
|
-
this.closeEvent = new EventEmitter();
|
|
28
|
-
this.selectedType$ = new BehaviorSubject(null);
|
|
29
|
-
}
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.openResetSubscription();
|
|
32
|
-
}
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
this._resetSubscription?.unsubscribe();
|
|
35
|
-
}
|
|
36
|
-
onCancel() {
|
|
37
|
-
if (!this.disabled) {
|
|
38
|
-
this.resetType();
|
|
39
|
-
this.closeEvent.emit();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
onConfirm(type) {
|
|
43
|
-
this.exportEvent.emit({ type, roleKeys: this.exportRowKeys });
|
|
44
|
-
}
|
|
45
|
-
selectType(type) {
|
|
46
|
-
this.selectedType$.next(type);
|
|
47
|
-
}
|
|
48
|
-
resetType() {
|
|
49
|
-
setTimeout(() => {
|
|
50
|
-
this.selectedType$.next(null);
|
|
51
|
-
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
52
|
-
}
|
|
53
|
-
openResetSubscription() {
|
|
54
|
-
this._resetSubscription = this.reset$?.subscribe(() => {
|
|
55
|
-
this.closeEvent.emit();
|
|
56
|
-
this.resetType();
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportRoleModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExportRoleModalComponent, selector: "valtimo-export-role-modal", inputs: { open: "open", exportRowKeys: "exportRowKeys", reset$: "reset$", disabled: "disabled" }, outputs: { exportEvent: "exportEvent", 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=\"{title: ('interface.export' | translate), selectedType: selectedType$ | async} as vars\"\n valtimoCdsModal\n [open]=\"open\"\n size=\"sm\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ vars.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <div class=\"export-buttons\">\n <button [disabled]=\"disabled\" cdsButton=\"secondary\" (click)=\"selectType('unified')\">\n {{ 'accessControl.roles.singleExport' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"document\" size=\"16\"></svg>\n </button>\n\n <button [disabled]=\"disabled\" cdsButton=\"secondary\" (click)=\"selectType('separate')\">\n {{ 'accessControl.roles.multipleExport' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"copy--file\" size=\"16\"></svg>\n </button>\n </div>\n </section>\n\n <cds-modal-footer>\n <button [disabled]=\"disabled\" cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"!vars.selectedType || disabled\"\n cdsButton=\"primary\"\n (click)=\"onConfirm(vars.selectedType)\"\n >\n {{ vars.title }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".export-buttons{display:grid;width:100%;grid-template-columns:1fr 1fr;column-gap:16px}.export-buttons button{width:100%}\n/*!\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"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "component", type: i2.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i2.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i2.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i2.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i2.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
61
|
-
}
|
|
62
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExportRoleModalComponent, decorators: [{
|
|
63
|
-
type: Component,
|
|
64
|
-
args: [{ selector: 'valtimo-export-role-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=\"{title: ('interface.export' | translate), selectedType: selectedType$ | async} as vars\"\n valtimoCdsModal\n [open]=\"open\"\n size=\"sm\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{ vars.title }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <div class=\"export-buttons\">\n <button [disabled]=\"disabled\" cdsButton=\"secondary\" (click)=\"selectType('unified')\">\n {{ 'accessControl.roles.singleExport' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"document\" size=\"16\"></svg>\n </button>\n\n <button [disabled]=\"disabled\" cdsButton=\"secondary\" (click)=\"selectType('separate')\">\n {{ 'accessControl.roles.multipleExport' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"copy--file\" size=\"16\"></svg>\n </button>\n </div>\n </section>\n\n <cds-modal-footer>\n <button [disabled]=\"disabled\" cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n [disabled]=\"!vars.selectedType || disabled\"\n cdsButton=\"primary\"\n (click)=\"onConfirm(vars.selectedType)\"\n >\n {{ vars.title }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", styles: [".export-buttons{display:grid;width:100%;grid-template-columns:1fr 1fr;column-gap:16px}.export-buttons button{width:100%}\n/*!\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"] }]
|
|
65
|
-
}], propDecorators: { open: [{
|
|
66
|
-
type: Input
|
|
67
|
-
}], exportRowKeys: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], reset$: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], disabled: [{
|
|
72
|
-
type: Input
|
|
73
|
-
}], exportEvent: [{
|
|
74
|
-
type: Output
|
|
75
|
-
}], closeEvent: [{
|
|
76
|
-
type: Output
|
|
77
|
-
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXJvbGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9hY2Nlc3MtY29udHJvbC1tYW5hZ2VtZW50L3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQtcm9sZS1tb2RhbC9leHBvcnQtcm9sZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2FjY2Vzcy1jb250cm9sLW1hbmFnZW1lbnQvc3JjL2xpYi9jb21wb25lbnRzL2V4cG9ydC1yb2xlLW1vZGFsL2V4cG9ydC1yb2xlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGVBQWUsRUFBMkIsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBUXJELE1BQU0sT0FBTyx3QkFBd0I7SUFOckM7UUFPVyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBS1osZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQztRQUNuRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUvQixrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFvQixJQUFJLENBQUMsQ0FBQztLQXVDOUU7SUFuQ1EsUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsSUFBZ0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxVQUFVLENBQUMsSUFBZ0I7UUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLFNBQVM7UUFDZixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EvQ1Usd0JBQXdCO21HQUF4Qix3QkFBd0Isc09DbkNyQyxtZ0VBNERBOzs0RkR6QmEsd0JBQXdCO2tCQU5wQyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V4cG9ydFJvbGVPdXRwdXQsIFJvbGVFeHBvcnR9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UU30gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tZXhwb3J0LXJvbGUtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXhwb3J0LXJvbGUtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9leHBvcnQtcm9sZS1tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0Um9sZU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBvcGVuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGV4cG9ydFJvd0tleXM6IEFycmF5PHN0cmluZz47XG4gIEBJbnB1dCgpIHJlc2V0JCE6IE9ic2VydmFibGU8bnVsbD47XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBleHBvcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RXhwb3J0Um9sZU91dHB1dD4oKTtcbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRUeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Um9sZUV4cG9ydCB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgX3Jlc2V0U3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5SZXNldFN1YnNjcmlwdGlvbigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2V0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5yZXNldFR5cGUoKTtcbiAgICAgIHRoaXMuY2xvc2VFdmVudC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ29uZmlybSh0eXBlOiBSb2xlRXhwb3J0KTogdm9pZCB7XG4gICAgdGhpcy5leHBvcnRFdmVudC5lbWl0KHt0eXBlLCByb2xlS2V5czogdGhpcy5leHBvcnRSb3dLZXlzfSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0VHlwZSh0eXBlOiBSb2xlRXhwb3J0KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZFR5cGUkLm5leHQodHlwZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VHlwZSgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlJC5uZXh0KG51bGwpO1xuICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5SZXNldFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldFN1YnNjcmlwdGlvbiA9IHRoaXMucmVzZXQkPy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQoKTtcbiAgICAgIHRoaXMucmVzZXRUeXBlKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGNkcy1tb2RhbFxuICAqbmdJZj1cInt0aXRsZTogKCdpbnRlcmZhY2UuZXhwb3J0JyB8IHRyYW5zbGF0ZSksIHNlbGVjdGVkVHlwZTogc2VsZWN0ZWRUeXBlJCB8IGFzeW5jfSBhcyB2YXJzXCJcbiAgdmFsdGltb0Nkc01vZGFsXG4gIFtvcGVuXT1cIm9wZW5cIlxuICBzaXplPVwic21cIlxuICBzaG93Rm9vdGVyPVwidHJ1ZVwiXG4gIFt0aXRsZV09XCJ2YXJzLnRpdGxlXCJcbj5cbiAgPGNkcy1tb2RhbC1oZWFkZXIgW3Nob3dDbG9zZUJ1dHRvbl09XCJ0cnVlXCIgKGNsb3NlU2VsZWN0KT1cIm9uQ2FuY2VsKClcIj5cbiAgICA8aDMgY2RzTW9kYWxIZWFkZXJIZWFkaW5nPlxuICAgICAge3sgdmFycy50aXRsZSB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8c2VjdGlvbiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImV4cG9ydC1idXR0b25zXCI+XG4gICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNkc0J1dHRvbj1cInNlY29uZGFyeVwiIChjbGljayk9XCJzZWxlY3RUeXBlKCd1bmlmaWVkJylcIj5cbiAgICAgICAge3sgJ2FjY2Vzc0NvbnRyb2wucm9sZXMuc2luZ2xlRXhwb3J0JyB8IHRyYW5zbGF0ZSB9fVxuXG4gICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJkb2N1bWVudFwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgY2RzQnV0dG9uPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cInNlbGVjdFR5cGUoJ3NlcGFyYXRlJylcIj5cbiAgICAgICAge3sgJ2FjY2Vzc0NvbnRyb2wucm9sZXMubXVsdGlwbGVFeHBvcnQnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cImNvcHktLWZpbGVcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG5cbiAgPGNkcy1tb2RhbC1mb290ZXI+XG4gICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBjZHNCdXR0b249XCJnaG9zdFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+XG4gICAgICB7eyAnaW50ZXJmYWNlLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCIhdmFycy5zZWxlY3RlZFR5cGUgfHwgZGlzYWJsZWRcIlxuICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwib25Db25maXJtKHZhcnMuc2VsZWN0ZWRUeXBlKVwiXG4gICAgPlxuICAgICAge3sgdmFycy50aXRsZSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cbiJdfQ==
|