/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { Request } from '../_services/request.service';
import { Common } from '../_services/common.service';
import { HttpClient, HttpEventType, HttpHeaders, HttpRequest, HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ModalDirective } from 'ngx-bootstrap';
import { AppConfigService } from '../app-config/app-config.service';
import * as _ from 'lodash';
export class ModalImageUploadComponent {
/**
* @param {?} appConfigService
* @param {?} request
* @param {?} common
* @param {?} http
*/
constructor(appConfigService, request, common, http) {
this.appConfigService = appConfigService;
this.request = request;
this.common = common;
this.http = http;
this.upLoadType = [{ title: "File", type: 1 }, { title: "Scan", type: 2 }, { title: "Link", type: 3 }, { title: "QR Code", type: 3 }];
this.systemId = '0';
this.RelatedAgency = 'SOC';
this.RecordId = '0';
this.Subject = '-';
this.TypeId = '0';
this.popupTitle = 'เลือกรูปประจำตัว';
this.uploaded = new EventEmitter();
this.onSubmit = new EventEmitter();
// @ViewChild('myModal') myModal;
this.fileList = [];
this.uploadHeaders = {
"Authorization": "Basic " + btoa("APPSOC:123456")
};
this.loading = false;
this.beforeUpload = (file, _fileList) => {
return new Observable((observer) => {
/** @type {?} */
let whitelist = [
'application/pdf',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-excel',
'application/vnd.msexcel',
'application/csv',
'text/csv',
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/vnd.ms-powerpoint',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'text/plain',
'text/comma-separated-values',
'text/anytext',
'image/png',
'image/jpeg',
'image/gif',
'image/bmp'
];
/** @type {?} */
const isWhitelist = (file && whitelist.indexOf(file.type) > -1);
if (!isWhitelist) {
setTimeout(() => {
this.fileList = [{
uid: '999',
name: 'สามารถอัพโหลดได้เฉพาะไฟล์ pdf , png , jpeg ,gif , text , word , excel , powerpoint',
status: 'error',
response: 'สามารถอัพโหลดได้เฉพาะไฟล์ pdf , png , jpeg ,gif , text , word , excel , powerpoint',
url: null
}];
}, 50);
observer.complete();
return;
}
/** @type {?} */
const isLt30M = /** @type {?} */ ((file.size)) / 1024 / 1024 < 30;
if (!isLt30M) {
this.fileList = [{
uid: '999',
name: 'File must smaller than 30MB!',
status: 'error',
response: 'File must smaller than 30MB!',
url: null
}];
observer.complete();
return;
}
observer.next(isWhitelist && isLt30M);
observer.complete();
});
};
this.customReq = (item) => {
/** @type {?} */
const formData = new FormData();
// tslint:disable-next-line:no-any
formData.append('FileData', /** @type {?} */ (item.file));
formData.append('SystemId', '' + this.systemId);
formData.append('RelatedAgency', this.RelatedAgency);
formData.append('RecordId', this.RecordId);
formData.append('Subject', this.Subject);
formData.append('TypeId', this.TypeId);
/** @type {?} */
let headers = new HttpHeaders();
headers = headers.set('Authorization', 'Basic ' + btoa('APPSOC:123456'));
/** @type {?} */
let req = new HttpRequest('POST', item.action, formData, {
reportProgress: true,
headers: headers
});
// req.headers.set('Authorization', 'Basic ' + btoa('APPSOC:123456'));
return this.http.request(req).subscribe((event) => {
if (event.type === HttpEventType.UploadProgress) {
if (event.total > 0) {
(/** @type {?} */ (event)).percent = event.loaded / event.total * 100;
}
item.onProgress(event, item.file);
}
else if (event instanceof HttpResponse) {
// console.log("event.body",event.body);
// let res = JSON.parse(event.body);
if (this.fileList && this.fileList.length > 1) {
this.fileList = [this.fileList[this.fileList.length - 1]];
}
this.uploaded.emit(event.body);
this.data = event.body;
item.onSuccess(event.body, item.file, event);
}
}, (err) => {
item.onError(err, item.file);
});
};
this.config = appConfigService.getConfig();
this.url = _.get(this.config, 'apiServers.alfresco.url') || "https://203.154.32.126:2585/api/mfec/Alfresco";
}
/**
* @return {?}
*/
ngOnInit() {
}
/**
* @param {?} file
* @return {?}
*/
onUploaded(file) {
console.log("file", file);
/** @type {?} */
let res = JSON.parse(file.request.response);
this.request.getAttachmentLinkToken(this.url + '/' + res.uuid).then(url => {
this.avatarUrl = url;
});
this.uploaded.emit(res);
}
/**
* @return {?}
*/
clearValue() {
this.fileList = [];
}
/**
* @return {?}
*/
closeModal() {
this.modal.hide();
this.data = null;
this.fileList = [];
}
/**
* @return {?}
*/
clickSubmit() {
this.onSubmit.emit(this.data);
this.modal.hide();
this.data = null;
this.fileList = [];
}
}
ModalImageUploadComponent.decorators = [
{ type: Component, args: [{
selector: 'modal-image-upload',
template: "
\n",
styles: [`
:host ::ng-deep .avatar-uploader > .ant-upload, :host ::ng-deep .avatar {
width: 128px;
height: 128px;
}
:host ::ng-deep .ant-upload-select-picture-card i {
font-size: 32px;
color: #999;
}
:host ::ng-deep .ant-upload-select-picture-card .ant-upload-text {
margin-top: 8px;
color: #666;
}
`]
}] }
];
/** @nocollapse */
ModalImageUploadComponent.ctorParameters = () => [
{ type: AppConfigService },
{ type: Request },
{ type: Common },
{ type: HttpClient }
];
ModalImageUploadComponent.propDecorators = {
modal: [{ type: ViewChild, args: ['modal',] }],
upLoadType: [{ type: Input }],
systemId: [{ type: Input }],
RelatedAgency: [{ type: Input }],
RecordId: [{ type: Input }],
Subject: [{ type: Input }],
TypeId: [{ type: Input }],
downloadToken: [{ type: Input }],
popupTitle: [{ type: Input }],
uploaded: [{ type: Output }],
onSubmit: [{ type: Output }]
};
if (false) {
/** @type {?} */
ModalImageUploadComponent.prototype.modal;
/** @type {?} */
ModalImageUploadComponent.prototype.upLoadType;
/** @type {?} */
ModalImageUploadComponent.prototype.systemId;
/** @type {?} */
ModalImageUploadComponent.prototype.RelatedAgency;
/** @type {?} */
ModalImageUploadComponent.prototype.RecordId;
/** @type {?} */
ModalImageUploadComponent.prototype.Subject;
/** @type {?} */
ModalImageUploadComponent.prototype.TypeId;
/** @type {?} */
ModalImageUploadComponent.prototype.downloadToken;
/** @type {?} */
ModalImageUploadComponent.prototype.popupTitle;
/** @type {?} */
ModalImageUploadComponent.prototype.uploaded;
/** @type {?} */
ModalImageUploadComponent.prototype.onSubmit;
/** @type {?} */
ModalImageUploadComponent.prototype.fileList;
/** @type {?} */
ModalImageUploadComponent.prototype.uploadHeaders;
/** @type {?} */
ModalImageUploadComponent.prototype.loading;
/** @type {?} */
ModalImageUploadComponent.prototype.avatarUrl;
/** @type {?} */
ModalImageUploadComponent.prototype.data;
/** @type {?} */
ModalImageUploadComponent.prototype.config;
/** @type {?} */
ModalImageUploadComponent.prototype.url;
/** @type {?} */
ModalImageUploadComponent.prototype.beforeUpload;
/** @type {?} */
ModalImageUploadComponent.prototype.customReq;
/** @type {?} */
ModalImageUploadComponent.prototype.appConfigService;
/** @type {?} */
ModalImageUploadComponent.prototype.request;
/** @type {?} */
ModalImageUploadComponent.prototype.common;
/** @type {?} */
ModalImageUploadComponent.prototype.http;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1pbWFnZS11cGxvYWQvbW9kYWwtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFVBQVUsRUFBYSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsVUFBVSxFQUF1QixNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBdUI1QixNQUFNOzs7Ozs7O0lBdUJGLFlBQW9CLGdCQUFrQyxFQUFTLE9BQWdCLEVBQVMsTUFBYyxFQUFVLElBQWdCO1FBQTVHLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7MEJBcEJyRyxDQUFDLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLEtBQUss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RUFBRSxDQUFDOzs7OztJQUd2QixVQUFVO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUN0Qjs7OztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztLQUN0Qjs7O1lBMUtKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixzNUZBQWtEO3lCQUU5Qzs7Ozs7Ozs7Ozs7OztHQWFMO2FBRUY7Ozs7WUF2Qk8sZ0JBQWdCO1lBUmYsT0FBTztZQUNSLE1BQU07WUFFTixVQUFVOzs7b0JBK0JiLFNBQVMsU0FBQyxPQUFPO3lCQUNqQixLQUFLO3VCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3NCQUNMLEtBQUs7cUJBQ0wsS0FBSzs0QkFDTCxLQUFLO3lCQUNMLEtBQUs7dUJBQ0wsTUFBTTt1QkFDTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnLi4vX3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbn0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7VXBsb2FkWEhSQXJnc30gZnJvbSAnbmctem9ycm8tYW50ZCc7XG5pbXBvcnQge0h0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE56TWVzc2FnZVNlcnZpY2UsIH0gZnJvbSAnbmctem9ycm8tYW50ZCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlcix0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcy9SeCc7XG5pbXBvcnQge01vZGFsRGlyZWN0aXZlfSBmcm9tICduZ3gtYm9vdHN0cmFwJztcbmltcG9ydCB7QXBwQ29uZmlnU2VydmljZX0gZnJvbSAnLi4vYXBwLWNvbmZpZy9hcHAtY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuLy8gaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvbWVzc2FnZSc7XG4vLyBpbXBvcnQgeyBVcGxvYWRGaWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC91cGxvYWQnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtb2RhbC1pbWFnZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1pbWFnZS11cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlczogW1xuICAgICAgICBgXG4gICAgOmhvc3QgOjpuZy1kZWVwIC5hdmF0YXItdXBsb2FkZXIgPiAuYW50LXVwbG9hZCwgOmhvc3QgOjpuZy1kZWVwIC5hdmF0YXIge1xuICAgICAgd2lkdGg6IDEyOHB4O1xuICAgICAgaGVpZ2h0OiAxMjhweDtcbiAgICB9XG4gICAgOmhvc3QgOjpuZy1kZWVwIC5hbnQtdXBsb2FkLXNlbGVjdC1waWN0dXJlLWNhcmQgaSB7XG4gICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICBjb2xvcjogIzk5OTtcbiAgICB9XG4gICAgOmhvc3QgOjpuZy1kZWVwIC5hbnQtdXBsb2FkLXNlbGVjdC1waWN0dXJlLWNhcmQgLmFudC11cGxvYWQtdGV4dCB7XG4gICAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgICBjb2xvcjogIzY2NjtcbiAgICB9XG4gIGBcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsSW1hZ2VVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQFZpZXdDaGlsZCgnbW9kYWwnKSBtb2RhbDogTW9kYWxEaXJlY3RpdmU7XG4gICAgQElucHV0KCkgdXBMb2FkVHlwZTogYW55ID0gW3t0aXRsZTpcIkZpbGVcIix0eXBlOjF9LHt0aXRsZTpcIlNjYW5cIix0eXBlOjJ9LHt0aXRsZTpcIkxpbmtcIix0eXBlOjN9LHt0aXRsZTpcIlFSIENvZGVcIix0eXBlOjN9XTtcbiAgICBASW5wdXQoKSBzeXN0ZW1JZDogYW55ID0gJzAnO1xuICAgIEBJbnB1dCgpIFJlbGF0ZWRBZ2VuY3k6IGFueSA9ICdTT0MnO1xuICAgIEBJbnB1dCgpIFJlY29yZElkOiBhbnkgPSAnMCc7XG4gICAgQElucHV0KCkgU3ViamVjdDogYW55ID0gJy0nO1xuICAgIEBJbnB1dCgpIFR5cGVJZDogYW55ID0gJzAnO1xuICAgIEBJbnB1dCgpIGRvd25sb2FkVG9rZW46IGFueSA7XG4gICAgQElucHV0KCkgcG9wdXBUaXRsZSA9ICfguYDguKXguLfguK3guIHguKPguLnguJvguJvguKPguLDguIjguLPguJXguLHguKcnIDtcbiAgICBAT3V0cHV0KCkgdXBsb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIEBWaWV3Q2hpbGQoJ215TW9kYWwnKSBteU1vZGFsO1xuICAgIGZpbGVMaXN0OmFueSA9IFtdO1xuICAgIHVwbG9hZEhlYWRlcnM6YW55ID0ge1xuICAgICAgICBcIkF1dGhvcml6YXRpb25cIjogXCJCYXNpYyBcIitidG9hKFwiQVBQU09DOjEyMzQ1NlwiKVxuICAgIH07XG4gICAgbG9hZGluZyA9IGZhbHNlO1xuICAgIGF2YXRhclVybDogc3RyaW5nO1xuICAgIGRhdGE7XG4gICAgY29uZmlnO1xuICAgIHVybDtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UscHJpdmF0ZSByZXF1ZXN0OiBSZXF1ZXN0LCBwdWJsaWMgY29tbW9uOiBDb21tb24sIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgICAgIHRoaXMudXJsID0gXy5nZXQodGhpcy5jb25maWcsICdhcGlTZXJ2ZXJzLmFsZnJlc2NvLnVybCcpIHx8IFwiaHR0cHM6Ly8yMDMuMTU0LjMyLjEyNjoyNTg1L2FwaS9tZmVjL0FsZnJlc2NvXCI7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG5cbiAgICB9XG4gICAgb25VcGxvYWRlZChmaWxlKXtcbiAgICAgICAgY29uc29sZS5sb2coXCJmaWxlXCIsZmlsZSk7XG4gICAgICAgIGxldCByZXMgPSBKU09OLnBhcnNlKGZpbGUucmVxdWVzdC5yZXNwb25zZSk7XG4gICAgICAgIHRoaXMucmVxdWVzdC5nZXRBdHRhY2htZW50TGlua1Rva2VuKHRoaXMudXJsKycvJytyZXMudXVpZCkudGhlbih1cmwgPT4ge1xuICAgICAgICAgICAgdGhpcy5hdmF0YXJVcmwgPSB1cmw7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnVwbG9hZGVkLmVtaXQocmVzKTtcbiAgICB9XG5cbiAgICBiZWZvcmVVcGxvYWQgPSAoZmlsZTogYW55LCBfZmlsZUxpc3Q6IGFueSkgPT4gIHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogYW55KSA9PiB7XG4gICAgICAgICAgbGV0IHdoaXRlbGlzdCA9IFtcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3BkZicsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm1zZXhjZWwnLFxuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vY3N2JyxcbiAgICAgICAgICAgICAgJ3RleHQvY3N2JyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93JyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLFxuICAgICAgICAgICAgICAndGV4dC9wbGFpbicsXG4gICAgICAgICAgICAgICd0ZXh0L2NvbW1hLXNlcGFyYXRlZC12YWx1ZXMnLFxuICAgICAgICAgICAgICAndGV4dC9hbnl0ZXh0JyxcbiAgICAgICAgICAgICAgJ2ltYWdlL3BuZycsXG4gICAgICAgICAgICAgICdpbWFnZS9qcGVnJyxcbiAgICAgICAgICAgICAgJ2ltYWdlL2dpZicsXG4gICAgICAgICAgICAgICdpbWFnZS9ibXAnXG5cbiAgICAgICAgICAgIF07XG4gICAgICAgICAgY29uc3QgaXNXaGl0ZWxpc3QgPSAoZmlsZSAmJiB3aGl0ZWxpc3QuaW5kZXhPZihmaWxlLnR5cGUpID4gLTEpXG4gICAgICAgICAgaWYoIWlzV2hpdGVsaXN0KXtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlTGlzdCA9IFsge1xuICAgICAgICAgICAgICAgICAgICAgIHVpZDogJzk5OScsXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ+C4quC4suC4oeC4suC4o+C4luC4reC4seC4nuC5guC4q+C4peC4lOC5hOC4lOC5ieC5gOC4ieC4nuC4suC4sOC5hOC4n+C4peC5jCAgcGRmICwgcG5nICAsIGpwZWcgICxnaWYgLCB0ZXh0ICwgd29yZCAsIGV4Y2VsICwgcG93ZXJwb2ludCcsXG4gICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiAn4Liq4Liy4Lih4Liy4Lij4LiW4Lit4Lix4Lie4LmC4Lir4Lil4LiU4LmE4LiU4LmJ4LmA4LiJ4Lie4Liy4Liw4LmE4Lif4Lil4LmMICBwZGYgLCBwbmcgICwganBlZyAgLGdpZiAsIHRleHQgLCB3b3JkICwgZXhjZWwgLCBwb3dlcnBvaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICB1cmw6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgfV1cbiAgICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgaXNMdDMwTSA9IGZpbGUuc2l6ZSEgLyAxMDI0IC8gMTAyNCA8IDMwO1xuICAgICAgICAgIGlmICghaXNMdDMwTSkge1xuICAgICAgICAgICAgdGhpcy5maWxlTGlzdCA9IFsge1xuICAgICAgICAgICAgICAgICAgdWlkOiAnOTk5JyxcbiAgICAgICAgICAgICAgICAgIG5hbWU6ICdGaWxlIG11c3Qgc21hbGxlciB0aGFuIDMwTUIhJyxcbiAgICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAgIHJlc3BvbnNlOiAnRmlsZSBtdXN0IHNtYWxsZXIgdGhhbiAzME1CIScsXG4gICAgICAgICAgICAgICAgICB1cmw6IG51bGxcbiAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBvYnNlcnZlci5uZXh0KGlzV2hpdGVsaXN0ICYmIGlzTHQzME0pO1xuICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuXG4gICAgY3VzdG9tUmVxID0gKGl0ZW06IFVwbG9hZFhIUkFyZ3MpID0+IHtcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ0ZpbGVEYXRhJywgaXRlbS5maWxlIGFzIGFueSk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnU3lzdGVtSWQnLCAnJyt0aGlzLnN5c3RlbUlkKTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdSZWxhdGVkQWdlbmN5JywgdGhpcy5SZWxhdGVkQWdlbmN5KTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdSZWNvcmRJZCcsIHRoaXMuUmVjb3JkSWQpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1N1YmplY3QnLCB0aGlzLlN1YmplY3QpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1R5cGVJZCcsIHRoaXMuVHlwZUlkKTtcbiAgICAgICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoKTtcbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljICcgKyBidG9hKCdBUFBTT0M6MTIzNDU2JykpO1xuICAgICAgICBsZXQgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgaXRlbS5hY3Rpb24sIGZvcm1EYXRhLCB7XG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzcyA6IHRydWUsXG4gICAgICAgICAgICBoZWFkZXJzOiBoZWFkZXJzXG4gICAgICAgIH0pO1xuICAgICAgICAvLyByZXEuaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIGJ0b2EoJ0FQUFNPQzoxMjM0NTYnKSk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChldmVudDogSHR0cEV2ZW50PHt9PikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChldmVudC50b3RhbCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChldmVudCBhcyBhbnkpLnBlcmNlbnQgPSBldmVudC5sb2FkZWQgLyBldmVudC50b3RhbCAqIDEwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpdGVtLm9uUHJvZ3Jlc3MoZXZlbnQsIGl0ZW0uZmlsZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudCBpbnN0YW5jZW9mIEh0dHBSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhcImV2ZW50LmJvZHlcIixldmVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gbGV0IHJlcyA9IEpTT04ucGFyc2UoZXZlbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgICAgIGlmKHRoaXMuZmlsZUxpc3QgJiYgdGhpcy5maWxlTGlzdC5sZW5ndGggPiAxKXtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVMaXN0ID0gW3RoaXMuZmlsZUxpc3RbdGhpcy5maWxlTGlzdC5sZW5ndGgtMV1dXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZC5lbWl0KGV2ZW50LmJvZHkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGEgPSBldmVudC5ib2R5O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLm9uU3VjY2VzcyhldmVudC5ib2R5LCBpdGVtLmZpbGUsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5vbkVycm9yKGVyciwgaXRlbS5maWxlKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbGVhclZhbHVlKCl7XG4gICAgICAgIHRoaXMuZmlsZUxpc3QgPSBbXTtcbiAgICB9XG5cbiAgICBjbG9zZU1vZGFsKCkge1xuICAgICAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIGNsaWNrU3VibWl0KCl7XG4gICAgICAgIHRoaXMub25TdWJtaXQuZW1pdCh0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLm1vZGFsLmhpZGUoKTtcbiAgICAgICAgdGhpcy5kYXRhID0gbnVsbDtcbiAgICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cblxufVxuIl19