/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, EventEmitter, Output, ViewChild } from '@angular/core'; import { ModalDirective } from 'ngx-bootstrap'; import { Common } from '../_services/common.service'; import { Request } from '../_services/request.service'; export class ModalStepViewComponent { /** * @param {?} request * @param {?} common */ constructor(request, common) { this.request = request; this.common = common; this.onUpdateModal = new EventEmitter(); this.submitted = false; this.title = 'สถานะขั้นตอน'; this.selectList = []; this.list = []; this.modalConfig = { ignoreBackdropClick: true }; this.selectedStep = {}; this.isMore = false; this.moreField = []; this.stepData = {}; this.lastStep = ''; this.stepName = ''; this.isSend = false; this.isRecieve = false; this.sendList = []; this.recieveList = []; } /** * @return {?} */ ngOnInit() { } /** * @param {?=} options * @return {?} */ open(options) { return tslib_1.__awaiter(this, void 0, void 0, function* () { console.log(options); this.stepData = {}; if (options) { this.title = options.option.title || 'สถานะขั้นตอน'; this.stepName = options.data.step_name || ''; this.stepData = JSON.parse(JSON.stringify(options.data)); this.downloadToken = options.downloadToken; // ต้องเปลี่ยนเป็นเรียก api if (this.stepData.step_id) { this.selectList = yield this.request.get('/db/ct_step?_where=(id,eq,' + this.stepData.step_id + ')'); /** @type {?} */ const step = this.selectList[0]; if (step.flag) { for (let i = 0; i < step.flag.length; i++) { /** @type {?} */ const flag = step.flag.charAt(i); /** @type {?} */ const ct_step_flag = yield this.request.get('/db/ct_step_flag?_where=(flag,eq,' + flag + ')'); /** @type {?} */ const newField = ct_step_flag[0]; this.moreField.push(newField); } this.isMore = true; } else { this.isMore = false; if (step.type_id === 8 || step.type_id === 13) { /** @type {?} */ let filter = { filter: { ct_step_data_id: this.stepData.id }, order_by: ["is_important", "send_book_no", "created_at"] }; /** @type {?} */ const sendDataList = yield this.request.post('/search/v_ct_step_sent', filter); this.sendList = sendDataList.resultData; this.isSend = true; this.isRecieve = false; } else if (step.type_id === 9 || step.type_id === 14) { /** @type {?} */ let filter = { filter: { ct_step_data_id: this.stepData.id }, order_by: ["is_important", "send_book_no", "created_at"] }; /** @type {?} */ const recieveDataList = yield this.request.post('/search/v_ct_step_sent', filter); this.recieveList = recieveDataList.resultData; this.isRecieve = true; this.isSend = false; } else { this.isRecieve = false; this.isSend = false; } } } } this.modal.show(); }); } /** * @return {?} */ closeModal() { this.submitted = false; this.selectList = []; this.list = []; this.selectedStep = {}; this.isMore = false; this.isSend = false; this.isRecieve = false; this.moreField = []; this.stepData = {}; this.lastStep = ''; this.modal.hide(); } /** * @param {?} data * @return {?} */ getFieldId(data) { /** @type {?} */ let id = ''; if (data.type === 'text') { id += 'txtView'; } else if (data.type === 'datetime') { id += 'txtView'; } /** @type {?} */ const field = data.field_name.charAt(0).toLocaleUpperCase() + data.field_name.substring(1); id += field; return id; } /** * @param {?} data * @return {?} */ getRowIndex(data) { if (!data.data) { return ''; } /** @type {?} */ const no = data.row.dataIndex + 1; return no; } /** * @param {?} e * @return {?} */ onCellPrepared(e) { if (e.rowType === 'data') { for (const i in e.component.columns) { if (e.column.dataField === e.component.columns[i]) { e.cellElement.accessKey = e.component.columns[i]; } } } } /** * @param {?} data * @return {?} */ isImportant(data) { return data.is_important ? "สำคัญ" : ""; } /** * @param {?} data * @return {?} */ getImageLink(data) { return data.url + '?downloadToken=' + this.downloadToken; } } ModalStepViewComponent.decorators = [ { type: Component, args: [{ selector: 'modal-step-view', template: "
\n
\n
\n
\n

\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n \n \n
\n \n \n \n \n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n
\n \n \n
\n
\n
\n\n
\n
\n \n \n \n
\n \n
\n {{stepData.url}}\n
\n
\n
\n \n
\n \n \n \n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n \n \n
\n
\n \n \n \n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E2A\u0E48\u0E07 :\n
\n
\n
\n \n \n \n \n \n \n
\n {{getRowIndex(data)}}\n
\n
\n
\n
\n
\n
\n
\n \u0E23\u0E32\u0E22\u0E01\u0E32\u0E23\u0E23\u0E31\u0E1A :\n
\n
\n
\n \n \n \n \n \n \n \n
\n {{getRowIndex(data)}}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
" }] } ]; /** @nocollapse */ ModalStepViewComponent.ctorParameters = () => [ { type: Request }, { type: Common } ]; ModalStepViewComponent.propDecorators = { onUpdateModal: [{ type: Output }], modal: [{ type: ViewChild, args: ['modal',] }] }; if (false) { /** @type {?} */ ModalStepViewComponent.prototype.onUpdateModal; /** @type {?} */ ModalStepViewComponent.prototype.modal; /** @type {?} */ ModalStepViewComponent.prototype.submitted; /** @type {?} */ ModalStepViewComponent.prototype.title; /** @type {?} */ ModalStepViewComponent.prototype.selectList; /** @type {?} */ ModalStepViewComponent.prototype.list; /** @type {?} */ ModalStepViewComponent.prototype.modalConfig; /** @type {?} */ ModalStepViewComponent.prototype.th; /** @type {?} */ ModalStepViewComponent.prototype.selectedStep; /** @type {?} */ ModalStepViewComponent.prototype.isMore; /** @type {?} */ ModalStepViewComponent.prototype.moreField; /** @type {?} */ ModalStepViewComponent.prototype.config; /** @type {?} */ ModalStepViewComponent.prototype.stepData; /** @type {?} */ ModalStepViewComponent.prototype.lastStep; /** @type {?} */ ModalStepViewComponent.prototype.stepName; /** @type {?} */ ModalStepViewComponent.prototype.isSend; /** @type {?} */ ModalStepViewComponent.prototype.isRecieve; /** @type {?} */ ModalStepViewComponent.prototype.sendList; /** @type {?} */ ModalStepViewComponent.prototype.recieveList; /** @type {?} */ ModalStepViewComponent.prototype.downloadToken; /** @type {?} */ ModalStepViewComponent.prototype.request; /** @type {?} */ ModalStepViewComponent.prototype.common; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1zdGVwLXZpZXcvbW9kYWwtc3RlcC12aWV3LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBZSxjQUFjLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU12RCxNQUFNOzs7OztJQXdCRixZQUFvQixPQUFnQixFQUFTLE1BQWM7UUFBdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7NkJBdEJqQyxJQUFJLFlBQVksRUFBRTt5QkFFaEMsS0FBSztxQkFDSixjQUFjOzBCQUNULEVBQUU7b0JBQ1IsRUFBRTsyQkFDYztZQUN4QixtQkFBbUIsRUFBRSxJQUFJO1NBQzVCOzRCQUVtQixFQUFFO3NCQUNiLEtBQUs7eUJBQ0csRUFBRTt3QkFFSCxFQUFFO3dCQUNQLEVBQUU7d0JBQ0YsRUFBRTtzQkFDSixLQUFLO3lCQUNGLEtBQUs7d0JBQ0QsRUFBRTsyQkFDQyxFQUFFO0tBR3BCOzs7O0lBRUQsUUFBUTtLQUVQOzs7OztJQUVLLElBQUksQ0FBQyxPQUFhOztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksT0FBTyxFQUFFO2dCQUNULElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksY0FBYyxDQUFDO2dC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T0FBTyxFQUFFLENBQUM7S0FDYjs7Ozs7SUFFRCxXQUFXLENBQUMsSUFBSTtRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1osT0FBTyxFQUFFLENBQUM7U0FDYjs7UUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7UUFDbEMsT0FBTyxFQUFFLENBQUM7S0FDYjs7Ozs7SUFFRCxjQUFjLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtnQkFDakMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDL0MsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0o7U0FDSjtLQUNKOzs7OztJQUVELFdBQVcsQ0FBQyxJQUFJO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUEsQ0FBQyxDQUFBLEVBQUUsQ0FBQztLQUN2Qzs7Ozs7SUFFRCxZQUFZLENBQUMsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBQyxpQkFBaUIsR0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0tBQ3hEOzs7WUEzSUosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGlqckJBQStDO2FBQ2xEOzs7O1lBTFEsT0FBTztZQURSLE1BQU07Ozs0QkFTVCxNQUFNO29CQUNOLFNBQVMsU0FBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TW9kYWxPcHRpb25zLCBNb2RhbERpcmVjdGl2ZX0gZnJvbSAnbmd4LWJvb3RzdHJhcCc7XG5pbXBvcnQge0NvbW1vbn0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi9fc2VydmljZXMvcmVxdWVzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtb2RhbC1zdGVwLXZpZXcnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1zdGVwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbFN0ZXBWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBPdXRwdXQoKSBvblVwZGF0ZU1vZGFsID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBWaWV3Q2hpbGQoJ21vZGFsJykgbW9kYWw6IE1vZGFsRGlyZWN0aXZlO1xuICAgIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICAgIHRpdGxlOiBhbnkgPSAn4Liq4LiW4Liy4LiZ4Liw4LiC4Lix4LmJ4LiZ4LiV4Lit4LiZJztcbiAgICBzZWxlY3RMaXN0OiBhbnkgPSBbXTtcbiAgICBsaXN0OiBhbnkgPSBbXTtcbiAgICBtb2RhbENvbmZpZzogTW9kYWxPcHRpb25zID0ge1xuICAgICAgICBpZ25vcmVCYWNrZHJvcENsaWNrOiB0cnVlXG4gICAgfTtcbiAgICB0aDtcbiAgICBzZWxlY3RlZFN0ZXA6IGFueSA9IHt9O1xuICAgIGlzTW9yZSA9IGZhbHNlO1xuICAgIG1vcmVGaWVsZDogYW55ID0gW107XG4gICAgcHVibGljIGNvbmZpZzogYW55O1xuICAgIHN0ZXBEYXRhOiBhbnkgPSB7fTtcbiAgICBsYXN0U3RlcCA9ICcnO1xuICAgIHN0ZXBOYW1lID0gJyc7XG4gICAgaXNTZW5kID0gZmFsc2U7XG4gICAgaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgc2VuZExpc3Q6IGFueSA9IFtdO1xuICAgIHJlY2lldmVMaXN0OiBhbnkgPSBbXTtcbiAgICBkb3dubG9hZFRva2VuOmFueTtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcXVlc3Q6IFJlcXVlc3QsIHB1YmxpYyBjb21tb246IENvbW1vbikge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuXG4gICAgfVxuXG4gICAgYXN5bmMgb3BlbihvcHRpb25zPzogYW55KSB7XG4gICAgICAgIGNvbnNvbGUubG9nKG9wdGlvbnMpO1xuICAgICAgICB0aGlzLnN0ZXBEYXRhID0ge307XG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gb3B0aW9ucy5vcHRpb24udGl0bGUgfHwgJ+C4quC4luC4suC4meC4sOC4guC4seC5ieC4meC4leC4reC4mSc7XG4gICAgICAgICAgICB0aGlzLnN0ZXBOYW1lID0gb3B0aW9ucy5kYXRhLnN0ZXBfbmFtZSB8fCAnJztcbiAgICAgICAgICAgIHRoaXMuc3RlcERhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG9wdGlvbnMuZGF0YSkpO1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFRva2VuID0gb3B0aW9ucy5kb3dubG9hZFRva2VuO1xuICAgICAgICAgICAgLy8g4LiV4LmJ4Lit4LiH4LmA4Lib4Lil4Li14LmI4Lii4LiZ4LmA4Lib4LmH4LiZ4LmA4Lij4Li14Lii4LiBIGFwaVxuICAgICAgICAgICAgaWYodGhpcy5zdGVwRGF0YS5zdGVwX2lkKXtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdExpc3QgPSBhd2FpdCB0aGlzLnJlcXVlc3QuZ2V0KCcvZGIvY3Rfc3RlcD9fd2hlcmU9KGlkLGVxLCcgKyB0aGlzLnN0ZXBEYXRhLnN0ZXBfaWQgKyAnKScpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnNlbGVjdExpc3RbMF07XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXAuZmxhZykge1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN0ZXAuZmxhZy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxhZyA9IHN0ZXAuZmxhZy5jaGFyQXQoaSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjdF9zdGVwX2ZsYWcgPSBhd2FpdCB0aGlzLnJlcXVlc3QuZ2V0KCcvZGIvY3Rfc3RlcF9mbGFnP193aGVyZT0oZmxhZyxlcSwnICsgZmxhZyArICcpJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWVsZCA9IGN0X3N0ZXBfZmxhZ1swXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9yZUZpZWxkLnB1c2gobmV3RmllbGQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNNb3JlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTW9yZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RlcC50eXBlX2lkID09PSA4IHx8IHN0ZXAudHlwZV9pZCA9PT0gMTMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdF9zdGVwX2RhdGFfaWQgOiB0aGlzLnN0ZXBEYXRhLmlkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcl9ieTpbXCJpc19pbXBvcnRhbnRcIixcInNlbmRfYm9va19ub1wiLFwiY3JlYXRlZF9hdFwiXVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VuZERhdGFMaXN0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0LnBvc3QoJy9zZWFyY2gvdl9jdF9zdGVwX3NlbnQnLGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRMaXN0ID0gc2VuZERhdGFMaXN0LnJlc3VsdERhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUmVjaWV2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0ZXAudHlwZV9pZCA9PT0gOSB8fCBzdGVwLnR5cGVfaWQgPT09IDE0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Rfc3RlcF9kYXRhX2lkIDogdGhpcy5zdGVwRGF0YS5pZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXJfYnk6W1wiaXNfaW1wb3J0YW50XCIsXCJzZW5kX2Jvb2tfbm9cIixcImNyZWF0ZWRfYXRcIl1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY2lldmVEYXRhTGlzdCA9IGF3YWl0IHRoaXMucmVxdWVzdC5wb3N0KCcvc2VhcmNoL3ZfY3Rfc3RlcF9zZW50JyxmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWNpZXZlTGlzdCA9IHJlY2lldmVEYXRhTGlzdC5yZXN1bHREYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1JlY2lldmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1NlbmQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNSZWNpZXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzU2VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMubW9kYWwuc2hvdygpO1xuICAgIH1cblxuICAgIGNsb3NlTW9kYWwoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0TGlzdCA9IFtdO1xuICAgICAgICB0aGlzLmxpc3QgPSBbXTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0ZXAgPSB7fTtcbiAgICAgICAgdGhpcy5pc01vcmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1NlbmQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pc1JlY2lldmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb3JlRmllbGQgPSBbXTtcbiAgICAgICAgdGhpcy5zdGVwRGF0YSA9IHt9O1xuICAgICAgICB0aGlzLmxhc3RTdGVwID0gJyc7XG4gICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgIH1cblxuICAgIGdldEZpZWxkSWQoZGF0YSkge1xuICAgICAgICBsZXQgaWQgPSAnJztcbiAgICAgICAgaWYgKGRhdGEudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBpZCArPSAndHh0Vmlldyc7XG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS50eXBlID09PSAnZGF0ZXRpbWUnKSB7XG4gICAgICAgICAgICBpZCArPSAndHh0Vmlldyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZmllbGQgPSBkYXRhLmZpZWxkX25hbWUuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBkYXRhLmZpZWxkX25hbWUuc3Vic3RyaW5nKDEpO1xuICAgICAgICBpZCArPSBmaWVsZDtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgIH1cblxuICAgIGdldFJvd0luZGV4KGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhLmRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBubyA9IGRhdGEucm93LmRhdGFJbmRleCArIDE7XG4gICAgICAgIHJldHVybiBubztcbiAgICB9XG5cbiAgICBvbkNlbGxQcmVwYXJlZChlKSB7XG4gICAgICAgIGlmIChlLnJvd1R5cGUgPT09ICdkYXRhJykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBpIGluIGUuY29tcG9uZW50LmNvbHVtbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5jb2x1bW4uZGF0YUZpZWxkID09PSBlLmNvbXBvbmVudC5jb2x1bW5zW2ldKSB7XG4gICAgICAgICAgICAgICAgICAgIGUuY2VsbEVsZW1lbnQuYWNjZXNzS2V5ID0gZS5jb21wb25lbnQuY29sdW1uc1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0ltcG9ydGFudChkYXRhKXtcbiAgICAgICAgcmV0dXJuIGRhdGEuaXNfaW1wb3J0YW50P1wi4Liq4Liz4LiE4Lix4LiNXCI6XCJcIjtcbiAgICB9XG5cbiAgICBnZXRJbWFnZUxpbmsoZGF0YSl7XG4gICAgICAgIHJldHVybiBkYXRhLnVybCsnP2Rvd25sb2FkVG9rZW49Jyt0aGlzLmRvd25sb2FkVG9rZW47XG4gICAgfVxufVxuIl19