@lowcodeunit/applications-flow-common 1.37.153-team-mgmt → 1.37.155-team-mgmt
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/esm2020/lib/dialogs/add-team-member-dialog/add-team-member-dialog.component.mjs +48 -7
- package/esm2020/lib/elements/team-member-card/team-member-card.component.mjs +5 -5
- package/fesm2015/lowcodeunit-applications-flow-common.mjs +41 -8
- package/fesm2015/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/fesm2020/lowcodeunit-applications-flow-common.mjs +39 -8
- package/fesm2020/lowcodeunit-applications-flow-common.mjs.map +1 -1
- package/lib/dialogs/add-team-member-dialog/add-team-member-dialog.component.d.ts +11 -1
- package/package.json +1 -1
@@ -1,28 +1,69 @@
|
|
1
1
|
import { Component, Inject } from '@angular/core';
|
2
|
+
import { FormControl, FormGroup, Validators, } from '@angular/forms';
|
2
3
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "@angular/material/dialog";
|
5
6
|
import * as i2 from "../../services/eac.service";
|
6
7
|
import * as i3 from "@angular/material/snack-bar";
|
8
|
+
import * as i4 from "@angular/forms";
|
9
|
+
import * as i5 from "@angular/material/button";
|
10
|
+
import * as i6 from "@angular/material/icon";
|
11
|
+
import * as i7 from "@angular/material/form-field";
|
12
|
+
import * as i8 from "@angular/material/select";
|
13
|
+
import * as i9 from "@angular/material/core";
|
14
|
+
import * as i10 from "@angular/flex-layout/flex";
|
15
|
+
import * as i11 from "@angular/material/input";
|
16
|
+
import * as i12 from "@angular/common";
|
7
17
|
export class AddTeamMemberDialogComponent {
|
8
|
-
constructor(dialogRef, eacSvc, data, snackBar) {
|
18
|
+
constructor(dialogRef, eacSvc, data, snackBar, formBuilder) {
|
9
19
|
this.dialogRef = dialogRef;
|
10
20
|
this.eacSvc = eacSvc;
|
11
21
|
this.data = data;
|
12
22
|
this.snackBar = snackBar;
|
23
|
+
this.formBuilder = formBuilder;
|
24
|
+
}
|
25
|
+
get Email() {
|
26
|
+
return this.AddTeamMemberFormGroup?.controls.email;
|
27
|
+
}
|
28
|
+
get Permission() {
|
29
|
+
return this.AddTeamMemberFormGroup?.controls.permission;
|
30
|
+
}
|
31
|
+
ngOnInit() {
|
32
|
+
this.BuildForm();
|
33
|
+
this.Enterprise = this.data.enterprise;
|
34
|
+
console.log('ent: ', this.Enterprise);
|
35
|
+
}
|
36
|
+
AddMember() {
|
37
|
+
console.log('ent lookup: ', this.Enterprise.ParentEnterpriseLookup);
|
38
|
+
console.log('invited: ', this.Email.value);
|
39
|
+
console.log('permission: ', this.Permission.value);
|
40
|
+
}
|
41
|
+
BuildForm() {
|
42
|
+
this.AddTeamMemberFormGroup = new FormGroup({
|
43
|
+
email: new FormControl('', [Validators.required, Validators.email]),
|
44
|
+
permission: new FormControl('', [Validators.required]),
|
45
|
+
});
|
46
|
+
}
|
47
|
+
Cancel() {
|
48
|
+
this.CloseDialog();
|
49
|
+
}
|
50
|
+
GetErrorMessage() {
|
51
|
+
if (this.Email.hasError('required')) {
|
52
|
+
return 'You must enter a value';
|
53
|
+
}
|
54
|
+
return this.Email.hasError('email') ? 'Not a valid email' : '';
|
13
55
|
}
|
14
|
-
ngOnInit() { }
|
15
56
|
CloseDialog() {
|
16
57
|
this.dialogRef.close();
|
17
58
|
}
|
18
59
|
}
|
19
|
-
AddTeamMemberDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AddTeamMemberDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.EaCService }, { token: MAT_DIALOG_DATA }, { token: i3.MatSnackBar }], target: i0.ɵɵFactoryTarget.Component });
|
20
|
-
AddTeamMemberDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: AddTeamMemberDialogComponent, selector: "lcu-add-team-member-dialog", ngImport: i0, template: "<
|
60
|
+
AddTeamMemberDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AddTeamMemberDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.EaCService }, { token: MAT_DIALOG_DATA }, { token: i3.MatSnackBar }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
61
|
+
AddTeamMemberDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: AddTeamMemberDialogComponent, selector: "lcu-add-team-member-dialog", ngImport: i0, template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <h3>Invite Member to {{ Enterprise.Name }}</h3>\n <button mat-icon-button (click)=\"Cancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n<form\n class=\"invite-form\"\n [formGroup]=\"AddTeamMemberFormGroup\"\n (ngSubmit)=\"AddMember()\"\n>\n <mat-form-field appearance=\"fill\" class=\"invite-container\">\n <mat-label>Enter email</mat-label>\n <input\n matInput\n placeholder=\"Enter Email of Invitee\"\n [formControl]=\"Email\"\n required\n />\n <mat-error *ngIf=\"Email.invalid\">{{ GetErrorMessage() }}</mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"fill\" class=\"invite-container\">\n <mat-label>Permission</mat-label>\n <mat-select [formControl]=\"Permission\">\n <mat-option value=\"option\">Option</mat-option>\n </mat-select>\n </mat-form-field>\n <div fxLayoutAlign=\"end center\">\n <button mat-raised-button color=\"primary\">Send Invite</button>\n </div>\n</form>\n", styles: [".invite-container{width:100%}\n"], components: [{ type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i10.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"] }, { type: i10.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"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.MatLabel, selector: "mat-label" }, { type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i12.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatError, selector: "mat-error", inputs: ["id"] }] });
|
21
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: AddTeamMemberDialogComponent, decorators: [{
|
22
63
|
type: Component,
|
23
|
-
args: [{ selector: 'lcu-add-team-member-dialog', template: "<
|
64
|
+
args: [{ selector: 'lcu-add-team-member-dialog', template: "<div fxLayout=\"row\" fxLayoutAlign=\"space-between center\">\n <h3>Invite Member to {{ Enterprise.Name }}</h3>\n <button mat-icon-button (click)=\"Cancel()\">\n <mat-icon>cancel</mat-icon>\n </button>\n</div>\n<form\n class=\"invite-form\"\n [formGroup]=\"AddTeamMemberFormGroup\"\n (ngSubmit)=\"AddMember()\"\n>\n <mat-form-field appearance=\"fill\" class=\"invite-container\">\n <mat-label>Enter email</mat-label>\n <input\n matInput\n placeholder=\"Enter Email of Invitee\"\n [formControl]=\"Email\"\n required\n />\n <mat-error *ngIf=\"Email.invalid\">{{ GetErrorMessage() }}</mat-error>\n </mat-form-field>\n\n <mat-form-field appearance=\"fill\" class=\"invite-container\">\n <mat-label>Permission</mat-label>\n <mat-select [formControl]=\"Permission\">\n <mat-option value=\"option\">Option</mat-option>\n </mat-select>\n </mat-form-field>\n <div fxLayoutAlign=\"end center\">\n <button mat-raised-button color=\"primary\">Send Invite</button>\n </div>\n</form>\n", styles: [".invite-container{width:100%}\n"] }]
|
24
65
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.EaCService }, { type: undefined, decorators: [{
|
25
66
|
type: Inject,
|
26
67
|
args: [MAT_DIALOG_DATA]
|
27
|
-
}] }, { type: i3.MatSnackBar }]; } });
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
68
|
+
}] }, { type: i3.MatSnackBar }, { type: i4.FormBuilder }]; } });
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLXRlYW0tbWVtYmVyLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2FkZC10ZWFtLW1lbWJlci1kaWFsb2cvYWRkLXRlYW0tbWVtYmVyLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9kaWFsb2dzL2FkZC10ZWFtLW1lbWJlci1kaWFsb2cvYWRkLXRlYW0tbWVtYmVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBR0gsV0FBVyxFQUNYLFNBQVMsRUFDVCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWF6RSxNQUFNLE9BQU8sNEJBQTRCO0lBYXJDLFlBQ1csU0FBcUQsRUFDbEQsTUFBa0IsRUFDSSxJQUE2QixFQUNuRCxRQUFxQixFQUN2QixXQUF3QjtRQUp6QixjQUFTLEdBQVQsU0FBUyxDQUE0QztRQUNsRCxXQUFNLEdBQU4sTUFBTSxDQUFZO1FBQ0ksU0FBSSxHQUFKLElBQUksQ0FBeUI7UUFDbkQsYUFBUSxHQUFSLFFBQVEsQ0FBYTtRQUN2QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtJQUNqQyxDQUFDO0lBZEosSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7SUFDNUQsQ0FBQztJQVVNLFFBQVE7UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDcEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksU0FBUyxDQUFDO1lBQ3hDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRSxVQUFVLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pELENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsT0FBTyx3QkFBd0IsQ0FBQztTQUNuQztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkUsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNCLENBQUM7O3lIQXZEUSw0QkFBNEIsd0VBZ0J6QixlQUFlOzZHQWhCbEIsNEJBQTRCLGtFQ3JCekMsdW1DQWdDQTsyRkRYYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0ksNEJBQTRCOzswQkFvQmpDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQWJzdHJhY3RDb250cm9sLFxuICAgIEZvcm1CdWlsZGVyLFxuICAgIEZvcm1Db250cm9sLFxuICAgIEZvcm1Hcm91cCxcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkZFRlYW1NZW1iZXJEaWFsb2dEYXRhIHtcbiAgICBlbnRlcnByaXNlOiBhbnk7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LWFkZC10ZWFtLW1lbWJlci1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hZGQtdGVhbS1tZW1iZXItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hZGQtdGVhbS1tZW1iZXItZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEFkZFRlYW1NZW1iZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBBZGRUZWFtTWVtYmVyRm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgRW50ZXJwcmlzZTogYW55O1xuXG4gICAgcHVibGljIGdldCBFbWFpbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5BZGRUZWFtTWVtYmVyRm9ybUdyb3VwPy5jb250cm9scy5lbWFpbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IFBlcm1pc3Npb24oKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuQWRkVGVhbU1lbWJlckZvcm1Hcm91cD8uY29udHJvbHMucGVybWlzc2lvbjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEFkZFRlYW1NZW1iZXJEaWFsb2dDb21wb25lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IEFkZFRlYW1NZW1iZXJEaWFsb2dEYXRhLFxuICAgICAgICBwcm90ZWN0ZWQgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5CdWlsZEZvcm0oKTtcblxuICAgICAgICB0aGlzLkVudGVycHJpc2UgPSB0aGlzLmRhdGEuZW50ZXJwcmlzZTtcbiAgICAgICAgY29uc29sZS5sb2coJ2VudDogJywgdGhpcy5FbnRlcnByaXNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgQWRkTWVtYmVyKCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZW50IGxvb2t1cDogJywgdGhpcy5FbnRlcnByaXNlLlBhcmVudEVudGVycHJpc2VMb29rdXApO1xuICAgICAgICBjb25zb2xlLmxvZygnaW52aXRlZDogJywgdGhpcy5FbWFpbC52YWx1ZSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCdwZXJtaXNzaW9uOiAnLCB0aGlzLlBlcm1pc3Npb24udmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBCdWlsZEZvcm0oKSB7XG4gICAgICAgIHRoaXMuQWRkVGVhbU1lbWJlckZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgZW1haWw6IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKSxcbiAgICAgICAgICAgIHBlcm1pc3Npb246IG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIENhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5DbG9zZURpYWxvZygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBHZXRFcnJvck1lc3NhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLkVtYWlsLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1lvdSBtdXN0IGVudGVyIGEgdmFsdWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuRW1haWwuaGFzRXJyb3IoJ2VtYWlsJykgPyAnTm90IGEgdmFsaWQgZW1haWwnIDogJyc7XG4gICAgfVxuXG4gICAgcHVibGljIENsb3NlRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cbn1cbiIsIjxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICA8aDM+SW52aXRlIE1lbWJlciB0byB7eyBFbnRlcnByaXNlLk5hbWUgfX08L2gzPlxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJDYW5jZWwoKVwiPlxuICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbjwvZGl2PlxuPGZvcm1cbiAgICBjbGFzcz1cImludml0ZS1mb3JtXCJcbiAgICBbZm9ybUdyb3VwXT1cIkFkZFRlYW1NZW1iZXJGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJBZGRNZW1iZXIoKVwiXG4+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCIgY2xhc3M9XCJpbnZpdGUtY29udGFpbmVyXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+RW50ZXIgZW1haWw8L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBFbWFpbCBvZiBJbnZpdGVlXCJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJFbWFpbFwiXG4gICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiRW1haWwuaW52YWxpZFwiPnt7IEdldEVycm9yTWVzc2FnZSgpIH19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiIGNsYXNzPVwiaW52aXRlLWNvbnRhaW5lclwiPlxuICAgICAgICA8bWF0LWxhYmVsPlBlcm1pc3Npb248L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3QgW2Zvcm1Db250cm9sXT1cIlBlcm1pc3Npb25cIj5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwib3B0aW9uXCI+T3B0aW9uPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmQgY2VudGVyXCI+XG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCI+U2VuZCBJbnZpdGU8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|