step-list.component.js
19.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
/**
* @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 { B2bService } from '../_services/b2b.service';
var StepListComponent = /** @class */ (function () {
function StepListComponent(appConfigService, request, common, b2b) {
this.appConfigService = appConfigService;
this.request = request;
this.common = common;
this.b2b = b2b;
this.mode = 'CREATE';
this.columns = ['ลำดับที่', 'ผู้แก้ไข', 'วันที่', 'สถานะการติดตาม', 'หมายเหตุ'];
this.stepList = [];
this.dxgridPageSize = 10;
this.allowedPageSizes1 = 10;
this.allowedPageSizes2 = 25;
this.allowedPageSizes3 = 50;
this.allowedPageSizes4 = 100;
this.customers = [];
this.lastStep = '';
this.config = appConfigService.getConfig();
}
/**
* @return {?}
*/
StepListComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
_a = this;
return [4 /*yield*/, this.b2b.getAttachmentToken()];
case 1:
_a.downloadToken = _b.sent();
return [2 /*return*/];
}
});
}); }, 500);
if (this.mode !== "CREATE") {
this.getStepList();
}
};
/**
* @return {?}
*/
StepListComponent.prototype.getStepList = /**
* @return {?}
*/
function () {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var filter, data;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
console.log('getStepList', this.stepList);
filter = {
filter: {
ref_table: "=" + this.option.data.ref_table,
ref_id: this.option.data.ref_id,
system_id: this.option.data.system_id
},
order_by: ["step_date desc"]
};
return [4 /*yield*/, this.request.post('/search/ct_step_data', filter)];
case 1:
data = _a.sent();
this.stepList = data.resultData;
if (this.stepList && this.stepList.length > 0) {
this.lastStep = this.stepList[0].name;
}
console.log('getStepList', this.stepList);
return [2 /*return*/];
}
});
});
};
/**
* @param {?} data
* @return {?}
*/
StepListComponent.prototype.addStepList = /**
* @param {?} data
* @return {?}
*/
function (data) {
/** @type {?} */
var userData = this.b2b.getVerifyToken();
data.username = userData.username;
this.stepList.push(data);
console.log('getStepList', this.stepList);
};
/**
* @param {?} data
* @return {?}
*/
StepListComponent.prototype.getRowIndex = /**
* @param {?} data
* @return {?}
*/
function (data) {
if (!data.data) {
return '';
}
/** @type {?} */
var page = this.dxDataGridStepList.instance.option('paging.pageIndex') || 0;
/** @type {?} */
var pageSize = this.dxDataGridStepList.instance.option('paging.pageSize');
/** @type {?} */
var no = data.row.dataIndex + 1;
return page * pageSize + no;
};
/**
* @param {?} data
* @return {?}
*/
StepListComponent.prototype.view = /**
* @param {?} data
* @return {?}
*/
function (data) {
/** @type {?} */
var viewData = {
option: this.option,
data: data,
downloadToken: this.downloadToken
};
this.modalStepView.open(viewData);
};
/**
* @return {?}
*/
StepListComponent.prototype.getLastStep = /**
* @return {?}
*/
function () {
return this.lastStep;
};
/**
* @param {?} e
* @return {?}
*/
StepListComponent.prototype.onCellPrepared = /**
* @param {?} e
* @return {?}
*/
function (e) {
if (e.rowType === 'data') {
e.cellElement.accessKey = e.column.caption;
}
};
StepListComponent.decorators = [
{ type: Component, args: [{
selector: 'soc-step-list',
template: "<div class=\"col-sm-12\">\n <!--[selectedRowKeys]=\"selectRowKeyId\" (onInitialized)=\"onInitialized($event)\" (onSelectionChanged)=\"selectRow($event)\"-->\n <div class=\"table-responsive table-wrapper\">\n <!--<dx-data-grid #dxDataGridStepList id=\"dxDataGridStepList\" [dataSource]=\"ds\" [hoverStateEnabled]=\"true\" noDataText=\"\"-->\n <!--showBorders=\"true\" [rowAlternationEnabled]=\"true\" [columnAutoWidth]=\"true\"-->\n <!--[columns]=\"columns\"-->\n <!--class=\"card-list-table\"-->\n <!--[allowColumnResizing]=\"true\"-->\n <!--[allowColumnReordering]=\"true\"-->\n <!--[wordWrapEnabled]=\"true\"-->\n <!--[columnMinWidth]=\"'100%'\" class=\"card-list-table\">-->\n <!--<dxo-paging [pageSize]=\"dxgridPageSize\"></dxo-paging>-->\n <!--<dxo-pager [showPageSizeSelector]=\"true\" [allowedPageSizes]=\"[allowedPageSizes1, allowedPageSizes2, allowedPageSizes3, allowedPageSizes4]\"-->\n <!--[showInfo]=\"false\" [visible]=\"true\" [showNavigationButtons]=\"true\">-->\n <!--</dxo-pager>-->\n <!--<dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>-->\n <!--<dxo-remote-operations [sorting]=\"true\" [paging]=\"true\">-->\n <!--</dxo-remote-operations>-->\n <!--</dx-data-grid>-->\n <dx-data-grid #dxDataGridStepList\n id=\"gridContainer\" noDataText=\"\" showBorders=\"true\" class=\"card-list-table\"\n (onCellPrepared)=\"onCellPrepared($event)\" [dataSource]=\"stepList\"\n [hoverStateEnabled]=\"true\" [rowAlternationEnabled]=\"true\" [columnAutoWidth]=\"false\"\n [allowColumnResizing]=\"true\" [allowColumnReordering]=\"true\" [wordWrapEnabled]=\"false\"\n [showBorders]=\"true\">\n <dxi-column caption=\"\u0E25\u0E33\u0E14\u0E31\u0E1A\u0E17\u0E35\u0E48\" [allowSorting]=\"false\" cellTemplate=\"cellTemplate\" alignment=\"center\" [width]=\"70\"></dxi-column>\n <dxi-column caption=\"\u0E08\u0E31\u0E14\u0E01\u0E32\u0E23\" [allowSorting]=\"false\" cellTemplate=\"cellTemplateAction\" alignment=\"center\" [width]=\"70\"></dxi-column>\n <dxi-column dataField=\"username\" caption=\"\u0E1C\u0E39\u0E49\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\"></dxi-column>\n <dxi-column dataField=\"step_date\" [caption]=\"option.data.system_id === 161?'\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48':'\u0E27\u0E31\u0E19\u0E17\u0E35\u0E48\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23'\" dataType=\"date\" alignment=\"center\" [width]=\"100\"></dxi-column>\n <dxi-column dataField=\"step_name\" caption=\"\u0E2A\u0E16\u0E32\u0E19\u0E30\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21\"></dxi-column>\n <dxi-column dataField=\"remark\" caption=\"\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38\"></dxi-column>\n <dxo-paging [pageSize]=\"dxgridPageSize\"></dxo-paging>\n <dxo-pager [showPageSizeSelector]=\"true\" [allowedPageSizes]=\"[allowedPageSizes1, allowedPageSizes2, allowedPageSizes3, allowedPageSizes4]\"\n [showInfo]=\"false\" [visible]=\"true\" [showNavigationButtons]=\"true\">\n </dxo-pager>\n <dxo-state-storing [enabled]=\"true\" type=\"localStorage\" storageKey=\"stepListDataGrid\"></dxo-state-storing>\n <div *dxTemplate=\"let data of 'cellTemplate'\">\n {{getRowIndex(data)}}\n </div>\n <div *dxTemplate=\"let data of 'cellTemplateAction'\">\n <a id=\"btnView\" (click)=\"view(data.data)\" class=\"btn btn-default btn-sm icon\" data-toggle=\"tooltip\" data-placement=\"top\" title=\"\u0E14\u0E39\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\"><i class=\"fal fa-eye\"></i></a>\n </div>\n </dx-data-grid>\n </div>\n</div><!--End col-sm-12-->\n<!--<modal-step #modalStep (onUpdateModal)='getStepList()' (onCreateModal)=\"addStepList($event)\" [mode]=\"mode\"></modal-step>-->\n<modal-step-view #modalStepView ></modal-step-view>\n"
}] }
];
/** @nocollapse */
StepListComponent.ctorParameters = function () { return [
{ type: AppConfigService },
{ type: Request },
{ type: Common },
{ type: B2bService }
]; };
StepListComponent.propDecorators = {
mode: [{ type: Input }],
option: [{ type: Input }],
dxDataGridStepList: [{ type: ViewChild, args: ['dxDataGridStepList',] }],
modalStepView: [{ type: ViewChild, args: ['modalStepView',] }]
};
return StepListComponent;
}());
export { StepListComponent };
if (false) {
/** @type {?} */
StepListComponent.prototype.mode;
/** @type {?} */
StepListComponent.prototype.option;
/** @type {?} */
StepListComponent.prototype.dxDataGridStepList;
/** @type {?} */
StepListComponent.prototype.modalStepView;
/** @type {?} */
StepListComponent.prototype.columns;
/** @type {?} */
StepListComponent.prototype.stepList;
/** @type {?} */
StepListComponent.prototype.th;
/** @type {?} */
StepListComponent.prototype.dxgridPageSize;
/** @type {?} */
StepListComponent.prototype.allowedPageSizes1;
/** @type {?} */
StepListComponent.prototype.allowedPageSizes2;
/** @type {?} */
StepListComponent.prototype.allowedPageSizes3;
/** @type {?} */
StepListComponent.prototype.allowedPageSizes4;
/** @type {?} */
StepListComponent.prototype.customers;
/** @type {?} */
StepListComponent.prototype.url;
/** @type {?} */
StepListComponent.prototype.lastStep;
/** @type {?} */
StepListComponent.prototype.config;
/** @type {?} */
StepListComponent.prototype.downloadToken;
/** @type {?} */
StepListComponent.prototype.appConfigService;
/** @type {?} */
StepListComponent.prototype.request;
/** @type {?} */
StepListComponent.prototype.common;
/** @type {?} */
StepListComponent.prototype.b2b;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9zdGVwLWxpc3Qvc3RlcC1saXN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQXlCLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7O0lBOEJoRCwyQkFDWSxrQkFDQSxTQUNELFFBQ0M7UUFIQSxxQkFBZ0IsR0FBaEIsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPO1FBQ1IsV0FBTSxHQUFOLE1BQU07UUFDTCxRQUFHLEdBQUgsR0FBRztvQkExQnlCLFFBQVE7dUJBU3RDLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDO3dCQUMxRCxFQUFFOzhCQUVELEVBQUU7aUNBQ0MsRUFBRTtpQ0FDRixFQUFFO2lDQUNGLEVBQUU7aUNBQ0YsR0FBRzt5QkFDWCxFQUFFO3dCQUVILEVBQUU7UUFRVCxJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO0tBQzlDOzs7O0lBRUQsb0NBQVE7OztJQUFSO1FBQUEsaUJBT0M7UUFORyxVQUFVLENBQUM7Ozs7O3dCQUNQLEtBQUEsSUFBSSxDQUFBO3dC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LFVBQWUsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDdEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDOUM7S0FDSjs7Z0JBOUZKLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsMmlJQUF5QztpQkFDMUM7Ozs7Z0JBVk8sZ0JBQWdCO2dCQUVmLE9BQU87Z0JBQ1IsTUFBTTtnQkFFTixVQUFVOzs7dUJBUWIsS0FBSzt5QkFDTCxLQUFLO3FDQUNMLFNBQVMsU0FBQyxvQkFBb0I7Z0NBSTlCLFNBQVMsU0FBQyxlQUFlOzs0QkFyQjlCOztTQWFhLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNb2RhbFN0ZXBDb21wb25lbnR9IGZyb20gJy4uL21vZGFsLXN0ZXAvbW9kYWwtc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHtBcHBDb25maWdTZXJ2aWNlfSBmcm9tICcuLi9hcHAtY29uZmlnL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQge0R4RGF0YUdyaWRDb21wb25lbnR9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnLi4vX3NlcnZpY2VzL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQge0NvbW1vbn0gZnJvbSAnLi4vX3NlcnZpY2VzL2NvbW1vbi5zZXJ2aWNlJztcbmltcG9ydCB7TW9kYWxTdGVwVmlld0NvbXBvbmVudH0gZnJvbSAnLi4vbW9kYWwtc3RlcC12aWV3L21vZGFsLXN0ZXAtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHtCMmJTZXJ2aWNlfSBmcm9tICcuLi9fc2VydmljZXMvYjJiLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzb2Mtc3RlcC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0ZXAtbGlzdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU3RlcExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgbW9kZTogJ0NSRUFURSd8J0VESVQnfCdWSUVXJyA9ICdDUkVBVEUnO1xuICAgIEBJbnB1dCgpIG9wdGlvbjogYW55O1xuICAgIEBWaWV3Q2hpbGQoJ2R4RGF0YUdyaWRTdGVwTGlzdCcpXG4gICAgZHhEYXRhR3JpZFN0ZXBMaXN0OiBEeERhdGFHcmlkQ29tcG9uZW50O1xuICAgIC8vIEBWaWV3Q2hpbGQoJ21vZGFsU3RlcCcpXG4gICAgLy8gbW9kYWxTdGVwOiBNb2RhbFN0ZXBDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbW9kYWxTdGVwVmlldycpXG4gICAgbW9kYWxTdGVwVmlldzogTW9kYWxTdGVwVmlld0NvbXBvbmVudDtcblxuICAgIGNvbHVtbnMgPSBbJ+C4peC4s+C4lOC4seC4muC4l+C4teC5iCcsICfguJzguLnguYnguYHguIHguYnguYTguIInLCAn4Lin4Lix4LiZ4LiX4Li14LmIJywgJ+C4quC4luC4suC4meC4sOC4geC4suC4o+C4leC4tOC4lOC4leC4suC4oScsICfguKvguKHguLLguKLguYDguKvguJXguLgnXTtcbiAgICBzdGVwTGlzdDogYW55ID0gW107XG4gICAgdGg7XG4gICAgZHhncmlkUGFnZVNpemUgPSAxMDtcbiAgICBhbGxvd2VkUGFnZVNpemVzMSA9IDEwO1xuICAgIGFsbG93ZWRQYWdlU2l6ZXMyID0gMjU7XG4gICAgYWxsb3dlZFBhZ2VTaXplczMgPSA1MDtcbiAgICBhbGxvd2VkUGFnZVNpemVzNCA9IDEwMDtcbiAgICBjdXN0b21lcnMgPSBbXTtcbiAgICB1cmw7XG4gICAgbGFzdFN0ZXAgPSAnJztcbiAgICBjb25maWc6IGFueTtcbiAgICBkb3dubG9hZFRva2VuO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVxdWVzdDogUmVxdWVzdCxcbiAgICAgICAgcHVibGljIGNvbW1vbjogQ29tbW9uLFxuICAgICAgICBwcml2YXRlIGIyYjpCMmJTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dChhc3luYyAoKT0+e1xuICAgICAgICAgICAgdGhpcy5kb3dubG9hZFRva2VuID0gYXdhaXQgdGhpcy5iMmIuZ2V0QXR0YWNobWVudFRva2VuKCk7XG4gICAgICAgIH0sNTAwKVxuICAgICAgICBpZih0aGlzLm1vZGUgIT09IFwiQ1JFQVRFXCIpe1xuICAgICAgICAgICAgdGhpcy5nZXRTdGVwTGlzdCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIGdldFN0ZXBMaXN0KCkge1xuICAgICAgICBjb25zb2xlLmxvZygnZ2V0U3RlcExpc3QnLHRoaXMuc3RlcExpc3QpO1xuICAgICAgICBsZXQgZmlsdGVyID0ge1xuICAgICAgICAgICAgZmlsdGVyOntcbiAgICAgICAgICAgICAgICByZWZfdGFibGU6XCI9XCIrdGhpcy5vcHRpb24uZGF0YS5yZWZfdGFibGUsXG4gICAgICAgICAgICAgICAgcmVmX2lkOnRoaXMub3B0aW9uLmRhdGEucmVmX2lkLFxuICAgICAgICAgICAgICAgIHN5c3RlbV9pZDp0aGlzLm9wdGlvbi5kYXRhLnN5c3RlbV9pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9yZGVyX2J5OltcInN0ZXBfZGF0ZSBkZXNjXCJdXG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMucmVxdWVzdC5wb3N0KCcvc2VhcmNoL2N0X3N0ZXBfZGF0YScsIGZpbHRlcik7XG4gICAgICAgIHRoaXMuc3RlcExpc3QgPSBkYXRhLnJlc3VsdERhdGE7XG4gICAgICAgIGlmICh0aGlzLnN0ZXBMaXN0ICYmIHRoaXMuc3RlcExpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5sYXN0U3RlcCA9IHRoaXMuc3RlcExpc3RbMF0ubmFtZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnZ2V0U3RlcExpc3QnLHRoaXMuc3RlcExpc3QpO1xuICAgIH1cblxuICAgIGFkZFN0ZXBMaXN0KGRhdGEpIHtcbiAgICAgICAgbGV0IHVzZXJEYXRhOmFueSA9IHRoaXMuYjJiLmdldFZlcmlmeVRva2VuKCk7XG4gICAgICAgIGRhdGEudXNlcm5hbWUgPSB1c2VyRGF0YS51c2VybmFtZTtcbiAgICAgICAgdGhpcy5zdGVwTGlzdC5wdXNoKGRhdGEpO1xuICAgICAgICBjb25zb2xlLmxvZygnZ2V0U3RlcExpc3QnLHRoaXMuc3RlcExpc3QpO1xuICAgIH1cblxuICAgIGdldFJvd0luZGV4KGRhdGEpIHtcbiAgICAgICAgaWYgKCFkYXRhLmRhdGEpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlID0gdGhpcy5keERhdGFHcmlkU3RlcExpc3QuaW5zdGFuY2Uub3B0aW9uKCdwYWdpbmcucGFnZUluZGV4JykgfHwgMDtcbiAgICAgICAgY29uc3QgcGFnZVNpemUgPSB0aGlzLmR4RGF0YUdyaWRTdGVwTGlzdC5pbnN0YW5jZS5vcHRpb24oJ3BhZ2luZy5wYWdlU2l6ZScpO1xuICAgICAgICBjb25zdCBubyA9IGRhdGEucm93LmRhdGFJbmRleCArIDE7XG4gICAgICAgIHJldHVybiBwYWdlICogcGFnZVNpemUgKyBubztcbiAgICB9XG4gICAgdmlldyhkYXRhKSB7XG4gICAgICAgIGNvbnN0IHZpZXdEYXRhID0ge1xuICAgICAgICAgICAgb3B0aW9uOiB0aGlzLm9wdGlvbixcbiAgICAgICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgICAgICBkb3dubG9hZFRva2VuOiB0aGlzLmRvd25sb2FkVG9rZW5cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5tb2RhbFN0ZXBWaWV3Lm9wZW4odmlld0RhdGEpO1xuICAgIH1cbiAgICBnZXRMYXN0U3RlcCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5sYXN0U3RlcDtcbiAgICB9XG5cbiAgICBvbkNlbGxQcmVwYXJlZChlKSB7XG4gICAgICAgIGlmIChlLnJvd1R5cGUgPT09ICdkYXRhJykge1xuICAgICAgICAgICAgZS5jZWxsRWxlbWVudC5hY2Nlc3NLZXkgPSBlLmNvbHVtbi5jYXB0aW9uO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19