ps-toolkit-ui 1.3.21 → 1.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ps-toolkit-ui.umd.js +7 -732
- package/bundles/ps-toolkit-ui.umd.js.map +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js +1 -1
- package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
- package/esm2015/lib/ps-toolkit-ui.module.js +3 -10
- package/esm2015/ps-toolkit-ui.js +2 -6
- package/fesm2015/ps-toolkit-ui.js +3 -647
- package/fesm2015/ps-toolkit-ui.js.map +1 -1
- package/package.json +1 -1
- package/ps-toolkit-ui.d.ts +1 -5
- package/ps-toolkit-ui.metadata.json +1 -1
- package/src/assets/styles/base.css +1 -0
- package/esm2015/lib/components/table-old/loading/table-old.loading.component.js +0 -17
- package/esm2015/lib/components/table-old/pagination/table-old.pagination.component.js +0 -84
- package/esm2015/lib/components/table-old/row/table-old.row.component.js +0 -381
- package/esm2015/lib/components/table-old/table-old.component.js +0 -179
- package/lib/components/table-old/loading/table-old.loading.component.d.ts +0 -5
- package/lib/components/table-old/pagination/table-old.pagination.component.d.ts +0 -15
- package/lib/components/table-old/row/table-old.row.component.d.ts +0 -34
- package/lib/components/table-old/table-old.component.d.ts +0 -40
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import * as _ from 'lodash';
|
|
3
|
-
import { InputType, Method, PermissionAccessTypeEnum, PermissionInputActionEnum, PermissionInputTypeEnum, PermissionTypeEnum, TableCollType, TableOptionType } from '../../../classes/enum.class';
|
|
4
|
-
import { InputClass } from '../../../classes/form.class';
|
|
5
|
-
import { RequestClass } from '../../../classes/request.class';
|
|
6
|
-
import { HelperClass } from '../../../classes/helper.class';
|
|
7
|
-
import { PsToolkitUiConfigService } from '../../../services/config.service';
|
|
8
|
-
import * as $ from 'jquery';
|
|
9
|
-
import { PermissionClass } from '../../../classes/permission.class';
|
|
10
|
-
export class TableOldRowComponent {
|
|
11
|
-
constructor(service) {
|
|
12
|
-
this.service = service;
|
|
13
|
-
this.confirmShow = new EventEmitter();
|
|
14
|
-
this.changeRows = new EventEmitter();
|
|
15
|
-
this.loadParent = new EventEmitter();
|
|
16
|
-
this.showChildren = null;
|
|
17
|
-
this.addChildren = null;
|
|
18
|
-
this.itemsWidth = 0;
|
|
19
|
-
this.children = [];
|
|
20
|
-
}
|
|
21
|
-
get type() { return InputType; }
|
|
22
|
-
get tableOptionType() { return TableOptionType; }
|
|
23
|
-
ngOnInit() {
|
|
24
|
-
// this.itemsWidth = this.table.cols.reduce((a, {percent}) => a + percent, 0);
|
|
25
|
-
if (this.table.hasChildren) {
|
|
26
|
-
if (!this.table.childrenAutoLoad) {
|
|
27
|
-
this.children = this.getChildren();
|
|
28
|
-
}
|
|
29
|
-
if (this.table.permissions.hasAccess(PermissionAccessTypeEnum.Insert)) {
|
|
30
|
-
this.addChildren = new InputClass(this.table.environment, this.table.l, this.table.name + 'AddSubsetTitle', 'fa-duotone fa-plus fa-rotate-90', InputType.Icon, 'green m-h-5 h-25 d-ib va-m f-u');
|
|
31
|
-
this.addChildren.onClick = () => {
|
|
32
|
-
this.table.form.onSuccessBase = () => {
|
|
33
|
-
this.table.modal.hide();
|
|
34
|
-
this.showChildren.type = InputType.Icon;
|
|
35
|
-
this.loadChildren(this.row.Data.Id);
|
|
36
|
-
};
|
|
37
|
-
this.table.showInsertModal(this.row.Data.Id);
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
this.showChildren = new InputClass(this.table.environment, this.table.l, this.table.name + 'SubsetTitle', 'fa-duotone fa-angle-left f-s-22', this.row.Data.CountChild > 0 || (!this.table.childrenAutoLoad && this.children.length > 0) ? InputType.Icon : InputType.Hidden, 'h-25 m-h-5 d-ib va-m f-u');
|
|
41
|
-
this.showChildren.onClick = () => {
|
|
42
|
-
if ($(this.childrenDiv.nativeElement).is(':visible')) {
|
|
43
|
-
$(this.childrenDiv.nativeElement).hide();
|
|
44
|
-
this.showChildren.icon = 'fa-duotone fa-angle-left f-s-22';
|
|
45
|
-
}
|
|
46
|
-
else if (this.children.length === 0) {
|
|
47
|
-
this.loadChildren(this.row.Data.Id);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
$(this.childrenDiv.nativeElement).show();
|
|
51
|
-
this.showChildren.icon = 'fa-duotone fa-angle-down f-s-22';
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
if (this.table.hasStatus) {
|
|
56
|
-
this.optStatus = new InputClass(this.table.environment, this.table.l, 'Status', this.row.Data.Active ? 'fa-toggle-on' : 'fa-toggle-off', InputType.Icon, 'm-h-5 h-20 ' + (this.row.Data.Active ? 'green' : ''));
|
|
57
|
-
this.optStatus.row = this.row.Data;
|
|
58
|
-
this.optStatus.onClick = (btn) => {
|
|
59
|
-
new RequestClass(this.table.l).send(this.table.url + '/Status/' + btn.row.Id, Method.Post, null, btn, (r) => {
|
|
60
|
-
btn.class = 'm-h-5 h-20 ' + (r ? 'green' : '');
|
|
61
|
-
btn.icon = r ? 'fa-toggle-on' : 'fa-toggle-off';
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
if (this.table.sortable) {
|
|
66
|
-
this.setSortRow();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
loadChildren(p) {
|
|
70
|
-
new RequestClass(this.table.environment, this.table.l).send(this.table.url + `List/${p}`, Method.Post, null, this.showChildren, (result) => {
|
|
71
|
-
this.children = result.List;
|
|
72
|
-
setTimeout(() => {
|
|
73
|
-
$(this.childrenDiv.nativeElement).slideDown();
|
|
74
|
-
this.showChildren.icon = 'fa-duotone fa-angle-down f-s-22';
|
|
75
|
-
}, 50);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
select() {
|
|
79
|
-
this.row.Data.selected = !this.row.Data.selected;
|
|
80
|
-
}
|
|
81
|
-
onChangeRows(e) {
|
|
82
|
-
return this.changeRows.emit(e);
|
|
83
|
-
}
|
|
84
|
-
onConfirmShow(e) {
|
|
85
|
-
return this.confirmShow.emit(e);
|
|
86
|
-
}
|
|
87
|
-
setSortRow() {
|
|
88
|
-
setTimeout(() => {
|
|
89
|
-
if (this.table.hasChildren) {
|
|
90
|
-
// @ts-ignore
|
|
91
|
-
$(this.childrenDiv.nativeElement).sortable({
|
|
92
|
-
axis: 'y',
|
|
93
|
-
handle: '> .row > .item-con > .handle-sortable',
|
|
94
|
-
update: () => {
|
|
95
|
-
const data = [];
|
|
96
|
-
// @ts-ignore
|
|
97
|
-
$(this.childrenDiv.nativeElement).sortable('toArray').forEach(x => data.push(x));
|
|
98
|
-
new RequestClass(this.table.l).send(this.table.url + 'Sort', Method.Post, data, null, () => {
|
|
99
|
-
if (this.table.onSort) {
|
|
100
|
-
this.table.onSort();
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}, 500);
|
|
107
|
-
}
|
|
108
|
-
getOptions() {
|
|
109
|
-
const opts = this.addChildren !== null && (this.table.level === null || this.table.level > this.level) ?
|
|
110
|
-
[this.addChildren] : [];
|
|
111
|
-
for (const option of this.row.Options.filter(x => x.Type === PermissionTypeEnum.Option)) {
|
|
112
|
-
const opt = new InputClass(this.table.environment, this.table.l, option.Name, option.Icon, option.InputType === PermissionInputTypeEnum.Icon ? InputType.Icon : InputType.Button, 'blue h-25 m-h-5 d-ib va-m f-u');
|
|
113
|
-
opt.row = this.row;
|
|
114
|
-
if (option.AccessType === PermissionAccessTypeEnum.Update) {
|
|
115
|
-
if (this.table.form) {
|
|
116
|
-
opt.onClick = () => {
|
|
117
|
-
this.table.form.url = this.table.url + 'Update/' + this.row.Data.Id;
|
|
118
|
-
if (this.table.hasChildren && this.row.Data.ParentId != null) {
|
|
119
|
-
this.table.form.onSuccessBase = () => {
|
|
120
|
-
this.table.modal.hide();
|
|
121
|
-
if (this.table.childrenAutoLoad) {
|
|
122
|
-
this.loadParent.emit(this.row.Data.ParentId);
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
125
|
-
this.table.load();
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
this.table.form.onSuccessBase = () => {
|
|
131
|
-
if (!this.table.form.onTop) {
|
|
132
|
-
this.table.modal.hide();
|
|
133
|
-
}
|
|
134
|
-
this.table.form.clear();
|
|
135
|
-
this.table.load();
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
this.edit(opt);
|
|
139
|
-
};
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
opt.url = this.table.url + '/Update/' + this.row.Data.Id;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
else if (option.AccessType === PermissionAccessTypeEnum.Delete) {
|
|
146
|
-
opt.class = opt.class.replace('blue', 'red');
|
|
147
|
-
opt.onClick = () => {
|
|
148
|
-
if (this.table.form) {
|
|
149
|
-
this.table.form.clear();
|
|
150
|
-
}
|
|
151
|
-
if (this.table.permissions.Type === PermissionTypeEnum.Form) {
|
|
152
|
-
this.table.rows = this.table.rows.filter(x => x.Id !== this.row.Data.Id);
|
|
153
|
-
this.changeRows.emit(this.row.Data);
|
|
154
|
-
}
|
|
155
|
-
else {
|
|
156
|
-
this.confirmShow.emit({ id: this.row.Data.Id, accept: () => {
|
|
157
|
-
if (this.table.hasChildren && this.table.childrenAutoLoad && this.row.Data.ParentId != null) {
|
|
158
|
-
this.loadParent.emit(this.row.Data.ParentId);
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
this.table.load();
|
|
162
|
-
}
|
|
163
|
-
} });
|
|
164
|
-
}
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
else if (option.AccessType === PermissionAccessTypeEnum.Report) {
|
|
168
|
-
const p = new PermissionClass();
|
|
169
|
-
p.Area = this.table.permissions.Area;
|
|
170
|
-
p.Controller = 'Print';
|
|
171
|
-
p.Action = option.Controller;
|
|
172
|
-
opt.url = '/Report' + p.getUrl() + '/' + this.row.Data.Id;
|
|
173
|
-
opt.urlNewTab = true;
|
|
174
|
-
}
|
|
175
|
-
else if (option.InputAction === PermissionInputActionEnum.Link || option.InputAction === PermissionInputActionEnum.LinkNewTab) {
|
|
176
|
-
const p = new PermissionClass();
|
|
177
|
-
p.RelatedId = this.table.permissions.RelatedId;
|
|
178
|
-
p.Area = this.table.permissions.Area;
|
|
179
|
-
p.Controller = option.Controller;
|
|
180
|
-
p.Action = option.Action;
|
|
181
|
-
opt.url = p.getUrl() + '/' + this.row.Data.Id;
|
|
182
|
-
opt.urlNewTab = option.InputAction === PermissionInputActionEnum.LinkNewTab;
|
|
183
|
-
}
|
|
184
|
-
else if (option.InputAction === PermissionInputActionEnum.Modal) {
|
|
185
|
-
opt.modal = this.table.optionsActions.find(x => x.name === option.Action);
|
|
186
|
-
opt.onClick = () => {
|
|
187
|
-
if (opt.modal.table) {
|
|
188
|
-
const p = new PermissionClass();
|
|
189
|
-
p.RelatedId = this.row.Data.Id;
|
|
190
|
-
p.Area = this.table.permissions.Area;
|
|
191
|
-
p.Controller = this.table.permissions.Controller;
|
|
192
|
-
p.Action = option.Action;
|
|
193
|
-
p.Accesses = this.row.Options.filter(x => x.ParentId === option.Id);
|
|
194
|
-
opt.modal.table.permissions = p;
|
|
195
|
-
if (opt.modal.table.form) {
|
|
196
|
-
opt.modal.table.form.url = p.getUrl() + 'Insert';
|
|
197
|
-
opt.modal.table.form.baseUrl = p.getUrl() + 'Insert';
|
|
198
|
-
}
|
|
199
|
-
opt.modal.table.set();
|
|
200
|
-
}
|
|
201
|
-
if (opt.modal.form) {
|
|
202
|
-
opt.modal.form.name = option.Name;
|
|
203
|
-
opt.modal.form.url = opt.modal.form.baseUrl + 'Update/' + this.row.Data.Id;
|
|
204
|
-
opt.modal.form.loadData(opt.modal.form.baseUrl + 'Get/' + this.row.Data.Id);
|
|
205
|
-
opt.modal.form.onSuccessBase = () => {
|
|
206
|
-
opt.modal.hide();
|
|
207
|
-
};
|
|
208
|
-
}
|
|
209
|
-
if (opt.modal.accordion) {
|
|
210
|
-
for (const r of opt.modal.accordion.rows) {
|
|
211
|
-
if (r.table) {
|
|
212
|
-
const p = new PermissionClass();
|
|
213
|
-
p.RelatedId = this.row.Data.Id;
|
|
214
|
-
p.Area = this.table.permissions.Area;
|
|
215
|
-
p.Controller = option.Controller;
|
|
216
|
-
p.Action = r.name;
|
|
217
|
-
p.Accesses = this.row.Options.filter(x => x.ParentId === option.Id);
|
|
218
|
-
r.table.permissions = p;
|
|
219
|
-
if (r.table.form) {
|
|
220
|
-
r.table.form.url = p.getUrl() + 'Insert';
|
|
221
|
-
r.table.form.baseUrl = p.getUrl() + 'Insert';
|
|
222
|
-
}
|
|
223
|
-
r.table.set();
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
else if (option.InputAction === PermissionInputActionEnum.File) {
|
|
230
|
-
const p = new PermissionClass();
|
|
231
|
-
p.RelatedId = this.table.permissions.RelatedId;
|
|
232
|
-
p.Area = this.table.permissions.Area;
|
|
233
|
-
p.Controller = option.Controller;
|
|
234
|
-
p.Action = option.Action;
|
|
235
|
-
opt.url = '/File' + p.getUrl() + '/' + this.row.Data.Id;
|
|
236
|
-
opt.urlNewTab = true;
|
|
237
|
-
}
|
|
238
|
-
else if (option.InputAction === PermissionInputActionEnum.Confirm) {
|
|
239
|
-
opt.onClick = () => {
|
|
240
|
-
const p = new PermissionClass();
|
|
241
|
-
p.RelatedId = this.table.permissions.RelatedId;
|
|
242
|
-
p.Area = this.table.permissions.Area;
|
|
243
|
-
p.Controller = option.Controller;
|
|
244
|
-
p.Action = option.Action;
|
|
245
|
-
this.table.showConfirm(this.table.l(option.Action + 'Confirm'), p.getUrl() + '/' + this.row.Data.Id, null, () => {
|
|
246
|
-
this.table.load();
|
|
247
|
-
});
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
else if (option.InputAction === PermissionInputActionEnum.OnClick) {
|
|
251
|
-
opt.onClick = (btn) => {
|
|
252
|
-
this.table.optionsActions.find(x => x.name === option.Action).onClick(btn);
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
opts.push(opt);
|
|
256
|
-
}
|
|
257
|
-
return opts;
|
|
258
|
-
// return (this.addChildren !== null && (this.table.level === null || this.table.level > this.level) ? [this.addChildren] : [])
|
|
259
|
-
// .concat(this.table.options.filter(x => x.condition == null ||
|
|
260
|
-
// (x.condition.startsWith('!') ? !this.row.Data[x.condition.substring(1)] : this.row.Data[x.condition])).map((o) => {
|
|
261
|
-
// const i = HelperClass.clone(o);
|
|
262
|
-
// if (i.url){
|
|
263
|
-
// i.url = i.url.replace('{}', this.row.Data.Id);
|
|
264
|
-
// }
|
|
265
|
-
// i.row = this.row.Data;
|
|
266
|
-
// i.class = i.class + ' m-h-5 h-25 d-ib va-m f-u';
|
|
267
|
-
// return i;
|
|
268
|
-
// })).concat(this.table.hasStatus ? [this.optStatus] : [])
|
|
269
|
-
// .concat(this.table.permissions.hasAccess('Update') ? [this.optEdit] : [])
|
|
270
|
-
// .concat(this.table.permissions.hasAccess('Delete') ? [this.optDelete] : []);
|
|
271
|
-
}
|
|
272
|
-
getCell(col) {
|
|
273
|
-
console.log('getCell');
|
|
274
|
-
const cv = _.get(this.row.Data, col.name);
|
|
275
|
-
if (col.fun != null) {
|
|
276
|
-
return col.fun(this.row.Data);
|
|
277
|
-
}
|
|
278
|
-
else if (col.enum !== null) {
|
|
279
|
-
return col.enum.get(cv);
|
|
280
|
-
}
|
|
281
|
-
else if (col.type === TableCollType.DateDif) {
|
|
282
|
-
return HelperClass.getDateDif(this.table.l, cv);
|
|
283
|
-
}
|
|
284
|
-
else if (col.type === TableCollType.Date) {
|
|
285
|
-
return HelperClass.getDate(cv);
|
|
286
|
-
}
|
|
287
|
-
else if (col.type === TableCollType.DateTime) {
|
|
288
|
-
return HelperClass.getDateTime(cv);
|
|
289
|
-
}
|
|
290
|
-
else if (col.type === TableCollType.Time) {
|
|
291
|
-
return HelperClass.getTime(cv);
|
|
292
|
-
}
|
|
293
|
-
else if (col.type === TableCollType.Url) {
|
|
294
|
-
return '<a target="_blank" href="' + cv + '">' + cv + '</a>';
|
|
295
|
-
}
|
|
296
|
-
else if (col.type === TableCollType.Image) {
|
|
297
|
-
return '<img class="h-100" alt="" src="' + this.service.environment.url + cv + '"/>';
|
|
298
|
-
}
|
|
299
|
-
else if (col.type === TableCollType.FileSize) {
|
|
300
|
-
return HelperClass.getFileSize(cv);
|
|
301
|
-
}
|
|
302
|
-
else if (col.type === TableCollType.Price) {
|
|
303
|
-
return cv.toLocaleString() + ' ' + this.table.l('Rial');
|
|
304
|
-
}
|
|
305
|
-
else if (col.type === TableCollType.Plaque) {
|
|
306
|
-
const parts = cv.split('_');
|
|
307
|
-
if (parts.length === 4) {
|
|
308
|
-
return '<div class="plaque' + (parts[1] === 'ع' ? ' p' : '') + (parts[1] === 'الف' ? ' g' : '') + '">' +
|
|
309
|
-
'<div class="part1">' + parts[0] + '</div>' +
|
|
310
|
-
'<div class="part2">' + parts[1] + '</div>' +
|
|
311
|
-
'<div class="part3">' + parts[2] + '</div>' +
|
|
312
|
-
'<div class="part4">' + parts[3] + '</div>' +
|
|
313
|
-
'</div>';
|
|
314
|
-
}
|
|
315
|
-
else if (parts.length === 2) {
|
|
316
|
-
return '<div class="plaque plaque-m">' +
|
|
317
|
-
'<div class="part1">' + parts[0] + '</div>' +
|
|
318
|
-
'<div class="part2">' + parts[1] + '</div>' +
|
|
319
|
-
'</div>';
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
else if (col.type === TableCollType.PlaqueText) {
|
|
323
|
-
const parts = cv.split('_');
|
|
324
|
-
if (parts.length === 4) {
|
|
325
|
-
return `<div class="ltr">${parts[0]} ${parts[1]}‎ ${parts[2]} ${parts[3]}</div>`;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
return this.table.l(cv);
|
|
329
|
-
}
|
|
330
|
-
getCol(n) {
|
|
331
|
-
let c = this.row.Data;
|
|
332
|
-
n.split('.').forEach((x) => {
|
|
333
|
-
c = c[x];
|
|
334
|
-
});
|
|
335
|
-
return c;
|
|
336
|
-
}
|
|
337
|
-
edit(opt) {
|
|
338
|
-
if (this.table.permissions.Type === PermissionTypeEnum.Form) {
|
|
339
|
-
this.table.form.name = opt.name;
|
|
340
|
-
this.table.form.setData(this.row.Data);
|
|
341
|
-
this.table.form.setButtons(this.table.form.onTop, true, this.row.Data.Id);
|
|
342
|
-
this.table.form.inputs.filter(x => x.inEditDisabled).forEach(x => x.disabled = true);
|
|
343
|
-
this.table.form.inputs.filter(x => !x.inEditVisible).forEach(x => x.visible = false);
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
new RequestClass(this.table.environment, this.table.l).send(this.table.url + 'Get/' + this.row.Data.Id, Method.Post, null, opt, (result) => {
|
|
347
|
-
this.table.form.name = opt.name;
|
|
348
|
-
this.table.form.setButtons(this.table.form.onTop, true, this.row.Data.Id);
|
|
349
|
-
this.table.form.setData(result);
|
|
350
|
-
this.table.form.inputs.filter(x => x.inEditDisabled).forEach(x => x.disabled = true);
|
|
351
|
-
this.table.form.inputs.filter(x => !x.inEditVisible).forEach(x => x.visible = false);
|
|
352
|
-
if (this.table.modal) {
|
|
353
|
-
this.table.modal.show();
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
getChildren() {
|
|
359
|
-
return this.row.Data.Id ? this.table.rows.filter(x => x.Data.ParentId === this.row.Data.Id) : [];
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
TableOldRowComponent.decorators = [
|
|
363
|
-
{ type: Component, args: [{
|
|
364
|
-
selector: 'lib-table-old-row',
|
|
365
|
-
template: "<tr class=\"underline p-r\" [id]=\"row.Id ? row.Id : ''\" [style]=\"{height: table.height + 'px', zIndex: row.RowNum }\">\r\n <td style=\"width: 50px\" *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\"><lib-form-icon *ngIf=\"showChildren != null && showChildren.type === type.Icon\" [inp]=\"showChildren\"></lib-form-icon></td>\r\n <td style=\"width: 50px\" *ngIf=\"table.withSelect\"><i (click)=\"select()\" [className]=\"(row.selected ? 'fas fa-check-square green' : 'far fa-square') + ' select-row'\"></i></td>\r\n <td style=\"width: 50px\" *ngIf=\"table.sortable\"><i class=\"fa-duotone fa-grip-vertical handle-sortable\"></i></td>\r\n<!-- <td [style]=\"{width: col.percent + '%'}\" [className]=\"col.class + ' item'\" *ngFor=\"let col of table.cols\" [innerHTML]=\"getCell(col)\"></td>-->\r\n <td *ngIf=\"row.Options.length > 0\">\r\n <div [className]=\"(table.optionType == tableOptionType.Show ? 'show ' : '') + 'options-con'\">\r\n <span *ngFor=\"let opt of getOptions()\">\r\n <lib-form-button *ngIf=\"opt.type == type.Button\" [inp]=\"opt\"></lib-form-button>\r\n <lib-form-icon *ngIf=\"opt.type == type.Icon\" [inp]=\"opt\"></lib-form-icon>\r\n </span>\r\n </div>\r\n </td>\r\n</tr>\r\n<tr #childrenDiv *ngIf=\"table.hasChildren && (table.level === null || table.level > level)\" class=\"children rightline\">\r\n <td [colSpan]=\"table.cols.length + (table.hasChildren ? 1 : 0) + (row.Options.length > 0 ? 1 : 0)\">\r\n <table style=\"width: 94%; margin: 15px 3% 15px 0;\">\r\n <lib-table-row (loadParent)=\"loadChildren($event)\" (confirmShow)=\"onConfirmShow($event)\" [level]=\"level + 1\" (changeRows)=\"onChangeRows($event)\" [id]=\"child.id ? child.id : ''\" [table]=\"table\" [row]=\"child\" *ngFor=\"let child of children\"></lib-table-row>\r\n </table>\r\n </td>\r\n</tr>\r\n",
|
|
366
|
-
styles: ["::ng-deep lib-table-row{display:contents}tr,tr td{position:relative}tr td{font-family:VazirLight;font-size:12px;font-weight:400;text-align:center;vertical-align:middle}tr td .options-con{align-items:center;background:linear-gradient(270deg,transparent,#fff 80px,#fff);display:flex;height:100%;justify-content:center;left:0;overflow:hidden;position:absolute;top:0;width:0}tr td .options-con.show{overflow:unset;width:unset}tr:hover>td>.options-con{overflow:unset;width:auto}tr td .options-con:not(.show) span:first-child{margin-right:100px}tr td .options-con span:last-child{margin-left:10px}tr.children{display:none}tr.children.rightline:after{right:20px}::ng-deep tr td .select-row{cursor:pointer;font-size:18px;height:30px;line-height:30px}::ng-deep tr td .handle-sortable{cursor:move}::ng-deep tr td .status{-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;border-radius:var(--border-radius-base);cursor:default;display:inline-block;font-size:10px;padding:3px 10px;vertical-align:middle}::ng-deep tr td .status.blue{background-color:var(--blue-white);color:var(--blue)}::ng-deep tr td .status.green{background-color:var(--green-white);color:var(--green)}::ng-deep tr td .status.red{background-color:var(--red-white);color:var(--red)}::ng-deep tr td .status.gray{background-color:var(--black-white);color:var(--black)}::ng-deep tr td .status.yellow{background-color:var(--yellow-white);color:var(--yellow)}::ng-deep tr td .plaque{background-color:#fff;background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAABVCAYAAABn7bJ/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAIW2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMTItMDNUMTg6NTA6NDUrMDM6MzAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjEtMDItMTNUMTE6MTE6MzgrMDM6MzAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTAyLTEzVDExOjExOjM4KzAzOjMwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk4NDVkODgwLTg4M2EtMWE0MS1hZDk3LTdmNTk5MTMzMTQ0NiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjcwY2VlZGU4LTE1ZTAtMTFlYS05MDExLThhM2U0NjBjNjY2OCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjY4NDI0YzA3LWUwMTUtZjk0ZC04MWNkLWZmMTY4YTM4ZjA4NyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIGV4aWY6Q29sb3JTcGFjZT0iNjU1MzUiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI4NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3IiBzdEV2dDp3aGVuPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJiYzEwYzI2LTNlOGYtNzk0NS05YTYxLWNlZjc0Yjg5ZmIyNiIgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wM1QxODo1MDo0NSswMzozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZl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\");background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:var(--border-radius-base);float:right;font-size:14px;height:30px;margin-right:calc(50% - 70px);width:140px}::ng-deep tr td .plaque.plaque-m{background-image:url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAABVCAYAAABn7bJ/AAAACXBIWXMAAAsTAAALEwEAmpwYAAANlmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNi4wLWMwMDIgNzkuMTY0NDYwLCAyMDIwLzA1LzEyLTE2OjA0OjE3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIiB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTA2LTEwVDE0OjM1OjA1KzA0OjMwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wNi0xMFQxNDozNTowNSswNDozMCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpjOWI2MmM5Mi1hNmQ4LWY4NGUtYTM3OS0wZWJmZTZkOTYzNzQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkNmZhOTJjMi1mNGM1LTFjNDktYTUzMy05MmY1Mzk2MDVjNTMiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo2ODQyNGMwNy1lMDE1LWY5NGQtODFjZC1mZjE2OGEzOGYwODciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHRpZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZUmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI0MDAiIGV4aWY6UGl4ZWxZRGltZW5zaW9uPSI4NSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3IiBzdEV2dDp3aGVuPSIyMDE5LTEyLTAzVDE4OjUwOjQ1KzAzOjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmJiYzEwYzI2LTNlOGYtNzk0NS05YTYxLWNlZjc0Yjg5ZmIyNiIgc3RFdnQ6d2hlbj0iMjAxOS0xMi0wM1QxODo1MDo0NSswMzozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpkMmY2YTViYy0yZGQ1LTlkNDEtOGYxYi02OTFkYTJlNmQzMDYiIHN0RXZ0OndoZW49IjIwMjEtMDYtMTBUMTQ6MzQ6MzgrMDQ6MzAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY29udmVydGVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJmcm9tIGltYWdlL3BuZyB0byBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBpbWFnZS9wbmcgdG8gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZGIzMTM2ZmEtN2RkZC03YTQ5LTgzNjQtYjZmYWI3ZGVlZmE5IiBzdEV2dDp3aGVuPSIyMDIxLTA2LTEwVDE0OjM0OjM4KzA0OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgMjEuMiAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmM3Y2U3NTk1LWM3NDUtOTg0Yi1hMmI1LTQ1MjA4N2E0MTBkOCIgc3RFdnQ6d2hlbj0iMjAyMS0wNi0xMFQxNDozNTowNSswNDozMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjIgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9wbmciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImRlcml2ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImNvbnZlcnRlZCBmcm9tIGFwcGxpY2F0aW9uL3ZuZC5hZG9iZS5waG90b3Nob3AgdG8gaW1hZ2UvcG5nIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpjOWI2MmM5Mi1hNmQ4LWY4NGUtYTM3OS0wZWJmZTZkOTYzNzQiIHN0RXZ0OndoZW49IjIwMjEtMDYtMTBUMTQ6MzU6MDUrMDQ6MzAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMS4yIChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6YzdjZTc1OTUtYzc0NS05ODRiLWEyYjUtNDUyMDg3YTQxMGQ4IiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6NTMxYzM1ZDUtMzExNy02NzQ4LWE5OGEtYTlmOGEyYzVmMGU0IiBzdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6Njg0MjRjMDctZTAxNS1mOTRkLTgxY2QtZmYxNjhhMzhmMDg3Ii8+IDxwaG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDxyZGY6QmFnPiA8cmRmOmxpPjUxNjAzQkE4NTUzMTE3NEFEOTU5RTFCMjgwNkNFMjFFPC9yZGY6bGk+IDwvcmRmOkJhZz4gPC9waG90b3Nob3A6RG9jdW1lbnRBbmNlc3RvcnM+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+D6fWAwAAOJhJREFUeAHtwQmgbmdZ2Pv/87zvWuub9nD2cM5JQhICIWEOQREBKVooor2CtThgqzJYQNSr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\")}::ng-deep tr td .plaque.p{background-color:#ffc913}::ng-deep tr td .plaque.g{background-color:#e20600}::ng-deep tr td .plaque .part1{float:left;height:30px;line-height:33px;margin-left:13px;width:32px}::ng-deep tr td .plaque.plaque-m .part1{margin-left:13px;width:42px}::ng-deep tr td .plaque .part2{float:left;height:30px;line-height:30px;width:25px}::ng-deep tr td .plaque.plaque-m .part2{line-height:33px;width:57px}::ng-deep tr td .plaque .part3{float:left;height:30px;line-height:33px;width:42px}::ng-deep tr td .plaque .part4{float:left;height:20px;margin-top:8px;width:28px}"]
|
|
367
|
-
},] }
|
|
368
|
-
];
|
|
369
|
-
TableOldRowComponent.ctorParameters = () => [
|
|
370
|
-
{ type: PsToolkitUiConfigService }
|
|
371
|
-
];
|
|
372
|
-
TableOldRowComponent.propDecorators = {
|
|
373
|
-
confirmShow: [{ type: Output }],
|
|
374
|
-
changeRows: [{ type: Output }],
|
|
375
|
-
level: [{ type: Input }],
|
|
376
|
-
table: [{ type: Input }],
|
|
377
|
-
row: [{ type: Input }],
|
|
378
|
-
loadParent: [{ type: Output }],
|
|
379
|
-
childrenDiv: [{ type: ViewChild, args: ['childrenDiv',] }]
|
|
380
|
-
};
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtb2xkLnJvdy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiRDovUHJvamVjdHMvUHNUb29sa2l0L1VJL3Byb2plY3RzL3BzLXRvb2xraXQtdWkvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvdGFibGUtb2xkL3Jvdy90YWJsZS1vbGQucm93LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFBRSx3QkFBd0IsRUFDaEMseUJBQXlCLEVBQ3pCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGVBQWUsRUFDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQzVELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFPbEUsTUFBTSxPQUFPLG9CQUFvQjtJQXFCL0IsWUFBbUIsT0FBaUM7UUFBakMsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFuQnBELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV6QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQVF4QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUl4QyxpQkFBWSxHQUFl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QyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNyRixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFDckYsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBQztvQkFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ3pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFDRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkcsQ0FBQzs7O1lBaldGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2dCQUM3QiwyMURBQTZDOzthQUU5Qzs7O1lBUk8sd0JBQXdCOzs7MEJBVTdCLE1BQU07eUJBRU4sTUFBTTtvQkFFTixLQUFLO29CQUVMLEtBQUs7a0JBRUwsS0FBSzt5QkFFTCxNQUFNOzBCQVNOLFNBQVMsU0FBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7VGFibGVDbGFzcywgVGFibGVDb2xsQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvdGFibGUuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0VHlwZSxcclxuICBNZXRob2QsIFBlcm1pc3Npb25BY2Nlc3NUeXBlRW51bSxcclxuICBQZXJtaXNzaW9uSW5wdXRBY3Rpb25FbnVtLFxyXG4gIFBlcm1pc3Npb25JbnB1dFR5cGVFbnVtLFxyXG4gIFBlcm1pc3Npb25UeXBlRW51bSxcclxuICBUYWJsZUNvbGxUeXBlLFxyXG4gIFRhYmxlT3B0aW9uVHlwZVxyXG59IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvZW51bS5jbGFzcyc7XHJcbmltcG9ydCB7SW5wdXRDbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9mb3JtLmNsYXNzJztcclxuaW1wb3J0IHtSZXF1ZXN0Q2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvcmVxdWVzdC5jbGFzcyc7XHJcbmltcG9ydCB7SGVscGVyQ2xhc3N9IGZyb20gJy4uLy4uLy4uL2NsYXNzZXMvaGVscGVyLmNsYXNzJztcclxuaW1wb3J0IHtQc1Rvb2xraXRVaUNvbmZpZ1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2NvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgJCBmcm9tICdqcXVlcnknO1xyXG5pbXBvcnQge1Blcm1pc3Npb25DbGFzc30gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9wZXJtaXNzaW9uLmNsYXNzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRhYmxlLW9sZC1yb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS1vbGQucm93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1vbGQucm93LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFibGVPbGRSb3dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgQE91dHB1dCgpXHJcbiAgY29uZmlybVNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPG9iamVjdD4oKTtcclxuICBAT3V0cHV0KClcclxuICBjaGFuZ2VSb3dzID0gbmV3IEV2ZW50RW1pdHRlcjxvYmplY3Q+KCk7XHJcbiAgQElucHV0KClcclxuICBsZXZlbDogbnVtYmVyO1xyXG4gIEBJbnB1dCgpXHJcbiAgdGFibGU6IFRhYmxlQ2xhc3M7XHJcbiAgQElucHV0KClcclxuICByb3c7XHJcbiAgQE91dHB1dCgpXHJcbiAgbG9hZFBhcmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIGdldCB0eXBlKCk6IHR5cGVvZiBJbnB1dFR5cGUgeyByZXR1cm4gSW5wdXRUeXBlOyB9XHJcbiAgZ2V0IHRhYmxlT3B0aW9uVHlwZSgpOiB0eXBlb2YgVGFibGVPcHRpb25UeXBleyByZXR1cm4gVGFibGVPcHRpb25UeXBlOyB9XHJcbiAgb3B0U3RhdHVzOiBJbnB1dENsYXNzO1xyXG4gIHNob3dDaGlsZHJlbjogSW5wdXRDbGFzcyA9IG51bGw7XHJcbiAgYWRkQ2hpbGRyZW46IElucHV0Q2xhc3MgPSBudWxsO1xyXG4gIGl0ZW1zV2lkdGggPSAwO1xyXG4gIGNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG4gIEBWaWV3Q2hpbGQoJ2NoaWxkcmVuRGl2JykgY2hpbGRyZW5EaXY6IEVsZW1lbnRSZWY7XHJcbiAgY29uc3RydWN0b3IocHVibGljIHNlcnZpY2U6IFBzVG9vbGtpdFVpQ29uZmlnU2VydmljZSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuaXRlbXNXaWR0aCA9IHRoaXMudGFibGUuY29scy5yZWR1Y2UoKGEsIHtwZXJjZW50fSkgPT4gYSArIHBlcmNlbnQsIDApO1xyXG4gICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pe1xyXG4gICAgICBpZiAoIXRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCl7XHJcbiAgICAgICAgdGhpcy5jaGlsZHJlbiA9IHRoaXMuZ2V0Q2hpbGRyZW4oKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLkluc2VydCkpe1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4gPSBuZXcgSW5wdXRDbGFzcyh0aGlzLnRhYmxlLmVudmlyb25tZW50LCB0aGlzLnRhYmxlLmwsIHRoaXMudGFibGUubmFtZSArICdBZGRTdWJzZXRUaXRsZScsXHJcbiAgICAgICAgICAnZmEtZHVvdG9uZSBmYS1wbHVzIGZhLXJvdGF0ZS05MCcsIElucHV0VHlwZS5JY29uLFxyXG4gICAgICAgICAgJ2dyZWVuIG0taC01IGgtMjUgZC1pYiB2YS1tIGYtdScpO1xyXG4gICAgICAgIHRoaXMuYWRkQ2hpbGRyZW4ub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMudGFibGUuZm9ybS5vblN1Y2Nlc3NCYXNlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLmhpZGUoKTtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4udHlwZSA9IElucHV0VHlwZS5JY29uO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDaGlsZHJlbih0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLnNob3dJbnNlcnRNb2RhbCh0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCB0aGlzLnRhYmxlLm5hbWUgKyAnU3Vic2V0VGl0bGUnLCAnZmEtZHVvdG9uZSBmYS1hbmdsZS1sZWZ0IGYtcy0yMicsXHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YS5Db3VudENoaWxkID4gMCB8fCAoIXRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCAmJiB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDApID8gSW5wdXRUeXBlLkljb24gOiBJbnB1dFR5cGUuSGlkZGVuLCAnaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIHRoaXMuc2hvd0NoaWxkcmVuLm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCQodGhpcy5jaGlsZHJlbkRpdi5uYXRpdmVFbGVtZW50KS5pcygnOnZpc2libGUnKSl7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuaGlkZSgpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWxlZnQgZi1zLTIyJztcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2hpbGRyZW4ubGVuZ3RoID09PSAwKXtcclxuICAgICAgICAgIHRoaXMubG9hZENoaWxkcmVuKHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2hvdygpO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWRvd24gZi1zLTIyJztcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5oYXNTdGF0dXMpe1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cyA9IG5ldyBJbnB1dENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCwgJ1N0YXR1cycsXHJcbiAgICAgICAgdGhpcy5yb3cuRGF0YS5BY3RpdmUgPyAnZmEtdG9nZ2xlLW9uJyA6ICdmYS10b2dnbGUtb2ZmJywgSW5wdXRUeXBlLkljb24sXHJcbiAgICAgICAgJ20taC01IGgtMjAgJyArICh0aGlzLnJvdy5EYXRhLkFjdGl2ZSA/ICdncmVlbicgOiAnJykpO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5yb3cgPSB0aGlzLnJvdy5EYXRhO1xyXG4gICAgICB0aGlzLm9wdFN0YXR1cy5vbkNsaWNrID0gKGJ0bikgPT4ge1xyXG4gICAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgJy9TdGF0dXMvJyArIGJ0bi5yb3cuSWQsIE1ldGhvZC5Qb3N0LCBudWxsLCBidG4sIChyKSA9PiB7XHJcbiAgICAgICAgICBidG4uY2xhc3MgPSAnbS1oLTUgaC0yMCAnICsgKHIgPyAnZ3JlZW4nIDogJycpO1xyXG4gICAgICAgICAgYnRuLmljb24gPSByID8gJ2ZhLXRvZ2dsZS1vbicgOiAnZmEtdG9nZ2xlLW9mZic7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50YWJsZS5zb3J0YWJsZSl7XHJcbiAgICAgIHRoaXMuc2V0U29ydFJvdygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBsb2FkQ2hpbGRyZW4ocCk6IHZvaWR7XHJcbiAgICBuZXcgUmVxdWVzdENsYXNzKHRoaXMudGFibGUuZW52aXJvbm1lbnQsIHRoaXMudGFibGUubCkuc2VuZCh0aGlzLnRhYmxlLnVybCArIGBMaXN0LyR7cH1gLCBNZXRob2QuUG9zdCxcclxuICAgICAgbnVsbCwgdGhpcy5zaG93Q2hpbGRyZW4sIChyZXN1bHQpID0+IHtcclxuICAgICAgdGhpcy5jaGlsZHJlbiA9IHJlc3VsdC5MaXN0O1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc2xpZGVEb3duKCk7XHJcbiAgICAgICAgdGhpcy5zaG93Q2hpbGRyZW4uaWNvbiA9ICdmYS1kdW90b25lIGZhLWFuZ2xlLWRvd24gZi1zLTIyJztcclxuICAgICAgfSwgNTApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNlbGVjdCgpOiB2b2lke1xyXG4gICAgdGhpcy5yb3cuRGF0YS5zZWxlY3RlZCA9ICF0aGlzLnJvdy5EYXRhLnNlbGVjdGVkO1xyXG4gIH1cclxuICBvbkNoYW5nZVJvd3MoZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jaGFuZ2VSb3dzLmVtaXQoZSk7XHJcbiAgfVxyXG4gIG9uQ29uZmlybVNob3coZSk6IHZvaWR7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maXJtU2hvdy5lbWl0KGUpO1xyXG4gIH1cclxuICBzZXRTb3J0Um93KCk6IHZvaWR7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4pIHtcclxuICAgICAgICAvLyBAdHMtaWdub3JlXHJcbiAgICAgICAgJCh0aGlzLmNoaWxkcmVuRGl2Lm5hdGl2ZUVsZW1lbnQpLnNvcnRhYmxlKHtcclxuICAgICAgICAgIGF4aXM6ICd5JyxcclxuICAgICAgICAgIGhhbmRsZTogJz4gLnJvdyA+IC5pdGVtLWNvbiA+IC5oYW5kbGUtc29ydGFibGUnLFxyXG4gICAgICAgICAgdXBkYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBbXTtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgICAgICAgICAkKHRoaXMuY2hpbGRyZW5EaXYubmF0aXZlRWxlbWVudCkuc29ydGFibGUoJ3RvQXJyYXknKS5mb3JFYWNoKHggPT4gZGF0YS5wdXNoKHgpKTtcclxuICAgICAgICAgICAgbmV3IFJlcXVlc3RDbGFzcyh0aGlzLnRhYmxlLmwpLnNlbmQodGhpcy50YWJsZS51cmwgKyAnU29ydCcsIE1ldGhvZC5Qb3N0LCBkYXRhLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUub25Tb3J0KXtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUub25Tb3J0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbiAgZ2V0T3B0aW9ucygpOiBJbnB1dENsYXNzW117XHJcbiAgICBjb25zdCBvcHRzOiBJbnB1dENsYXNzW10gPSB0aGlzLmFkZENoaWxkcmVuICE9PSBudWxsICYmICh0aGlzLnRhYmxlLmxldmVsID09PSBudWxsIHx8IHRoaXMudGFibGUubGV2ZWwgPiB0aGlzLmxldmVsKSA/XHJcbiAgICAgIFt0aGlzLmFkZENoaWxkcmVuXSA6IFtdO1xyXG4gICAgZm9yIChjb25zdCBvcHRpb24gb2YgdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5PcHRpb24pKXtcclxuICAgICAgY29uc3Qgb3B0ID0gbmV3IElucHV0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sLCBvcHRpb24uTmFtZSwgb3B0aW9uLkljb24sXHJcbiAgICAgICAgb3B0aW9uLklucHV0VHlwZSA9PT0gUGVybWlzc2lvbklucHV0VHlwZUVudW0uSWNvbiA/IElucHV0VHlwZS5JY29uIDogSW5wdXRUeXBlLkJ1dHRvbiwgJ2JsdWUgaC0yNSBtLWgtNSBkLWliIHZhLW0gZi11Jyk7XHJcbiAgICAgIG9wdC5yb3cgPSB0aGlzLnJvdztcclxuICAgICAgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uVXBkYXRlKXtcclxuICAgICAgICBpZiAodGhpcy50YWJsZS5mb3JtKXtcclxuICAgICAgICAgIG9wdC5vbkNsaWNrID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0udXJsID0gdGhpcy50YWJsZS51cmwgKyAnVXBkYXRlLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBpZiAodGhpcy50YWJsZS5oYXNDaGlsZHJlbiAmJiB0aGlzLnJvdy5EYXRhLlBhcmVudElkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuY2hpbGRyZW5BdXRvTG9hZCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubG9hZFBhcmVudC5lbWl0KHRoaXMucm93LkRhdGEuUGFyZW50SWQpO1xyXG4gICAgICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLm9uU3VjY2Vzc0Jhc2UgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudGFibGUuZm9ybS5vblRvcCl7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5mb3JtLmNsZWFyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuZWRpdChvcHQpO1xyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb3B0LnVybCA9IHRoaXMudGFibGUudXJsICsgJy9VcGRhdGUvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKG9wdGlvbi5BY2Nlc3NUeXBlID09PSBQZXJtaXNzaW9uQWNjZXNzVHlwZUVudW0uRGVsZXRlKXtcclxuICAgICAgICBvcHQuY2xhc3MgPSBvcHQuY2xhc3MucmVwbGFjZSgnYmx1ZScsICdyZWQnKTtcclxuICAgICAgICBvcHQub25DbGljayA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICB0aGlzLnRhYmxlLmZvcm0uY2xlYXIoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgICAgICAgdGhpcy50YWJsZS5yb3dzID0gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguSWQgIT09IHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVJvd3MuZW1pdCh0aGlzLnJvdy5EYXRhKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29uZmlybVNob3cuZW1pdCh7aWQ6IHRoaXMucm93LkRhdGEuSWQsIGFjY2VwdDogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGFibGUuaGFzQ2hpbGRyZW4gJiYgdGhpcy50YWJsZS5jaGlsZHJlbkF1dG9Mb2FkICYmIHRoaXMucm93LkRhdGEuUGFyZW50SWQgIT0gbnVsbCApe1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmxvYWRQYXJlbnQuZW1pdCh0aGlzLnJvdy5EYXRhLlBhcmVudElkKTtcclxuICAgICAgICAgICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLmxvYWQoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uQWNjZXNzVHlwZSA9PT0gUGVybWlzc2lvbkFjY2Vzc1R5cGVFbnVtLlJlcG9ydCl7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgcC5Db250cm9sbGVyID0gJ1ByaW50JztcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgIG9wdC51cmwgPSAnL1JlcG9ydCcgKyBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGluayB8fCBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYil7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgb3B0LnVybCA9IHAuZ2V0VXJsKCkgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgIG9wdC51cmxOZXdUYWIgPSBvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTGlua05ld1RhYjtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uTW9kYWwpe1xyXG4gICAgICAgIG9wdC5tb2RhbCA9IHRoaXMudGFibGUub3B0aW9uc0FjdGlvbnMuZmluZCh4ID0+IHgubmFtZSA9PT0gb3B0aW9uLkFjdGlvbik7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlKXtcclxuICAgICAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICBwLkFyZWEgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLkFyZWE7XHJcbiAgICAgICAgICAgIHAuQ29udHJvbGxlciA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQ29udHJvbGxlcjtcclxuICAgICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgICBwLkFjY2Vzc2VzID0gdGhpcy5yb3cuT3B0aW9ucy5maWx0ZXIoeCA9PiB4LlBhcmVudElkID09PSBvcHRpb24uSWQpO1xyXG4gICAgICAgICAgICBvcHQubW9kYWwudGFibGUucGVybWlzc2lvbnMgPSBwO1xyXG4gICAgICAgICAgICBpZiAob3B0Lm1vZGFsLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5mb3JtLnVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgICBvcHQubW9kYWwudGFibGUuZm9ybS5iYXNlVXJsID0gcC5nZXRVcmwoKSArICdJbnNlcnQnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC50YWJsZS5zZXQoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChvcHQubW9kYWwuZm9ybSl7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLm5hbWUgPSBvcHRpb24uTmFtZTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0udXJsID0gb3B0Lm1vZGFsLmZvcm0uYmFzZVVybCArICdVcGRhdGUvJyArIHRoaXMucm93LkRhdGEuSWQ7XHJcbiAgICAgICAgICAgIG9wdC5tb2RhbC5mb3JtLmxvYWREYXRhKG9wdC5tb2RhbC5mb3JtLmJhc2VVcmwgKyAnR2V0LycgKyB0aGlzLnJvdy5EYXRhLklkKTtcclxuICAgICAgICAgICAgb3B0Lm1vZGFsLmZvcm0ub25TdWNjZXNzQmFzZSA9ICgpID0+IHtcclxuICAgICAgICAgICAgICBvcHQubW9kYWwuaGlkZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKG9wdC5tb2RhbC5hY2NvcmRpb24pe1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHIgb2Ygb3B0Lm1vZGFsLmFjY29yZGlvbi5yb3dzKXtcclxuICAgICAgICAgICAgICBpZiAoci50YWJsZSl7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnJvdy5EYXRhLklkO1xyXG4gICAgICAgICAgICAgICAgcC5BcmVhID0gdGhpcy50YWJsZS5wZXJtaXNzaW9ucy5BcmVhO1xyXG4gICAgICAgICAgICAgICAgcC5Db250cm9sbGVyID0gb3B0aW9uLkNvbnRyb2xsZXI7XHJcbiAgICAgICAgICAgICAgICBwLkFjdGlvbiA9IHIubmFtZTtcclxuICAgICAgICAgICAgICAgIHAuQWNjZXNzZXMgPSB0aGlzLnJvdy5PcHRpb25zLmZpbHRlcih4ID0+IHguUGFyZW50SWQgPT09IG9wdGlvbi5JZCk7XHJcbiAgICAgICAgICAgICAgICByLnRhYmxlLnBlcm1pc3Npb25zID0gcDtcclxuICAgICAgICAgICAgICAgIGlmIChyLnRhYmxlLmZvcm0pe1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0udXJsID0gcC5nZXRVcmwoKSArICdJbnNlcnQnO1xyXG4gICAgICAgICAgICAgICAgICByLnRhYmxlLmZvcm0uYmFzZVVybCA9IHAuZ2V0VXJsKCkgKyAnSW5zZXJ0JztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHIudGFibGUuc2V0KCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uRmlsZSl7XHJcbiAgICAgICAgY29uc3QgcCA9IG5ldyBQZXJtaXNzaW9uQ2xhc3MoKTtcclxuICAgICAgICBwLlJlbGF0ZWRJZCA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuUmVsYXRlZElkO1xyXG4gICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICBwLkNvbnRyb2xsZXIgPSBvcHRpb24uQ29udHJvbGxlcjtcclxuICAgICAgICBwLkFjdGlvbiA9IG9wdGlvbi5BY3Rpb247XHJcbiAgICAgICAgb3B0LnVybCA9ICcvRmlsZScgKyBwLmdldFVybCgpICsgJy8nICsgdGhpcy5yb3cuRGF0YS5JZDtcclxuICAgICAgICBvcHQudXJsTmV3VGFiID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uQ29uZmlybSl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwID0gbmV3IFBlcm1pc3Npb25DbGFzcygpO1xyXG4gICAgICAgICAgcC5SZWxhdGVkSWQgPSB0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlJlbGF0ZWRJZDtcclxuICAgICAgICAgIHAuQXJlYSA9IHRoaXMudGFibGUucGVybWlzc2lvbnMuQXJlYTtcclxuICAgICAgICAgIHAuQ29udHJvbGxlciA9IG9wdGlvbi5Db250cm9sbGVyO1xyXG4gICAgICAgICAgcC5BY3Rpb24gPSBvcHRpb24uQWN0aW9uO1xyXG4gICAgICAgICAgdGhpcy50YWJsZS5zaG93Q29uZmlybSh0aGlzLnRhYmxlLmwob3B0aW9uLkFjdGlvbiArICdDb25maXJtJyksIHAuZ2V0VXJsKCkgKyAnLycgKyB0aGlzLnJvdy5EYXRhLklkLCBudWxsLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUubG9hZCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24uSW5wdXRBY3Rpb24gPT09IFBlcm1pc3Npb25JbnB1dEFjdGlvbkVudW0uT25DbGljayl7XHJcbiAgICAgICAgb3B0Lm9uQ2xpY2sgPSAoYnRuKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLm9wdGlvbnNBY3Rpb25zLmZpbmQoeCA9PiB4Lm5hbWUgPT09IG9wdGlvbi5BY3Rpb24pLm9uQ2xpY2soYnRuKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIG9wdHMucHVzaChvcHQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9wdHM7XHJcbiAgICAvLyByZXR1cm4gKHRoaXMuYWRkQ2hpbGRyZW4gIT09IG51bGwgJiYgKHRoaXMudGFibGUubGV2ZWwgPT09IG51bGwgfHwgdGhpcy50YWJsZS5sZXZlbCA+IHRoaXMubGV2ZWwpID8gW3RoaXMuYWRkQ2hpbGRyZW5dIDogW10pXHJcbiAgICAvLyAgIC5jb25jYXQodGhpcy50YWJsZS5vcHRpb25zLmZpbHRlcih4ID0+IHguY29uZGl0aW9uID09IG51bGwgfHxcclxuICAgIC8vICAgICAoeC5jb25kaXRpb24uc3RhcnRzV2l0aCgnIScpID8gIXRoaXMucm93LkRhdGFbeC5jb25kaXRpb24uc3Vic3RyaW5nKDEpXSA6IHRoaXMucm93LkRhdGFbeC5jb25kaXRpb25dKSkubWFwKChvKSA9PiB7XHJcbiAgICAvLyAgICAgY29uc3QgaSA9IEhlbHBlckNsYXNzLmNsb25lKG8pO1xyXG4gICAgLy8gICAgIGlmIChpLnVybCl7XHJcbiAgICAvLyAgICAgICBpLnVybCA9IGkudXJsLnJlcGxhY2UoJ3t9JywgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIGkucm93ID0gdGhpcy5yb3cuRGF0YTtcclxuICAgIC8vICAgICBpLmNsYXNzID0gaS5jbGFzcyArICcgbS1oLTUgaC0yNSBkLWliIHZhLW0gZi11JztcclxuICAgIC8vICAgICByZXR1cm4gaTtcclxuICAgIC8vIH0pKS5jb25jYXQodGhpcy50YWJsZS5oYXNTdGF0dXMgPyBbdGhpcy5vcHRTdGF0dXNdIDogW10pXHJcbiAgICAvLyAgICAgLmNvbmNhdCh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLmhhc0FjY2VzcygnVXBkYXRlJykgPyBbdGhpcy5vcHRFZGl0XSA6IFtdKVxyXG4gICAgLy8gICAgIC5jb25jYXQodGhpcy50YWJsZS5wZXJtaXNzaW9ucy5oYXNBY2Nlc3MoJ0RlbGV0ZScpID8gW3RoaXMub3B0RGVsZXRlXSA6IFtdKTtcclxuICB9XHJcbiAgZ2V0Q2VsbChjb2w6IFRhYmxlQ29sbENsYXNzKTogYW55e1xyXG4gICAgY29uc29sZS5sb2coJ2dldENlbGwnKTtcclxuICAgIGNvbnN0IGN2ID0gXy5nZXQodGhpcy5yb3cuRGF0YSwgY29sLm5hbWUpO1xyXG4gICAgaWYgKGNvbC5mdW4gIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gY29sLmZ1bih0aGlzLnJvdy5EYXRhKTtcclxuICAgIH0gZWxzZSBpZiAoY29sLmVudW0gIT09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIGNvbC5lbnVtLmdldChjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGVEaWYpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGVEaWYodGhpcy50YWJsZS5sLCBjdik7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkRhdGUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldERhdGUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5EYXRlVGltZSkge1xyXG4gICAgICByZXR1cm4gSGVscGVyQ2xhc3MuZ2V0RGF0ZVRpbWUoY3YpO1xyXG4gICAgfSBlbHNlIGlmIChjb2wudHlwZSA9PT0gVGFibGVDb2xsVHlwZS5UaW1lKSB7XHJcbiAgICAgIHJldHVybiBIZWxwZXJDbGFzcy5nZXRUaW1lKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuVXJsKSB7XHJcbiAgICAgIHJldHVybiAnPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cIicgKyBjdiArICdcIj4nICsgY3YgKyAnPC9hPic7XHJcbiAgICB9IGVsc2UgaWYgKGNvbC50eXBlID09PSBUYWJsZUNvbGxUeXBlLkltYWdlKSB7XHJcbiAgICAgIHJldHVybiAnPGltZyBjbGFzcz1cImgtMTAwXCIgYWx0PVwiXCIgc3JjPVwiJyArIHRoaXMuc2VydmljZS5lbnZpcm9ubWVudC51cmwgKyBjdiArICdcIi8+JztcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuRmlsZVNpemUpIHtcclxuICAgICAgcmV0dXJuIEhlbHBlckNsYXNzLmdldEZpbGVTaXplKGN2KTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUHJpY2UpIHtcclxuICAgICAgcmV0dXJuIGN2LnRvTG9jYWxlU3RyaW5nKCkgKyAnICcgKyB0aGlzLnRhYmxlLmwoJ1JpYWwnKTtcclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUGxhcXVlKSB7XHJcbiAgICAgIGNvbnN0IHBhcnRzID0gY3Yuc3BsaXQoJ18nKTtcclxuICAgICAgaWYgKHBhcnRzLmxlbmd0aCA9PT0gNCkge1xyXG4gICAgICAgIHJldHVybiAnPGRpdiBjbGFzcz1cInBsYXF1ZScgKyAocGFydHNbMV0gPT09ICfYuScgPyAnIHAnIDogJycpICsgKHBhcnRzWzFdID09PSAn2KfZhNmBJyA/ICcgZycgOiAnJykgKyAnXCI+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQxXCI+JyArIHBhcnRzWzBdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzxkaXYgY2xhc3M9XCJwYXJ0MlwiPicgKyBwYXJ0c1sxXSArICc8L2Rpdj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDNcIj4nICsgcGFydHNbMl0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQ0XCI+JyArIHBhcnRzWzNdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH0gZWxzZSBpZiAocGFydHMubGVuZ3RoID09PSAyKXtcclxuICAgICAgICByZXR1cm4gJzxkaXYgY2xhc3M9XCJwbGFxdWUgcGxhcXVlLW1cIj4nICtcclxuICAgICAgICAgICc8ZGl2IGNsYXNzPVwicGFydDFcIj4nICsgcGFydHNbMF0gKyAnPC9kaXY+JyArXHJcbiAgICAgICAgICAnPGRpdiBjbGFzcz1cInBhcnQyXCI+JyArIHBhcnRzWzFdICsgJzwvZGl2PicgK1xyXG4gICAgICAgICAgJzwvZGl2Pic7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoY29sLnR5cGUgPT09IFRhYmxlQ29sbFR5cGUuUGxhcXVlVGV4dCkge1xyXG4gICAgICBjb25zdCBwYXJ0cyA9IGN2LnNwbGl0KCdfJyk7XHJcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDQpe1xyXG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImx0clwiPiR7cGFydHNbMF19ICR7cGFydHNbMV19JmxybTsgJHtwYXJ0c1syXX0gJHtwYXJ0c1szXX08L2Rpdj5gO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy50YWJsZS5sKGN2KTtcclxuICB9XHJcbiAgZ2V0Q29sKG4pOiBzdHJpbmd7XHJcbiAgICBsZXQgYyA9IHRoaXMucm93LkRhdGE7XHJcbiAgICBuLnNwbGl0KCcuJykuZm9yRWFjaCgoeCkgPT4ge1xyXG4gICAgICBjID0gY1t4XTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGM7XHJcbiAgfVxyXG4gIGVkaXQob3B0OiBJbnB1dENsYXNzKTogdm9pZHtcclxuICAgIGlmICh0aGlzLnRhYmxlLnBlcm1pc3Npb25zLlR5cGUgPT09IFBlcm1pc3Npb25UeXBlRW51bS5Gb3JtKXtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLm5hbWUgPSBvcHQubmFtZTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLnNldERhdGEodGhpcy5yb3cuRGF0YSk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5zZXRCdXR0b25zKHRoaXMudGFibGUuZm9ybS5vblRvcCwgdHJ1ZSwgdGhpcy5yb3cuRGF0YS5JZCk7XHJcbiAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4geC5pbkVkaXREaXNhYmxlZCkuZm9yRWFjaCh4ID0+IHguZGlzYWJsZWQgPSB0cnVlKTtcclxuICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiAheC5pbkVkaXRWaXNpYmxlKS5mb3JFYWNoKHggPT4geC52aXNpYmxlID0gZmFsc2UpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIG5ldyBSZXF1ZXN0Q2xhc3ModGhpcy50YWJsZS5lbnZpcm9ubWVudCwgdGhpcy50YWJsZS5sKS5zZW5kKHRoaXMudGFibGUudXJsICsgJ0dldC8nICsgdGhpcy5yb3cuRGF0YS5JZCwgTWV0aG9kLlBvc3QsXHJcbiAgICAgICAgbnVsbCwgb3B0LCAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy50YWJsZS5mb3JtLm5hbWUgPSBvcHQubmFtZTtcclxuICAgICAgICB0aGlzLnRhYmxlLmZvcm0uc2V0QnV0dG9ucyh0aGlzLnRhYmxlLmZvcm0ub25Ub3AsIHRydWUsIHRoaXMucm93LkRhdGEuSWQpO1xyXG4gICAgICAgIHRoaXMudGFibGUuZm9ybS5zZXREYXRhKHJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy50YWJsZS5mb3JtLmlucHV0cy5maWx0ZXIoeCA9PiB4LmluRWRpdERpc2FibGVkKS5mb3JFYWNoKHggPT4geC5kaXNhYmxlZCA9IHRydWUpO1xyXG4gICAgICAgIHRoaXMudGFibGUuZm9ybS5pbnB1dHMuZmlsdGVyKHggPT4gIXguaW5FZGl0VmlzaWJsZSkuZm9yRWFjaCh4ID0+IHgudmlzaWJsZSA9IGZhbHNlKTtcclxuICAgICAgICBpZiAodGhpcy50YWJsZS5tb2RhbCl7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlLm1vZGFsLnNob3coKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRDaGlsZHJlbigpOiBhbnlbXXtcclxuICAgIHJldHVybiB0aGlzLnJvdy5EYXRhLklkID8gdGhpcy50YWJsZS5yb3dzLmZpbHRlcih4ID0+IHguRGF0YS5QYXJlbnRJZCA9PT0gdGhpcy5yb3cuRGF0YS5JZCkgOiBbXTtcclxuICB9XHJcbn1cclxuIl19
|