/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ViewChild, Input } from '@angular/core';
import { AppConfigService } from '../app-config/app-config.service';
import { DxDataGridComponent } from 'devextreme-angular';
import { Request } from '../_services/request.service';
import { Common } from '../_services/common.service';
import { ModalStepViewComponent } from '../modal-step-view/modal-step-view.component';
import { ModalDirective } from 'ngx-bootstrap';
import { FormBuilder, FormControl, Validators } from '@angular/forms';
import { B2bService } from '../_services/b2b.service';
export class SentListComponent {
/**
* @param {?} appConfigService
* @param {?} request
* @param {?} common
* @param {?} formBuilder
* @param {?} b2b
*/
constructor(appConfigService, request, common, formBuilder, b2b) {
this.appConfigService = appConfigService;
this.request = request;
this.common = common;
this.formBuilder = formBuilder;
this.b2b = b2b;
this.mode = 'CREATE';
this.sentList = [];
this.dxgridPageSize = 10;
this.allowedPageSizes1 = 10;
this.allowedPageSizes2 = 25;
this.allowedPageSizes3 = 50;
this.allowedPageSizes4 = 100;
this.customers = [];
this.lastStep = '';
this.recieveData = {};
this.submittedRecieve = false;
this.config = appConfigService.getConfig();
}
/**
* @return {?}
*/
ngOnInit() {
// if(this.mode === "EDIT"){
// setTimeout(async ()=>{
// this.downloadToken = await this.b2b.getAttachmentToken();
// },500)
this.getSentList();
this.recieveForm = this.formBuilder.group({
book_no: ['', [Validators.required]],
recv_date: new FormControl(''),
});
// }
}
/**
* @return {?}
*/
fr() { return this.recieveForm.controls; }
/**
* @return {?}
*/
getSentList() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
console.log('getSentList', this.sentList);
/** @type {?} */
let sentData = this.option.data;
/** @type {?} */
let filter = {
filter: {
ref_table: sentData.ref_table,
ref_id: sentData.ref_id
},
order_by: ["is_important", "send_book_no", "created_at"]
};
/** @type {?} */
const data = yield this.request.post('/search/v_ct_step_sent', filter);
this.sentList = data.resultData;
console.log('getSentList', this.sentList);
});
}
/**
* @param {?} data
* @return {?}
*/
getRowIndex(data) {
if (!data.data) {
return '';
}
/** @type {?} */
const page = this.dxDataGridSentList.instance.option('paging.pageIndex') || 0;
/** @type {?} */
const pageSize = this.dxDataGridSentList.instance.option('paging.pageSize');
/** @type {?} */
const no = data.row.dataIndex + 1;
return page * pageSize + no;
}
/**
* @param {?} data
* @return {?}
*/
editRecieve(data) {
console.log('data', data);
this.tmpData = data;
this.recieveModal.show();
}
/**
* @return {?}
*/
closeRecieveModal() {
this.submittedRecieve = false;
this.recieveData = {};
this.tmpData = {};
this.recieveModal.hide();
}
/**
* @return {?}
*/
onSubmitRecieve() {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
this.submittedRecieve = true;
// ถ้า form ไม่ครบหรือผิดตามเงื่อนไขที่ตั้งไว้จะจบที่ตรงนี้
if (this.recieveForm.invalid) {
return;
}
console.log('tmpData', this.tmpData);
this.recieveData.name = this.tmpData.name;
if (this.tmpData.ct_main_id)
this.recieveData.ct_main_id = this.tmpData.ct_main_id;
if (this.tmpData.ct_send_id)
this.recieveData.ct_send_id = this.tmpData.ct_send_id;
if (this.tmpData.ct_step_data_id)
this.recieveData.ct_step_data_id = this.tmpData.ct_step_data_id;
console.log('recieveData', this.recieveData);
yield this.request.post("/db/ct_recieve", this.recieveData);
this.getSentList();
this.closeRecieveModal();
});
}
/**
* @param {?} data
* @return {?}
*/
isImportant(data) {
return data.is_important ? "สำคัญ" : "";
}
/**
* @param {?} e
* @return {?}
*/
onCellPrepared(e) {
if (e.rowType === 'data') {
e.cellElement.accessKey = e.column.caption;
}
}
}
SentListComponent.decorators = [
{ type: Component, args: [{
selector: 'soc-sent-list',
template: "\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n {{getRowIndex(data)}}\n
\n \n \n
\n
\n\n"
}] }
];
/** @nocollapse */
SentListComponent.ctorParameters = () => [
{ type: AppConfigService },
{ type: Request },
{ type: Common },
{ type: FormBuilder },
{ type: B2bService }
];
SentListComponent.propDecorators = {
mode: [{ type: Input }],
option: [{ type: Input }],
dxDataGridSentList: [{ type: ViewChild, args: ['dxDataGridSentList',] }],
modalStepView: [{ type: ViewChild, args: ['modalStepView',] }],
recieveModal: [{ type: ViewChild, args: ['recieveModal',] }]
};
if (false) {
/** @type {?} */
SentListComponent.prototype.mode;
/** @type {?} */
SentListComponent.prototype.option;
/** @type {?} */
SentListComponent.prototype.dxDataGridSentList;
/** @type {?} */
SentListComponent.prototype.modalStepView;
/** @type {?} */
SentListComponent.prototype.recieveModal;
/** @type {?} */
SentListComponent.prototype.sentList;
/** @type {?} */
SentListComponent.prototype.th;
/** @type {?} */
SentListComponent.prototype.dxgridPageSize;
/** @type {?} */
SentListComponent.prototype.allowedPageSizes1;
/** @type {?} */
SentListComponent.prototype.allowedPageSizes2;
/** @type {?} */
SentListComponent.prototype.allowedPageSizes3;
/** @type {?} */
SentListComponent.prototype.allowedPageSizes4;
/** @type {?} */
SentListComponent.prototype.customers;
/** @type {?} */
SentListComponent.prototype.url;
/** @type {?} */
SentListComponent.prototype.lastStep;
/** @type {?} */
SentListComponent.prototype.config;
/** @type {?} */
SentListComponent.prototype.recieveData;
/** @type {?} */
SentListComponent.prototype.tmpData;
/** @type {?} */
SentListComponent.prototype.submittedRecieve;
/** @type {?} */
SentListComponent.prototype.recieveForm;
/** @type {?} */
SentListComponent.prototype.appConfigService;
/** @type {?} */
SentListComponent.prototype.request;
/** @type {?} */
SentListComponent.prototype.common;
/** @type {?} */
SentListComponent.prototype.formBuilder;
/** @type {?} */
SentListComponent.prototype.b2b;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VudC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9zZW50LWxpc3Qvc2VudC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQXlCLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxXQUFXLEVBQUUsV0FBVyxFQUFhLFVBQVUsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFNcEQsTUFBTTs7Ozs7Ozs7SUEyQkYsWUFDWSxrQkFDQSxTQUNELFFBQ0MsYUFDQTtRQUpBLHFCQUFnQixHQUFoQixnQkFBZ0I7UUFDaEIsWUFBTyxHQUFQLE9BQU87UUFDUixXQUFNLEdBQU4sTUFBTTtRQUNMLGdCQUFXLEdBQVgsV0FBVztRQUNYLFFBQUcsR0FBSCxHQUFHO29CQTlCeUIsUUFBUTt3QkFTaEMsRUFBRTs4QkFFRCxFQUFFO2lDQUNDLEVBQUU7aUNBQ0YsRUFBRTtpQ0FDRixFQUFFO2lDQUNGLEdBQUc7eUJBQ1gsRUFBRTt3QkFFSCxFQUFFOzJCQUVLLEVBQUU7Z0NBRUQsS0FBSztRQVNwQixJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO0tBQzlDOzs7O0lBRUQsUUFBUTs7Ozs7UUFLSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUN0QyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEMsU0FBUyxFQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQztTQUNsQyxDQUFDLENBQUM7O0tBRU47Ozs7SUFFRCxFQUFFLEtBQUssT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFOzs7O0lBRXBDLFdBQVc7O1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUN6QyxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzs7WUFDaEMsSUFBSSxNQUFNLEdBQUc7Z0JBQ1QsTUFBTSxFQUFHO29CQUNMLFNBQVMsRUFBRyxRQUFRLENBQUMsU0FBUztvQkFDOUIsTUFBTSxFQUFHLFFBQVEsQ0FBQyxNQUFNO2lCQUMzQjtnQkFDRCxRQUFRLEVBQUMsQ0FBQyxjQUFjLEVBQUMsY0FBYyxFQUFDLFlBQVksQ0FBQzthQUN4RCxDQUFBOztZQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzs7S0FDNUM7Ozs7O0lBRUQsV0FBVyxDQUFDLElBQUk7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sRUFBRSxDQUFDO1NBQ2I7O1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7O1FBQzlFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7O1FBQzVFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQyxPQUFPLElBQUksR0FBRyxRQUFRLEdBQUcsRUFBRSxDQUFDO0tBQy9COzs7OztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ1osT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUM1Qjs7OztJQUVELGlCQUFpQjtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUM1Qjs7OztJQUVLLGVBQWU7O1lBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7O1lBRzdCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUU7Z0JBQzFCLE9BQU87YUFDVjtZQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztZQUMxQyxJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtnQkFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNsRixJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVTtnQkFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUNsRixJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZTtnQkFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUNqRyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDOztLQUM1Qjs7Ozs7SUFDRCxXQUFXLENBQUMsSUFBSTtRQUNaLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQSxDQUFDLENBQUEsT0FBTyxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUM7S0FDdkM7Ozs7O0lBRUQsY0FBYyxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFO1lBQ3RCLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQzlDO0tBQ0o7OztZQXRISixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLDRtTkFBeUM7YUFDMUM7Ozs7WUFiTyxnQkFBZ0I7WUFFZixPQUFPO1lBQ1IsTUFBTTtZQUdOLFdBQVc7WUFFWCxVQUFVOzs7bUJBUWIsS0FBSztxQkFDTCxLQUFLO2lDQUNMLFNBQVMsU0FBQyxvQkFBb0I7NEJBSTlCLFNBQVMsU0FBQyxlQUFlOzJCQUV6QixTQUFTLFNBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbFN0ZXBDb21wb25lbnR9IGZyb20gJy4uL21vZGFsLXN0ZXAvbW9kYWwtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHtBcHBDb25maWdTZXJ2aWNlfSBmcm9tICcuLi9hcHAtY29uZmlnL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQge0R4RGF0YUdyaWRDb21wb25lbnR9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnLi4vX3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbn0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7TW9kYWxTdGVwVmlld0NvbXBvbmVudH0gZnJvbSAnLi4vbW9kYWwtc3RlcC12aWV3L21vZGFsLXN0ZXAtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtNb2RhbERpcmVjdGl2ZX0gZnJvbSAnbmd4LWJvb3RzdHJhcCc7XG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBBYnN0cmFjdENvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Q3VzdG9tVmFsaWRhdG9yc30gZnJvbSAnbmcyLXZhbGlkYXRpb24nO1xuaW1wb3J0IHtCMmJTZXJ2aWNlfSBmcm9tICcuLi9fc2VydmljZXMvYjJiLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzb2Mtc2VudC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbnQtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VudExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgbW9kZTogJ0NSRUFURSd8J0VESVQnfCdWSUVXJyA9ICdDUkVBVEUnO1xuICAgIEBJbnB1dCgpIG9wdGlvbjogYW55O1xuICAgIEBWaWV3Q2hpbGQoJ2R4RGF0YUdyaWRTZW50TGlzdCcpXG4gICAgZHhEYXRhR3JpZFNlbnRMaXN0OiBEeERhdGFHcmlkQ29tcG9uZW50O1xuICAgIC8vIEBWaWV3Q2hpbGQoJ21vZGFsU3RlcCcpXG4gICAgLy8gbW9kYWxTdGVwOiBNb2RhbFN0ZXBDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbW9kYWxTdGVwVmlldycpXG4gICAgbW9kYWxTdGVwVmlldzogTW9kYWxTdGVwVmlld0NvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdyZWNpZXZlTW9kYWwnKSByZWNpZXZlTW9kYWw6IE1vZGFsRGlyZWN0aXZlO1xuICAgIHNlbnRMaXN0OiBhbnkgPSBbXTtcbiAgICB0aDtcbiAgICBkeGdyaWRQYWdlU2l6ZSA9IDEwO1xuICAgIGFsbG93ZWRQYWdlU2l6ZXMxID0gMTA7XG4gICAgYWxsb3dlZFBhZ2VTaXplczIgPSAyNTtcbiAgICBhbGxvd2VkUGFnZVNpemVzMyA9IDUwO1xuICAgIGFsbG93ZWRQYWdlU2l6ZXM0ID0gMTAwO1xuICAgIGN1c3RvbWVycyA9IFtdO1xuICAgIHVybDtcbiAgICBsYXN0U3RlcCA9ICcnO1xuICAgIGNvbmZpZzogYW55O1xuICAgIHJlY2lldmVEYXRhOmFueSA9IHt9O1xuICAgIHRtcERhdGE6YW55O1xuICAgIHN1Ym1pdHRlZFJlY2lldmUgPSBmYWxzZTtcbiAgICByZWNpZXZlRm9ybTogRm9ybUdyb3VwO1xuICAgIC8vIGRvd25sb2FkVG9rZW46YW55O1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVxdWVzdDogUmVxdWVzdCxcbiAgICAgICAgcHVibGljIGNvbW1vbjogQ29tbW9uLFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBiMmI6QjJiU2VydmljZSkge1xuICAgICAgICB0aGlzLmNvbmZpZyA9IGFwcENvbmZpZ1NlcnZpY2UuZ2V0Q29uZmlnKCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIGlmKHRoaXMubW9kZSA9PT0gXCJFRElUXCIpe1xuICAgICAgICAvLyBzZXRUaW1lb3V0KGFzeW5jICgpPT57XG4gICAgICAgIC8vICAgICB0aGlzLmRvd25sb2FkVG9rZW4gPSBhd2FpdCB0aGlzLmIyYi5nZXRBdHRhY2htZW50VG9rZW4oKTtcbiAgICAgICAgLy8gfSw1MDApXG4gICAgICAgIHRoaXMuZ2V0U2VudExpc3QoKTtcbiAgICAgICAgdGhpcy5yZWNpZXZlRm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgYm9va19ubzogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgcmVjdl9kYXRlOiAgbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBmcigpIHsgcmV0dXJuIHRoaXMucmVjaWV2ZUZvcm0uY29udHJvbHM7IH1cblxuICAgIGFzeW5jIGdldFNlbnRMaXN0KCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZ2V0U2VudExpc3QnLHRoaXMuc2VudExpc3QpO1xuICAgICAgICBsZXQgc2VudERhdGEgPSB0aGlzLm9wdGlvbi5kYXRhO1xuICAgICAgICBsZXQgZmlsdGVyID0ge1xuICAgICAgICAgICAgZmlsdGVyIDoge1xuICAgICAgICAgICAgICAgIHJlZl90YWJsZSA6IHNlbnREYXRhLnJlZl90YWJsZSxcbiAgICAgICAgICAgICAgICByZWZfaWQgOiBzZW50RGF0YS5yZWZfaWRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvcmRlcl9ieTpbXCJpc19pbXBvcnRhbnRcIixcInNlbmRfYm9va19ub1wiLFwiY3JlYXRlZF9hdFwiXVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLnJlcXVlc3QucG9zdCgnL3NlYXJjaC92X2N0X3N0ZXBfc2VudCcsZmlsdGVyKTtcbiAgICAgICAgdGhpcy5zZW50TGlzdCA9IGRhdGEucmVzdWx0RGF0YTtcbiAgICAgICAgY29uc29sZS5sb2coJ2dldFNlbnRMaXN0Jyx0aGlzLnNlbnRMaXN0KTtcbiAgICB9XG5cbiAgICBnZXRSb3dJbmRleChkYXRhKSB7XG4gICAgICAgIGlmICghZGF0YS5kYXRhKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFnZSA9IHRoaXMuZHhEYXRhR3JpZFNlbnRMaXN0Lmluc3RhbmNlLm9wdGlvbigncGFnaW5nLnBhZ2VJbmRleCcpIHx8IDA7XG4gICAgICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5keERhdGFHcmlkU2VudExpc3QuaW5zdGFuY2Uub3B0aW9uKCdwYWdpbmcucGFnZVNpemUnKTtcbiAgICAgICAgY29uc3Qgbm8gPSBkYXRhLnJvdy5kYXRhSW5kZXggKyAxO1xuICAgICAgICByZXR1cm4gcGFnZSAqIHBhZ2VTaXplICsgbm87XG4gICAgfVxuXG4gICAgZWRpdFJlY2lldmUoZGF0YSkge1xuICAgICAgICBjb25zb2xlLmxvZygnZGF0YScsZGF0YSk7XG4gICAgICAgIHRoaXMudG1wRGF0YSA9IGRhdGE7XG4gICAgICAgIHRoaXMucmVjaWV2ZU1vZGFsLnNob3coKTtcbiAgICB9XG5cbiAgICBjbG9zZVJlY2lldmVNb2RhbCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXR0ZWRSZWNpZXZlID0gZmFsc2U7XG4gICAgICAgIHRoaXMucmVjaWV2ZURhdGEgPSB7fTtcbiAgICAgICAgdGhpcy50bXBEYXRhID0ge307XG4gICAgICAgIHRoaXMucmVjaWV2ZU1vZGFsLmhpZGUoKTtcbiAgICB9XG5cbiAgICBhc3luYyBvblN1Ym1pdFJlY2lldmUoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkUmVjaWV2ZSA9IHRydWU7XG5cbiAgICAgICAgLy8g4LiW4LmJ4LiyIGZvcm0g4LmE4Lih4LmI4LiE4Lij4Lia4Lir4Lij4Li34Lit4Lic4Li04LiU4LiV4Liy4Lih4LmA4LiH4Li34LmI4Lit4LiZ4LmE4LiC4LiX4Li14LmI4LiV4Lix4LmJ4LiH4LmE4Lin4LmJ4LiI4Liw4LiI4Lia4LiX4Li14LmI4LiV4Lij4LiH4LiZ4Li14LmJXG4gICAgICAgIGlmICh0aGlzLnJlY2lldmVGb3JtLmludmFsaWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygndG1wRGF0YScsdGhpcy50bXBEYXRhKTtcbiAgICAgICAgdGhpcy5yZWNpZXZlRGF0YS5uYW1lID0gdGhpcy50bXBEYXRhLm5hbWU7XG4gICAgICAgIGlmKHRoaXMudG1wRGF0YS5jdF9tYWluX2lkKSB0aGlzLnJlY2lldmVEYXRhLmN0X21haW5faWQgPSB0aGlzLnRtcERhdGEuY3RfbWFpbl9pZDtcbiAgICAgICAgaWYodGhpcy50bXBEYXRhLmN0X3NlbmRfaWQpIHRoaXMucmVjaWV2ZURhdGEuY3Rfc2VuZF9pZCA9IHRoaXMudG1wRGF0YS5jdF9zZW5kX2lkO1xuICAgICAgICBpZih0aGlzLnRtcERhdGEuY3Rfc3RlcF9kYXRhX2lkKSB0aGlzLnJlY2lldmVEYXRhLmN0X3N0ZXBfZGF0YV9pZCA9IHRoaXMudG1wRGF0YS5jdF9zdGVwX2RhdGFfaWQ7XG4gICAgICAgIGNvbnNvbGUubG9nKCdyZWNpZXZlRGF0YScsdGhpcy5yZWNpZXZlRGF0YSk7XG4gICAgICAgIGF3YWl0IHRoaXMucmVxdWVzdC5wb3N0KFwiL2RiL2N0X3JlY2lldmVcIix0aGlzLnJlY2lldmVEYXRhKTtcbiAgICAgICAgdGhpcy5nZXRTZW50TGlzdCgpO1xuICAgICAgICB0aGlzLmNsb3NlUmVjaWV2ZU1vZGFsKCk7XG4gICAgfVxuICAgIGlzSW1wb3J0YW50KGRhdGEpe1xuICAgICAgICByZXR1cm4gZGF0YS5pc19pbXBvcnRhbnQ/XCLguKrguLPguITguLHguI1cIjpcIlwiO1xuICAgIH1cblxuICAgIG9uQ2VsbFByZXBhcmVkKGUpIHtcbiAgICAgICAgaWYgKGUucm93VHlwZSA9PT0gJ2RhdGEnKSB7XG4gICAgICAgICAgICBlLmNlbGxFbGVtZW50LmFjY2Vzc0tleSA9IGUuY29sdW1uLmNhcHRpb247XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=