verben-authentication-ui 0.3.4 → 0.3.6
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/components/forgot-password/forgot-password.component.mjs +6 -3
- package/esm2022/lib/components/o-auth/o-auth.component.mjs +82 -4
- package/esm2022/lib/components/reset-password/reset-password.component.mjs +3 -3
- package/esm2022/lib/components/sign-up/sign-up.component.mjs +3 -3
- package/esm2022/lib/components/user-management/base-table-style.mjs +11 -11
- package/esm2022/lib/components/user-management/helper.mjs +8 -3
- package/esm2022/lib/components/user-management/services/user-management.service.mjs +70 -0
- package/esm2022/lib/components/user-management/useer-management.module.mjs +9 -3
- package/esm2022/lib/components/user-management/user-management-form/use-management-form.component.mjs +5 -5
- package/esm2022/lib/components/user-management/user-management.columns.mjs +1 -1
- package/esm2022/lib/components/user-management/user-management.component.mjs +84 -39
- package/esm2022/lib/components/user-request-approval/base-table-style.mjs +2 -2
- package/esm2022/lib/components/user-request-approval/facades/user-access-request.facade.mjs +10 -4
- package/esm2022/lib/components/user-request-approval/user-request-approval.component.mjs +2 -2
- package/esm2022/lib/models/PagedResult.mjs +2 -0
- package/esm2022/lib/models/user-management.mjs +2 -0
- package/esm2022/lib/services/http-web-request.service.mjs +3 -1
- package/fesm2022/verben-authentication-ui.mjs +286 -108
- package/fesm2022/verben-authentication-ui.mjs.map +1 -1
- package/lib/components/forgot-password/forgot-password.component.d.ts +1 -0
- package/lib/components/o-auth/o-auth.component.d.ts +9 -0
- package/lib/components/user-management/helper.d.ts +2 -2
- package/lib/components/user-management/services/user-management.service.d.ts +42 -0
- package/lib/components/user-management/useer-management.module.d.ts +5 -4
- package/lib/components/user-management/user-management.columns.d.ts +2 -2
- package/lib/components/user-management/user-management.component.d.ts +16 -8
- package/lib/components/user-request-approval/facades/user-access-request.facade.d.ts +3 -1
- package/lib/models/PagedResult.d.ts +3 -0
- package/lib/models/user-management.d.ts +8 -0
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import * as i1 from "@angular/forms";
|
|
|
6
6
|
import * as i2 from "../../services/http-web-request.service";
|
|
7
7
|
import * as i3 from "../../services/util.service";
|
|
8
8
|
import * as i4 from "verben-ng-ui";
|
|
9
|
+
import * as i5 from "@angular/common";
|
|
9
10
|
export class ForgotPasswordComponent {
|
|
10
11
|
fb;
|
|
11
12
|
server;
|
|
@@ -18,6 +19,7 @@ export class ForgotPasswordComponent {
|
|
|
18
19
|
onSubmit = new EventEmitter();
|
|
19
20
|
onSubmitEnd = new EventEmitter();
|
|
20
21
|
forgotPasswordForm;
|
|
22
|
+
isSubmitted = false;
|
|
21
23
|
constructor(fb, server, utilService) {
|
|
22
24
|
this.fb = fb;
|
|
23
25
|
this.server = server;
|
|
@@ -60,14 +62,15 @@ export class ForgotPasswordComponent {
|
|
|
60
62
|
else {
|
|
61
63
|
var result = res;
|
|
62
64
|
this.onSubmitEnd.emit(result);
|
|
65
|
+
this.isSubmitted = true;
|
|
63
66
|
}
|
|
64
67
|
}
|
|
65
68
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.HttpWebRequestService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ForgotPasswordComponent, selector: "verben-forgot-password", inputs: { title: "title", subTitle: "subTitle", buttonCaption: "buttonCaption", buttonTextColor: "buttonTextColor", buttonBackgroundColor: "buttonBackgroundColor" }, outputs: { onSubmit: "onSubmit", onSubmitEnd: "onSubmitEnd" }, ngImport: i0, template: "<div [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>\n", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ForgotPasswordComponent, selector: "verben-forgot-password", inputs: { title: "title", subTitle: "subTitle", buttonCaption: "buttonCaption", buttonTextColor: "buttonTextColor", buttonBackgroundColor: "buttonBackgroundColor" }, outputs: { onSubmit: "onSubmit", onSubmitEnd: "onSubmitEnd" }, ngImport: i0, template: "<div *ngIf=\"!isSubmitted\" [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n</div>\n<div *ngIf=\"isSubmitted\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-title resend-title\">Follow the link sent to your e-mail to proceed</div>\n <div class=\"flex gap-1\">\n <span class=\"resend-caption\">Didn't get a link?</span> <span class=\"resend-caption resend-link\"\n (click)=\"submit()\">Resend</span>\n </div>\n</div>", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}.resend-caption{font-size:13px}.resend-link{color:#00f;cursor:pointer}.resend-link:hover{text-decoration:underline}.resend-title{color:#666}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
67
70
|
}
|
|
68
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
69
72
|
type: Component,
|
|
70
|
-
args: [{ selector: 'verben-forgot-password', template: "<div [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>\n", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"] }]
|
|
73
|
+
args: [{ selector: 'verben-forgot-password', template: "<div *ngIf=\"!isSubmitted\" [formGroup]=\"this.forgotPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Email</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Email\" type=\"email\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n</div>\n<div *ngIf=\"isSubmitted\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-title resend-title\">Follow the link sent to your e-mail to proceed</div>\n <div class=\"flex gap-1\">\n <span class=\"resend-caption\">Didn't get a link?</span> <span class=\"resend-caption resend-link\"\n (click)=\"submit()\">Resend</span>\n </div>\n</div>", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}.resend-caption{font-size:13px}.resend-link{color:#00f;cursor:pointer}.resend-link:hover{text-decoration:underline}.resend-title{color:#666}\n"] }]
|
|
71
74
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }], propDecorators: { title: [{
|
|
72
75
|
type: Input
|
|
73
76
|
}], subTitle: [{
|
|
@@ -83,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
83
86
|
}], onSubmitEnd: [{
|
|
84
87
|
type: Output
|
|
85
88
|
}] } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBR0wsV0FBVyxFQUdYLFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQVMzRCxNQUFNLE9BQU8sdUJBQXVCO0lBZXhCO0lBQ0E7SUFDQTtJQWhCRCxLQUFLLEdBQVcsaUJBQWlCLENBQUM7SUFDbEMsUUFBUSxHQUFXLCtDQUErQyxDQUFDO0lBQ25FLGFBQWEsR0FBVyxRQUFRLENBQUM7SUFDakMsZUFBZSxDQUFVO0lBQ3pCLHFCQUFxQixDQUFVO0lBRTlCLFFBQVEsR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUNoRSxXQUFXLEdBQ25CLElBQUksWUFBWSxFQUFFLENBQUM7SUFFckIsa0JBQWtCLENBQVk7SUFDOUIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUU3QixZQUNVLEVBQWUsRUFDZixNQUE2QixFQUM3QixXQUF3QjtRQUZ4QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFFaEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RDLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFO2dCQUMxQyxVQUFVLENBQUMsUUFBUTtnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQy9CLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxZQUFZLEdBQUcsa0RBQWtELENBQUM7UUFDeEUsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjLENBQUMsT0FBd0I7UUFDckMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxDQUFDO1FBQ3BDLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUNWLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUN0QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksSUFBSSxHQUF1QjtZQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLO1NBQ3ZELENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUMvQiw4QkFBOEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUMzQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsSUFBSSxHQUFHLFlBQVksYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLE1BQU0sR0FBRyxHQUF1QixDQUFDO1lBQ3JDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3dHQWxFVSx1QkFBdUI7NEZBQXZCLHVCQUF1QixtU0NwQnBDLHFvQ0FrQk07OzRGREVPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSx3QkFBd0I7OElBS3pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgRm9ybUJ1aWxkZXIsXG4gIEZvcm1Db250cm9sLFxuICBGb3JtR3JvdXAsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcmdvdFBhc3N3b3JkRGF0YSB9IGZyb20gJy4vRm9yZ290UGFzc3dvcmREYXRhJztcbmltcG9ydCB7IEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAtd2ViLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0Vycm9yUmVzcG9uc2UnO1xuaW1wb3J0IHsgUmVzcG9uc2VLZXlWYWx1ZSB9IGZyb20gJy4uLy4uL21vZGVscy9SZXNwb25zZUtleVZhbHVlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLWZvcmdvdC1wYXNzd29yZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3Jnb3RQYXNzd29yZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnRm9yZ290IFBhc3N3b3JkJztcbiAgQElucHV0KCkgc3ViVGl0bGU6IHN0cmluZyA9ICdFbnRlciB0aGUgZS1tYWlsIHlvdSB1c2VkIGR1cmluZyByZWdpc3RyYXRpb24nO1xuICBASW5wdXQoKSBidXR0b25DYXB0aW9uOiBzdHJpbmcgPSAnU3VibWl0JztcbiAgQElucHV0KCkgYnV0dG9uVGV4dENvbG9yPzogc3RyaW5nO1xuICBASW5wdXQoKSBidXR0b25CYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9uU3VibWl0OiBFdmVudEVtaXR0ZXI8Rm9yZ290UGFzc3dvcmREYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU3VibWl0RW5kOiBFdmVudEVtaXR0ZXI8UmVzcG9uc2VLZXlWYWx1ZSB8IEVycm9yUmVzcG9uc2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZm9yZ290UGFzc3dvcmRGb3JtOiBGb3JtR3JvdXA7XG4gIGlzU3VibWl0dGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZVxuICApIHtcbiAgICB0aGlzLmZvcmdvdFBhc3N3b3JkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgRW1haWw6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIHRoaXMuZW1haWxWYWxpZGF0b3IuYmluZCh0aGlzKSxcbiAgICAgIF0pLFxuICAgIH0pO1xuICB9XG5cbiAgaXNWYWxpZEVtYWlsKG1haWw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGVtYWlsUGF0dGVybiA9IC9eW2EtekEtWjAtOS5fJSstXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLH0kLztcbiAgICByZXR1cm4gZW1haWxQYXR0ZXJuLnRlc3QobWFpbCk7XG4gIH1cblxuICBlbWFpbFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNWYWxpZEVtYWlsKHZhbHVlKSA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY2hlY2tGb3JtKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZvcmdvdFBhc3N3b3JkRm9ybS52YWxpZDtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JtKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGRhdGE6IEZvcmdvdFBhc3N3b3JkRGF0YSA9IHtcbiAgICAgIEVtYWlsOiB0aGlzLmZvcmdvdFBhc3N3b3JkRm9ybS5jb250cm9sc1snRW1haWwnXS52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMub25TdWJtaXQuZW1pdChkYXRhKTtcbiAgICB0aGlzLnV0aWxTZXJ2aWNlLnNlbmRCSSh0cnVlKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnNlcnZlci5nZXQoXG4gICAgICBgVXNlci9QYXNzd29yZENoYW5nZVJlcXVlc3QvJHtkYXRhLkVtYWlsfWBcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgdGhpcy5vblN1Ym1pdEVuZC5lbWl0KHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgUmVzcG9uc2VLZXlWYWx1ZTtcbiAgICAgIHRoaXMub25TdWJtaXRFbmQuZW1pdChyZXN1bHQpO1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiIWlzU3VibWl0dGVkXCIgW2Zvcm1Hcm91cF09XCJ0aGlzLmZvcmdvdFBhc3N3b3JkRm9ybVwiIGNsYXNzPVwicmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLWhlYWRlciBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXRpdGxlXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXN1YnRpdGxlXCI+e3tzdWJUaXRsZX19PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtY2FwdGlvblwiPkVtYWlsPC9kaXY+XG4gICAgPHZlcmJlbmEtaW5wdXQgYmdDb2xvcj1cIndoaXRlXCIgYm9yZGVyUmFkaXVzPVwiMTJweFwiIGZvcm1Db250cm9sTmFtZT1cIkVtYWlsXCIgdHlwZT1cImVtYWlsXCI+PC92ZXJiZW5hLWlucHV0PlxuICA8L2Rpdj5cbiAgPHZlcmJlbmEtYnV0dG9uIGZvbnRXZWlnaHQ9XCI3MDBcIiAoY2xpY2spPVwic3VibWl0KClcIiBbdGV4dF09XCJidXR0b25DYXB0aW9uXCIgd2lkdGg9XCIxMDAlXCIgW3RleHRDb2xvcl09XCJidXR0b25UZXh0Q29sb3JcIlxuICAgIFtiZ0NvbG9yXT1cImJ1dHRvbkJhY2tncm91bmRDb2xvclwiIGJvcmRlclJhZGl1cz1cIjI1cHhcIiBbZGlzYWJsZV09XCIhdGhpcy5jaGVja0Zvcm0oKVwiPjwvdmVyYmVuYS1idXR0b24+XG48L2Rpdj5cbjxkaXYgKm5nSWY9XCJpc1N1Ym1pdHRlZFwiIGNsYXNzPVwicmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXRpdGxlIHJlc2VuZC10aXRsZVwiPkZvbGxvdyB0aGUgbGluayBzZW50IHRvIHlvdXIgZS1tYWlsIHRvIHByb2NlZWQ8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTFcIj5cbiAgICA8c3BhbiBjbGFzcz1cInJlc2VuZC1jYXB0aW9uXCI+RGlkbid0IGdldCBhIGxpbms/PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlc2VuZC1jYXB0aW9uIHJlc2VuZC1saW5rXCJcbiAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiPlJlc2VuZDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|
|
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
import * as i2 from "verben-ng-ui";
|
|
6
6
|
export class OAuthComponent {
|
|
7
|
+
clientId = 'YOUR_CLIENT_ID_FROM_BACKEND';
|
|
7
8
|
showGoogle = false;
|
|
8
9
|
showMicrosoft = false;
|
|
9
10
|
showApple = false;
|
|
@@ -15,24 +16,101 @@ export class OAuthComponent {
|
|
|
15
16
|
if (this.authMechanisms !== null) {
|
|
16
17
|
this.showMicrosoft = this.authMechanisms.some(item => item.AuthMechanism.includes(MechanismType.MicrosoftAD));
|
|
17
18
|
this.showGoogle = this.authMechanisms.some(item => item.AuthMechanism.includes(MechanismType.Google));
|
|
19
|
+
if (this.showGoogle) {
|
|
20
|
+
const data = this.authMechanisms.find(item => item.AuthMechanism.includes(MechanismType.Google));
|
|
21
|
+
this.clientId = data.ClientId;
|
|
22
|
+
}
|
|
18
23
|
this.showApple = this.authMechanisms.some(item => item.AuthMechanism.includes(MechanismType.Apple));
|
|
24
|
+
this.loadGoogleScript();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
loadGoogleScript() {
|
|
28
|
+
console.log('checking here');
|
|
29
|
+
if (!document.getElementById('google-jssdk')) {
|
|
30
|
+
const script = document.createElement('script');
|
|
31
|
+
script.src = 'https://accounts.google.com/gsi/client';
|
|
32
|
+
script.id = 'google-jssdk';
|
|
33
|
+
script.async = true;
|
|
34
|
+
script.defer = true;
|
|
35
|
+
script.onload = () => console.log('Google SDK loaded');
|
|
36
|
+
script.onerror = () => console.log('Error loading Google SDK');
|
|
37
|
+
document.head.appendChild(script);
|
|
19
38
|
}
|
|
20
39
|
}
|
|
21
40
|
oAuthWithMicrosoft() {
|
|
22
41
|
this.microsoftClick.emit();
|
|
23
42
|
}
|
|
43
|
+
// oAuthWithGoogle() {
|
|
44
|
+
// console.log('windows',window['google'])
|
|
45
|
+
// console.log('client id is here', this.clientId)
|
|
46
|
+
// if (window['google']) {
|
|
47
|
+
// window['google'].accounts.id.initialize({
|
|
48
|
+
// client_id: this.clientId,
|
|
49
|
+
// callback: (response: any) => this.handleCredentialResponse(response),
|
|
50
|
+
// ux_mode: 'popup'
|
|
51
|
+
// });
|
|
52
|
+
// window['google'].accounts.id.prompt();
|
|
53
|
+
// } else {
|
|
54
|
+
// console.error('Google SDK not loaded.');
|
|
55
|
+
// }
|
|
56
|
+
// }
|
|
57
|
+
// oAuthWithGoogle() {
|
|
58
|
+
// const redirectUri = encodeURIComponent('http://localhost:5124/Authentication/ExternalCallback');
|
|
59
|
+
// const scope = encodeURIComponent('openid email profile');
|
|
60
|
+
// const responseType = 'code';
|
|
61
|
+
// const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?client_id=${this.clientId}&redirect_uri=${redirectUri}&response_type=${responseType}&scope=${scope}`;
|
|
62
|
+
// window.open(authUrl, '_blank', 'width=full,height=full');
|
|
63
|
+
// }
|
|
24
64
|
oAuthWithGoogle() {
|
|
25
|
-
|
|
65
|
+
const redirectUri = encodeURIComponent('http://localhost:4200/Authentication/ExternalCallback');
|
|
66
|
+
const scope = encodeURIComponent('openid email profile');
|
|
67
|
+
const responseType = 'code';
|
|
68
|
+
const authUrl = `https://accounts.google.com/o/oauth2/v2/auth?client_id=${this.clientId}&redirect_uri=${redirectUri}&response_type=${responseType}&scope=${scope}`;
|
|
69
|
+
window.open(authUrl, '_blank', 'width=1000,height=800');
|
|
70
|
+
// const interval = setInterval(() => {
|
|
71
|
+
// console.log('yessss inside pop up')
|
|
72
|
+
// try {
|
|
73
|
+
// console.log('auth windows is here',authWindow)
|
|
74
|
+
// const currentUrl = authWindow.location.href;
|
|
75
|
+
// console.log('yessss for currentUrl',currentUrl)
|
|
76
|
+
// if (currentUrl.indexOf('code=') !== -1) {
|
|
77
|
+
// const urlParams = new URLSearchParams(authWindow.location.search);
|
|
78
|
+
// const authCode = urlParams.get('code');
|
|
79
|
+
// if (authCode) {
|
|
80
|
+
// console.log('Authorization code:', authCode);
|
|
81
|
+
// clearInterval(interval);
|
|
82
|
+
// this.exchangeCodeForToken(authCode);
|
|
83
|
+
// // authWindow.close();
|
|
84
|
+
// }
|
|
85
|
+
// }
|
|
86
|
+
// } catch (error) {
|
|
87
|
+
// }
|
|
88
|
+
// }, 1000);
|
|
89
|
+
}
|
|
90
|
+
exchangeCodeForToken(authCode) {
|
|
91
|
+
console.log('Exchanging code for token:', authCode);
|
|
92
|
+
// this.http.post('/api/auth/google/token', { code: authCode }).subscribe({
|
|
93
|
+
// next: (response) => {
|
|
94
|
+
// console.log('Token received:', response);
|
|
95
|
+
// // Handle successful login (store token, etc.)
|
|
96
|
+
// },
|
|
97
|
+
// error: (err) => {
|
|
98
|
+
// console.error('Error exchanging code for token:', err);
|
|
99
|
+
// }
|
|
100
|
+
// });
|
|
101
|
+
}
|
|
102
|
+
handleCredentialResponse(response) {
|
|
103
|
+
console.log('Encoded JWT ID token:', response.credential);
|
|
26
104
|
}
|
|
27
105
|
oAuthWithApple() {
|
|
28
106
|
this.appleClick.emit();
|
|
29
107
|
}
|
|
30
108
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OAuthComponent, selector: "verben-o-auth", inputs: { authMechanisms: "authMechanisms" }, outputs: { microsoftClick: "microsoftClick", googleClick: "googleClick", appleClick: "appleClick" }, ngImport: i0, template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <span *ngIf=\"showMicrosoft\"> \n <verbena-button\n svg=\"microsoft-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Microsoft\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithMicrosoft()\"\n ></verbena-button>\n </span> \n\n <span *ngIf=\"showGoogle\"> \n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithGoogle()\"\n ></verbena-button>\n </span>\n \n <span *ngIf=\"showApple\"> \n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithApple()\"\n ></verbena-button>\n </span>\n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
109
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OAuthComponent, selector: "verben-o-auth", inputs: { authMechanisms: "authMechanisms" }, outputs: { microsoftClick: "microsoftClick", googleClick: "googleClick", appleClick: "appleClick" }, ngImport: i0, template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <span *ngIf=\"showMicrosoft\"> \n <verbena-button\n svg=\"microsoft-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Microsoft\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithMicrosoft()\"\n ></verbena-button>\n </span> \n\n <span *ngIf=\"showGoogle\"> \n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithGoogle()\"\n ></verbena-button>\n\n <!-- <div id=\"g_id_onload\"\n data-client_id=\"834995866282-l8gkp0r3v3a1bdvfmaumurki7ndar3m4.apps.googleusercontent.com\"\n data-context=\"signin\"\n data-ux_mode=\"popup\"\n data-login_uri=\"http://localhost:5124/Authentication/ExternalCallback\"\n data-itp_support=\"true\">\n</div>\n\n<div class=\"g_id_signin\"\n data-type=\"standard\"\n data-shape=\"rectangular\"\n data-theme=\"outline\"\n data-text=\"signin_with\"\n data-size=\"large\"\n data-logo_alignment=\"center\">\n</div> -->\n </span>\n \n <span *ngIf=\"showApple\"> \n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithApple()\"\n ></verbena-button>\n </span>\n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
32
110
|
}
|
|
33
111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthComponent, decorators: [{
|
|
34
112
|
type: Component,
|
|
35
|
-
args: [{ selector: 'verben-o-auth', template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <span *ngIf=\"showMicrosoft\"> \n <verbena-button\n svg=\"microsoft-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Microsoft\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithMicrosoft()\"\n ></verbena-button>\n </span> \n\n <span *ngIf=\"showGoogle\"> \n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithGoogle()\"\n ></verbena-button>\n </span>\n \n <span *ngIf=\"showApple\"> \n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithApple()\"\n ></verbena-button>\n </span>\n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"] }]
|
|
113
|
+
args: [{ selector: 'verben-o-auth', template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <span *ngIf=\"showMicrosoft\"> \n <verbena-button\n svg=\"microsoft-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Microsoft\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithMicrosoft()\"\n ></verbena-button>\n </span> \n\n <span *ngIf=\"showGoogle\"> \n <verbena-button\n svg=\"google-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Google\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithGoogle()\"\n ></verbena-button>\n\n <!-- <div id=\"g_id_onload\"\n data-client_id=\"834995866282-l8gkp0r3v3a1bdvfmaumurki7ndar3m4.apps.googleusercontent.com\"\n data-context=\"signin\"\n data-ux_mode=\"popup\"\n data-login_uri=\"http://localhost:5124/Authentication/ExternalCallback\"\n data-itp_support=\"true\">\n</div>\n\n<div class=\"g_id_signin\"\n data-type=\"standard\"\n data-shape=\"rectangular\"\n data-theme=\"outline\"\n data-text=\"signin_with\"\n data-size=\"large\"\n data-logo_alignment=\"center\">\n</div> -->\n </span>\n \n <span *ngIf=\"showApple\"> \n <verbena-button\n svg=\"apple-logo\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n text=\"Continue with Apple\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"oAuthWithApple()\"\n ></verbena-button>\n </span>\n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"] }]
|
|
36
114
|
}], propDecorators: { authMechanisms: [{
|
|
37
115
|
type: Input
|
|
38
116
|
}], microsoftClick: [{
|
|
@@ -42,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
42
120
|
}], appleClick: [{
|
|
43
121
|
type: Output
|
|
44
122
|
}] } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvby1hdXRoL28tYXV0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL28tYXV0aC9vLWF1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBTzNFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFVBQVUsR0FBVyxLQUFLLENBQUM7SUFDM0IsYUFBYSxHQUFXLEtBQUssQ0FBQztJQUM5QixTQUFTLEdBQVcsS0FBSyxDQUFDO0lBQ2pCLGNBQWMsR0FBMEIsSUFBSSxDQUFBO0lBQzNDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ3ZDLFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBR2hELFFBQVE7UUFDSixJQUFHLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQ3ZELENBQUM7WUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FDbEQsQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUNqRCxDQUFDO1FBQ0osQ0FBQztJQUNMLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7d0dBaENVLGNBQWM7NEZBQWQsY0FBYyx3TUNSM0IsMHNEQTREQTs7NEZEcERhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsZUFBZTs4QkFRaEIsY0FBYztzQkFBdEIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEF1dGhNZWNoYW5pc20sIE1lY2hhbmlzbVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYXV0aC1tZWNoYW5pc20nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tby1hdXRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tYXV0aC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vLWF1dGguY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzaG93R29vZ2xlOmJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd01pY3Jvc29mdDpib29sZWFuID0gZmFsc2U7XG4gIHNob3dBcHBsZTpib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dGhNZWNoYW5pc21zOkF1dGhNZWNoYW5pc21bXSB8IG51bGwgPSBudWxsXG4gIEBPdXRwdXQoKSBtaWNyb3NvZnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGdvb2dsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYXBwbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgaWYodGhpcy5hdXRoTWVjaGFuaXNtcyAhPT0gbnVsbCApeyBcbiAgICAgICB0aGlzLnNob3dNaWNyb3NvZnQgPSB0aGlzLmF1dGhNZWNoYW5pc21zLnNvbWUoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0uQXV0aE1lY2hhbmlzbS5pbmNsdWRlcyhNZWNoYW5pc21UeXBlLk1pY3Jvc29mdEFEKVxuICAgICAgICApO1xuICAgICAgIHRoaXMuc2hvd0dvb2dsZSA9IHRoaXMuYXV0aE1lY2hhbmlzbXMuc29tZShpdGVtID0+XG4gICAgICAgICAgaXRlbS5BdXRoTWVjaGFuaXNtLmluY2x1ZGVzKE1lY2hhbmlzbVR5cGUuR29vZ2xlKVxuICAgICAgICApO1xuICAgICAgIHRoaXMuc2hvd0FwcGxlID0gdGhpcy5hdXRoTWVjaGFuaXNtcy5zb21lKGl0ZW0gPT5cbiAgICAgICAgICBpdGVtLkF1dGhNZWNoYW5pc20uaW5jbHVkZXMoTWVjaGFuaXNtVHlwZS5BcHBsZSlcbiAgICAgICAgKTtcbiAgICAgIH0gIFxuICB9XG5cbiAgb0F1dGhXaXRoTWljcm9zb2Z0KCl7XG4gICAgdGhpcy5taWNyb3NvZnRDbGljay5lbWl0KCk7IFxuICB9XG4gIG9BdXRoV2l0aEdvb2dsZSgpe1xuICAgIHRoaXMuZ29vZ2xlQ2xpY2suZW1pdCgpOyBcbiAgfVxuICBvQXV0aFdpdGhBcHBsZSgpe1xuICAgIHRoaXMuYXBwbGVDbGljay5lbWl0KCk7IFxuICB9XG5cbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwib2F1dGhXcmFwcGVyXCI+IFxuICAgIDxkaXYgY2xhc3M9XCJPckZsZXhXcmFwcGVyXCI+XG4gICAgICAgIDxoci8+XG4gICAgICAgIDxzcGFuPk9SPC9zcGFuPlxuICAgICAgICA8aHIvPlxuICAgIDwvZGl2PlxuICAgICA8c3BhbiAqbmdJZj1cInNob3dNaWNyb3NvZnRcIj4gXG4gICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgc3ZnPVwibWljcm9zb2Z0LWxvZ29cIlxuICAgICAgIFtzdmdIZWlnaHRdPVwiMjRcIlxuICAgICAgIFtzdmdXaWR0aF09XCIyNFwiXG4gICAgICAgdGV4dD1cIkNvbnRpbnVlIHdpdGggTWljcm9zb2Z0XCJcbiAgICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgICAgYm9yZGVyUmFkaXVzPVwiNDBweFwiXG4gICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgc3ZnUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICBidXR0b25DbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtWzI0cHhdIGxlYWRpbmctWzI5LjA1cHhdIHRleHQtWyMzMzNdIG10LTJcIlxuICAgICAgIChjbGljayk9XCJvQXV0aFdpdGhNaWNyb3NvZnQoKVwiXG4gICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgIDwvc3Bhbj4gXG5cbiAgICA8c3BhbiAqbmdJZj1cInNob3dHb29nbGVcIj4gXG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHN2Zz1cImdvb2dsZS1sb2dvXCJcbiAgICAgIFtzdmdIZWlnaHRdPVwiMjRcIlxuICAgICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICAgIHRleHQ9XCJDb250aW51ZSB3aXRoIEdvb2dsZVwiXG4gICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiNDBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgc3ZnUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM10gbXQtMlwiXG4gICAgICAoY2xpY2spPVwib0F1dGhXaXRoR29vZ2xlKClcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9zcGFuPlxuICAgXG4gICAgPHNwYW4gKm5nSWY9XCJzaG93QXBwbGVcIj4gXG4gICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgIHN2Zz1cImFwcGxlLWxvZ29cIlxuICAgICAgW3N2Z0hlaWdodF09XCIyNFwiXG4gICAgICBbc3ZnV2lkdGhdPVwiMjRcIlxuICAgICAgdGV4dD1cIkNvbnRpbnVlIHdpdGggQXBwbGVcIlxuICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCAjMzMzXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICBidXR0b25DbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtWzI0cHhdIGxlYWRpbmctWzI5LjA1cHhdIHRleHQtWyMzMzNdIG10LTJcIlxuICAgICAgKGNsaWNrKT1cIm9BdXRoV2l0aEFwcGxlKClcIlxuICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9zcGFuPlxuPC9zZWN0aW9uPlxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvby1hdXRoL28tYXV0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL28tYXV0aC9vLWF1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBYTNFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFFBQVEsR0FBVyw2QkFBNkIsQ0FBQztJQUVqRCxVQUFVLEdBQVcsS0FBSyxDQUFDO0lBQzNCLGFBQWEsR0FBVyxLQUFLLENBQUM7SUFDOUIsU0FBUyxHQUFXLEtBQUssQ0FBQztJQUNqQixjQUFjLEdBQTBCLElBQUksQ0FBQTtJQUMzQyxjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMxQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUN2QyxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUdoRCxRQUFRO1FBQ0osSUFBRyxJQUFJLENBQUMsY0FBYyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUN2RCxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQ2xELENBQUM7WUFDRixJQUFHLElBQUksQ0FBQyxVQUFVLEVBQUMsQ0FBQztnQkFDbEIsTUFBTSxJQUFJLEdBQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUNsRCxDQUFBO2dCQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQTtZQUMvQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQ2pELENBQUM7WUFFRixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sQ0FBQyxHQUFHLEdBQUcsd0NBQXdDLENBQUM7WUFDdEQsTUFBTSxDQUFDLEVBQUUsR0FBRyxjQUFjLENBQUM7WUFDM0IsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDcEIsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDdkQsTUFBTSxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDL0QsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsc0JBQXNCO0lBQ3RCLDRDQUE0QztJQUM1QyxvREFBb0Q7SUFDcEQsNEJBQTRCO0lBQzVCLGdEQUFnRDtJQUNoRCxrQ0FBa0M7SUFDbEMsOEVBQThFO0lBQzlFLHlCQUF5QjtJQUN6QixVQUFVO0lBQ1YsNkNBQTZDO0lBQzdDLGFBQWE7SUFDYiwrQ0FBK0M7SUFDL0MsTUFBTTtJQUNOLElBQUk7SUFFSixzQkFBc0I7SUFDdEIscUdBQXFHO0lBQ3JHLDhEQUE4RDtJQUM5RCxpQ0FBaUM7SUFFakMsd0tBQXdLO0lBRXhLLDhEQUE4RDtJQUM5RCxJQUFJO0lBRUosZUFBZTtRQUNiLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDaEcsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUM7UUFFNUIsTUFBTSxPQUFPLEdBQUcsMERBQTBELElBQUksQ0FBQyxRQUFRLGlCQUFpQixXQUFXLGtCQUFrQixZQUFZLFVBQVUsS0FBSyxFQUFFLENBQUM7UUFFcEssTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixDQUFDLENBQUM7UUFFdkQsdUNBQXVDO1FBQ3ZDLHdDQUF3QztRQUN4QyxZQUFZO1FBQ1osdURBQXVEO1FBQ3ZELHVEQUF1RDtRQUV2RCwwREFBMEQ7UUFFMUQsb0RBQW9EO1FBQ3BELGlGQUFpRjtRQUNqRixzREFBc0Q7UUFFdEQsOEJBQThCO1FBQzlCLGdFQUFnRTtRQUNoRSwyQ0FBMkM7UUFDM0MsdURBQXVEO1FBQ3ZELHlDQUF5QztRQUN6QyxnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLHdCQUF3QjtRQUN4QixRQUFRO1FBQ1IsWUFBWTtJQUNoQixDQUFDO0lBR0Qsb0JBQW9CLENBQUMsUUFBZ0I7UUFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUVwRCwyRUFBMkU7UUFDM0UsNEJBQTRCO1FBQzVCLG9EQUFvRDtRQUNwRCx5REFBeUQ7UUFDekQsU0FBUztRQUNULHdCQUF3QjtRQUN4QixrRUFBa0U7UUFDbEUsUUFBUTtRQUNSLE1BQU07SUFDUixDQUFDO0lBR0Msd0JBQXdCLENBQUMsUUFBYTtRQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0lBQ0QsY0FBYztRQUNaLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzt3R0FuSVUsY0FBYzs0RkFBZCxjQUFjLHdNQ2QzQiwwdUVBNkVBOzs0RkQvRGEsY0FBYztrQkFMMUIsU0FBUzsrQkFDRSxlQUFlOzhCQVVoQixjQUFjO3NCQUF0QixLQUFLO2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aE1lY2hhbmlzbSwgTWVjaGFuaXNtVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRoLW1lY2hhbmlzbSc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBnb29nbGU6IGFueTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tby1hdXRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tYXV0aC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vLWF1dGguY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgT0F1dGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjbGllbnRJZDogc3RyaW5nID0gJ1lPVVJfQ0xJRU5UX0lEX0ZST01fQkFDS0VORCc7XG5cbiAgc2hvd0dvb2dsZTpib29sZWFuID0gZmFsc2U7XG4gIHNob3dNaWNyb3NvZnQ6Ym9vbGVhbiA9IGZhbHNlO1xuICBzaG93QXBwbGU6Ym9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRoTWVjaGFuaXNtczpBdXRoTWVjaGFuaXNtW10gfCBudWxsID0gbnVsbFxuICBAT3V0cHV0KCkgbWljcm9zb2Z0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBnb29nbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGFwcGxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIGlmKHRoaXMuYXV0aE1lY2hhbmlzbXMgIT09IG51bGwgKXsgXG4gICAgICAgdGhpcy5zaG93TWljcm9zb2Z0ID0gdGhpcy5hdXRoTWVjaGFuaXNtcy5zb21lKGl0ZW0gPT5cbiAgICAgICAgICBpdGVtLkF1dGhNZWNoYW5pc20uaW5jbHVkZXMoTWVjaGFuaXNtVHlwZS5NaWNyb3NvZnRBRClcbiAgICAgICAgKTtcbiAgICAgICB0aGlzLnNob3dHb29nbGUgPSB0aGlzLmF1dGhNZWNoYW5pc21zLnNvbWUoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0uQXV0aE1lY2hhbmlzbS5pbmNsdWRlcyhNZWNoYW5pc21UeXBlLkdvb2dsZSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYodGhpcy5zaG93R29vZ2xlKXsgXG4gICAgICAgICAgY29uc3QgZGF0YTphbnkgPSB0aGlzLmF1dGhNZWNoYW5pc21zLmZpbmQoaXRlbSA9PlxuICAgICAgICAgICAgaXRlbS5BdXRoTWVjaGFuaXNtLmluY2x1ZGVzKE1lY2hhbmlzbVR5cGUuR29vZ2xlKVxuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLmNsaWVudElkID0gZGF0YS5DbGllbnRJZFxuICAgICAgICB9XG4gICAgICAgdGhpcy5zaG93QXBwbGUgPSB0aGlzLmF1dGhNZWNoYW5pc21zLnNvbWUoaXRlbSA9PlxuICAgICAgICAgIGl0ZW0uQXV0aE1lY2hhbmlzbS5pbmNsdWRlcyhNZWNoYW5pc21UeXBlLkFwcGxlKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubG9hZEdvb2dsZVNjcmlwdCgpO1xuICAgICAgfSAgXG4gIH1cblxuICBsb2FkR29vZ2xlU2NyaXB0KCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCdjaGVja2luZyBoZXJlJyk7ICBcbiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb29nbGUtanNzZGsnKSkge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuc3JjID0gJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50JztcbiAgICAgIHNjcmlwdC5pZCA9ICdnb29nbGUtanNzZGsnO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4gY29uc29sZS5sb2coJ0dvb2dsZSBTREsgbG9hZGVkJyk7XG4gICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IGNvbnNvbGUubG9nKCdFcnJvciBsb2FkaW5nIEdvb2dsZSBTREsnKTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG4gIH1cblxuICBvQXV0aFdpdGhNaWNyb3NvZnQoKXtcbiAgICB0aGlzLm1pY3Jvc29mdENsaWNrLmVtaXQoKTsgXG4gIH1cblxuICAvLyBvQXV0aFdpdGhHb29nbGUoKSB7XG4gIC8vICAgY29uc29sZS5sb2coJ3dpbmRvd3MnLHdpbmRvd1snZ29vZ2xlJ10pXG4gIC8vICAgY29uc29sZS5sb2coJ2NsaWVudCBpZCBpcyBoZXJlJywgdGhpcy5jbGllbnRJZClcbiAgLy8gICBpZiAod2luZG93Wydnb29nbGUnXSkge1xuICAvLyAgICAgd2luZG93Wydnb29nbGUnXS5hY2NvdW50cy5pZC5pbml0aWFsaXplKHtcbiAgLy8gICAgICAgY2xpZW50X2lkOiB0aGlzLmNsaWVudElkLFxuICAvLyAgICAgICBjYWxsYmFjazogKHJlc3BvbnNlOiBhbnkpID0+IHRoaXMuaGFuZGxlQ3JlZGVudGlhbFJlc3BvbnNlKHJlc3BvbnNlKSxcbiAgLy8gICAgICAgdXhfbW9kZTogJ3BvcHVwJ1xuICAvLyAgICAgfSk7XG4gIC8vICAgICB3aW5kb3dbJ2dvb2dsZSddLmFjY291bnRzLmlkLnByb21wdCgpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICBjb25zb2xlLmVycm9yKCdHb29nbGUgU0RLIG5vdCBsb2FkZWQuJyk7XG4gIC8vICAgfVxuICAvLyB9XG5cbiAgLy8gb0F1dGhXaXRoR29vZ2xlKCkge1xuICAvLyAgIGNvbnN0IHJlZGlyZWN0VXJpID0gZW5jb2RlVVJJQ29tcG9uZW50KCdodHRwOi8vbG9jYWxob3N0OjUxMjQvQXV0aGVudGljYXRpb24vRXh0ZXJuYWxDYWxsYmFjaycpO1xuICAvLyAgIGNvbnN0IHNjb3BlID0gZW5jb2RlVVJJQ29tcG9uZW50KCdvcGVuaWQgZW1haWwgcHJvZmlsZScpO1xuICAvLyAgIGNvbnN0IHJlc3BvbnNlVHlwZSA9ICdjb2RlJztcbiAgXG4gIC8vICAgY29uc3QgYXV0aFVybCA9IGBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdjIvYXV0aD9jbGllbnRfaWQ9JHt0aGlzLmNsaWVudElkfSZyZWRpcmVjdF91cmk9JHtyZWRpcmVjdFVyaX0mcmVzcG9uc2VfdHlwZT0ke3Jlc3BvbnNlVHlwZX0mc2NvcGU9JHtzY29wZX1gO1xuXG4gIC8vICAgd2luZG93Lm9wZW4oYXV0aFVybCwgJ19ibGFuaycsICd3aWR0aD1mdWxsLGhlaWdodD1mdWxsJyk7XG4gIC8vIH1cblxuICBvQXV0aFdpdGhHb29nbGUoKSB7XG4gICAgY29uc3QgcmVkaXJlY3RVcmkgPSBlbmNvZGVVUklDb21wb25lbnQoJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMC9BdXRoZW50aWNhdGlvbi9FeHRlcm5hbENhbGxiYWNrJyk7XG4gICAgY29uc3Qgc2NvcGUgPSBlbmNvZGVVUklDb21wb25lbnQoJ29wZW5pZCBlbWFpbCBwcm9maWxlJyk7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gJ2NvZGUnO1xuICBcbiAgICBjb25zdCBhdXRoVXJsID0gYGh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoP2NsaWVudF9pZD0ke3RoaXMuY2xpZW50SWR9JnJlZGlyZWN0X3VyaT0ke3JlZGlyZWN0VXJpfSZyZXNwb25zZV90eXBlPSR7cmVzcG9uc2VUeXBlfSZzY29wZT0ke3Njb3BlfWA7XG5cbiAgIHdpbmRvdy5vcGVuKGF1dGhVcmwsICdfYmxhbmsnLCAnd2lkdGg9MTAwMCxoZWlnaHQ9ODAwJyk7XG4gICAgXG4gICAgLy8gY29uc3QgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgLy8gICBjb25zb2xlLmxvZygneWVzc3NzIGluc2lkZSBwb3AgdXAnKVxuICAgIC8vICAgICB0cnkge1xuICAgIC8vICAgICAgIGNvbnNvbGUubG9nKCdhdXRoIHdpbmRvd3MgaXMgaGVyZScsYXV0aFdpbmRvdylcbiAgICAvLyAgICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBhdXRoV2luZG93LmxvY2F0aW9uLmhyZWY7XG5cbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCd5ZXNzc3MgZm9yIGN1cnJlbnRVcmwnLGN1cnJlbnRVcmwpXG5cbiAgICAvLyAgICAgICAgIGlmIChjdXJyZW50VXJsLmluZGV4T2YoJ2NvZGU9JykgIT09IC0xKSB7XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhhdXRoV2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgYXV0aENvZGUgPSB1cmxQYXJhbXMuZ2V0KCdjb2RlJyk7XG4gICAgICAgICAgICAgICAgXG4gICAgLy8gICAgICAgICAgICAgaWYgKGF1dGhDb2RlKSB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdBdXRob3JpemF0aW9uIGNvZGU6JywgYXV0aENvZGUpO1xuICAgIC8vICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTtcbiAgICAvLyAgICAgICAgICAgICAgICAgdGhpcy5leGNoYW5nZUNvZGVGb3JUb2tlbihhdXRoQ29kZSk7XG4gICAgLy8gICAgICAgICAgICAgICAgIC8vIGF1dGhXaW5kb3cuY2xvc2UoKTtcbiAgICAvLyAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9LCAxMDAwKTtcbn1cblxuXG5leGNoYW5nZUNvZGVGb3JUb2tlbihhdXRoQ29kZTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKCdFeGNoYW5naW5nIGNvZGUgZm9yIHRva2VuOicsIGF1dGhDb2RlKTtcblxuICAvLyB0aGlzLmh0dHAucG9zdCgnL2FwaS9hdXRoL2dvb2dsZS90b2tlbicsIHsgY29kZTogYXV0aENvZGUgfSkuc3Vic2NyaWJlKHtcbiAgLy8gICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCdUb2tlbiByZWNlaXZlZDonLCByZXNwb25zZSk7XG4gIC8vICAgICAgICAgLy8gSGFuZGxlIHN1Y2Nlc3NmdWwgbG9naW4gKHN0b3JlIHRva2VuLCBldGMuKVxuICAvLyAgICAgfSxcbiAgLy8gICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gIC8vICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZXhjaGFuZ2luZyBjb2RlIGZvciB0b2tlbjonLCBlcnIpO1xuICAvLyAgICAgfVxuICAvLyB9KTtcbn1cblxuXG4gIGhhbmRsZUNyZWRlbnRpYWxSZXNwb25zZShyZXNwb25zZTogYW55KTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coJ0VuY29kZWQgSldUIElEIHRva2VuOicsIHJlc3BvbnNlLmNyZWRlbnRpYWwpXG4gIH1cbiAgb0F1dGhXaXRoQXBwbGUoKXtcbiAgICB0aGlzLmFwcGxlQ2xpY2suZW1pdCgpOyBcbiAgfVxuXG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cIm9hdXRoV3JhcHBlclwiPiBcbiAgICA8ZGl2IGNsYXNzPVwiT3JGbGV4V3JhcHBlclwiPlxuICAgICAgICA8aHIvPlxuICAgICAgICA8c3Bhbj5PUjwvc3Bhbj5cbiAgICAgICAgPGhyLz5cbiAgICA8L2Rpdj5cbiAgICAgPHNwYW4gKm5nSWY9XCJzaG93TWljcm9zb2Z0XCI+IFxuICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgIHN2Zz1cIm1pY3Jvc29mdC1sb2dvXCJcbiAgICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgICBbc3ZnV2lkdGhdPVwiMjRcIlxuICAgICAgIHRleHQ9XCJDb250aW51ZSB3aXRoIE1pY3Jvc29mdFwiXG4gICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICB0ZXh0Q29sb3I9XCJibGFja1wiXG4gICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgIHBkPVwiMTBweCAyMHB4XCJcbiAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgYnV0dG9uQ2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LVsyNHB4XSBsZWFkaW5nLVsyOS4wNXB4XSB0ZXh0LVsjMzMzXSBtdC0yXCJcbiAgICAgICAoY2xpY2spPVwib0F1dGhXaXRoTWljcm9zb2Z0KClcIlxuICAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuICAgICA8L3NwYW4+IFxuXG4gICAgPHNwYW4gKm5nSWY9XCJzaG93R29vZ2xlXCI+IFxuICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICBzdmc9XCJnb29nbGUtbG9nb1wiXG4gICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIyNFwiXG4gICAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBHb29nbGVcIlxuICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgIHRleHRDb2xvcj1cImJsYWNrXCJcbiAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCAjMzMzXCJcbiAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgcGQ9XCIxMHB4IDIwcHhcIlxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICBidXR0b25DbGFzcz1cImZvbnQtbm9ybWFsIHRleHQtWzI0cHhdIGxlYWRpbmctWzI5LjA1cHhdIHRleHQtWyMzMzNdIG10LTJcIlxuICAgICAgKGNsaWNrKT1cIm9BdXRoV2l0aEdvb2dsZSgpXCJcbiAgICAgID48L3ZlcmJlbmEtYnV0dG9uPlxuXG4gICAgICA8IS0tIDxkaXYgaWQ9XCJnX2lkX29ubG9hZFwiXG4gICAgIGRhdGEtY2xpZW50X2lkPVwiODM0OTk1ODY2MjgyLWw4Z2twMHIzdjNhMWJkdmZtYXVtdXJraTduZGFyM200LmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tXCJcbiAgICAgZGF0YS1jb250ZXh0PVwic2lnbmluXCJcbiAgICAgZGF0YS11eF9tb2RlPVwicG9wdXBcIlxuICAgICBkYXRhLWxvZ2luX3VyaT1cImh0dHA6Ly9sb2NhbGhvc3Q6NTEyNC9BdXRoZW50aWNhdGlvbi9FeHRlcm5hbENhbGxiYWNrXCJcbiAgICAgZGF0YS1pdHBfc3VwcG9ydD1cInRydWVcIj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZ19pZF9zaWduaW5cIlxuICAgICBkYXRhLXR5cGU9XCJzdGFuZGFyZFwiXG4gICAgIGRhdGEtc2hhcGU9XCJyZWN0YW5ndWxhclwiXG4gICAgIGRhdGEtdGhlbWU9XCJvdXRsaW5lXCJcbiAgICAgZGF0YS10ZXh0PVwic2lnbmluX3dpdGhcIlxuICAgICBkYXRhLXNpemU9XCJsYXJnZVwiXG4gICAgIGRhdGEtbG9nb19hbGlnbm1lbnQ9XCJjZW50ZXJcIj5cbjwvZGl2PiAtLT5cbiAgICA8L3NwYW4+XG4gICBcbiAgICA8c3BhbiAqbmdJZj1cInNob3dBcHBsZVwiPiBcbiAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgc3ZnPVwiYXBwbGUtbG9nb1wiXG4gICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgIFtzdmdXaWR0aF09XCIyNFwiXG4gICAgICB0ZXh0PVwiQ29udGludWUgd2l0aCBBcHBsZVwiXG4gICAgICBiZ0NvbG9yPVwid2hpdGVcIlxuICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkICMzMzNcIlxuICAgICAgYm9yZGVyUmFkaXVzPVwiNDBweFwiXG4gICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgc3ZnUG9zaXRpb249XCJsZWZ0XCJcbiAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM10gbXQtMlwiXG4gICAgICAoY2xpY2spPVwib0F1dGhXaXRoQXBwbGUoKVwiXG4gICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICA8L3NwYW4+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -80,11 +80,11 @@ export class ResetPasswordComponent {
|
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
82
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, deps: [{ token: i1.FormBuilder }, { token: i2.HttpWebRequestService }, { token: i3.UtilService }], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResetPasswordComponent, selector: "verben-reset-password", inputs: { title: "title", subTitle: "subTitle", buttonCaption: "buttonCaption", buttonTextColor: "buttonTextColor", buttonBackgroundColor: "buttonBackgroundColor", showOldPassword: "showOldPassword", token: "token" }, outputs: { onSubmit: "onSubmit", onSubmitEnd: "onSubmitEnd" }, ngImport: i0, template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div
|
|
83
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ResetPasswordComponent, selector: "verben-reset-password", inputs: { title: "title", subTitle: "subTitle", buttonCaption: "buttonCaption", buttonTextColor: "buttonTextColor", buttonBackgroundColor: "buttonBackgroundColor", showOldPassword: "showOldPassword", token: "token" }, outputs: { onSubmit: "onSubmit", onSubmitEnd: "onSubmitEnd" }, ngImport: i0, template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
84
84
|
}
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ResetPasswordComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
87
|
-
args: [{ selector: 'verben-reset-password', template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div
|
|
87
|
+
args: [{ selector: 'verben-reset-password', template: "<div [formGroup]=\"this.resetPasswordForm\" class=\"reset-password-container flex flex-col\">\n <div class=\"reset-password-header flex flex-col\">\n <div class=\"reset-password-title\">{{title}}</div>\n <div class=\"reset-password-subtitle\">{{subTitle}}</div>\n </div>\n <div *ngIf=\"showOldPassword\" class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Old Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"OldPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">New Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"Password\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <div class=\"form-field flex flex-col\">\n <div class=\"form-field-caption\">Confirm Password</div>\n <verbena-input bgColor=\"white\" borderRadius=\"12px\" formControlName=\"ConfirmPassword\" [passwordToggle]=\"true\"\n type=\"password\"></verbena-input>\n </div>\n <verbena-button fontWeight=\"700\" (click)=\"submit()\" [text]=\"buttonCaption\" width=\"100%\" [textColor]=\"buttonTextColor\"\n [bgColor]=\"buttonBackgroundColor\" borderRadius=\"25px\" [disable]=\"!this.checkForm()\"></verbena-button>\n\n</div>", styles: ["*{font-family:sans-serif;font-size:16px}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.reset-password-container{gap:25px;padding:50px;border:1px solid rgba(102,102,102,.5);box-shadow:4px 4px 4px #00000040;border-radius:24px}.reset-password-title{font-size:30px;font-weight:700}.reset-password-subtitle{font-size:14px;font-weight:500;color:#666}.form-field{gap:5px}.form-field-caption{color:#666}\n"] }]
|
|
88
88
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.HttpWebRequestService }, { type: i3.UtilService }], propDecorators: { title: [{
|
|
89
89
|
type: Input
|
|
90
90
|
}], subTitle: [{
|
|
@@ -104,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
104
104
|
}], onSubmitEnd: [{
|
|
105
105
|
type: Output
|
|
106
106
|
}] } });
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUdMLFdBQVcsRUFHWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFXM0QsTUFBTSxPQUFPLHNCQUFzQjtJQWdCdkI7SUFDQTtJQUNBO0lBakJELEtBQUssR0FBVyxnQkFBZ0IsQ0FBQztJQUNqQyxRQUFRLEdBQVcsdUJBQXVCLENBQUM7SUFDM0MsYUFBYSxHQUFXLFFBQVEsQ0FBQztJQUNqQyxlQUFlLENBQVU7SUFDekIscUJBQXFCLENBQVU7SUFDL0IsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxLQUFLLENBQVU7SUFFZCxRQUFRLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsV0FBVyxHQUNuQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXJCLGlCQUFpQixDQUFZO0lBRTdCLFlBQ1UsRUFBZSxFQUNmLE1BQTZCLEVBQzdCLFdBQXdCO1FBRnhCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixnQkFBVyxH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QUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzt3R0FuRlUsc0JBQXNCOzRGQUF0QixzQkFBc0Isc1ZDdEJuQywyd0NBc0JBOzs0RkRBYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsdUJBQXVCOzhJQU14QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXNldFBhc3N3b3JkRGF0YSB9IGZyb20gJy4vUmVzZXRQYXNzd29yZERhdGEnO1xuaW1wb3J0IHsgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC13ZWItcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JSZXNwb25zZSc7XG5pbXBvcnQgeyBSZXNwb25zZUtleVZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1Jlc3BvbnNlS2V5VmFsdWUnO1xuaW1wb3J0IHsgUGFzc3dvcmRSZXF1ZXN0UGFyYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvUGFzc3dvcmRSZXF1ZXN0UGFyYW0nO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tcmVzZXQtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmNzcycsXG59KVxuXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnUmVzZXQgUGFzc3dvcmQnO1xuICBASW5wdXQoKSBzdWJUaXRsZTogc3RyaW5nID0gJ0NyZWF0ZSBhIE5ldyBQYXNzd29yZCc7XG4gIEBJbnB1dCgpIGJ1dHRvbkNhcHRpb246IHN0cmluZyA9ICdTdWJtaXQnO1xuICBASW5wdXQoKSBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbkJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2hvd09sZFBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRva2VuPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPFJlc2V0UGFzc3dvcmREYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU3VibWl0RW5kOiBFdmVudEVtaXR0ZXI8UmVzcG9uc2VLZXlWYWx1ZSB8IEVycm9yUmVzcG9uc2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVzZXRQYXNzd29yZEZvcm06IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHNlcnZlcjogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVzZXRQYXNzd29yZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE9sZFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMub2xkUGFzc3dvcmRWYWxpZGF0b3IuYmluZCh0aGlzKVxuICAgICAgKSxcbiAgICAgIFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBDb25maXJtUGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkVmFsaWRhdG9yLmJpbmQodGhpcyksXG4gICAgICBdKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNldFBhc3N3b3JkRm9ybS52YWxpZDtcbiAgfVxuXG4gIG9sZFBhc3N3b3JkVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAodGhpcy5zaG93T2xkUGFzc3dvcmQgJiYgY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBjdXN0b21WYWxpZGF0aW9uOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybSAmJlxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snUGFzc3dvcmQnXSAmJlxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snUGFzc3dvcmQnXS52YWx1ZSAhPT0gY29udHJvbC52YWx1ZVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JtKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGRhdGE6IFJlc2V0UGFzc3dvcmREYXRhID0ge1xuICAgICAgT2xkUGFzc3dvcmQ6IHRoaXMuc2hvd09sZFBhc3N3b3JkXG4gICAgICAgID8gdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snT2xkUGFzc3dvcmQnXS52YWx1ZVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIFBhc3N3b3JkOiB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLmNvbnRyb2xzWydQYXNzd29yZCddLnZhbHVlLFxuICAgICAgQ29uZmlybVBhc3N3b3JkOiB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLmNvbnRyb2xzWydDb25maXJtUGFzc3dvcmQnXS52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMub25TdWJtaXQuZW1pdChkYXRhKTtcbiAgICB2YXIgcGFzc3dvcmRSZXF1ZXN0OiBQYXNzd29yZFJlcXVlc3RQYXJhbSA9IHtcbiAgICAgIE5ld1Bhc3N3b3JkOiBkYXRhLlBhc3N3b3JkLFxuICAgICAgT2xkUGFzc3dvcmQ6IGRhdGEuT2xkUGFzc3dvcmQsXG4gICAgICBUb2tlbjogdGhpcy50b2tlbixcbiAgICB9O1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgVXNlci9Db21wbGV0ZUNoYW5nZVBhc3N3b3JkUmVxdWVzdGAsXG4gICAgICBwYXNzd29yZFJlcXVlc3RcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgdGhpcy5vblN1Ym1pdEVuZC5lbWl0KHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgUmVzcG9uc2VLZXlWYWx1ZTtcbiAgICAgIHRoaXMub25TdWJtaXRFbmQuZW1pdChyZXN1bHQpO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwidGhpcy5yZXNldFBhc3N3b3JkRm9ybVwiIGNsYXNzPVwicmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLWhlYWRlciBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXRpdGxlXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXN1YnRpdGxlXCI+e3tzdWJUaXRsZX19PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd09sZFBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWZpZWxkIGZsZXggZmxleC1jb2xcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1jYXB0aW9uXCI+T2xkIFBhc3N3b3JkPC9kaXY+XG4gICAgPHZlcmJlbmEtaW5wdXQgYmdDb2xvcj1cIndoaXRlXCIgYm9yZGVyUmFkaXVzPVwiMTJweFwiIGZvcm1Db250cm9sTmFtZT1cIk9sZFBhc3N3b3JkXCIgdHlwZT1cInBhc3N3b3JkXCI+PC92ZXJiZW5hLWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQgZmxleCBmbGV4LWNvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWNhcHRpb25cIj5OZXcgUGFzc3dvcmQ8L2Rpdj5cbiAgICA8dmVyYmVuYS1pbnB1dCBiZ0NvbG9yPVwid2hpdGVcIiBib3JkZXJSYWRpdXM9XCIxMnB4XCIgZm9ybUNvbnRyb2xOYW1lPVwiUGFzc3dvcmRcIiB0eXBlPVwicGFzc3dvcmRcIj48L3ZlcmJlbmEtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtY2FwdGlvblwiPkNvbmZpcm0gUGFzc3dvcmQ8L2Rpdj5cbiAgICA8dmVyYmVuYS1pbnB1dCBiZ0NvbG9yPVwid2hpdGVcIiBib3JkZXJSYWRpdXM9XCIxMnB4XCIgZm9ybUNvbnRyb2xOYW1lPVwiQ29uZmlybVBhc3N3b3JkXCJcbiAgICAgIHR5cGU9XCJwYXNzd29yZFwiPjwvdmVyYmVuYS1pbnB1dD5cbiAgPC9kaXY+XG4gIDx2ZXJiZW5hLWJ1dHRvbiBmb250V2VpZ2h0PVwiNzAwXCIgKGNsaWNrKT1cInN1Ym1pdCgpXCIgW3RleHRdPVwiYnV0dG9uQ2FwdGlvblwiIHdpZHRoPVwiMTAwJVwiIFt0ZXh0Q29sb3JdPVwiYnV0dG9uVGV4dENvbG9yXCJcbiAgICBbYmdDb2xvcl09XCJidXR0b25CYWNrZ3JvdW5kQ29sb3JcIiBib3JkZXJSYWRpdXM9XCIyNXB4XCIgW2Rpc2FibGVdPVwiIXRoaXMuY2hlY2tGb3JtKClcIj48L3ZlcmJlbmEtYnV0dG9uPlxuXG48L2Rpdj5cbiJdfQ==
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLWF1dGhlbnRpY2F0aW9uLXVpL3NyYy9saWIvY29tcG9uZW50cy9yZXNldC1wYXNzd29yZC9yZXNldC1wYXNzd29yZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL3Jlc2V0LXBhc3N3b3JkL3Jlc2V0LXBhc3N3b3JkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUdMLFdBQVcsRUFHWCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUd4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFXM0QsTUFBTSxPQUFPLHNCQUFzQjtJQWdCdkI7SUFDQTtJQUNBO0lBakJELEtBQUssR0FBVyxnQkFBZ0IsQ0FBQztJQUNqQyxRQUFRLEdBQVcsdUJBQXVCLENBQUM7SUFDM0MsYUFBYSxHQUFXLFFBQVEsQ0FBQztJQUNqQyxlQUFlLENBQVU7SUFDekIscUJBQXFCLENBQVU7SUFDL0IsZUFBZSxHQUFZLEtBQUssQ0FBQztJQUNqQyxLQUFLLENBQVU7SUFFZCxRQUFRLEdBQW9DLElBQUksWUFBWSxFQUFFLENBQUM7SUFDL0QsV0FBVyxHQUNuQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXJCLGlCQUFpQixDQUFZO0lBRTdCLFlBQ1UsRUFBZSxFQUNmLE1BQTZCLEVBQzdCLFdBQXdCO1FBRnhCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixnQkFBVyxH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QUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQzt3R0FuRlUsc0JBQXNCOzRGQUF0QixzQkFBc0Isc1ZDdEJuQyxxMkNBdUJNOzs0RkRETyxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0UsdUJBQXVCOzhJQU14QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZXNldFBhc3N3b3JkRGF0YSB9IGZyb20gJy4vUmVzZXRQYXNzd29yZERhdGEnO1xuaW1wb3J0IHsgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC13ZWItcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IEVycm9yUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvRXJyb3JSZXNwb25zZSc7XG5pbXBvcnQgeyBSZXNwb25zZUtleVZhbHVlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1Jlc3BvbnNlS2V5VmFsdWUnO1xuaW1wb3J0IHsgUGFzc3dvcmRSZXF1ZXN0UGFyYW0gfSBmcm9tICcuLi8uLi9tb2RlbHMvUGFzc3dvcmRSZXF1ZXN0UGFyYW0nO1xuaW1wb3J0IHsgVXRpbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy91dGlsLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tcmVzZXQtcGFzc3dvcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LmNzcycsXG59KVxuXG5leHBvcnQgY2xhc3MgUmVzZXRQYXNzd29yZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgPSAnUmVzZXQgUGFzc3dvcmQnO1xuICBASW5wdXQoKSBzdWJUaXRsZTogc3RyaW5nID0gJ0NyZWF0ZSBhIE5ldyBQYXNzd29yZCc7XG4gIEBJbnB1dCgpIGJ1dHRvbkNhcHRpb246IHN0cmluZyA9ICdTdWJtaXQnO1xuICBASW5wdXQoKSBidXR0b25UZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbkJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2hvd09sZFBhc3N3b3JkOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRva2VuPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBvblN1Ym1pdDogRXZlbnRFbWl0dGVyPFJlc2V0UGFzc3dvcmREYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uU3VibWl0RW5kOiBFdmVudEVtaXR0ZXI8UmVzcG9uc2VLZXlWYWx1ZSB8IEVycm9yUmVzcG9uc2U+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcmVzZXRQYXNzd29yZEZvcm06IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHNlcnZlcjogSHR0cFdlYlJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgdXRpbFNlcnZpY2U6IFV0aWxTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMucmVzZXRQYXNzd29yZEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIE9sZFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4oXG4gICAgICAgIG51bGwsXG4gICAgICAgIHRoaXMub2xkUGFzc3dvcmRWYWxpZGF0b3IuYmluZCh0aGlzKVxuICAgICAgKSxcbiAgICAgIFBhc3N3b3JkOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBDb25maXJtUGFzc3dvcmQ6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIHRoaXMuY29uZmlybVBhc3N3b3JkVmFsaWRhdG9yLmJpbmQodGhpcyksXG4gICAgICBdKSxcbiAgICB9KTtcbiAgfVxuXG4gIGNoZWNrRm9ybSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yZXNldFBhc3N3b3JkRm9ybS52YWxpZDtcbiAgfVxuXG4gIG9sZFBhc3N3b3JkVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAodGhpcy5zaG93T2xkUGFzc3dvcmQgJiYgY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4geyBjdXN0b21WYWxpZGF0aW9uOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbmZpcm1QYXNzd29yZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybSAmJlxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snUGFzc3dvcmQnXSAmJlxuICAgICAgdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snUGFzc3dvcmQnXS52YWx1ZSAhPT0gY29udHJvbC52YWx1ZVxuICAgICkge1xuICAgICAgcmV0dXJuIHsgY3VzdG9tVmFsaWRhdGlvbjogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzeW5jIHN1Ym1pdCgpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tGb3JtKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGRhdGE6IFJlc2V0UGFzc3dvcmREYXRhID0ge1xuICAgICAgT2xkUGFzc3dvcmQ6IHRoaXMuc2hvd09sZFBhc3N3b3JkXG4gICAgICAgID8gdGhpcy5yZXNldFBhc3N3b3JkRm9ybS5jb250cm9sc1snT2xkUGFzc3dvcmQnXS52YWx1ZVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIFBhc3N3b3JkOiB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLmNvbnRyb2xzWydQYXNzd29yZCddLnZhbHVlLFxuICAgICAgQ29uZmlybVBhc3N3b3JkOiB0aGlzLnJlc2V0UGFzc3dvcmRGb3JtLmNvbnRyb2xzWydDb25maXJtUGFzc3dvcmQnXS52YWx1ZSxcbiAgICB9O1xuICAgIHRoaXMub25TdWJtaXQuZW1pdChkYXRhKTtcbiAgICB2YXIgcGFzc3dvcmRSZXF1ZXN0OiBQYXNzd29yZFJlcXVlc3RQYXJhbSA9IHtcbiAgICAgIE5ld1Bhc3N3b3JkOiBkYXRhLlBhc3N3b3JkLFxuICAgICAgT2xkUGFzc3dvcmQ6IGRhdGEuT2xkUGFzc3dvcmQsXG4gICAgICBUb2tlbjogdGhpcy50b2tlbixcbiAgICB9O1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKHRydWUpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuc2VydmVyLnBvc3QoXG4gICAgICBgVXNlci9Db21wbGV0ZUNoYW5nZVBhc3N3b3JkUmVxdWVzdGAsXG4gICAgICBwYXNzd29yZFJlcXVlc3RcbiAgICApO1xuICAgIHRoaXMudXRpbFNlcnZpY2Uuc2VuZEJJKGZhbHNlKTtcbiAgICBpZiAocmVzIGluc3RhbmNlb2YgRXJyb3JSZXNwb25zZSkge1xuICAgICAgdGhpcy5vblN1Ym1pdEVuZC5lbWl0KHJlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciByZXN1bHQgPSByZXMgYXMgUmVzcG9uc2VLZXlWYWx1ZTtcbiAgICAgIHRoaXMub25TdWJtaXRFbmQuZW1pdChyZXN1bHQpO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwidGhpcy5yZXNldFBhc3N3b3JkRm9ybVwiIGNsYXNzPVwicmVzZXQtcGFzc3dvcmQtY29udGFpbmVyIGZsZXggZmxleC1jb2xcIj5cbiAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLWhlYWRlciBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXRpdGxlXCI+e3t0aXRsZX19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJlc2V0LXBhc3N3b3JkLXN1YnRpdGxlXCI+e3tzdWJUaXRsZX19PC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwic2hvd09sZFBhc3N3b3JkXCIgY2xhc3M9XCJmb3JtLWZpZWxkIGZsZXggZmxleC1jb2xcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZC1jYXB0aW9uXCI+T2xkIFBhc3N3b3JkPC9kaXY+XG4gICAgPHZlcmJlbmEtaW5wdXQgYmdDb2xvcj1cIndoaXRlXCIgYm9yZGVyUmFkaXVzPVwiMTJweFwiIGZvcm1Db250cm9sTmFtZT1cIk9sZFBhc3N3b3JkXCIgW3Bhc3N3b3JkVG9nZ2xlXT1cInRydWVcIlxuICAgICAgdHlwZT1cInBhc3N3b3JkXCI+PC92ZXJiZW5hLWlucHV0PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQgZmxleCBmbGV4LWNvbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWZpZWxkLWNhcHRpb25cIj5OZXcgUGFzc3dvcmQ8L2Rpdj5cbiAgICA8dmVyYmVuYS1pbnB1dCBiZ0NvbG9yPVwid2hpdGVcIiBib3JkZXJSYWRpdXM9XCIxMnB4XCIgZm9ybUNvbnRyb2xOYW1lPVwiUGFzc3dvcmRcIiBbcGFzc3dvcmRUb2dnbGVdPVwidHJ1ZVwiXG4gICAgICB0eXBlPVwicGFzc3dvcmRcIj48L3ZlcmJlbmEtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1maWVsZCBmbGV4IGZsZXgtY29sXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZmllbGQtY2FwdGlvblwiPkNvbmZpcm0gUGFzc3dvcmQ8L2Rpdj5cbiAgICA8dmVyYmVuYS1pbnB1dCBiZ0NvbG9yPVwid2hpdGVcIiBib3JkZXJSYWRpdXM9XCIxMnB4XCIgZm9ybUNvbnRyb2xOYW1lPVwiQ29uZmlybVBhc3N3b3JkXCIgW3Bhc3N3b3JkVG9nZ2xlXT1cInRydWVcIlxuICAgICAgdHlwZT1cInBhc3N3b3JkXCI+PC92ZXJiZW5hLWlucHV0PlxuICA8L2Rpdj5cbiAgPHZlcmJlbmEtYnV0dG9uIGZvbnRXZWlnaHQ9XCI3MDBcIiAoY2xpY2spPVwic3VibWl0KClcIiBbdGV4dF09XCJidXR0b25DYXB0aW9uXCIgd2lkdGg9XCIxMDAlXCIgW3RleHRDb2xvcl09XCJidXR0b25UZXh0Q29sb3JcIlxuICAgIFtiZ0NvbG9yXT1cImJ1dHRvbkJhY2tncm91bmRDb2xvclwiIGJvcmRlclJhZGl1cz1cIjI1cHhcIiBbZGlzYWJsZV09XCIhdGhpcy5jaGVja0Zvcm0oKVwiPjwvdmVyYmVuYS1idXR0b24+XG5cbjwvZGl2PiJdfQ==
|