75f29219
Anan Sangthongtum
first commit
|
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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
|
/**
* @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';
var ModalImageUploadComponent = /** @class */ (function () {
function ModalImageUploadComponent(appConfigService, request, common, http) {
var _this = this;
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 = function (file, _fileList) {
return new Observable(function (observer) {
/** @type {?} */
var 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 {?} */
var isWhitelist = (file && whitelist.indexOf(file.type) > -1);
if (!isWhitelist) {
setTimeout(function () {
_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 {?} */
var 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 = function (item) {
/** @type {?} */
var 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 {?} */
var headers = new HttpHeaders();
headers = headers.set('Authorization', 'Basic ' + btoa('APPSOC:123456'));
/** @type {?} */
var 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(function (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);
}
}, function (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 {?}
*/
ModalImageUploadComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @param {?} file
* @return {?}
*/
ModalImageUploadComponent.prototype.onUploaded = /**
* @param {?} file
* @return {?}
*/
function (file) {
var _this = this;
console.log("file", file);
/** @type {?} */
var res = JSON.parse(file.request.response);
this.request.getAttachmentLinkToken(this.url + '/' + res.uuid).then(function (url) {
_this.avatarUrl = url;
});
this.uploaded.emit(res);
};
/**
* @return {?}
*/
ModalImageUploadComponent.prototype.clearValue = /**
* @return {?}
*/
function () {
this.fileList = [];
};
/**
* @return {?}
*/
ModalImageUploadComponent.prototype.closeModal = /**
* @return {?}
*/
function () {
this.modal.hide();
this.data = null;
this.fileList = [];
};
/**
* @return {?}
*/
ModalImageUploadComponent.prototype.clickSubmit = /**
* @return {?}
*/
function () {
this.onSubmit.emit(this.data);
this.modal.hide();
this.data = null;
this.fileList = [];
};
ModalImageUploadComponent.decorators = [
{ type: Component, args: [{
selector: 'modal-image-upload',
template: "<div class=\"modal fade\" bsModal #modal=\"bs-modal\" [config]=\"{backdrop: 'static'}\"\n tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"dialog-static-name1\">\n <div class=\"modal-dialog modal-md\">\n <div class=\"modal-content\">\n <div class=\"modal-header\">\n <h4 id=\"dialog-static-name\" class=\"modal-title pull-left\">{{popupTitle}}</h4>\n <button type=\"button\" class=\"close pull-right\" aria-label=\"Close\" (click)=\"closeModal()\">\n <span aria-hidden=\"true\">×</span>\n </button>\n </div>\n\n <div class=\"modal-body\">\n <form class=\"m-form m-form--state m-form--fit m-form--label-align-right\" (ngSubmit)=\"clickSubmit()\">\n <div class=\"ibox-body\">\n <div class=\"col-sm-12\" style=\"text-align: center\">\n <br>\n <nz-upload nzType=\"drag\"\n [nzAction]=\"url\"\n [nzCustomRequest]=\"customReq\"\n nzFileType=\"image/png,image/jpeg,image/gif,image/bmp\"\n [(nzFileList)]=\"fileList\"\n [nzBeforeUpload]=\"beforeUpload\"\n >\n <!--<nz-upload nzType=\"drag\"-->\n <!--nzAction=\"https://203.154.32.126:2585/api/mfec/Alfresco\"-->\n <!-->-->\n <a nz-button>\n <i nz-icon type=\"upload\"></i><span>Click to Upload</span>\n </a>\n </nz-upload>\n <br>\n </div>\n <div class=\"col-sm-12\" style=\"text-align: center\" *ngIf=\"avatarUrl\">\n <div class=\"avatar-box\">\n <img [src]=\"avatarUrl\" alt=\"\">\n </div>\n </div>\n </div>\n <div class=\"m-portlet__foot m-portlet__foot--fit text-right\">\n <div class=\"m-form__actions\">\n <button type=\"submit\" class=\"btn btn-success btn-md btn-md-save\">\n \u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\n </button>\n <button type=\"reset\" class=\"btn btn-default btn-md btn-md-search\" (click)=\"closeModal()\">\n \u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\n </button>\n </div>\n </div>\n </form>\n </div>\n </div>\n </div>\n</div>\n",
styles: ["\n :host ::ng-deep .avatar-uploader > .ant-upload, :host ::ng-deep .avatar {\n width: 128px;\n height: 128px;\n }\n :host ::ng-deep .ant-upload-select-picture-card i {\n font-size: 32px;\n color: #999;\n }\n :host ::ng-deep .ant-upload-select-picture-card .ant-upload-text {\n margin-top: 8px;\n color: #666;\n }\n "]
}] }
];
/** @nocollapse */
ModalImageUploadComponent.ctorParameters = function () { return [
{ 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 }]
};
return ModalImageUploadComponent;
}());
export { ModalImageUploadComponent };
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3NvYy1hcHAtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9tb2RhbC1pbWFnZS11cGxvYWQvbW9kYWwtaW1hZ2UtdXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFbkQsT0FBTyxFQUFDLFVBQVUsRUFBYSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUVsSCxPQUFPLEVBQUUsVUFBVSxFQUF1QixNQUFNLE1BQU0sQ0FBQztBQUV2RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOztJQThDeEIsbUNBQW9CLGdCQUFrQyxFQUFTLE9BQWdCLEVBQVMsTUFBYyxFQUFVLElBQWdCO1FBQWhJLGlCQUdDO1FBSG1CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7MEJBcEJyRyxDQUFDLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLElBQUksRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLEtBQUssRUFB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SSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0tBQ3RCOzs7O0lBRUQsK0NBQVc7OztJQUFYO1FBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7S0FDdEI7O2dCQTFLSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsczVGQUFrRDs2QkFFOUMsOFdBYUw7aUJBRUY7Ozs7Z0JBdkJPLGdCQUFnQjtnQkFSZixPQUFPO2dCQUNSLE1BQU07Z0JBRU4sVUFBVTs7O3dCQStCYixTQUFTLFNBQUMsT0FBTzs2QkFDakIsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLEtBQUs7MkJBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs2QkFDTCxLQUFLOzJCQUNMLE1BQU07MkJBQ04sTUFBTTs7b0NBN0NYOztTQWlDYSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICcuLi9fc2VydmljZXMvcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7Q29tbW9ufSBmcm9tICcuLi9fc2VydmljZXMvY29tbW9uLnNlcnZpY2UnO1xuaW1wb3J0IHtVcGxvYWRYSFJBcmdzfSBmcm9tICduZy16b3Jyby1hbnRkJztcbmltcG9ydCB7SHR0cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGVhZGVycywgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTnpNZXNzYWdlU2VydmljZSwgfSBmcm9tICduZy16b3Jyby1hbnRkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyLHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzL1J4JztcbmltcG9ydCB7TW9kYWxEaXJlY3RpdmV9IGZyb20gJ25neC1ib290c3RyYXAnO1xuaW1wb3J0IHtBcHBDb25maWdTZXJ2aWNlfSBmcm9tICcuLi9hcHAtY29uZmlnL2FwcC1jb25maWcuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG4vLyBpbXBvcnQgeyBOek1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9tZXNzYWdlJztcbi8vIGltcG9ydCB7IFVwbG9hZEZpbGUgfSBmcm9tICduZy16b3Jyby1hbnRkL3VwbG9hZCc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21vZGFsLWltYWdlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWltYWdlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICA6aG9zdCA6Om5nLWRlZXAgLmF2YXRhci11cGxvYWRlciA+IC5hbnQtdXBsb2FkLCA6aG9zdCA6Om5nLWRlZXAgLmF2YXRhciB7XG4gICAgICB3aWR0aDogMTI4cHg7XG4gICAgICBoZWlnaHQ6IDEyOHB4O1xuICAgIH1cbiAgICA6aG9zdCA6Om5nLWRlZXAgLmFudC11cGxvYWQtc2VsZWN0LXBpY3R1cmUtY2FyZCBpIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDtcbiAgICAgIGNvbG9yOiAjOTk5O1xuICAgIH1cbiAgICA6aG9zdCA6Om5nLWRlZXAgLmFudC11cGxvYWQtc2VsZWN0LXBpY3R1cmUtY2FyZCAuYW50LXVwbG9hZC10ZXh0IHtcbiAgICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICAgIGNvbG9yOiAjNjY2O1xuICAgIH1cbiAgYFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxJbWFnZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBNb2RhbERpcmVjdGl2ZTtcbiAgICBASW5wdXQoKSB1cExvYWRUeXBlOiBhbnkgPSBbe3RpdGxlOlwiRmlsZVwiLHR5cGU6MX0se3RpdGxlOlwiU2NhblwiLHR5cGU6Mn0se3RpdGxlOlwiTGlua1wiLHR5cGU6M30se3RpdGxlOlwiUVIgQ29kZVwiLHR5cGU6M31dO1xuICAgIEBJbnB1dCgpIHN5c3RlbUlkOiBhbnkgPSAnMCc7XG4gICAgQElucHV0KCkgUmVsYXRlZEFnZW5jeTogYW55ID0gJ1NPQyc7XG4gICAgQElucHV0KCkgUmVjb3JkSWQ6IGFueSA9ICcwJztcbiAgICBASW5wdXQoKSBTdWJqZWN0OiBhbnkgPSAnLSc7XG4gICAgQElucHV0KCkgVHlwZUlkOiBhbnkgPSAnMCc7XG4gICAgQElucHV0KCkgZG93bmxvYWRUb2tlbjogYW55IDtcbiAgICBASW5wdXQoKSBwb3B1cFRpdGxlID0gJ+C5gOC4peC4t+C4reC4geC4o+C4ueC4m+C4m+C4o+C4sOC4iOC4s+C4leC4seC4pycgO1xuICAgIEBPdXRwdXQoKSB1cGxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25TdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gQFZpZXdDaGlsZCgnbXlNb2RhbCcpIG15TW9kYWw7XG4gICAgZmlsZUxpc3Q6YW55ID0gW107XG4gICAgdXBsb2FkSGVhZGVyczphbnkgPSB7XG4gICAgICAgIFwiQXV0aG9yaXphdGlvblwiOiBcIkJhc2ljIFwiK2J0b2EoXCJBUFBTT0M6MTIzNDU2XCIpXG4gICAgfTtcbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgYXZhdGFyVXJsOiBzdHJpbmc7XG4gICAgZGF0YTtcbiAgICBjb25maWc7XG4gICAgdXJsO1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwQ29uZmlnU2VydmljZTogQXBwQ29uZmlnU2VydmljZSxwcml2YXRlIHJlcXVlc3Q6IFJlcXVlc3QsIHB1YmxpYyBjb21tb246IENvbW1vbiwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgICAgIHRoaXMuY29uZmlnID0gYXBwQ29uZmlnU2VydmljZS5nZXRDb25maWcoKTtcbiAgICAgICAgdGhpcy51cmwgPSBfLmdldCh0aGlzLmNvbmZpZywgJ2FwaVNlcnZlcnMuYWxmcmVzY28udXJsJykgfHwgXCJodHRwczovLzIwMy4xNTQuMzIuMTI2OjI1ODUvYXBpL21mZWMvQWxmcmVzY29cIjtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcblxuICAgIH1cbiAgICBvblVwbG9hZGVkKGZpbGUpe1xuICAgICAgICBjb25zb2xlLmxvZyhcImZpbGVcIixmaWxlKTtcbiAgICAgICAgbGV0IHJlcyA9IEpTT04ucGFyc2UoZmlsZS5yZXF1ZXN0LnJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5yZXF1ZXN0LmdldEF0dGFjaG1lbnRMaW5rVG9rZW4odGhpcy51cmwrJy8nK3Jlcy51dWlkKS50aGVuKHVybCA9PiB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhclVybCA9IHVybDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBsb2FkZWQuZW1pdChyZXMpO1xuICAgIH1cblxuICAgIGJlZm9yZVVwbG9hZCA9IChmaWxlOiBhbnksIF9maWxlTGlzdDogYW55KSA9PiAge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBhbnkpID0+IHtcbiAgICAgICAgICBsZXQgd2hpdGVsaXN0ID0gW1xuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vcGRmJyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi92bmQubXNleGNlbCcsXG4gICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9jc3YnLFxuICAgICAgICAgICAgICAndGV4dC9jc3YnLFxuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vbXN3b3JkJyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLmRvY3VtZW50JyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50JyxcbiAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5zbGlkZXNob3cnLFxuICAgICAgICAgICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnByZXNlbnRhdGlvbicsXG4gICAgICAgICAgICAgICd0ZXh0L3BsYWluJyxcbiAgICAgICAgICAgICAgJ3RleHQvY29tbWEtc2VwYXJhdGVkLXZhbHVlcycsXG4gICAgICAgICAgICAgICd0ZXh0L2FueXRleHQnLFxuICAgICAgICAgICAgICAnaW1hZ2UvcG5nJyxcbiAgICAgICAgICAgICAgJ2ltYWdlL2pwZWcnLFxuICAgICAgICAgICAgICAnaW1hZ2UvZ2lmJyxcbiAgICAgICAgICAgICAgJ2ltYWdlL2JtcCdcblxuICAgICAgICAgICAgXTtcbiAgICAgICAgICBjb25zdCBpc1doaXRlbGlzdCA9IChmaWxlICYmIHdoaXRlbGlzdC5pbmRleE9mKGZpbGUudHlwZSkgPiAtMSlcbiAgICAgICAgICBpZighaXNXaGl0ZWxpc3Qpe1xuICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVMaXN0ID0gWyB7XG4gICAgICAgICAgICAgICAgICAgICAgdWlkOiAnOTk5JyxcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAn4Liq4Liy4Lih4Liy4Lij4LiW4Lit4Lix4Lie4LmC4Lir4Lil4LiU4LmE4LiU4LmJ4LmA4LiJ4Lie4Liy4Liw4LmE4Lif4Lil4LmMICBwZGYgLCBwbmcgICwganBlZyAgLGdpZiAsIHRleHQgLCB3b3JkICwgZXhjZWwgLCBwb3dlcnBvaW50JyxcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6ICfguKrguLLguKHguLLguKPguJbguK3guLHguJ7guYLguKvguKXguJTguYTguJTguYnguYDguInguJ7guLLguLDguYTguJ/guKXguYwgIHBkZiAsIHBuZyAgLCBqcGVnICAsZ2lmICwgdGV4dCAsIHdvcmQgLCBleGNlbCAsIHBvd2VycG9pbnQnLFxuICAgICAgICAgICAgICAgICAgICAgIHVybDogbnVsbFxuICAgICAgICAgICAgICAgICAgICB9XVxuICAgICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpc0x0MzBNID0gZmlsZS5zaXplISAvIDEwMjQgLyAxMDI0IDwgMzA7XG4gICAgICAgICAgaWYgKCFpc0x0MzBNKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVMaXN0ID0gWyB7XG4gICAgICAgICAgICAgICAgICB1aWQ6ICc5OTknLFxuICAgICAgICAgICAgICAgICAgbmFtZTogJ0ZpbGUgbXVzdCBzbWFsbGVyIHRoYW4gMzBNQiEnLFxuICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgcmVzcG9uc2U6ICdGaWxlIG11c3Qgc21hbGxlciB0aGFuIDMwTUIhJyxcbiAgICAgICAgICAgICAgICAgIHVybDogbnVsbFxuICAgICAgICAgICAgICAgIH1dXG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG9ic2VydmVyLm5leHQoaXNXaGl0ZWxpc3QgJiYgaXNMdDMwTSk7XG4gICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG5cbiAgICBjdXN0b21SZXEgPSAoaXRlbTogVXBsb2FkWEhSQXJncykgPT4ge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tYW55XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnRmlsZURhdGEnLCBpdGVtLmZpbGUgYXMgYW55KTtcbiAgICAgICAgZm9ybURhdGEuYXBwZW5kKCdTeXN0ZW1JZCcsICcnK3RoaXMuc3lzdGVtSWQpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1JlbGF0ZWRBZ2VuY3knLCB0aGlzLlJlbGF0ZWRBZ2VuY3kpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1JlY29yZElkJywgdGhpcy5SZWNvcmRJZCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnU3ViamVjdCcsIHRoaXMuU3ViamVjdCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnVHlwZUlkJywgdGhpcy5UeXBlSWQpO1xuICAgICAgICBsZXQgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgICAgICBoZWFkZXJzID0gaGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCAnQmFzaWMgJyArIGJ0b2EoJ0FQUFNPQzoxMjM0NTYnKSk7XG4gICAgICAgIGxldCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCBpdGVtLmFjdGlvbiwgZm9ybURhdGEsIHtcbiAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzIDogdHJ1ZSxcbiAgICAgICAgICAgIGhlYWRlcnM6IGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHJlcS5oZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsICdCYXNpYyAnICsgYnRvYSgnQVBQU09DOjEyMzQ1NicpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGV2ZW50OiBIdHRwRXZlbnQ8e30+KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnRvdGFsID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZW50IGFzIGFueSkucGVyY2VudCA9IGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub25Qcm9ncmVzcyhldmVudCwgaXRlbS5maWxlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKFwiZXZlbnQuYm9keVwiLGV2ZW50LmJvZHkpO1xuICAgICAgICAgICAgICAgICAgICAvLyBsZXQgcmVzID0gSlNPTi5wYXJzZShldmVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYodGhpcy5maWxlTGlzdCAmJiB0aGlzLmZpbGVMaXN0Lmxlbmd0aCA+IDEpe1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZUxpc3QgPSBbdGhpcy5maWxlTGlzdFt0aGlzLmZpbGVMaXN0Lmxlbmd0aC0xXV1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkLmVtaXQoZXZlbnQuYm9keSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IGV2ZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub25TdWNjZXNzKGV2ZW50LmJvZHksIGl0ZW0uZmlsZSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLm9uRXJyb3IoZXJyLCBpdGVtLmZpbGUpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyVmFsdWUoKXtcbiAgICAgICAgdGhpcy5maWxlTGlzdCA9IFtdO1xuICAgIH1cblxuICAgIGNsb3NlTW9kYWwoKSB7XG4gICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgICAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbGVMaXN0ID0gW107XG4gICAgfVxuXG4gICAgY2xpY2tTdWJtaXQoKXtcbiAgICAgICAgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZGF0YSk7XG4gICAgICAgIHRoaXMubW9kYWwuaGlkZSgpO1xuICAgICAgICB0aGlzLmRhdGEgPSBudWxsO1xuICAgICAgICB0aGlzLmZpbGVMaXN0ID0gW107XG4gICAgfVxuXG59XG4iXX0=
|