ngx-techlify-core 18.0.0-alpha.6 → 18.1.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/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.component.mjs +4 -2
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +15 -7
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +4 -5
- package/esm2022/lib/role/index.mjs +2 -1
- package/esm2022/lib/role/permission/permissions-management.component.mjs +27 -10
- package/esm2022/lib/role/role-form-button.component.mjs +44 -0
- package/esm2022/lib/role/role.module.mjs +10 -5
- package/esm2022/lib/role/roles-view-all.component.mjs +11 -8
- package/esm2022/lib/user/user-view.component.mjs +1 -1
- package/esm2022/lib/user/users-view-all.component.mjs +3 -3
- package/fesm2022/ngx-techlify-core.mjs +154 -89
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +2 -1
- package/lib/role/index.d.ts +1 -0
- package/lib/role/permission/permissions-management.component.d.ts +3 -1
- package/lib/role/role-form-button.component.d.ts +16 -0
- package/lib/role/role.module.d.ts +9 -8
- package/package.json +1 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Component, Input, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { RoleFormComponent } from './role-form.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/material/dialog";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
export class RoleFormButtonComponent {
|
|
9
|
+
constructor(dialog) {
|
|
10
|
+
this.dialog = dialog;
|
|
11
|
+
this.success = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
openForm() {
|
|
14
|
+
const dialogRef = this.dialog.open(RoleFormComponent, {
|
|
15
|
+
width: '500px',
|
|
16
|
+
data: {
|
|
17
|
+
role: this.role,
|
|
18
|
+
client_id: this.clientId,
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
dialogRef.afterClosed().subscribe(result => {
|
|
22
|
+
if (result) {
|
|
23
|
+
this.success.emit(result);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormButtonComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleFormButtonComponent, selector: "app-role-form-button", inputs: { config: "config", clientId: "clientId", isUpdate: "isUpdate", role: "role" }, outputs: { success: "success" }, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"openForm()\" *ngIf=\"!isUpdate\">\n <mat-icon>add</mat-icon>\n</button>\n\n<button mat-icon-button *ngIf=\"isUpdate\" (click)=\"openForm()\">\n <mat-icon>edit</mat-icon>\n</button>", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleFormButtonComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'app-role-form-button', template: "<button mat-icon-button color=\"primary\" (click)=\"openForm()\" *ngIf=\"!isUpdate\">\n <mat-icon>add</mat-icon>\n</button>\n\n<button mat-icon-button *ngIf=\"isUpdate\" (click)=\"openForm()\">\n <mat-icon>edit</mat-icon>\n</button>" }]
|
|
33
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }], propDecorators: { config: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], clientId: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], isUpdate: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], role: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], success: [{
|
|
42
|
+
type: Output
|
|
43
|
+
}] } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS1mb3JtLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUFRMUQsTUFBTSxPQUFPLHVCQUF1QjtJQU9oQyxZQUNZLE1BQWlCO1FBQWpCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFIbkIsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFNdkMsQ0FBQztJQUVELFFBQVE7UUFDSixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNsRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDRixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQzNCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBM0JRLHVCQUF1QjttR0FBdkIsdUJBQXVCLHFMQ1ZwQyxnUEFNUzs7NEZESUksdUJBQXVCO2tCQUpuQyxTQUFTOytCQUNJLHNCQUFzQjs4RUFJdkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUm9sZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL3JvbGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlVc2VyQ29uZmlnIH0gZnJvbSAnLi4vdXNlci1jb25maWcnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXJvbGUtZm9ybS1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9yb2xlLWZvcm0tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUm9sZUZvcm1CdXR0b25Db21wb25lbnQge1xuICAgIEBJbnB1dCgpIGNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuICAgIEBJbnB1dCgpIGNsaWVudElkOiBhbnk7XG4gICAgQElucHV0KCkgaXNVcGRhdGU6IGFueTtcbiAgICBASW5wdXQoKSByb2xlOiBhbnk7XG4gICAgQE91dHB1dCgpIHN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xuICAgICkge1xuXG4gICAgfVxuXG4gICAgb3BlbkZvcm0oKSB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUm9sZUZvcm1Db21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHJvbGU6IHRoaXMucm9sZSxcbiAgICAgICAgICAgICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5lbWl0KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuRm9ybSgpXCIgKm5nSWY9XCIhaXNVcGRhdGVcIj5cbiAgICA8bWF0LWljb24+YWRkPC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuXG48YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImlzVXBkYXRlXCIgKGNsaWNrKT1cIm9wZW5Gb3JtKClcIj5cbiAgICA8bWF0LWljb24+ZWRpdDwvbWF0LWljb24+XG48L2J1dHRvbj4iXX0=
|
|
@@ -11,19 +11,22 @@ import { InfiniteScrollModule } from 'ngx-infinite-scroll';
|
|
|
11
11
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
12
12
|
import { RoleViewComponent } from './role-view/role-view.component';
|
|
13
13
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
14
|
+
import { RoleFormButtonComponent } from './role-form-button.component';
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
export class RoleModule {
|
|
16
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
18
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, declarations: [RoleFormComponent,
|
|
18
19
|
RolesViewAllComponent,
|
|
19
|
-
RoleViewComponent
|
|
20
|
+
RoleViewComponent,
|
|
21
|
+
RoleFormButtonComponent], imports: [CommonModule,
|
|
20
22
|
RoleRoutingProvider,
|
|
21
23
|
MaterialModule,
|
|
22
24
|
FlexLayoutModule,
|
|
23
25
|
FormsModule,
|
|
24
26
|
ReactiveFormsModule,
|
|
25
27
|
InfiniteScrollModule,
|
|
26
|
-
MatProgressBarModule], exports: [RolesViewAllComponent
|
|
28
|
+
MatProgressBarModule], exports: [RolesViewAllComponent,
|
|
29
|
+
RoleFormButtonComponent] }); }
|
|
27
30
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleModule, imports: [CommonModule,
|
|
28
31
|
RoleRoutingProvider,
|
|
29
32
|
MaterialModule,
|
|
@@ -49,11 +52,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
49
52
|
declarations: [
|
|
50
53
|
RoleFormComponent,
|
|
51
54
|
RolesViewAllComponent,
|
|
52
|
-
RoleViewComponent
|
|
55
|
+
RoleViewComponent,
|
|
56
|
+
RoleFormButtonComponent
|
|
53
57
|
],
|
|
54
58
|
exports: [
|
|
55
|
-
RolesViewAllComponent
|
|
59
|
+
RolesViewAllComponent,
|
|
60
|
+
RoleFormButtonComponent
|
|
56
61
|
]
|
|
57
62
|
}]
|
|
58
63
|
}] });
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL3JvbGUvcm9sZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsZ0JBQWdCO0FBQ2hCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLHNCQUFzQjtBQUN0QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUF3QnZFLE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFWZixpQkFBaUI7WUFDakIscUJBQXFCO1lBQ3JCLGlCQUFpQjtZQUNqQix1QkFBdUIsYUFidkIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixjQUFjO1lBQ2QsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLG9CQUFvQixhQVNwQixxQkFBcUI7WUFDckIsdUJBQXVCO2dIQUdsQixVQUFVLFlBcEJmLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixvQkFBb0I7OzRGQWFmLFVBQVU7a0JBdEJ0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDdkI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixpQkFBaUI7d0JBQ2pCLHVCQUF1QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHFCQUFxQjt3QkFDckIsdUJBQXVCO3FCQUMxQjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKiBDb21wb25lbnRzICovXG5pbXBvcnQgeyBSb2xlc1ZpZXdBbGxDb21wb25lbnQgfSBmcm9tICcuL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudCc7XG5cbi8qIFJvdXRpbmcgUHJvdmlkZXIgKi9cbmltcG9ydCB7IFJvbGVSb3V0aW5nUHJvdmlkZXIgfSBmcm9tICcuL3JvbGUucm91dGVzJztcbmltcG9ydCB7IFJvbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9yb2xlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi4vbWF0ZXJpYWwubW9kdWxlJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb2xlVmlld0NvbXBvbmVudCB9IGZyb20gJy4vcm9sZS12aWV3L3JvbGUtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xuaW1wb3J0IHsgUm9sZUZvcm1CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL3JvbGUtZm9ybS1idXR0b24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm9sZVJvdXRpbmdQcm92aWRlcixcbiAgICAgICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBSb2xlRm9ybUNvbXBvbmVudCxcbiAgICAgICAgUm9sZXNWaWV3QWxsQ29tcG9uZW50LFxuICAgICAgICBSb2xlVmlld0NvbXBvbmVudCxcbiAgICAgICAgUm9sZUZvcm1CdXR0b25Db21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUm9sZXNWaWV3QWxsQ29tcG9uZW50LFxuICAgICAgICBSb2xlRm9ybUJ1dHRvbkNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUm9sZU1vZHVsZSB7IH1cbiJdfQ==
|
|
@@ -12,9 +12,11 @@ import * as i7 from "@angular/material/button";
|
|
|
12
12
|
import * as i8 from "@angular/material/icon";
|
|
13
13
|
import * as i9 from "@angular/material/table";
|
|
14
14
|
import * as i10 from "@angular/material/card";
|
|
15
|
-
import * as i11 from "@angular/flex-layout/
|
|
16
|
-
import * as i12 from "
|
|
17
|
-
import * as i13 from "
|
|
15
|
+
import * as i11 from "@angular/flex-layout/flex";
|
|
16
|
+
import * as i12 from "@angular/flex-layout/extended";
|
|
17
|
+
import * as i13 from "ngx-infinite-scroll";
|
|
18
|
+
import * as i14 from "@angular/material/progress-bar";
|
|
19
|
+
import * as i15 from "./role-form-button.component";
|
|
18
20
|
/**
|
|
19
21
|
* Component used to view a set of roles
|
|
20
22
|
*
|
|
@@ -75,7 +77,8 @@ export class RolesViewAllComponent {
|
|
|
75
77
|
loadData() {
|
|
76
78
|
this.isWorking = true;
|
|
77
79
|
const filters = {
|
|
78
|
-
withCount: 'permissions'
|
|
80
|
+
withCount: 'permissions',
|
|
81
|
+
sort_by: 'label|asc'
|
|
79
82
|
};
|
|
80
83
|
if (this.moduleCode) {
|
|
81
84
|
filters.module_code = this.moduleCode;
|
|
@@ -106,7 +109,7 @@ export class RolesViewAllComponent {
|
|
|
106
109
|
}
|
|
107
110
|
createOrModifyRole(role) {
|
|
108
111
|
const dialogRef = this.dialog.open(RoleFormComponent, {
|
|
109
|
-
width: '
|
|
112
|
+
width: '500px',
|
|
110
113
|
data: {
|
|
111
114
|
role,
|
|
112
115
|
client_id: this.clientId,
|
|
@@ -120,12 +123,12 @@ export class RolesViewAllComponent {
|
|
|
120
123
|
});
|
|
121
124
|
}
|
|
122
125
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RolesViewAllComponent, deps: [{ token: i1.HttpService }, { token: i2.ActivatedRoute }, { token: i1.CredentialsService }, { token: i3.UserConfigService }, { token: i4.MatDialog }, { token: i5.CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RolesViewAllComponent, selector: "roles-view-all", inputs: { clientId: "clientId" }, ngImport: i0, template: "<
|
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RolesViewAllComponent, selector: "roles-view-all", inputs: { clientId: "clientId" }, ngImport: i0, template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">\n Manage Roles\n </h5>\n <app-role-form-button (success)=\"reload()\" class=\"ml-1\" *ngIf=\"!config.roleConfig.disableAddRole\"\n [clientId]=\"clientId\"></app-role-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../users']\" *ngIf=\"!config.roleConfig.disableUsers\"\n class=\"ml-1\">\n <mat-icon>people</mat-icon>\n Users\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"!config.roleConfig.disablePermissions\" class=\"ml-1\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n </mat-card>\n\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"roles\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" aria-describedby=\"Roles\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Label Column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef> Label </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{element?.label}}</p>\n <span class=\"badge\"\n [ngClass]=\"{'badge-primary':element?.is_global, 'badge-secondary': !element?.is_global}\">\n {{element?.is_global ? 'App role' : 'Custom role'}}\n </span>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.description }} </td>\n </ng-container>\n\n <!-- Module Column -->\n <ng-container matColumnDef=\"module\">\n <th mat-header-cell *matHeaderCellDef> Module </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.module?.name}} </td>\n </ng-container>\n\n <!-- Editable Column -->\n <ng-container matColumnDef=\"editable\">\n <th mat-header-cell *matHeaderCellDef> Editable </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_editable\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_editable\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- GLobal Column -->\n <ng-container matColumnDef=\"is_global\">\n <th mat-header-cell *matHeaderCellDef> Global </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_global\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_global\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- Users Column -->\n <ng-container matColumnDef=\"users\">\n <th mat-header-cell *matHeaderCellDef> # Users </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.role_users_count}} </td>\n </ng-container>\n\n <!-- Permissions Column -->\n <ng-container matColumnDef=\"permissions\">\n <th mat-header-cell *matHeaderCellDef> Permissions </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.permissions_count}} </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let role\" class=\"text-muted\">\n <button mat-icon-button type=\"button\" [routerLink]=\"['../roles/', role?.id]\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n <app-role-form-button (success)=\"reload()\" [role]=\"role\" [isUpdate]=\"true\"\n *ngIf=\"(isAdminUser || role.is_editable) && currentUserService.hasPermission('role_update')\"\n [clientId]=\"clientId\"></app-role-form-button>\n\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n\n</div>", dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i9.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i9.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i9.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i9.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i9.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i9.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i9.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i9.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i9.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i10.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i10.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i11.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i12.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i13.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i15.RoleFormButtonComponent, selector: "app-role-form-button", inputs: ["config", "clientId", "isUpdate", "role"], outputs: ["success"] }] }); }
|
|
124
127
|
}
|
|
125
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RolesViewAllComponent, decorators: [{
|
|
126
129
|
type: Component,
|
|
127
|
-
args: [{ selector: 'roles-view-all', template: "<
|
|
130
|
+
args: [{ selector: 'roles-view-all', template: "<div fxLayout=\"column\" class=\"m-2\">\n <mat-card appearance=\"outlined\" fxLayoutAlign=\"start center\">\n <h5 class=\"m-0\">\n Manage Roles\n </h5>\n <app-role-form-button (success)=\"reload()\" class=\"ml-1\" *ngIf=\"!config.roleConfig.disableAddRole\"\n [clientId]=\"clientId\"></app-role-form-button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../users']\" *ngIf=\"!config.roleConfig.disableUsers\"\n class=\"ml-1\">\n <mat-icon>people</mat-icon>\n Users\n </button>\n <button mat-raised-button type=\"button\" [routerLink]=\"['../role-permissions']\"\n *ngIf=\"!config.roleConfig.disablePermissions\" class=\"ml-1\">\n <mat-icon>lock</mat-icon>\n Role Permissions\n </button>\n </mat-card>\n\n <mat-card appearance=\"outlined\" class=\"mt-2 p-0\">\n <mat-card-content>\n <table mat-table [dataSource]=\"roles\" class=\"w-100\" infiniteScroll [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" aria-describedby=\"Roles\">\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let element; let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <!-- Label Column -->\n <ng-container matColumnDef=\"label\">\n <th mat-header-cell *matHeaderCellDef> Label </th>\n <td mat-cell *matCellDef=\"let element\">\n <p class=\"mb-0\">{{element?.label}}</p>\n <span class=\"badge\"\n [ngClass]=\"{'badge-primary':element?.is_global, 'badge-secondary': !element?.is_global}\">\n {{element?.is_global ? 'App role' : 'Custom role'}}\n </span>\n </td>\n </ng-container>\n\n <!-- Description Column -->\n <ng-container matColumnDef=\"description\">\n <th mat-header-cell *matHeaderCellDef> Description </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.description }} </td>\n </ng-container>\n\n <!-- Module Column -->\n <ng-container matColumnDef=\"module\">\n <th mat-header-cell *matHeaderCellDef> Module </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.module?.name}} </td>\n </ng-container>\n\n <!-- Editable Column -->\n <ng-container matColumnDef=\"editable\">\n <th mat-header-cell *matHeaderCellDef> Editable </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_editable\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_editable\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- GLobal Column -->\n <ng-container matColumnDef=\"is_global\">\n <th mat-header-cell *matHeaderCellDef> Global </th>\n <td mat-cell *matCellDef=\"let element\">\n <span *ngIf=\"element?.is_global\" class=\"btn btn-success btn-xs\">Yes</span>\n <span *ngIf=\"!element?.is_global\" class=\"btn btn-danger btn-xs\">No</span>\n </td>\n </ng-container>\n\n <!-- Users Column -->\n <ng-container matColumnDef=\"users\">\n <th mat-header-cell *matHeaderCellDef> # Users </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.role_users_count}} </td>\n </ng-container>\n\n <!-- Permissions Column -->\n <ng-container matColumnDef=\"permissions\">\n <th mat-header-cell *matHeaderCellDef> Permissions </th>\n <td mat-cell *matCellDef=\"let element\"> {{element?.permissions_count}} </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let role\" class=\"text-muted\">\n <button mat-icon-button type=\"button\" [routerLink]=\"['../roles/', role?.id]\">\n <mat-icon>remove_red_eye</mat-icon>\n </button>\n <app-role-form-button (success)=\"reload()\" [role]=\"role\" [isUpdate]=\"true\"\n *ngIf=\"(isAdminUser || role.is_editable) && currentUserService.hasPermission('role_update')\"\n [clientId]=\"clientId\"></app-role-form-button>\n\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar *ngIf=\"isWorking\" mode=\"indeterminate\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n\n</div>" }]
|
|
128
131
|
}], ctorParameters: () => [{ type: i1.HttpService }, { type: i2.ActivatedRoute }, { type: i1.CredentialsService }, { type: i3.UserConfigService }, { type: i4.MatDialog }, { type: i5.CurrentUserService }], propDecorators: { clientId: [{
|
|
129
132
|
type: Input
|
|
130
133
|
}] } });
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtdmlldy1hbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yb2xlL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9yb2xlcy12aWV3LWFsbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBSTFEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQWtCaEMsWUFDVSxJQUFpQixFQUNqQixLQUFxQixFQUNyQixrQkFBc0MsRUFDdkMsaUJBQW9DLEVBQ25DLE1BQWlCLEVBQ2xCLGtCQUFzQztRQUxyQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNuQyxXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2xCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUF2Qi9DLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFbkIscUJBQWdCLEdBQWE7WUFDM0IsT0FBTztZQUNQLE9BQU87WUFDUCxhQUFhO1lBQ2IsUUFBUTtZQUNSLE9BQU87WUFDUCxhQUFhO1lBQ2IsU0FBUztTQUNWLENBQUM7UUFDRixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVloQixJQUFJLENBQUMsVUFB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QUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVU7UUFDM0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7WUFDcEQsS0FBSyxFQUFFLE9BQU87WUFDZCxJQUFJLEVBQUU7Z0JBQ0osSUFBSTtnQkFDSixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3hCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVTthQUM3QjtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDekMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDWCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0FqSFUscUJBQXFCO21HQUFyQixxQkFBcUIsd0ZDdEJsQyxxcUpBaUhBOzs0RkQzRmEscUJBQXFCO2tCQUpqQyxTQUFTOytCQUNFLGdCQUFnQjt1T0FrQmpCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZTpjb21wb25lbnQtc2VsZWN0b3IgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb2xlIH0gZnJvbSAnLi9yb2xlLm1vZGVsJztcbmltcG9ydCB7IE11bHRpVXNlckNvbmZpZyB9IGZyb20gJy4uL3VzZXItY29uZmlnJztcbmltcG9ydCB7IFVzZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlci1jb25maWcnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFJvbGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9yb2xlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSwgSHR0cFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlJztcbmltcG9ydCB7IEN1cnJlbnRVc2VyU2VydmljZSB9IGZyb20gJy4uL3VzZXInO1xuXG4vKipcbiAqIENvbXBvbmVudCB1c2VkIHRvIHZpZXcgYSBzZXQgb2Ygcm9sZXNcbiAqXG4gKiBAYXV0aG9yIEpvc2h1YSBLaXNzb29uXG4gKiBAc2luY2UgMjAxNjA4MThcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sZXMtdmlldy1hbGwnLFxuICB0ZW1wbGF0ZVVybDogJy4vcm9sZXMtdmlldy1hbGwuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFJvbGVzVmlld0FsbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJvbGVzOiBSb2xlW10gPSBbXTtcbiAgbW9kdWxlQ29kZTogc3RyaW5nO1xuICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdsYWJlbCcsXG4gICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAnbW9kdWxlJyxcbiAgICAndXNlcnMnLFxuICAgICdwZXJtaXNzaW9ucycsXG4gICAgJ2FjdGlvbnMnXG4gIF07XG4gIHRvdGFsSXRlbXMgPSAwO1xuICBjdXJyZW50UGFnZSA9IDE7XG4gIGlzV29ya2luZyA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGllbnRJZDogbnVtYmVyO1xuICBjb25maWc6IE11bHRpVXNlckNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbHNTZXJ2aWNlOiBDcmVkZW50aWFsc1NlcnZpY2UsXG4gICAgcHVibGljIHVzZXJDb25maWdTZXJ2aWNlOiBVc2VyQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHB1YmxpYyBjdXJyZW50VXNlclNlcnZpY2U6IEN1cnJlbnRVc2VyU2VydmljZVxuICApIHtcbiAgICB0aGlzLm1vZHVsZUNvZGUgPSBudWxsO1xuICAgIHRoaXMuY29uZmlnID0gdGhpcy51c2VyQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgfVxuXG4gIGdldCBpc0FkbWluVXNlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuY3JlZGVudGlhbHNTZXJ2aWNlLmNyZWRlbnRpYWxzPy51c2VyPy51c2VyX3R5cGVfaWQgPT09IDEpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBpZiAocGFyYW1zLm1vZHVsZV9jb2RlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5tb2R1bGVDb2RlID0gcGFyYW1zLm1vZHVsZV9jb2RlO1xuICAgICAgfVxuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaXNBZG1pblVzZXIpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IFtcbiAgICAgICAgJ2luZGV4JyxcbiAgICAgICAgJ2xhYmVsJyxcbiAgICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICAgJ21vZHVsZScsXG4gICAgICAgICdlZGl0YWJsZScsXG4gICAgICAgICdpc19nbG9iYWwnLFxuICAgICAgICAndXNlcnMnLFxuICAgICAgICAnYWN0aW9ucycsXG4gICAgICAgICdwZXJtaXNzaW9ucydcbiAgICAgIF07XG4gICAgfVxuXG4gICAgaWYgKCEodGhpcy5jb25maWc/LnJvbGVDb25maWc/LnNob3dNb2R1bGVTZWxlY3Rvck9uRm9ybSkpIHtcbiAgICAgIHRoaXMuZGlzcGxheWVkQ29sdW1ucyA9IHRoaXMuZGlzcGxheWVkQ29sdW1ucy5maWx0ZXIoeCA9PiB4ICE9PSAnbW9kdWxlJyk7XG4gICAgfVxuICB9XG5cbiAgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIGNvbnN0IGZpbHRlcnM6IGFueSA9IHtcbiAgICAgIHdpdGhDb3VudDogJ3Blcm1pc3Npb25zJ1xuICAgIH07XG4gICAgaWYgKHRoaXMubW9kdWxlQ29kZSkge1xuICAgICAgZmlsdGVycy5tb2R1bGVfY29kZSA9IHRoaXMubW9kdWxlQ29kZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY2xpZW50SWQpIHtcbiAgICAgIGZpbHRlcnMuY2xpZW50X2lkID0gdGhpcy5jbGllbnRJZDtcbiAgICB9XG4gICAgdGhpcy5odHRwLmdldCgnYXBpL3JvbGVzJywgeyBwYXJhbXM6IGZpbHRlcnMgfSkudG9Qcm9taXNlKCkudGhlbihcbiAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXMudG90YWw7XG4gICAgICAgIHRoaXMucm9sZXMgPSB0aGlzLnJvbGVzLmNvbmNhdChyZXMuZGF0YSk7XG4gICAgICB9LCAoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvbGVzID0gW107XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7XG4gICAgaWYgKCF0aGlzLmlzV29ya2luZykge1xuICAgICAgdGhpcy5sb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2Nyb2xsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcgJiYgdGhpcy50b3RhbEl0ZW1zID4gdGhpcy5yb2xlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhZ2UgKz0gMTtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBjcmVhdGVPck1vZGlmeVJvbGUocm9sZT86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUm9sZUZvcm1Db21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICByb2xlLFxuICAgICAgICBjbGllbnRfaWQ6IHRoaXMuY2xpZW50SWQsXG4gICAgICAgIG1vZHVsZV9jb2RlOiB0aGlzLm1vZHVsZUNvZGVcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cImNvbC1zbS0xMiBteS00XCI+XG4gIDxoMyBjbGFzcz1cInBhZ2UtdGl0bGUgdGV4dC1jZW50ZXJcIj5cbiAgICBNYW5hZ2UgUm9sZXNcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJjcmVhdGVPck1vZGlmeVJvbGUoKVwiIGNsYXNzPVwibXItMVwiXG4gICAgICAqbmdJZj1cIiFjb25maWcucm9sZUNvbmZpZy5kaXNhYmxlQWRkUm9sZVwiPlxuICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XG4gICAgICBOZXcgUm9sZVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi91c2VycyddXCIgKm5nSWY9XCIhY29uZmlnLnJvbGVDb25maWcuZGlzYWJsZVVzZXJzXCJcbiAgICAgIGNsYXNzPVwibXItMVwiPlxuICAgICAgPG1hdC1pY29uPnBlb3BsZTwvbWF0LWljb24+XG4gICAgICBVc2Vyc1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vcm9sZS1wZXJtaXNzaW9ucyddXCJcbiAgICAgICpuZ0lmPVwiIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVQZXJtaXNzaW9uc1wiIGNsYXNzPVwibXItMVwiPlxuICAgICAgPG1hdC1pY29uPmxvY2s8L21hdC1pY29uPlxuICAgICAgUm9sZSBQZXJtaXNzaW9uc1xuICAgIDwvYnV0dG9uPlxuICA8L2gzPlxuXG4gIDxtYXQtY2FyZCBjbGFzcz1cIm10LTIgcC0wXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJvbGVzXCJcbiAgICAgICAgICAgICBjbGFzcz1cInctMTAwXCJcbiAgICAgICAgICAgICBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgICAgICAgICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiXG4gICAgICAgICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIlxuICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJSb2xlc1wiPlxuXG4gICAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50OyBsZXQgaSA9IGluZGV4XCI+IHt7IGkrMSB9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIExhYmVsIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJsYWJlbFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IExhYmVsIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7ZWxlbWVudD8ubGFiZWx9fTwvcD5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydiYWRnZS1wcmltYXJ5JzplbGVtZW50Py5pc19nbG9iYWwsICdiYWRnZS1zZWNvbmRhcnknOiAhZWxlbWVudD8uaXNfZ2xvYmFsfVwiPlxuICAgICAgICAgICAgICB7e2VsZW1lbnQ/LmlzX2dsb2JhbCA/ICdBcHAgcm9sZScgOiAnQ3VzdG9tIHJvbGUnfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIERlc2NyaXB0aW9uIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IERlc2NyaXB0aW9uIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5kZXNjcmlwdGlvbiB9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIE1vZHVsZSBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibW9kdWxlXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTW9kdWxlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5tb2R1bGU/Lm5hbWV9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEVkaXRhYmxlIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJlZGl0YWJsZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEVkaXRhYmxlIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZWxlbWVudD8uaXNfZWRpdGFibGVcIiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4teHNcIj5ZZXM8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFlbGVtZW50Py5pc19lZGl0YWJsZVwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXhzXCI+Tm88L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBHTG9iYWwgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImlzX2dsb2JhbFwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEdsb2JhbCA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVsZW1lbnQ/LmlzX2dsb2JhbFwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIGJ0bi14c1wiPlllczwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWVsZW1lbnQ/LmlzX2dsb2JhbFwiIGNsYXNzPVwiYnRuIGJ0bi1kYW5nZXIgYnRuLXhzXCI+Tm88L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBVc2VycyBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlcnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIFVzZXJzIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50Py5yb2xlX3VzZXJzX2NvdW50fX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBQZXJtaXNzaW9ucyBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwicGVybWlzc2lvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBQZXJtaXNzaW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ucGVybWlzc2lvbnNfY291bnR9fSA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8IS0tIEFjdGlvbnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBBY3Rpb25zIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IHJvbGVcIiBjbGFzcz1cInRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBbcm91dGVyTGlua109XCJbJy4uL3JvbGVzLycsIHJvbGU/LmlkXVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+cmVtb3ZlX3JlZF9leWU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIihpc0FkbWluVXNlciB8fCByb2xlLmlzX2VkaXRhYmxlKSAmJiBjdXJyZW50VXNlclNlcnZpY2UuaGFzUGVybWlzc2lvbigncm9sZV91cGRhdGUnKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVPck1vZGlmeVJvbGUocm9sZSlcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmVkaXQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuPC9zZWN0aW9uPlxuIl19
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZXMtdmlldy1hbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9yb2xlL3JvbGVzLXZpZXctYWxsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvcm9sZS9yb2xlcy12aWV3LWFsbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJMUQ7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8scUJBQXFCO0lBa0JoQyxZQUNVLElBQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLGtCQUFzQyxFQUN2QyxpQkFBb0MsRUFDbkMsTUFBaUIsRUFDbEIsa0JBQXNDO1FBTHJDLFNBQUksR0FBSixJQUFJLENBQWE7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN2QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDbEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXZCL0MsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQixxQkFBZ0IsR0FBYTtZQUMzQixPQUFPO1lBQ1AsT0FBTztZQUNQLGFBQWE7WUFDYixRQUFRO1lBQ1IsT0FBTztZQUNQLGFBQWE7WUFDYixTQUFTO1NBQ1YsQ0FBQztRQUNGLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBWWhCLElBQUksQ0FBQyxV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WUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBVTtRQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUNwRCxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDSixJQUFJO2dCQUNKLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDeEIsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzdCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQWxIVSxxQkFBcUI7bUdBQXJCLHFCQUFxQix3RkN0QmxDLHFwSkF5R007OzRGRG5GTyxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsZ0JBQWdCO3VPQWtCakIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlOmNvbXBvbmVudC1zZWxlY3RvciAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuL3JvbGUubW9kZWwnO1xuaW1wb3J0IHsgTXVsdGlVc2VyQ29uZmlnIH0gZnJvbSAnLi4vdXNlci1jb25maWcnO1xuaW1wb3J0IHsgVXNlckNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi91c2VyLWNvbmZpZyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgUm9sZUZvcm1Db21wb25lbnQgfSBmcm9tICcuL3JvbGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlZGVudGlhbHNTZXJ2aWNlLCBIdHRwU2VydmljZSB9IGZyb20gJy4uL2NvcmUnO1xuaW1wb3J0IHsgQ3VycmVudFVzZXJTZXJ2aWNlIH0gZnJvbSAnLi4vdXNlcic7XG5cbi8qKlxuICogQ29tcG9uZW50IHVzZWQgdG8gdmlldyBhIHNldCBvZiByb2xlc1xuICpcbiAqIEBhdXRob3IgSm9zaHVhIEtpc3Nvb25cbiAqIEBzaW5jZSAyMDE2MDgxOFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyb2xlcy12aWV3LWFsbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yb2xlcy12aWV3LWFsbC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUm9sZXNWaWV3QWxsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcm9sZXM6IFJvbGVbXSA9IFtdO1xuICBtb2R1bGVDb2RlOiBzdHJpbmc7XG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1xuICAgICdpbmRleCcsXG4gICAgJ2xhYmVsJyxcbiAgICAnZGVzY3JpcHRpb24nLFxuICAgICdtb2R1bGUnLFxuICAgICd1c2VycycsXG4gICAgJ3Blcm1pc3Npb25zJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcbiAgdG90YWxJdGVtcyA9IDA7XG4gIGN1cnJlbnRQYWdlID0gMTtcbiAgaXNXb3JraW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsaWVudElkOiBudW1iZXI7XG4gIGNvbmZpZzogTXVsdGlVc2VyQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaHR0cDogSHR0cFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBjcmVkZW50aWFsc1NlcnZpY2U6IENyZWRlbnRpYWxzU2VydmljZSxcbiAgICBwdWJsaWMgdXNlckNvbmZpZ1NlcnZpY2U6IFVzZXJDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHVibGljIGN1cnJlbnRVc2VyU2VydmljZTogQ3VycmVudFVzZXJTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMubW9kdWxlQ29kZSA9IG51bGw7XG4gICAgdGhpcy5jb25maWcgPSB0aGlzLnVzZXJDb25maWdTZXJ2aWNlLmdldENvbmZpZygpO1xuICB9XG5cbiAgZ2V0IGlzQWRtaW5Vc2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5jcmVkZW50aWFsc1NlcnZpY2UuY3JlZGVudGlhbHM/LnVzZXI/LnVzZXJfdHlwZV9pZCA9PT0gMSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcbiAgICAgIGlmIChwYXJhbXMubW9kdWxlX2NvZGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLm1vZHVsZUNvZGUgPSBwYXJhbXMubW9kdWxlX2NvZGU7XG4gICAgICB9XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc0FkbWluVXNlcikge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICAgICAnaW5kZXgnLFxuICAgICAgICAnbGFiZWwnLFxuICAgICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgJ2VkaXRhYmxlJyxcbiAgICAgICAgJ2lzX2dsb2JhbCcsXG4gICAgICAgICd1c2VycycsXG4gICAgICAgICdhY3Rpb25zJyxcbiAgICAgICAgJ3Blcm1pc3Npb25zJ1xuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAoISh0aGlzLmNvbmZpZz8ucm9sZUNvbmZpZz8uc2hvd01vZHVsZVNlbGVjdG9yT25Gb3JtKSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdtb2R1bGUnKTtcbiAgICB9XG4gIH1cblxuICBsb2FkRGF0YSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzV29ya2luZyA9IHRydWU7XG4gICAgY29uc3QgZmlsdGVyczogYW55ID0ge1xuICAgICAgd2l0aENvdW50OiAncGVybWlzc2lvbnMnLFxuICAgICAgc29ydF9ieTogJ2xhYmVsfGFzYydcbiAgICB9O1xuICAgIGlmICh0aGlzLm1vZHVsZUNvZGUpIHtcbiAgICAgIGZpbHRlcnMubW9kdWxlX2NvZGUgPSB0aGlzLm1vZHVsZUNvZGU7XG4gICAgfVxuICAgIGlmICh0aGlzLmNsaWVudElkKSB7XG4gICAgICBmaWx0ZXJzLmNsaWVudF9pZCA9IHRoaXMuY2xpZW50SWQ7XG4gICAgfVxuICAgIHRoaXMuaHR0cC5nZXQoJ2FwaS9yb2xlcycsIHsgcGFyYW1zOiBmaWx0ZXJzIH0pLnRvUHJvbWlzZSgpLnRoZW4oXG4gICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5pc1dvcmtpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzLnRvdGFsO1xuICAgICAgICB0aGlzLnJvbGVzID0gdGhpcy5yb2xlcy5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgfSwgKCkgPT4ge1xuICAgICAgICB0aGlzLmlzV29ya2luZyA9IGZhbHNlO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICByZWxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5yb2xlcyA9IFtdO1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSAxO1xuICAgIGlmICghdGhpcy5pc1dvcmtpbmcpIHtcbiAgICAgIHRoaXMubG9hZERhdGEoKTtcbiAgICB9XG4gIH1cblxuICBvblNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNXb3JraW5nICYmIHRoaXMudG90YWxJdGVtcyA+IHRoaXMucm9sZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmN1cnJlbnRQYWdlICs9IDE7XG4gICAgICB0aGlzLmxvYWREYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlT3JNb2RpZnlSb2xlKHJvbGU/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJvbGVGb3JtQ29tcG9uZW50LCB7XG4gICAgICB3aWR0aDogJzUwMHB4JyxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcm9sZSxcbiAgICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAgICAgICBtb2R1bGVfY29kZTogdGhpcy5tb2R1bGVDb2RlXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGNsYXNzPVwibS0yXCI+XG4gIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibS0wXCI+XG4gICAgICBNYW5hZ2UgUm9sZXNcbiAgICA8L2g1PlxuICAgIDxhcHAtcm9sZS1mb3JtLWJ1dHRvbiAoc3VjY2Vzcyk9XCJyZWxvYWQoKVwiIGNsYXNzPVwibWwtMVwiICpuZ0lmPVwiIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVBZGRSb2xlXCJcbiAgICAgIFtjbGllbnRJZF09XCJjbGllbnRJZFwiPjwvYXBwLXJvbGUtZm9ybS1idXR0b24+XG4gICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi91c2VycyddXCIgKm5nSWY9XCIhY29uZmlnLnJvbGVDb25maWcuZGlzYWJsZVVzZXJzXCJcbiAgICAgIGNsYXNzPVwibWwtMVwiPlxuICAgICAgPG1hdC1pY29uPnBlb3BsZTwvbWF0LWljb24+XG4gICAgICBVc2Vyc1xuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIFtyb3V0ZXJMaW5rXT1cIlsnLi4vcm9sZS1wZXJtaXNzaW9ucyddXCJcbiAgICAgICpuZ0lmPVwiIWNvbmZpZy5yb2xlQ29uZmlnLmRpc2FibGVQZXJtaXNzaW9uc1wiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgPG1hdC1pY29uPmxvY2s8L21hdC1pY29uPlxuICAgICAgUm9sZSBQZXJtaXNzaW9uc1xuICAgIDwvYnV0dG9uPlxuICA8L21hdC1jYXJkPlxuXG4gIDxtYXQtY2FyZCBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cIm10LTIgcC0wXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cInJvbGVzXCIgY2xhc3M9XCJ3LTEwMFwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIlxuICAgICAgICBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgYXJpYS1kZXNjcmliZWRieT1cIlJvbGVzXCI+XG5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnQ7IGxldCBpID0gaW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gTGFiZWwgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImxhYmVsXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTGFiZWwgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+e3tlbGVtZW50Py5sYWJlbH19PC9wPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYmFkZ2UtcHJpbWFyeSc6ZWxlbWVudD8uaXNfZ2xvYmFsLCAnYmFkZ2Utc2Vjb25kYXJ5JzogIWVsZW1lbnQ/LmlzX2dsb2JhbH1cIj5cbiAgICAgICAgICAgICAge3tlbGVtZW50Py5pc19nbG9iYWwgPyAnQXBwIHJvbGUnIDogJ0N1c3RvbSByb2xlJ319XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBEZXNjcmlwdGlvbiBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXNjcmlwdGlvbiA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8uZGVzY3JpcHRpb24gfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBNb2R1bGUgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cIm1vZHVsZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IE1vZHVsZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ubW9kdWxlPy5uYW1lfX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBFZGl0YWJsZSBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZWRpdGFibGVcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBFZGl0YWJsZSA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImVsZW1lbnQ/LmlzX2VkaXRhYmxlXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3MgYnRuLXhzXCI+WWVzPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZWxlbWVudD8uaXNfZWRpdGFibGVcIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi14c1wiPk5vPC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gR0xvYmFsIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpc19nbG9iYWxcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBHbG9iYWwgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJlbGVtZW50Py5pc19nbG9iYWxcIiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyBidG4teHNcIj5ZZXM8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFlbGVtZW50Py5pc19nbG9iYWxcIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyIGJ0bi14c1wiPk5vPC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gVXNlcnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXJzXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyBVc2VycyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+IHt7ZWxlbWVudD8ucm9sZV91c2Vyc19jb3VudH19IDwvdGQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwhLS0gUGVybWlzc2lvbnMgQ29sdW1uIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInBlcm1pc3Npb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gUGVybWlzc2lvbnMgPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQ/LnBlcm1pc3Npb25zX2NvdW50fX0gPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCByb2xlXCIgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW3JvdXRlckxpbmtdPVwiWycuLi9yb2xlcy8nLCByb2xlPy5pZF1cIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPnJlbW92ZV9yZWRfZXllPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGFwcC1yb2xlLWZvcm0tYnV0dG9uIChzdWNjZXNzKT1cInJlbG9hZCgpXCIgW3JvbGVdPVwicm9sZVwiIFtpc1VwZGF0ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIoaXNBZG1pblVzZXIgfHwgcm9sZS5pc19lZGl0YWJsZSkgJiYgY3VycmVudFVzZXJTZXJ2aWNlLmhhc1Blcm1pc3Npb24oJ3JvbGVfdXBkYXRlJylcIlxuICAgICAgICAgICAgICBbY2xpZW50SWRdPVwiY2xpZW50SWRcIj48L2FwcC1yb2xlLWZvcm0tYnV0dG9uPlxuXG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cImlzV29ya2luZ1wiIG1vZGU9XCJpbmRldGVybWluYXRlXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgPC9tYXQtY2FyZD5cblxuPC9kaXY+Il19
|
|
@@ -63,7 +63,7 @@ export class UserViewComponent {
|
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserViewComponent, deps: [{ token: i1.UserService }, { token: i2.ActivatedRoute }, { token: i3.ConfigService }, { token: i3.HttpService }, { token: i4.MatDialog }, { token: i5.CurrentUserService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserViewComponent, selector: "user-view", ngImport: i0, template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <button type=\"button\" mat-icon-button (click)=\"editUser(user)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\" *ngIf=\"currentUser?.user_type_id === UserTypeEnum.ADMIN\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>\n", styles: [".user-node .page-title{margin:20px 0 0}.user-node #information-tabs-wrapper .nav-pills .nav-link{border-radius:0;border:1px solid #007bff;border-right:none;width:190px}.user-node #information-tabs-wrapper .tab-content{padding:20px;border:1px solid #007bff;width:calc(100vw - 200px)}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.LoginHistoryForUserComponent, selector: "app-login-history-for-user", inputs: ["userId"] }, { kind: "component", type: i10.AuditLogListComponent, selector: "app-audit-log-list", inputs: ["objectId", "objectType", "showFilter", "showExportButtons", "userId", "disableFilterPatchingFromUrl"] }, { kind: "directive", type: i11.MatTabContent, selector: "[matTabContent]" }, { kind: "component", type: i11.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i12.UserClientsListComponent, selector: "app-user-clients-list", inputs: ["user"] }, { kind: "component", type: i13.UserSessionsComponent, selector: "app-user-sessions", inputs: ["user"] }] }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UserViewComponent, selector: "user-view", ngImport: i0, template: "<div class=\"mat-typography m-4\" *ngIf=\"user\">\n <h1 class=\"text-center\">{{user.name}}</h1>\n\n <div class=\"border\">\n <mat-tab-group>\n <mat-tab label=\"Basic Information\">\n <ng-template matTabContent>\n <div class=\"row m-4\">\n <div class=\"col-4\">\n <div class=\"bordered-section\">\n <div class=\"row\" *ngIf=\"currentUser?.user_type_id != 3\">\n <button type=\"button\" mat-icon-button (click)=\"editUser(user)\">\n <mat-icon>edit</mat-icon>\n </button>\n <button mat-stroked-button color=\"warn\" *ngIf=\"!user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('enable')\">\n Enable\n </button>\n <button mat-stroked-button color=\"primary\" *ngIf=\"user.user_client?.is_enabled\"\n (click)=\"enableOrDisableUser('disable')\">Disable</button>\n </div>\n\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Name:</label>\n <div class=\"col-sm-8\">{{user?.name}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Email:</label>\n <div class=\"col-sm-8\">{{user?.email}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Type:</label>\n <div class=\"col-sm-8\">{{user?.type?.title}}</div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Status:</label>\n <div class=\"col-sm-8\">{{user?.user_client?.is_enabled ? 'Enabled' : 'Disabled' }}\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Role:</label>\n <div class=\"col-sm-8\">\n <span *ngFor=\"let role of user?.roles\">\n <button class=\"btn btn-outline-dark btn-xs mb-2\">{{role?.label}}</button>\n \n </span>\n </div>\n </div>\n <div class=\"row\">\n <label class=\"col-sm-4 control-label\">Signature:</label>\n <div class=\"col-sm-8\">\n <span *ngIf=\"user?.signature\">\n <img src=\"{{user?.signature_url}}\" alt=\"\" width=\"250px\" />\n </span>\n <span *ngIf=\"!user?.signature\">\n No Signature Added\n </span>\n\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Login History\">\n <ng-template matTabContent>\n <app-login-history-for-user [userId]=\"user?.id\"></app-login-history-for-user>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Activity Logs\">\n <ng-template matTabContent>\n <app-audit-log-list objectType=\"User\" [objectId]=\"user?.id\" [showExportButtons]=\"false\">\n </app-audit-log-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Tenants\" *ngIf=\"currentUser?.user_type_id === UserTypeEnum.ADMIN\">\n <ng-template matTabContent>\n <app-user-clients-list [user]=\"user\"></app-user-clients-list>\n </ng-template>\n </mat-tab>\n <mat-tab label=\"Sessions\">\n <ng-template matTabContent>\n <app-user-sessions [user]=\"user\"></app-user-sessions>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </div>\n\n</div>\n", styles: [".user-node .page-title{margin:20px 0 0}.user-node #information-tabs-wrapper .nav-pills .nav-link{border-radius:0;border:1px solid #007bff;border-right:none;width:190px}.user-node #information-tabs-wrapper .tab-content{padding:20px;border:1px solid #007bff;width:calc(100vw - 200px)}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.LoginHistoryForUserComponent, selector: "app-login-history-for-user", inputs: ["userId"] }, { kind: "component", type: i10.AuditLogListComponent, selector: "app-audit-log-list", inputs: ["objectId", "objectType", "showFilter", "showExportButtons", "userId", "disableFilterPatchingFromUrl", "scrollContainer"] }, { kind: "directive", type: i11.MatTabContent, selector: "[matTabContent]" }, { kind: "component", type: i11.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i11.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i12.UserClientsListComponent, selector: "app-user-clients-list", inputs: ["user"] }, { kind: "component", type: i13.UserSessionsComponent, selector: "app-user-sessions", inputs: ["user"] }] }); }
|
|
67
67
|
}
|
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserViewComponent, decorators: [{
|
|
69
69
|
type: Component,
|