@unnilouis.org/vs-chipdropdown 17.1.5 → 20.0.0-beta
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/README.md +49 -10
- package/fesm2022/unnilouis.org-vs-chipdropdown.mjs +125 -213
- package/fesm2022/unnilouis.org-vs-chipdropdown.mjs.map +1 -1
- package/index.d.ts +78 -5
- package/package.json +1 -3
- package/esm2022/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.mjs +0 -475
- package/esm2022/lib/vs-chipdropdown.component.mjs +0 -19
- package/esm2022/lib/vs-chipdropdown.module.mjs +0 -56
- package/esm2022/lib/vs-chipdropdown.service.mjs +0 -45
- package/esm2022/public-api.mjs +0 -8
- package/esm2022/unnilouis.org-vs-chipdropdown.mjs +0 -5
- package/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.d.ts +0 -48
- package/lib/vs-chipdropdown.component.d.ts +0 -5
- package/lib/vs-chipdropdown.module.d.ts +0 -22
- package/lib/vs-chipdropdown.service.d.ts +0 -11
- package/public-api.d.ts +0 -4
|
@@ -1,475 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
-
import { MatAutocompleteTrigger, } from '@angular/material/autocomplete';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from 'rxjs/operators';
|
|
4
|
-
import { fromEvent } from 'rxjs';
|
|
5
|
-
import { FormControl, FormGroup } from '@angular/forms';
|
|
6
|
-
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../vs-chipdropdown.service";
|
|
9
|
-
import * as i2 from "@angular/forms";
|
|
10
|
-
import * as i3 from "@angular/material/form-field";
|
|
11
|
-
import * as i4 from "@angular/material/core";
|
|
12
|
-
import * as i5 from "@angular/material/autocomplete";
|
|
13
|
-
import * as i6 from "@angular/common";
|
|
14
|
-
import * as i7 from "@angular/material/chips";
|
|
15
|
-
import * as i8 from "@angular/material/icon";
|
|
16
|
-
import * as i9 from "@ngx-translate/core";
|
|
17
|
-
export class VsChipddCmpComponent {
|
|
18
|
-
constructor(service, fb) {
|
|
19
|
-
this.service = service;
|
|
20
|
-
this.fb = fb;
|
|
21
|
-
this.DrodownLoading = false;
|
|
22
|
-
this.Backendapi = true;
|
|
23
|
-
this.trigger = null;
|
|
24
|
-
this.autocompleteTrigger = null;
|
|
25
|
-
this.dataEvent = new EventEmitter();
|
|
26
|
-
this.separatorsKeysCodes = [ENTER, COMMA];
|
|
27
|
-
this.has_next = false;
|
|
28
|
-
this.currentpage = 1;
|
|
29
|
-
this.Dropdowndata = [];
|
|
30
|
-
this.has_previous = false;
|
|
31
|
-
this.DropdownForm = FormGroup;
|
|
32
|
-
this.chipSelectedId = [];
|
|
33
|
-
this.chipSelectedObj = [];
|
|
34
|
-
this.searchControl = new FormControl('');
|
|
35
|
-
this.isOptionSelected = false;
|
|
36
|
-
this.Outputdata = [];
|
|
37
|
-
this.formkeyarr = [];
|
|
38
|
-
}
|
|
39
|
-
ngOnInit() {
|
|
40
|
-
// if (this.formGroup) {
|
|
41
|
-
// this.DropdownForm = this.formGroup;
|
|
42
|
-
// } else {
|
|
43
|
-
// this.DropdownForm = this.fb.group({
|
|
44
|
-
// value: '',
|
|
45
|
-
// });
|
|
46
|
-
// }
|
|
47
|
-
// this.dupngonit();
|
|
48
|
-
// if (this.InputFields?.defaultvalue) {
|
|
49
|
-
// this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue)
|
|
50
|
-
// this.chipSelectedObj = this.InputFields?.defaultvalue
|
|
51
|
-
// if (this.chipSelectedObj.length > 0) {
|
|
52
|
-
// for (let foundemp of this.chipSelectedObj) {
|
|
53
|
-
// if (this.InputFields?.Outputkey) {
|
|
54
|
-
// this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey])
|
|
55
|
-
// }
|
|
56
|
-
// else {
|
|
57
|
-
// this.chipSelectedId.push(foundemp.id)
|
|
58
|
-
// }
|
|
59
|
-
// }
|
|
60
|
-
// this.selected()
|
|
61
|
-
// }
|
|
62
|
-
// }
|
|
63
|
-
// if (this.InputFields?.fronentdata) {
|
|
64
|
-
// this.Dropdowndata = this.InputFields?.data
|
|
65
|
-
// }
|
|
66
|
-
// else {
|
|
67
|
-
// this.getdropdown('')
|
|
68
|
-
// }
|
|
69
|
-
}
|
|
70
|
-
looop() {
|
|
71
|
-
for (let foundemp of this.chipSelectedObj) {
|
|
72
|
-
if (!(foundemp instanceof Number)) {
|
|
73
|
-
if (this.InputFields?.Outputkey) {
|
|
74
|
-
this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
this.chipSelectedId.push(foundemp.id);
|
|
78
|
-
}
|
|
79
|
-
if (this.InputFields?.formkey) {
|
|
80
|
-
this.formkeyarr.push(foundemp[this.InputFields?.formkey]);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
dupngonit() {
|
|
86
|
-
if (this.formGroup) {
|
|
87
|
-
this.DropdownForm = this.formGroup;
|
|
88
|
-
if (!this.DropdownForm.contains(this.InputFields?.formcontrolname)) {
|
|
89
|
-
this.DropdownForm.addControl(this.dynamciformcontrolparent(), new FormControl({ value: [], disabled: this.InputFields?.disabled }));
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
this.InputFields?.disabled
|
|
93
|
-
? this.DropdownForm.get('chipvalue').disable()
|
|
94
|
-
: '';
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
this.DropdownForm = this.fb.group({
|
|
99
|
-
chipvalue: [],
|
|
100
|
-
disabled: this.InputFields?.disabled,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
console.log('this.DropdownForm', this.DropdownForm.value);
|
|
104
|
-
// this.chipSelectedObj =
|
|
105
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent()).value &&
|
|
106
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0
|
|
107
|
-
// ? this.DropdownForm.get(this.dynamciformcontrolparent()).value
|
|
108
|
-
// : [];
|
|
109
|
-
// console.log('this.chipSelectedObj', this.chipSelectedObj);
|
|
110
|
-
if (this.InputFields?.defaultvalue) {
|
|
111
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(
|
|
112
|
-
// this.InputFields?.formkey
|
|
113
|
-
// ? this.InputFields?.defaultvalue[this.InputFields?.formkey]
|
|
114
|
-
// : this.InputFields?.defaultvalue
|
|
115
|
-
// );
|
|
116
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);
|
|
117
|
-
this.chipSelectedObj = Array.isArray(this.InputFields.defaultvalue)
|
|
118
|
-
? this.InputFields.defaultvalue
|
|
119
|
-
: [this.InputFields.defaultvalue]; // 🔥 wrap into array
|
|
120
|
-
this.chipSelectedId = [];
|
|
121
|
-
this.formkeyarr = [];
|
|
122
|
-
if (this.chipSelectedObj.length > 0) {
|
|
123
|
-
this.looop();
|
|
124
|
-
this.selected();
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
if (this.DropdownForm.get(this.dynamciformcontrolparent()).value &&
|
|
128
|
-
this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0) {
|
|
129
|
-
this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value;
|
|
130
|
-
console.log('test', (this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value));
|
|
131
|
-
this.chipSelectedId = [];
|
|
132
|
-
this.formkeyarr = [];
|
|
133
|
-
this.looop();
|
|
134
|
-
this.selected();
|
|
135
|
-
}
|
|
136
|
-
if (this.InputFields?.fronentdata) {
|
|
137
|
-
this.Dropdowndata = this.InputFields?.data;
|
|
138
|
-
}
|
|
139
|
-
this.dropdownsearch();
|
|
140
|
-
// else {
|
|
141
|
-
// this.getdropdown('')
|
|
142
|
-
// }
|
|
143
|
-
}
|
|
144
|
-
ngOnChanges(changes) {
|
|
145
|
-
if (changes['InputFields'] && changes['InputFields'].currentValue) {
|
|
146
|
-
console.log('Summary Log Changes');
|
|
147
|
-
this.currentpage = 1;
|
|
148
|
-
this.dupngonit();
|
|
149
|
-
}
|
|
150
|
-
if (changes['ResetForm'] && changes['ResetForm'].currentValue) {
|
|
151
|
-
console.log('hitted');
|
|
152
|
-
// this.DropdownForm.reset();
|
|
153
|
-
this.currentpage = 1;
|
|
154
|
-
this.dupngonit();
|
|
155
|
-
this.chipSelectedId = [];
|
|
156
|
-
this.formkeyarr = [];
|
|
157
|
-
this.chipSelectedObj = [];
|
|
158
|
-
this.dataEvent.emit([]);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
// public displaydevelopclient(clt: any, key: string) {
|
|
162
|
-
// return key[clt];
|
|
163
|
-
// }
|
|
164
|
-
autocompleteAppScroll() {
|
|
165
|
-
if (!this.InputFields?.fronentdata) {
|
|
166
|
-
setTimeout(() => {
|
|
167
|
-
if (this.matAutocompleteApp &&
|
|
168
|
-
this.autocompleteTrigger &&
|
|
169
|
-
this.matAutocompleteApp.panel) {
|
|
170
|
-
fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
|
|
171
|
-
.pipe(map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
|
|
172
|
-
.subscribe((x) => {
|
|
173
|
-
const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
|
|
174
|
-
const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
|
|
175
|
-
const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
|
|
176
|
-
const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;
|
|
177
|
-
if (atBottom) {
|
|
178
|
-
if (this.has_next === true) {
|
|
179
|
-
let value = this.DropInput.nativeElement.value;
|
|
180
|
-
let params = this.searchparams(value);
|
|
181
|
-
this.currentpage = this.currentpage + 1;
|
|
182
|
-
if (this.currentpage > 1) {
|
|
183
|
-
this.service
|
|
184
|
-
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
185
|
-
.subscribe((results) => {
|
|
186
|
-
let datas = results['data'];
|
|
187
|
-
let datapagination = results['pagination'];
|
|
188
|
-
this.Dropdowndata = this.Dropdowndata.concat(datas);
|
|
189
|
-
console.log('this.Dropdowndata', this.Dropdowndata);
|
|
190
|
-
if (this.Dropdowndata.length >= 0) {
|
|
191
|
-
this.has_next = datapagination.has_next;
|
|
192
|
-
this.has_previous = datapagination.has_previous;
|
|
193
|
-
this.currentpage = datapagination.index;
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// dropdownsearch() {
|
|
205
|
-
// const controlName = this.dynamciformcontrolparent();
|
|
206
|
-
// const control = this.DropdownForm.get(controlName);
|
|
207
|
-
// if (control) {
|
|
208
|
-
// if (!this.InputFields?.fronentdata) {
|
|
209
|
-
// if (!this.InputFields?.url) {
|
|
210
|
-
// return;
|
|
211
|
-
// }
|
|
212
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
213
|
-
// .valueChanges.pipe(
|
|
214
|
-
// debounceTime(300),
|
|
215
|
-
// distinctUntilChanged(),
|
|
216
|
-
// // tap(() => {
|
|
217
|
-
// // this.DrodownLoading = true;
|
|
218
|
-
// // console.log('inside tap');
|
|
219
|
-
// // }),
|
|
220
|
-
// switchMap((value) => {
|
|
221
|
-
// // if(this.isOptionSelected){
|
|
222
|
-
// // this.isOptionSelected=false
|
|
223
|
-
// // return []
|
|
224
|
-
// // }
|
|
225
|
-
// if (this.isOptionSelected) {
|
|
226
|
-
// this.isOptionSelected = false;
|
|
227
|
-
// return of({ data: [] }); // <-- ensures emit, triggers UI refresh
|
|
228
|
-
// }
|
|
229
|
-
// let params = this.searchparams(value);
|
|
230
|
-
// this.currentpage = 1;
|
|
231
|
-
// console.log(
|
|
232
|
-
// 'hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>',
|
|
233
|
-
// );
|
|
234
|
-
// return this.service
|
|
235
|
-
// .GetApi(
|
|
236
|
-
// this.InputFields.url + '?page=' + this.currentpage,
|
|
237
|
-
// params,
|
|
238
|
-
// )
|
|
239
|
-
// .pipe(
|
|
240
|
-
// finalize(() => {
|
|
241
|
-
// this.DrodownLoading = false;
|
|
242
|
-
// }),
|
|
243
|
-
// );
|
|
244
|
-
// }),
|
|
245
|
-
// )
|
|
246
|
-
// .subscribe((results: any) => {
|
|
247
|
-
// this.dataEvent.emit('');
|
|
248
|
-
// let datas = results['data'];
|
|
249
|
-
// this.Dropdowndata = datas;
|
|
250
|
-
// });
|
|
251
|
-
// } else {
|
|
252
|
-
// // this.Dropdowndata = this.InputFields?.data
|
|
253
|
-
// this.DropdownForm.get(
|
|
254
|
-
// this.dynamciformcontrolparent(),
|
|
255
|
-
// ).valueChanges.subscribe((value: any) => {
|
|
256
|
-
// this.Dropdowndata = this.InputFields?.data.filter((item: any) =>
|
|
257
|
-
// item[this.InputFields?.displaykey]
|
|
258
|
-
// ?.toLowerCase()
|
|
259
|
-
// .includes(value?.toLowerCase()),
|
|
260
|
-
// );
|
|
261
|
-
// });
|
|
262
|
-
// }
|
|
263
|
-
// }
|
|
264
|
-
// // if (control && !this.InputFields?.fronentdata) {
|
|
265
|
-
// // this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
266
|
-
// // .valueChanges.pipe(
|
|
267
|
-
// // debounceTime(200),
|
|
268
|
-
// // distinctUntilChanged(),
|
|
269
|
-
// // tap(() => {
|
|
270
|
-
// // this.DrodownLoading = true;
|
|
271
|
-
// // console.log('inside tap');
|
|
272
|
-
// // }),
|
|
273
|
-
// // switchMap((value) => {
|
|
274
|
-
// // let params = this.searchparams(value);
|
|
275
|
-
// // this.currentpage = 1;
|
|
276
|
-
// // return this.service
|
|
277
|
-
// // .GetApi(
|
|
278
|
-
// // this.InputFields.url + '?page=' + this.currentpage,
|
|
279
|
-
// // params
|
|
280
|
-
// // )
|
|
281
|
-
// // .pipe(
|
|
282
|
-
// // finalize(() => {
|
|
283
|
-
// // this.DrodownLoading = false;
|
|
284
|
-
// // })
|
|
285
|
-
// // );
|
|
286
|
-
// // })
|
|
287
|
-
// // )
|
|
288
|
-
// // .subscribe((results: any[]) => {
|
|
289
|
-
// // let datas = results['data'];
|
|
290
|
-
// // this.Dropdowndata = datas;
|
|
291
|
-
// // });
|
|
292
|
-
// // }
|
|
293
|
-
// }
|
|
294
|
-
dropdownsearch() {
|
|
295
|
-
this.searchControl.valueChanges
|
|
296
|
-
.pipe(debounceTime(300), distinctUntilChanged(), tap(() => (this.DrodownLoading = true)), switchMap((value) => {
|
|
297
|
-
if (!value)
|
|
298
|
-
value = '';
|
|
299
|
-
const params = this.searchparams(value);
|
|
300
|
-
this.currentpage = 1;
|
|
301
|
-
return this.service
|
|
302
|
-
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
303
|
-
.pipe(finalize(() => (this.DrodownLoading = false)));
|
|
304
|
-
}))
|
|
305
|
-
.subscribe((results) => {
|
|
306
|
-
this.Dropdowndata = results.data;
|
|
307
|
-
if (this.trigger)
|
|
308
|
-
this.trigger.openPanel(); // force refresh
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
getdropdown(value) {
|
|
312
|
-
this.currentpage = 1;
|
|
313
|
-
if (this.InputFields.url) {
|
|
314
|
-
let params = this.searchparams(value);
|
|
315
|
-
this.service
|
|
316
|
-
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
317
|
-
.subscribe((results) => {
|
|
318
|
-
let datas = results['data'];
|
|
319
|
-
let datapagination = results['pagination'];
|
|
320
|
-
this.Dropdowndata = datas;
|
|
321
|
-
setTimeout(() => {
|
|
322
|
-
if (this.trigger) {
|
|
323
|
-
this.trigger.openPanel();
|
|
324
|
-
}
|
|
325
|
-
}, 0);
|
|
326
|
-
if (this.Dropdowndata.length >= 0) {
|
|
327
|
-
this.has_next = datapagination.has_next;
|
|
328
|
-
this.has_previous = datapagination.has_previous;
|
|
329
|
-
this.currentpage = datapagination.index;
|
|
330
|
-
}
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
dynamciformcontrolparent() {
|
|
335
|
-
return this.InputFields?.formcontrolname && this.formGroup
|
|
336
|
-
? this.InputFields?.formcontrolname
|
|
337
|
-
: 'chipvalue';
|
|
338
|
-
}
|
|
339
|
-
selected() {
|
|
340
|
-
this.Outputdata = this.chipSelectedObj;
|
|
341
|
-
if (this.InputFields?.Outputkey) {
|
|
342
|
-
this.Outputdata = this.chipSelectedId;
|
|
343
|
-
}
|
|
344
|
-
if (this.formGroup && this.InputFields?.formcontrolname) {
|
|
345
|
-
this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.formkeyarr);
|
|
346
|
-
}
|
|
347
|
-
console.log(this.formkeyarr);
|
|
348
|
-
console.log('this.DropdownForm.get', this.DropdownForm.value);
|
|
349
|
-
this.dataEvent.emit(this.Outputdata);
|
|
350
|
-
// let data = this.DropdownForm.value.value
|
|
351
|
-
// if (this.InputFields?.wholedata) {
|
|
352
|
-
// this.dataEvent.emit(this.chipSelectedObj);
|
|
353
|
-
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
354
|
-
// this.InputFields?.formgroup
|
|
355
|
-
// .get(this.InputFields?.formcontrolname)
|
|
356
|
-
// .patchValue(this.chipSelectedObj);
|
|
357
|
-
// }
|
|
358
|
-
// }
|
|
359
|
-
// else {
|
|
360
|
-
// if (this.InputFields?.Outputkey) {
|
|
361
|
-
// this.dataEvent.emit(this.chipSelectedId);
|
|
362
|
-
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
363
|
-
// this.InputFields?.formgroup
|
|
364
|
-
// .get(this.InputFields?.formcontrolname)
|
|
365
|
-
// .patchValue(this.chipSelectedId);
|
|
366
|
-
// }
|
|
367
|
-
// }
|
|
368
|
-
// else {
|
|
369
|
-
// this.dataEvent.emit(this.chipSelectedObj);
|
|
370
|
-
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
371
|
-
// this.InputFields?.formgroup
|
|
372
|
-
// .get(this.InputFields?.formcontrolname)
|
|
373
|
-
// .patchValue(this.chipSelectedObj);
|
|
374
|
-
// }
|
|
375
|
-
// }
|
|
376
|
-
// }
|
|
377
|
-
}
|
|
378
|
-
searchparams(value) {
|
|
379
|
-
let params = '';
|
|
380
|
-
if (this.InputFields.params) {
|
|
381
|
-
params = this.InputFields.params;
|
|
382
|
-
}
|
|
383
|
-
let inpValue = value;
|
|
384
|
-
inpValue
|
|
385
|
-
? (params += '&' + this.InputFields.searchkey + '=' + inpValue)
|
|
386
|
-
: '';
|
|
387
|
-
return params;
|
|
388
|
-
}
|
|
389
|
-
removechip(obj) {
|
|
390
|
-
const index = this.chipSelectedObj.indexOf(obj);
|
|
391
|
-
if (index >= 0) {
|
|
392
|
-
this.chipSelectedObj.splice(index, 1);
|
|
393
|
-
console.log(this.chipSelectedObj);
|
|
394
|
-
this.chipSelectedId.splice(index, 1);
|
|
395
|
-
console.log(this.chipSelectedId);
|
|
396
|
-
this.formkeyarr.splice(index, 1);
|
|
397
|
-
console.log('this.formkeyarr', this.formkeyarr);
|
|
398
|
-
this.DropInput.nativeElement.value = '';
|
|
399
|
-
this.selected();
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
venSelected(datas) {
|
|
403
|
-
let data = !datas && datas === '' ? datas : datas.option.value;
|
|
404
|
-
this.isOptionSelected = true;
|
|
405
|
-
this.DropInput.nativeElement.value = '';
|
|
406
|
-
console.log('event.option.value', data);
|
|
407
|
-
this.selectvenByName(data[this.comparekey(data)]);
|
|
408
|
-
console.log('chipSelectedvenid', this.chipSelectedObj);
|
|
409
|
-
}
|
|
410
|
-
selectvenByName(ven) {
|
|
411
|
-
let foundemp1 = this.chipSelectedObj.filter((e) => e[this.comparekey(e)] == ven);
|
|
412
|
-
if (foundemp1.length) {
|
|
413
|
-
return;
|
|
414
|
-
}
|
|
415
|
-
let foundemp = this.Dropdowndata.filter((e) => e[this.comparekey(e)] == ven);
|
|
416
|
-
if (foundemp.length) {
|
|
417
|
-
this.chipSelectedObj.push(foundemp[0]);
|
|
418
|
-
if (this.InputFields?.Outputkey) {
|
|
419
|
-
this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);
|
|
420
|
-
}
|
|
421
|
-
else {
|
|
422
|
-
this.chipSelectedId.push(foundemp[0].id);
|
|
423
|
-
}
|
|
424
|
-
if (this.InputFields?.formkey) {
|
|
425
|
-
this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);
|
|
426
|
-
}
|
|
427
|
-
this.selected();
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
comparekey(e) {
|
|
431
|
-
if (this.InputFields?.comparekey) {
|
|
432
|
-
return this.InputFields?.comparekey;
|
|
433
|
-
}
|
|
434
|
-
else {
|
|
435
|
-
if (e?.id) {
|
|
436
|
-
return 'id';
|
|
437
|
-
}
|
|
438
|
-
else {
|
|
439
|
-
return this.InputFields.displaykey;
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: i1.VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
444
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields", ResetForm: "ResetForm", Backendapi: "Backendapi", formGroup: "formGroup" }, outputs: { dataEvent: "dataEvent" }, viewQueries: [{ propertyName: "trigger", first: true, predicate: ["autoCompleteInput"], descendants: true, read: MatAutocompleteTrigger }, { propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "matAutocompleteApp", first: true, predicate: ["scrolll"], descendants: true }, { propertyName: "DropInput", first: true, predicate: ["DropInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\r\n <form [formGroup]=\"DropdownForm\" id=\"matChip-size\">\r\n <!-- class=\"mat-chipScroll\" -->\r\n <mat-form-field\r\n appearance=\"outline\"\r\n (click)=\"!this.InputFields?.fronentdata ? this.getdropdown('') : ''\"\r\n >\r\n <mat-label>{{ InputFields?.label | translate }}</mat-label>\r\n <!-- class=\"chip-container\" -->\r\n <mat-chip-grid multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip-row\r\n *ngFor=\"let obj of chipSelectedObj\"\r\n [removable]=\"true\"\r\n (removed)=\"removechip(obj)\"\r\n >\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [formControl]=\"searchControl\"\r\n [matAutocomplete]=\"scrolll\"\r\n [matChipInputFor]=\"chipListvendor\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorsKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n #autoCompleteInput=\"matAutocompleteTrigger\"\r\n [formControlName]=\"this.dynamciformcontrolparent()\"\r\n />\r\n </mat-chip-grid>\r\n <mat-autocomplete\r\n #scrolll=\"matAutocomplete\"\r\n (opened)=\"autocompleteAppScroll()\"\r\n >\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let dropvalues of Dropdowndata\"\r\n [value]=\"\r\n this.InputFields?.formkey\r\n ? dropvalues[this.InputFields?.formkey]\r\n : dropvalues\r\n \"\r\n (optionSelected)=\"venSelected($event)\"\r\n >\r\n {{ dropvalues[InputFields?.displaykey] }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n", styles: [""], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
445
|
-
}
|
|
446
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
|
|
447
|
-
type: Component,
|
|
448
|
-
args: [{ selector: 'lib-vs-chipdd-cmp', template: "\r\n <form [formGroup]=\"DropdownForm\" id=\"matChip-size\">\r\n <!-- class=\"mat-chipScroll\" -->\r\n <mat-form-field\r\n appearance=\"outline\"\r\n (click)=\"!this.InputFields?.fronentdata ? this.getdropdown('') : ''\"\r\n >\r\n <mat-label>{{ InputFields?.label | translate }}</mat-label>\r\n <!-- class=\"chip-container\" -->\r\n <mat-chip-grid multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip-row\r\n *ngFor=\"let obj of chipSelectedObj\"\r\n [removable]=\"true\"\r\n (removed)=\"removechip(obj)\"\r\n >\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [formControl]=\"searchControl\"\r\n [matAutocomplete]=\"scrolll\"\r\n [matChipInputFor]=\"chipListvendor\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorsKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n #autoCompleteInput=\"matAutocompleteTrigger\"\r\n [formControlName]=\"this.dynamciformcontrolparent()\"\r\n />\r\n </mat-chip-grid>\r\n <mat-autocomplete\r\n #scrolll=\"matAutocomplete\"\r\n (opened)=\"autocompleteAppScroll()\"\r\n >\r\n <ng-container>\r\n <mat-option\r\n *ngFor=\"let dropvalues of Dropdowndata\"\r\n [value]=\"\r\n this.InputFields?.formkey\r\n ? dropvalues[this.InputFields?.formkey]\r\n : dropvalues\r\n \"\r\n (optionSelected)=\"venSelected($event)\"\r\n >\r\n {{ dropvalues[InputFields?.displaykey] }}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n" }]
|
|
449
|
-
}], ctorParameters: () => [{ type: i1.VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
|
|
450
|
-
type: Input
|
|
451
|
-
}], ResetForm: [{
|
|
452
|
-
type: Input
|
|
453
|
-
}], Backendapi: [{
|
|
454
|
-
type: Input
|
|
455
|
-
}], trigger: [{
|
|
456
|
-
type: ViewChild,
|
|
457
|
-
args: ['autoCompleteInput', {
|
|
458
|
-
static: false,
|
|
459
|
-
read: MatAutocompleteTrigger,
|
|
460
|
-
}]
|
|
461
|
-
}], autocompleteTrigger: [{
|
|
462
|
-
type: ViewChild,
|
|
463
|
-
args: [MatAutocompleteTrigger]
|
|
464
|
-
}], matAutocompleteApp: [{
|
|
465
|
-
type: ViewChild,
|
|
466
|
-
args: ['scrolll']
|
|
467
|
-
}], dataEvent: [{
|
|
468
|
-
type: Output
|
|
469
|
-
}], DropInput: [{
|
|
470
|
-
type: ViewChild,
|
|
471
|
-
args: ['DropInput']
|
|
472
|
-
}], formGroup: [{
|
|
473
|
-
type: Input
|
|
474
|
-
}] } });
|
|
475
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFvQixTQUFTLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFlLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFIekIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFPdkIsZUFBVSxHQUFZLElBQUksQ0FBQztRQU1wQyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUU5Qyx3QkFBbUIsR0FBa0MsSUFBSSxDQUFDO1FBR2hELGNBQVMsR0FB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QUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFNO1FBQ2YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDVixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FoZVUsb0JBQW9CO21HQUFwQixvQkFBb0IseVNBWXZCLHNCQUFzQixtRUFHbkIsc0JBQXNCLDhQQy9DbkMseS9EQXVEQTs7NEZEdkJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7b0hBVXBCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1OLE9BQU87c0JBSk4sU0FBUzt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDOUIsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLHNCQUFzQjtxQkFDN0I7Z0JBR0QsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFHakMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLFNBQVM7Z0JBRVYsU0FBUztzQkFBbEIsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQVViLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXHJcbiAgTWF0QXV0b2NvbXBsZXRlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgdGFwLFxyXG4gIGZpbHRlcixcclxuICBzd2l0Y2hNYXAsXHJcbiAgZmluYWxpemUsXHJcbiAgdGFrZVVudGlsLFxyXG4gIG1hcCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIGZyb21FdmVudCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICApIHt9XHJcbiAgQElucHV0KCkgSW5wdXRGaWVsZHM6IGFueTtcclxuICBASW5wdXQoKSBSZXNldEZvcm06IGFueTtcclxuICBASW5wdXQoKSBCYWNrZW5kYXBpOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXQnLCB7XHJcbiAgICBzdGF0aWM6IGZhbHNlLFxyXG4gICAgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxuICB9KVxyXG4gIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfCBudWxsID0gbnVsbDtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXHJcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKVxyXG4gIG1hdEF1dG9jb21wbGV0ZUFwcCE6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06IGFueSA9IEZvcm1Hcm91cDtcclxuICBjaGlwU2VsZWN0ZWRJZDogYW55ID0gW107XHJcbiAgY2hpcFNlbGVjdGVkT2JqOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBpZiAodGhpcy5mb3JtR3JvdXApIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZvcm1Hcm91cDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAvLyAgICAgdmFsdWU6ICcnLFxyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH1cclxuICAgIC8vIHRoaXMuZHVwbmdvbml0KCk7XHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldChcInZhbHVlXCIpLnBhdGNoVmFsdWUodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKVxyXG4gICAgLy8gICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgLy8gICBpZiAodGhpcy5jaGlwU2VsZWN0ZWRPYmoubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKVxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGFcclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmICghKGZvdW5kZW1wIGluc3RhbmNlb2YgTnVtYmVyKSkge1xyXG4gICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSksXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZFxyXG4gICAgICAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ2NoaXB2YWx1ZScpLmRpc2FibGUoKVxyXG4gICAgICAgICAgOiAnJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaGlwdmFsdWU6IFtdLFxyXG4gICAgICAgIGRpc2FibGVkOiB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0nLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICAvLyB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAvLyAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWVcclxuICAgIC8vICAgICA6IFtdO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCd0aGlzLmNoaXBTZWxlY3RlZE9iaicsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAvLyAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgLy8gICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgIC8vICAgICA6IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgICAvLyApO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSBBcnJheS5pc0FycmF5KHRoaXMuSW5wdXRGaWVsZHMuZGVmYXVsdHZhbHVlKVxyXG4gICAgPyB0aGlzLklucHV0RmllbGRzLmRlZmF1bHR2YWx1ZVxyXG4gICAgOiBbdGhpcy5JbnB1dEZpZWxkcy5kZWZhdWx0dmFsdWVdOyAgLy8g8J+UpSB3cmFwIGludG8gYXJyYXlcclxuXHJcbiAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gIHRoaXMuZm9ybWtleWFyciA9IFtdO1xyXG5cclxuICBpZiAodGhpcy5jaGlwU2VsZWN0ZWRPYmoubGVuZ3RoID4gMCkge1xyXG4gICAgdGhpcy5sb29vcCgpO1xyXG4gICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXHJcbiAgICAgICAgdGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSxcclxuICAgICAgKS52YWx1ZTtcclxuICAgICAgY29uc29sZS5sb2coXHJcbiAgICAgICAgJ3Rlc3QnLFxyXG4gICAgICAgICh0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuRHJvcGRvd25Gb3JtLmdldChcclxuICAgICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCksXHJcbiAgICAgICAgKS52YWx1ZSksXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICAgICAgdGhpcy5mb3Jta2V5YXJyID0gW107XHJcbiAgICAgIHRoaXMubG9vb3AoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YTtcclxuICAgIH1cclxuICAgIHRoaXMuZHJvcGRvd25zZWFyY2goKTtcclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1snSW5wdXRGaWVsZHMnXSAmJiBjaGFuZ2VzWydJbnB1dEZpZWxkcyddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnU3VtbWFyeSBMb2cgQ2hhbmdlcycpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgdGhpcy5kdXBuZ29uaXQoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydSZXNldEZvcm0nXSAmJiBjaGFuZ2VzWydSZXNldEZvcm0nXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ2hpdHRlZCcpO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgdGhpcy5kdXBuZ29uaXQoKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSBbXTtcclxuICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdChbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBkaXNwbGF5ZGV2ZWxvcGNsaWVudChjbHQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBrZXlbY2x0XTtcclxuICAvLyB9XHJcbiAgYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcCAmJlxyXG4gICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyICYmXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZnJvbUV2ZW50KHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKHgpID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxDbG9zaW5nQWN0aW9ucyBhcyBPYnNlcnZhYmxlPGFueT4sXHJcbiAgICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMuY3VycmVudHBhZ2UgKyAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5HZXRBcGkoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1sncGFnaW5hdGlvbiddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuRHJvcGRvd25kYXRhLmNvbmNhdChkYXRhcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLkRyb3Bkb3duZGF0YScsIHRoaXMuRHJvcGRvd25kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRHJvcGRvd25kYXRhLmxlbmd0aCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSBkYXRhcGFnaW5hdGlvbi5pbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlzT3B0aW9uU2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAvLyBkcm9wZG93bnNlYXJjaCgpIHtcclxuICAvLyAgIGNvbnN0IGNvbnRyb2xOYW1lID0gdGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKTtcclxuICAvLyAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoY29udHJvbE5hbWUpO1xyXG4gIC8vICAgaWYgKGNvbnRyb2wpIHtcclxuICAvLyAgICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gIC8vICAgICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8udXJsKSB7XHJcbiAgLy8gICAgICAgICByZXR1cm47XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKVxyXG4gIC8vICAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gIC8vICAgICAgICAgICBkZWJvdW5jZVRpbWUoMzAwKSxcclxuICAvLyAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAvLyAgICAgICAgICAgLy8gdGFwKCgpID0+IHtcclxuICAvLyAgICAgICAgICAgLy8gICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gdHJ1ZTtcclxuICAvLyAgICAgICAgICAgLy8gICBjb25zb2xlLmxvZygnaW5zaWRlIHRhcCcpO1xyXG4gIC8vICAgICAgICAgICAvLyB9KSxcclxuICAvLyAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gIC8vICAgICAgICAgICAgIC8vIGlmKHRoaXMuaXNPcHRpb25TZWxlY3RlZCl7XHJcbiAgLy8gICAgICAgICAgICAgLy8gICB0aGlzLmlzT3B0aW9uU2VsZWN0ZWQ9ZmFsc2VcclxuICAvLyAgICAgICAgICAgICAvLyAgIHJldHVybiBbXVxyXG4gIC8vICAgICAgICAgICAgIC8vIH1cclxuICAvLyAgICAgICAgICAgICBpZiAodGhpcy5pc09wdGlvblNlbGVjdGVkKSB7XHJcbiAgLy8gICAgICAgICAgICAgICB0aGlzLmlzT3B0aW9uU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAvLyAgICAgICAgICAgICAgIHJldHVybiBvZih7IGRhdGE6IFtdIH0pOyAvLyA8LS0gZW5zdXJlcyBlbWl0LCB0cmlnZ2VycyBVSSByZWZyZXNoXHJcbiAgLy8gICAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgLy8gICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgLy8gICAgICAgICAgICAgY29uc29sZS5sb2coXHJcbiAgLy8gICAgICAgICAgICAgICAnaGl0ZWVlZWRkZGRkZGRkZGRkZGRkPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+JyxcclxuICAvLyAgICAgICAgICAgICApO1xyXG5cclxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgLy8gICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gIC8vICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAvLyAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gIC8vICAgICAgICAgICAgICAgKVxyXG4gIC8vICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgLy8gICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAvLyAgICAgICAgICAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgLy8gICAgICAgICAgICAgICAgIH0pLFxyXG4gIC8vICAgICAgICAgICAgICAgKTtcclxuICAvLyAgICAgICAgICAgfSksXHJcbiAgLy8gICAgICAgICApXHJcbiAgLy8gICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAvLyAgICAgICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCgnJyk7XHJcblxyXG4gIC8vICAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgLy8gICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgLy8gICAgICAgICB9KTtcclxuICAvLyAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICAvLyAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAvLyAgICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXHJcbiAgLy8gICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gIC8vICAgICAgICkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xyXG4gIC8vICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhLmZpbHRlcigoaXRlbTogYW55KSA9PlxyXG4gIC8vICAgICAgICAgICBpdGVtW3RoaXMuSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldXHJcbiAgLy8gICAgICAgICAgICAgPy50b0xvd2VyQ2FzZSgpXHJcbiAgLy8gICAgICAgICAgICAgLmluY2x1ZGVzKHZhbHVlPy50b0xvd2VyQ2FzZSgpKSxcclxuICAvLyAgICAgICAgICk7XHJcbiAgLy8gICAgICAgfSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH1cclxuICAvLyAgIC8vIGlmIChjb250cm9sICYmICF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gIC8vICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSlcclxuICAvLyAgIC8vICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgLy8gICAvLyAgICAgICBkZWJvdW5jZVRpbWUoMjAwKSxcclxuICAvLyAgIC8vICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgLy8gICAvLyAgICAgICB0YXAoKCkgPT4ge1xyXG4gIC8vICAgLy8gICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gdHJ1ZTtcclxuICAvLyAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ2luc2lkZSB0YXAnKTtcclxuICAvLyAgIC8vICAgICAgIH0pLFxyXG4gIC8vICAgLy8gICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gIC8vICAgLy8gICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpO1xyXG4gIC8vICAgLy8gICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAvLyAgIC8vICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxyXG4gIC8vICAgLy8gICAgICAgICAgIC5HZXRBcGkoXHJcbiAgLy8gICAvLyAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAvLyAgIC8vICAgICAgICAgICAgIHBhcmFtc1xyXG4gIC8vICAgLy8gICAgICAgICAgIClcclxuICAvLyAgIC8vICAgICAgICAgICAucGlwZShcclxuICAvLyAgIC8vICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAvLyAgIC8vICAgICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IGZhbHNlO1xyXG4gIC8vICAgLy8gICAgICAgICAgICAgfSlcclxuICAvLyAgIC8vICAgICAgICAgICApO1xyXG4gIC8vICAgLy8gICAgICAgfSlcclxuICAvLyAgIC8vICAgICApXHJcbiAgLy8gICAvLyAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcclxuICAvLyAgIC8vICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAvLyAgIC8vICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgLy8gICAvLyAgICAgfSk7XHJcbiAgLy8gICAvLyB9XHJcbiAgLy8gfVxyXG5cclxuICBkcm9wZG93bnNlYXJjaCgpIHtcclxuICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzXHJcbiAgICAucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIHRhcCgoKSA9PiAodGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWUpKSxcclxuICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICghdmFsdWUpIHZhbHVlID0gJyc7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZVxyXG4gICAgICAgICAgLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZSkpKTtcclxuICAgICAgfSlcclxuICAgIClcclxuICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHJlc3VsdHMuZGF0YTtcclxuICAgICAgaWYgKHRoaXMudHJpZ2dlcikgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpOyAvLyBmb3JjZSByZWZyZXNoXHJcbiAgICB9KTtcclxufVxyXG4gIGdldGRyb3Bkb3duKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMudXJsKSB7XHJcbiAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgIC5HZXRBcGkodGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbJ3BhZ2luYXRpb24nXTtcclxuICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudHJpZ2dlcikge1xyXG4gICAgICAgICAgICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBPdXRwdXRkYXRhOiBhbnkgPSBbXTtcclxuICBkeW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lICYmIHRoaXMuZm9ybUdyb3VwXHJcbiAgICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lXHJcbiAgICAgIDogJ2NoaXB2YWx1ZSc7XHJcbiAgfVxyXG4gIHNlbGVjdGVkKCkge1xyXG4gICAgdGhpcy5PdXRwdXRkYXRhID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmo7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgIHRoaXMuT3V0cHV0ZGF0YSA9IHRoaXMuY2hpcFNlbGVjdGVkSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZm9ybWtleWFycixcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybWtleWFycik7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0uZ2V0JywgdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLk91dHB1dGRhdGEpO1xyXG5cclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUudmFsdWVcclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy53aG9sZWRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgIC5wYXRjaFZhbHVlKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgLy8gICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXBcclxuICAgIC8vICAgICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAgIC5wYXRjaFZhbHVlKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBlbHNlIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBzZWFyY2hwYXJhbXModmFsdWU6IGFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqOiBhbnkpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouaW5kZXhPZihvYmopO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5mb3Jta2V5YXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0aGlzLmZvcm1rZXlhcnInLCB0aGlzLmZvcm1rZXlhcnIpO1xyXG5cclxuICAgICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZvcm1rZXlhcnI6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyB2ZW5TZWxlY3RlZChkYXRhczogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YSA9ICFkYXRhcyAmJiBkYXRhcyA9PT0gJycgPyBkYXRhcyA6IGRhdGFzLm9wdGlvbi52YWx1ZTtcclxuICAgIHRoaXMuaXNPcHRpb25TZWxlY3RlZCA9IHRydWU7XHJcbiAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICBjb25zb2xlLmxvZygnZXZlbnQub3B0aW9uLnZhbHVlJywgZGF0YSk7XHJcbiAgICB0aGlzLnNlbGVjdHZlbkJ5TmFtZShkYXRhW3RoaXMuY29tcGFyZWtleShkYXRhKV0pO1xyXG4gICAgY29uc29sZS5sb2coJ2NoaXBTZWxlY3RlZHZlbmlkJywgdGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gIH1cclxuICBwcml2YXRlIHNlbGVjdHZlbkJ5TmFtZSh2ZW46IGFueSkge1xyXG4gICAgbGV0IGZvdW5kZW1wMSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmZpbHRlcihcclxuICAgICAgKGU6IGFueSkgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlbixcclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAxLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZm91bmRlbXAgPSB0aGlzLkRyb3Bkb3duZGF0YS5maWx0ZXIoXHJcbiAgICAgIChlOiBhbnkpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4sXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5wdXNoKGZvdW5kZW1wWzBdKTtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF0uaWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5KSB7XHJcbiAgICAgICAgdGhpcy5mb3Jta2V5YXJyLnB1c2goZm91bmRlbXBbMF1bdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleV0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgY29tcGFyZWtleShlOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKGU/LmlkKSB7XHJcbiAgICAgICAgcmV0dXJuICdpZCc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuSW5wdXRGaWVsZHMuZGlzcGxheWtleTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJcclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkRyb3Bkb3duRm9ybVwiIGlkPVwibWF0Q2hpcC1zaXplXCI+XHJcbiAgICA8IS0tIGNsYXNzPVwibWF0LWNoaXBTY3JvbGxcIiAtLT5cclxuICAgIDxtYXQtZm9ybS1maWVsZFxyXG4gICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXHJcbiAgICAgIChjbGljayk9XCIhdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEgPyB0aGlzLmdldGRyb3Bkb3duKCcnKSA6ICcnXCJcclxuICAgID5cclxuICAgICAgPG1hdC1sYWJlbD57eyBJbnB1dEZpZWxkcz8ubGFiZWwgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPCEtLSBjbGFzcz1cImNoaXAtY29udGFpbmVyXCIgLS0+XHJcbiAgICAgIDxtYXQtY2hpcC1ncmlkIG11bHRpcGxlICNjaGlwTGlzdHZlbmRvcj5cclxuICAgICAgICA8IS0tIGNsYXNzPVwibWF0LWNoaXBFeFwiIC0tPlxyXG4gICAgICAgIDxtYXQtY2hpcC1yb3dcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2YgY2hpcFNlbGVjdGVkT2JqXCJcclxuICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVjaGlwKG9iailcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG9ialtJbnB1dEZpZWxkcz8uZGlzcGxheWtleV0gfX1cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICAgICAgPCEtLSBjbGFzcz1cIm1hdGZvcm1maWVsZGlucHV0c3R5bGVcIiAtLT5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICNEcm9wSW5wdXRcclxuICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hDb250cm9sXCJcclxuICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwic2Nyb2xsbFwiXHJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0dmVuZG9yXCJcclxuICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJzZXBhcmF0b3JzS2V5c0NvZGVzXCJcclxuICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAjYXV0b0NvbXBsZXRlSW5wdXQ9XCJtYXRBdXRvY29tcGxldGVUcmlnZ2VyXCJcclxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwidGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICAgICNzY3JvbGxsPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAob3BlbmVkKT1cImF1dG9jb21wbGV0ZUFwcFNjcm9sbCgpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZHJvcHZhbHVlcyBvZiBEcm9wZG93bmRhdGFcIlxyXG4gICAgICAgICAgICBbdmFsdWVdPVwiXHJcbiAgICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleVxyXG4gICAgICAgICAgICAgICAgPyBkcm9wdmFsdWVzW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgICAgICAgICAgICA6IGRyb3B2YWx1ZXNcclxuICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwidmVuU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRyb3B2YWx1ZXNbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG48IS0tICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZCgpXCJcclxuIC0tPlxyXG48IS0tICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInZlblNlbGVjdGVkKCRldmVudClcIlxyXG4gLS0+XHJcbiJdfQ==
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class VsChipdropdownComponent {
|
|
4
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipdropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: VsChipdropdownComponent, selector: "lib-vs-chipdropdown", ngImport: i0, template: `
|
|
6
|
-
<p>
|
|
7
|
-
vs-chipdropdown works!
|
|
8
|
-
</p>
|
|
9
|
-
`, isInline: true, styles: [""] }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipdropdownComponent, decorators: [{
|
|
12
|
-
type: Component,
|
|
13
|
-
args: [{ selector: 'lib-vs-chipdropdown', template: `
|
|
14
|
-
<p>
|
|
15
|
-
vs-chipdropdown works!
|
|
16
|
-
</p>
|
|
17
|
-
` }]
|
|
18
|
-
}] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZzLWNoaXBkcm9wZG93bi9zcmMvbGliL3ZzLWNoaXBkcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXMUMsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkRBUHhCOzs7O0dBSVQ7OzRGQUdVLHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIHZzLWNoaXBkcm9wZG93biB3b3JrcyFcclxuICAgIDwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogYGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRyb3Bkb3duQ29tcG9uZW50IHtcclxuXHJcbn1cclxuIl19
|