UNPKG

ngx-tencent-im

Version:
69 lines 17.9 kB
import { Component, ChangeDetectionStrategy, Input } from '@angular/core'; import { MESSAGE_STATUS, TIM } from '../../shared.data'; import { showAction } from '../../store/actions'; import * as i0 from "@angular/core"; import * as i1 from "@angular/forms"; import * as i2 from "ng-zorro-antd/modal"; import * as i3 from "@ngrx/store"; import * as i4 from "../../tim-helper.service"; import * as i5 from "ng-zorro-antd/form"; import * as i6 from "ng-zorro-antd/radio"; import * as i7 from "ng-zorro-antd/button"; import * as i8 from "ng-zorro-antd/grid"; import * as i9 from "ng-zorro-antd/input"; import * as i10 from "@angular/common"; import * as i11 from "ng-zorro-antd/core/wave"; import * as i12 from "ng-zorro-antd/core/transition-patch"; export class EditProfileComponent { constructor(fb, modalRef, store, timHelperService) { this.fb = fb; this.modalRef = modalRef; this.store = store; this.timHelperService = timHelperService; this.radioOption = [ { label: '男', value: TIM.TYPES.GENDER_MALE }, { label: '女', value: TIM.TYPES.GENDER_FEMALE }, { label: '不显示', value: TIM.TYPES.GENDER_UNKNOWN }, ]; } ngOnInit() { this.form = this.fb.group({ avatar: [this.userProfile.avatar], nick: [this.userProfile.nick], gender: [this.userProfile.gender] }); } submitForm() { const formValue = this.form.value; if (formValue.avatar && formValue.avatar.indexOf('http') === -1) { this.store.dispatch(showAction({ msgType: MESSAGE_STATUS.warning, message: '头像应该是 Url 地址' })); formValue.avatar = ''; return; } const options = {}; // 过滤空串 Object.keys(formValue).forEach(key => { if (formValue[key]) { options[key] = formValue[key]; } }); this.timHelperService.tim .updateMyProfile(options) .then(() => { this.store.dispatch(showAction({ msgType: MESSAGE_STATUS.success, message: '修改成功' })); this.modalRef.destroy(); }) .catch(imError => { this.store.dispatch(showAction({ msgType: MESSAGE_STATUS.error, message: imError.message })); }); } } EditProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: EditProfileComponent, deps: [{ token: i1.FormBuilder }, { token: i2.NzModalRef }, { token: i3.Store }, { token: i4.TimHelperService }], target: i0.ɵɵFactoryTarget.Component }); EditProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: EditProfileComponent, selector: "im-edit-profile", inputs: { userProfile: "userProfile" }, ngImport: i0, template: "<form nz-form [formGroup]=\"form\" (ngSubmit)=\"submitForm()\">\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\r\n <span>\u5934\u50CF</span>\r\n </nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <input nz-input formControlName=\"avatar\" placeholder=\"\u5934\u50CF\u5730\u5740\" />\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"avatar\">\u6635\u79F0</nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <input nz-input formControlName=\"nick\" placeholder=\"\u6635\u79F0\" />\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u6027\u522B\r\n </nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <nz-radio-group formControlName=\"gender\">\r\n <label *ngFor=\"let item of radioOption\" nz-radio\r\n [nzValue]=\"item.value\">{{item.label}}</label>\r\n </nz-radio-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n\r\n <nz-form-item nz-row nzJustify=\"center\">\r\n <nz-form-control [nzSpan]=\"12\" nzPush=\"8\">\r\n <button nz-button nzType=\"primary\">\u786E\u5B9A</button>\r\n </nz-form-control>\r\n <nz-form-control [nzSpan]=\"12\">\r\n <button nz-button nzType=\"default\" type=\"button\" (click)=\"modalRef.destroy()\">\u53D6\u6D88</button>\r\n </nz-form-control>\r\n </nz-form-item>\r\n</form>\r\n", styles: [""], components: [{ type: i5.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { type: i5.NzFormLabelComponent, selector: "nz-form-label", inputs: ["nzFor", "nzRequired", "nzNoColon", "nzTooltipTitle", "nzTooltipIcon"], exportAs: ["nzFormLabel"] }, { type: i5.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { type: i6.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { type: i6.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { type: i7.NzButtonComponent, selector: "button[nz-button], a[nz-button]", inputs: ["nzBlock", "nzGhost", "nzSearch", "nzLoading", "nzDanger", "disabled", "tabIndex", "nzType", "nzShape", "nzSize"], exportAs: ["nzButton"] }], directives: [{ type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NzFormDirective, selector: "[nz-form]", inputs: ["nzLayout", "nzNoColon", "nzAutoTips", "nzDisableAutoTips", "nzTooltipIcon"], exportAs: ["nzForm"] }, { type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i8.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i8.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i9.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "disabled"], exportAs: ["nzInput"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i11.NzWaveDirective, selector: "[nz-wave],button[nz-button]:not([nzType=\"link\"]):not([nzType=\"text\"])", inputs: ["nzWaveExtraNode"], exportAs: ["nzWave"] }, { type: i12.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: EditProfileComponent, decorators: [{ type: Component, args: [{ selector: 'im-edit-profile', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form nz-form [formGroup]=\"form\" (ngSubmit)=\"submitForm()\">\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\r\n <span>\u5934\u50CF</span>\r\n </nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <input nz-input formControlName=\"avatar\" placeholder=\"\u5934\u50CF\u5730\u5740\" />\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\" nzFor=\"avatar\">\u6635\u79F0</nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <input nz-input formControlName=\"nick\" placeholder=\"\u6635\u79F0\" />\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n <nz-form-item>\r\n <nz-form-label [nzSm]=\"6\" [nzXs]=\"24\">\u6027\u522B\r\n </nz-form-label>\r\n <nz-form-control [nzSm]=\"14\" [nzXs]=\"24\">\r\n <nz-radio-group formControlName=\"gender\">\r\n <label *ngFor=\"let item of radioOption\" nz-radio\r\n [nzValue]=\"item.value\">{{item.label}}</label>\r\n </nz-radio-group>\r\n </nz-form-control>\r\n </nz-form-item>\r\n\r\n\r\n <nz-form-item nz-row nzJustify=\"center\">\r\n <nz-form-control [nzSpan]=\"12\" nzPush=\"8\">\r\n <button nz-button nzType=\"primary\">\u786E\u5B9A</button>\r\n </nz-form-control>\r\n <nz-form-control [nzSpan]=\"12\">\r\n <button nz-button nzType=\"default\" type=\"button\" (click)=\"modalRef.destroy()\">\u53D6\u6D88</button>\r\n </nz-form-control>\r\n </nz-form-item>\r\n</form>\r\n", styles: [""] }] }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.NzModalRef }, { type: i3.Store }, { type: i4.TimHelperService }]; }, propDecorators: { userProfile: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wcm9maWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZW5jZW50LWltL3NyYy9teS1wcm9maWxlL2VkaXQtcHJvZmlsZS9lZGl0LXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlbmNlbnQtaW0vc3JjL215LXByb2ZpbGUvZWRpdC1wcm9maWxlL2VkaXQtcHJvZmlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUtsRixPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTakQsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixZQUNVLEVBQWUsRUFDaEIsUUFBb0IsRUFDbkIsS0FBWSxFQUNaLGdCQUFrQztRQUhsQyxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2hCLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWNUMsZ0JBQVcsR0FBRztZQUNaLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUU7WUFDNUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUM5QyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxFQUFFO1NBQ2xELENBQUM7SUFRRSxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDeEIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDakMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDN0IsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUN6RSxDQUFDO1lBQ0YsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDdEIsT0FBTztTQUNSO1FBQ0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ25CLE9BQU87UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMvQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUc7YUFDdEIsZUFBZSxDQUFDLE9BQWtCLENBQUM7YUFDbkMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNqQixVQUFVLENBQUMsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FDakUsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLFVBQVUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDeEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7aUhBeERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtGQ2ZqQyxzL0NBc0NBOzJGRHZCYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OEtBR3RDLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xyXG5pbXBvcnQgeyBOek1vZGFsUmVmIH0gZnJvbSAnbmctem9ycm8tYW50ZC9tb2RhbCc7XHJcbmltcG9ydCB7IFByb2ZpbGUgfSBmcm9tICd0aW0tanMtc2RrJztcclxuaW1wb3J0IHsgTUVTU0FHRV9TVEFUVVMsIFRJTSB9IGZyb20gJy4uLy4uL3NoYXJlZC5kYXRhJztcclxuaW1wb3J0IHsgc2hvd0FjdGlvbiB9IGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMnO1xyXG5pbXBvcnQgeyBUaW1IZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGltLWhlbHBlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW0tZWRpdC1wcm9maWxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRpdC1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lZGl0LXByb2ZpbGUuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdFByb2ZpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHVzZXJQcm9maWxlOiBQcm9maWxlO1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcblxyXG4gIHJhZGlvT3B0aW9uID0gW1xyXG4gICAgeyBsYWJlbDogJ+eUtycsIHZhbHVlOiBUSU0uVFlQRVMuR0VOREVSX01BTEUgfSxcclxuICAgIHsgbGFiZWw6ICflpbMnLCB2YWx1ZTogVElNLlRZUEVTLkdFTkRFUl9GRU1BTEUgfSxcclxuICAgIHsgbGFiZWw6ICfkuI3mmL7npLonLCB2YWx1ZTogVElNLlRZUEVTLkdFTkRFUl9VTktOT1dOIH0sXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHB1YmxpYyBtb2RhbFJlZjogTnpNb2RhbFJlZixcclxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlLFxyXG4gICAgcHJpdmF0ZSB0aW1IZWxwZXJTZXJ2aWNlOiBUaW1IZWxwZXJTZXJ2aWNlXHJcblxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGF2YXRhcjogW3RoaXMudXNlclByb2ZpbGUuYXZhdGFyXSxcclxuICAgICAgbmljazogW3RoaXMudXNlclByb2ZpbGUubmlja10sXHJcbiAgICAgIGdlbmRlcjogW3RoaXMudXNlclByb2ZpbGUuZ2VuZGVyXVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtLnZhbHVlO1xyXG4gICAgaWYgKGZvcm1WYWx1ZS5hdmF0YXIgJiYgZm9ybVZhbHVlLmF2YXRhci5pbmRleE9mKCdodHRwJykgPT09IC0xKSB7XHJcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXHJcbiAgICAgICAgc2hvd0FjdGlvbih7IG1zZ1R5cGU6IE1FU1NBR0VfU1RBVFVTLndhcm5pbmcsIG1lc3NhZ2U6ICflpLTlg4/lupTor6XmmK8gVXJsIOWcsOWdgCcgfSlcclxuICAgICAgKTtcclxuICAgICAgZm9ybVZhbHVlLmF2YXRhciA9ICcnO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBvcHRpb25zID0ge307XHJcbiAgICAvLyDov4fmu6TnqbrkuLJcclxuICAgIE9iamVjdC5rZXlzKGZvcm1WYWx1ZSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBpZiAoZm9ybVZhbHVlW2tleV0pIHtcclxuICAgICAgICBvcHRpb25zW2tleV0gPSBmb3JtVmFsdWVba2V5XTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRpbUhlbHBlclNlcnZpY2UudGltXHJcbiAgICAgIC51cGRhdGVNeVByb2ZpbGUob3B0aW9ucyBhcyBQcm9maWxlKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcclxuICAgICAgICAgIHNob3dBY3Rpb24oeyBtc2dUeXBlOiBNRVNTQUdFX1NUQVRVUy5zdWNjZXNzLCBtZXNzYWdlOiAn5L+u5pS55oiQ5YqfJyB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5tb2RhbFJlZi5kZXN0cm95KCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaChpbUVycm9yID0+IHtcclxuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxyXG4gICAgICAgICAgc2hvd0FjdGlvbih7IG1zZ1R5cGU6IE1FU1NBR0VfU1RBVFVTLmVycm9yLCBtZXNzYWdlOiBpbUVycm9yLm1lc3NhZ2UgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxmb3JtIG56LWZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gIDxuei1mb3JtLWl0ZW0+XHJcbiAgICA8bnotZm9ybS1sYWJlbCBbbnpTbV09XCI2XCIgW256WHNdPVwiMjRcIj5cclxuICAgICAgPHNwYW4+5aS05YOPPC9zcGFuPlxyXG4gICAgPC9uei1mb3JtLWxhYmVsPlxyXG4gICAgPG56LWZvcm0tY29udHJvbCBbbnpTbV09XCIxNFwiIFtuelhzXT1cIjI0XCI+XHJcbiAgICAgIDxpbnB1dCBuei1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJhdmF0YXJcIiBwbGFjZWhvbGRlcj1cIuWktOWDj+WcsOWdgFwiIC8+XHJcbiAgICA8L256LWZvcm0tY29udHJvbD5cclxuICA8L256LWZvcm0taXRlbT5cclxuXHJcbiAgPG56LWZvcm0taXRlbT5cclxuICAgIDxuei1mb3JtLWxhYmVsIFtuelNtXT1cIjZcIiBbbnpYc109XCIyNFwiIG56Rm9yPVwiYXZhdGFyXCI+5pi156ewPC9uei1mb3JtLWxhYmVsPlxyXG4gICAgPG56LWZvcm0tY29udHJvbCBbbnpTbV09XCIxNFwiIFtuelhzXT1cIjI0XCI+XHJcbiAgICAgIDxpbnB1dCBuei1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuaWNrXCIgcGxhY2Vob2xkZXI9XCLmmLXnp7BcIiAvPlxyXG4gICAgPC9uei1mb3JtLWNvbnRyb2w+XHJcbiAgPC9uei1mb3JtLWl0ZW0+XHJcblxyXG4gIDxuei1mb3JtLWl0ZW0+XHJcbiAgICA8bnotZm9ybS1sYWJlbCBbbnpTbV09XCI2XCIgW256WHNdPVwiMjRcIj7mgKfliKtcclxuICAgIDwvbnotZm9ybS1sYWJlbD5cclxuICAgIDxuei1mb3JtLWNvbnRyb2wgW256U21dPVwiMTRcIiBbbnpYc109XCIyNFwiPlxyXG4gICAgICA8bnotcmFkaW8tZ3JvdXAgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZGVyXCI+XHJcbiAgICAgICAgPGxhYmVsICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJhZGlvT3B0aW9uXCIgbnotcmFkaW9cclxuICAgICAgICAgIFtuelZhbHVlXT1cIml0ZW0udmFsdWVcIj57e2l0ZW0ubGFiZWx9fTwvbGFiZWw+XHJcbiAgICAgIDwvbnotcmFkaW8tZ3JvdXA+XHJcbiAgICA8L256LWZvcm0tY29udHJvbD5cclxuICA8L256LWZvcm0taXRlbT5cclxuXHJcblxyXG4gIDxuei1mb3JtLWl0ZW0gbnotcm93IG56SnVzdGlmeT1cImNlbnRlclwiPlxyXG4gICAgPG56LWZvcm0tY29udHJvbCBbbnpTcGFuXT1cIjEyXCIgbnpQdXNoPVwiOFwiPlxyXG4gICAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJwcmltYXJ5XCI+56Gu5a6aPC9idXR0b24+XHJcbiAgICA8L256LWZvcm0tY29udHJvbD5cclxuICAgIDxuei1mb3JtLWNvbnRyb2wgW256U3Bhbl09XCIxMlwiPlxyXG4gICAgICA8YnV0dG9uIG56LWJ1dHRvbiBuelR5cGU9XCJkZWZhdWx0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJtb2RhbFJlZi5kZXN0cm95KClcIj7lj5bmtog8L2J1dHRvbj5cclxuICAgIDwvbnotZm9ybS1jb250cm9sPlxyXG4gIDwvbnotZm9ybS1pdGVtPlxyXG48L2Zvcm0+XHJcbiJdfQ==