@unnilouis.org/vs-chipdropdown 17.1.5 → 17.1.6
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.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
2
|
import { MatAutocompleteTrigger, } from '@angular/material/autocomplete';
|
|
3
|
-
import { debounceTime, distinctUntilChanged,
|
|
3
|
+
import { debounceTime, distinctUntilChanged, switchMap, finalize, takeUntil, map, } from 'rxjs/operators';
|
|
4
4
|
import { fromEvent } from 'rxjs';
|
|
5
5
|
import { FormControl, FormGroup } from '@angular/forms';
|
|
6
6
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
@@ -31,7 +31,6 @@ export class VsChipddCmpComponent {
|
|
|
31
31
|
this.DropdownForm = FormGroup;
|
|
32
32
|
this.chipSelectedId = [];
|
|
33
33
|
this.chipSelectedObj = [];
|
|
34
|
-
this.searchControl = new FormControl('');
|
|
35
34
|
this.isOptionSelected = false;
|
|
36
35
|
this.Outputdata = [];
|
|
37
36
|
this.formkeyarr = [];
|
|
@@ -89,15 +88,12 @@ export class VsChipddCmpComponent {
|
|
|
89
88
|
this.DropdownForm.addControl(this.dynamciformcontrolparent(), new FormControl({ value: [], disabled: this.InputFields?.disabled }));
|
|
90
89
|
}
|
|
91
90
|
else {
|
|
92
|
-
this.InputFields?.disabled
|
|
93
|
-
? this.DropdownForm.get('chipvalue').disable()
|
|
94
|
-
: '';
|
|
91
|
+
this.InputFields?.disabled ? this.DropdownForm.get('chipvalue').disable() : '';
|
|
95
92
|
}
|
|
96
93
|
}
|
|
97
94
|
else {
|
|
98
95
|
this.DropdownForm = this.fb.group({
|
|
99
|
-
chipvalue: [],
|
|
100
|
-
disabled: this.InputFields?.disabled,
|
|
96
|
+
chipvalue: [], disabled: this.InputFields?.disabled
|
|
101
97
|
});
|
|
102
98
|
}
|
|
103
99
|
console.log('this.DropdownForm', this.DropdownForm.value);
|
|
@@ -127,7 +123,7 @@ export class VsChipddCmpComponent {
|
|
|
127
123
|
if (this.DropdownForm.get(this.dynamciformcontrolparent()).value &&
|
|
128
124
|
this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0) {
|
|
129
125
|
this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value;
|
|
130
|
-
console.log('test',
|
|
126
|
+
console.log('test', this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value);
|
|
131
127
|
this.chipSelectedId = [];
|
|
132
128
|
this.formkeyarr = [];
|
|
133
129
|
this.looop();
|
|
@@ -201,112 +197,78 @@ export class VsChipddCmpComponent {
|
|
|
201
197
|
});
|
|
202
198
|
}
|
|
203
199
|
}
|
|
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
200
|
dropdownsearch() {
|
|
295
|
-
this.
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
201
|
+
const controlName = this.dynamciformcontrolparent();
|
|
202
|
+
const control = this.DropdownForm.get(controlName);
|
|
203
|
+
if (control) {
|
|
204
|
+
if (!this.InputFields?.fronentdata) {
|
|
205
|
+
if (!this.InputFields?.url) {
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
209
|
+
.valueChanges.pipe(debounceTime(300), distinctUntilChanged(),
|
|
210
|
+
// tap(() => {
|
|
211
|
+
// this.DrodownLoading = true;
|
|
212
|
+
// console.log('inside tap');
|
|
213
|
+
// }),
|
|
214
|
+
switchMap((value) => {
|
|
215
|
+
if (this.isOptionSelected) {
|
|
216
|
+
this.isOptionSelected = false;
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
219
|
+
let params = this.searchparams(value);
|
|
220
|
+
this.currentpage = 1;
|
|
221
|
+
console.log("hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
222
|
+
return this.service
|
|
223
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
224
|
+
.pipe(finalize(() => {
|
|
225
|
+
this.DrodownLoading = false;
|
|
226
|
+
}));
|
|
227
|
+
}))
|
|
228
|
+
.subscribe((results) => {
|
|
229
|
+
this.dataEvent.emit('');
|
|
230
|
+
let datas = results['data'];
|
|
231
|
+
this.Dropdowndata = datas;
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
// this.Dropdowndata = this.InputFields?.data
|
|
236
|
+
this.DropdownForm.get(this.dynamciformcontrolparent()).valueChanges.subscribe((value) => {
|
|
237
|
+
this.Dropdowndata = this.InputFields?.data.filter((item) => item[this.InputFields?.displaykey]
|
|
238
|
+
?.toLowerCase()
|
|
239
|
+
.includes(value?.toLowerCase()));
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// if (control && !this.InputFields?.fronentdata) {
|
|
244
|
+
// this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
245
|
+
// .valueChanges.pipe(
|
|
246
|
+
// debounceTime(200),
|
|
247
|
+
// distinctUntilChanged(),
|
|
248
|
+
// tap(() => {
|
|
249
|
+
// this.DrodownLoading = true;
|
|
250
|
+
// console.log('inside tap');
|
|
251
|
+
// }),
|
|
252
|
+
// switchMap((value) => {
|
|
253
|
+
// let params = this.searchparams(value);
|
|
254
|
+
// this.currentpage = 1;
|
|
255
|
+
// return this.service
|
|
256
|
+
// .GetApi(
|
|
257
|
+
// this.InputFields.url + '?page=' + this.currentpage,
|
|
258
|
+
// params
|
|
259
|
+
// )
|
|
260
|
+
// .pipe(
|
|
261
|
+
// finalize(() => {
|
|
262
|
+
// this.DrodownLoading = false;
|
|
263
|
+
// })
|
|
264
|
+
// );
|
|
265
|
+
// })
|
|
266
|
+
// )
|
|
267
|
+
// .subscribe((results: any[]) => {
|
|
268
|
+
// let datas = results['data'];
|
|
269
|
+
// this.Dropdowndata = datas;
|
|
270
|
+
// });
|
|
271
|
+
// }
|
|
310
272
|
}
|
|
311
273
|
getdropdown(value) {
|
|
312
274
|
this.currentpage = 1;
|
|
@@ -441,11 +403,11 @@ export class VsChipddCmpComponent {
|
|
|
441
403
|
}
|
|
442
404
|
}
|
|
443
405
|
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 [
|
|
406
|
+
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 [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 (onSelectionChange)=\"venSelected(dropvalues)\"\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.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
407
|
}
|
|
446
408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
|
|
447
409
|
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 [
|
|
410
|
+
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 [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 (onSelectionChange)=\"venSelected(dropvalues)\"\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
411
|
}], ctorParameters: () => [{ type: i1.VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
|
|
450
412
|
type: Input
|
|
451
413
|
}], ResetForm: [{
|
|
@@ -472,4 +434,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
472
434
|
}], formGroup: [{
|
|
473
435
|
type: Input
|
|
474
436
|
}] } });
|
|
475
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFvQixTQUFTLEVBQU0sTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFlLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7OztBQU1yRCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFIekIsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFPdkIsZUFBVSxHQUFZLElBQUksQ0FBQztRQU1wQyxZQUFPLEdBQWtDLElBQUksQ0FBQztRQUU5Qyx3QkFBbUIsR0FBa0MsSUFBSSxDQUFDO1FBR2hELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4RCx3QkFBbUIsR0FBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4RCxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVcsQ0FBQyxDQUFDO1FBQ3hCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGlCQUFZLEdBQVEsU0FBUyxDQUFDO1FBQzlCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFnTXBDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQTRJbEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQTJFckIsZUFBVSxHQUFRLEVBQUUsQ0FBQztJQWpibEIsQ0FBQztJQTJCSixRQUFRO1FBQ04sd0JBQXdCO1FBQ3hCLHdDQUF3QztRQUN4QyxXQUFXO1FBQ1gsd0NBQXdDO1FBQ3hDLGlCQUFpQjtRQUNqQixRQUFRO1FBQ1IsSUFBSTtRQUNKLG9CQUFvQjtRQUNwQix3Q0FBd0M7UUFDeEMsOEVBQThFO1FBQzlFLDBEQUEwRDtRQUMxRCwyQ0FBMkM7UUFDM0MsbURBQW1EO1FBQ25ELDJDQUEyQztRQUMzQywwRUFBMEU7UUFDMUUsVUFBVTtRQUNWLGVBQWU7UUFDZixnREFBZ0Q7UUFDaEQsVUFBVTtRQUNWLFFBQVE7UUFDUixzQkFBc0I7UUFDdEIsTUFBTTtRQUNOLElBQUk7UUFDSix1Q0FBdUM7UUFDdkMsK0NBQStDO1FBQy9DLElBQUk7UUFDSixTQUFTO1FBQ1QseUJBQXlCO1FBQ3pCLElBQUk7SUFDTixDQUFDO0lBQ0QsS0FBSztRQUNILEtBQUssSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM1RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQ0QsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDO2dCQUNuRSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FDMUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQy9CLElBQUksV0FBVyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsUUFBUTtvQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE9BQU8sRUFBRTtvQkFDOUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNULENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLFFBQVE7YUFDckMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCx5QkFBeUI7UUFDekIsb0VBQW9FO1FBQ3BFLDhFQUE4RTtRQUM5RSxxRUFBcUU7UUFDckUsWUFBWTtRQUNaLGlFQUFpRTtRQUVqRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDbkMscUVBQXFFO1lBQ3JFLDhCQUE4QjtZQUM5QixrRUFBa0U7WUFDbEUsdUNBQXVDO1lBQ3ZDLEtBQUs7WUFDTCxxR0FBcUc7WUFDdkcsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO2dCQUNuRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZO2dCQUMvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUscUJBQXFCO1lBRTNELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBRXJCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQztRQUNDLENBQUM7UUFFRCxJQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsS0FBSztZQUM1RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUN6RSxDQUFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FDMUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQ2hDLENBQUMsS0FBSyxDQUFDO1lBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxNQUFNLEVBQ04sQ0FBQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUMzQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FDaEMsQ0FBQyxLQUFLLENBQUMsQ0FDVCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLFNBQVM7UUFDVCx5QkFBeUI7UUFDekIsSUFBSTtJQUNOLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xFLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFDRCx1REFBdUQ7SUFDdkQscUJBQXFCO0lBQ3JCLElBQUk7SUFDSixxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUNFLElBQUksQ0FBQyxrQkFBa0I7b0JBQ3ZCLElBQUksQ0FBQyxtQkFBbUI7b0JBQ3hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQzdCLENBQUM7b0JBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzt5QkFDN0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEVBQ2pFLFNBQVMsQ0FDUCxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQXNDLENBQ2hFLENBQ0Y7eUJBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQ2YsTUFBTSxTQUFTLEdBQ2IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO3dCQUN4RCxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO3dCQUMzRCxNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO3dCQUMzRCxNQUFNLFFBQVEsR0FBRyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFNBQVMsR0FBRyxhQUFhLENBQUM7d0JBQy9ELElBQUksUUFBUSxFQUFFLENBQUM7NEJBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO2dDQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUM7Z0NBQy9DLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7Z0NBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0NBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQ0FDekIsSUFBSSxDQUFDLE9BQU87eUNBQ1QsTUFBTSxDQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUNsRCxNQUFNLENBQ1A7eUNBQ0EsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0NBQ3JCLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQzt3Q0FDNUIsSUFBSSxjQUFjLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO3dDQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dDQUNwRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzt3Q0FDcEQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQzs0Q0FDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDOzRDQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUM7NENBQ2hELElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQzt3Q0FDMUMsQ0FBQztvQ0FDSCxDQUFDLENBQUMsQ0FBQztnQ0FDUCxDQUFDOzRCQUNILENBQUM7d0JBQ0gsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELHFCQUFxQjtJQUNyQix5REFBeUQ7SUFDekQsd0RBQXdEO0lBQ3hELG1CQUFtQjtJQUNuQiw0Q0FBNEM7SUFDNUMsc0NBQXNDO0lBQ3RDLGtCQUFrQjtJQUNsQixVQUFVO0lBQ1YsK0RBQStEO0lBQy9ELDhCQUE4QjtJQUM5QiwrQkFBK0I7SUFDL0Isb0NBQW9DO0lBQ3BDLDJCQUEyQjtJQUMzQiw2Q0FBNkM7SUFDN0MsNENBQTRDO0lBQzVDLG1CQUFtQjtJQUNuQixtQ0FBbUM7SUFDbkMsNENBQTRDO0lBQzVDLCtDQUErQztJQUMvQyw2QkFBNkI7SUFDN0IsbUJBQW1CO0lBQ25CLDJDQUEyQztJQUMzQywrQ0FBK0M7SUFDL0Msa0ZBQWtGO0lBQ2xGLGdCQUFnQjtJQUNoQixxREFBcUQ7SUFDckQsb0NBQW9DO0lBQ3BDLDJCQUEyQjtJQUMzQixnRkFBZ0Y7SUFDaEYsaUJBQWlCO0lBRWpCLGtDQUFrQztJQUNsQyx5QkFBeUI7SUFDekIsc0VBQXNFO0lBQ3RFLDBCQUEwQjtJQUMxQixrQkFBa0I7SUFDbEIsdUJBQXVCO0lBQ3ZCLG1DQUFtQztJQUNuQyxpREFBaUQ7SUFDakQsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLHlDQUF5QztJQUN6QyxxQ0FBcUM7SUFFckMseUNBQXlDO0lBQ3pDLHVDQUF1QztJQUN2QyxjQUFjO0lBQ2QsZUFBZTtJQUNmLDhEQUE4RDtJQUU5RCwrQkFBK0I7SUFDL0IsMkNBQTJDO0lBQzNDLG1EQUFtRDtJQUNuRCwyRUFBMkU7SUFDM0UsK0NBQStDO0lBQy9DLDhCQUE4QjtJQUM5QiwrQ0FBK0M7SUFDL0MsYUFBYTtJQUNiLFlBQVk7SUFDWixRQUFRO0lBQ1IsTUFBTTtJQUNOLHdEQUF3RDtJQUN4RCxnRUFBZ0U7SUFDaEUsK0JBQStCO0lBQy9CLGdDQUFnQztJQUNoQyxxQ0FBcUM7SUFDckMseUJBQXlCO0lBQ3pCLDJDQUEyQztJQUMzQywwQ0FBMEM7SUFDMUMsaUJBQWlCO0lBQ2pCLG9DQUFvQztJQUNwQyxzREFBc0Q7SUFDdEQscUNBQXFDO0lBQ3JDLG1DQUFtQztJQUNuQywwQkFBMEI7SUFDMUIsdUVBQXVFO0lBQ3ZFLDBCQUEwQjtJQUMxQixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLG9DQUFvQztJQUNwQyxrREFBa0Q7SUFDbEQsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsYUFBYTtJQUNiLDRDQUE0QztJQUM1QywwQ0FBMEM7SUFDMUMsd0NBQXdDO0lBQ3hDLGVBQWU7SUFDZixTQUFTO0lBQ1QsSUFBSTtJQUVKLGNBQWM7UUFDZCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVk7YUFDNUIsSUFBSSxDQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUN2QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSztnQkFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBRXZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFFckIsT0FBTyxJQUFJLENBQUMsT0FBTztpQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQztpQkFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pELENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU87Z0JBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDQyxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsT0FBTztpQkFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO2lCQUNsRSxTQUFTLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QixJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUMzQixDQUFDO2dCQUNILENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDTixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUM7b0JBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQztvQkFDaEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUMxQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWU7WUFDbkMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNsQixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FDL0QsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXJDLDJDQUEyQztRQUMzQyxxQ0FBcUM7UUFDckMsK0NBQStDO1FBQy9DLDRFQUE0RTtRQUM1RSxrQ0FBa0M7UUFDbEMsZ0RBQWdEO1FBQ2hELDJDQUEyQztRQUMzQyxNQUFNO1FBQ04sSUFBSTtRQUNKLFNBQVM7UUFDVCx1Q0FBdUM7UUFDdkMsZ0RBQWdEO1FBQ2hELDhFQUE4RTtRQUM5RSxvQ0FBb0M7UUFDcEMsa0RBQWtEO1FBQ2xELDRDQUE0QztRQUM1QyxRQUFRO1FBQ1IsTUFBTTtRQUNOLFdBQVc7UUFDWCxpREFBaUQ7UUFDakQsOEVBQThFO1FBQzlFLG9DQUFvQztRQUNwQyxrREFBa0Q7UUFDbEQsNkNBQTZDO1FBQzdDLFFBQVE7UUFDUixNQUFNO1FBRU4sSUFBSTtJQUNOLENBQUM7SUFDRCxZQUFZLENBQUMsS0FBVTtRQUNyQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFFBQVE7WUFDTixDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUM7WUFDL0QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBUTtRQUNqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRWhELElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQVU7UUFDM0IsSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ08sZUFBZSxDQUFDLEdBQVE7UUFDOUIsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQ3pDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FDekMsQ0FBQztRQUNGLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ3JDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FDekMsQ0FBQztRQUNGLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUNyRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDL0QsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFNO1FBQ2YsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUM7UUFDdEMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDVixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzsrR0FoZVUsb0JBQW9CO21HQUFwQixvQkFBb0IseVNBWXZCLHNCQUFzQixtRUFHbkIsc0JBQXNCLDhQQy9DbkMseS9EQXVEQTs7NEZEdkJhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7b0hBVXBCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQU1OLE9BQU87c0JBSk4sU0FBUzt1QkFBQyxtQkFBbUIsRUFBRTt3QkFDOUIsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsSUFBSSxFQUFFLHNCQUFzQjtxQkFDN0I7Z0JBR0QsbUJBQW1CO3NCQURsQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFHakMsa0JBQWtCO3NCQURqQixTQUFTO3VCQUFDLFNBQVM7Z0JBRVYsU0FBUztzQkFBbEIsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQVViLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsXHJcbiAgTWF0QXV0b2NvbXBsZXRlLFxyXG4gIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgdGFwLFxyXG4gIGZpbHRlcixcclxuICBzd2l0Y2hNYXAsXHJcbiAgZmluYWxpemUsXHJcbiAgdGFrZVVudGlsLFxyXG4gIG1hcCxcclxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIGZyb21FdmVudCwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICApIHt9XHJcbiAgQElucHV0KCkgSW5wdXRGaWVsZHM6IGFueTtcclxuICBASW5wdXQoKSBSZXNldEZvcm06IGFueTtcclxuICBASW5wdXQoKSBCYWNrZW5kYXBpOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYXV0b0NvbXBsZXRlSW5wdXQnLCB7XHJcbiAgICBzdGF0aWM6IGZhbHNlLFxyXG4gICAgcmVhZDogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxuICB9KVxyXG4gIHRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfCBudWxsID0gbnVsbDtcclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXHJcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKVxyXG4gIG1hdEF1dG9jb21wbGV0ZUFwcCE6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06IGFueSA9IEZvcm1Hcm91cDtcclxuICBjaGlwU2VsZWN0ZWRJZDogYW55ID0gW107XHJcbiAgY2hpcFNlbGVjdGVkT2JqOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBmb3JtR3JvdXAhOiBGb3JtR3JvdXA7XHJcbiAgc2VhcmNoQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBpZiAodGhpcy5mb3JtR3JvdXApIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZvcm1Hcm91cDtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAvLyAgICAgdmFsdWU6ICcnLFxyXG4gICAgLy8gICB9KTtcclxuICAgIC8vIH1cclxuICAgIC8vIHRoaXMuZHVwbmdvbml0KCk7XHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldChcInZhbHVlXCIpLnBhdGNoVmFsdWUodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKVxyXG4gICAgLy8gICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/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==
|
|
437
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxzQkFBc0IsR0FDdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUdwQixTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQWUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBTXJELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFDVSxPQUE4QixFQUM5QixFQUFlO1FBRGYsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUh6QixtQkFBYyxHQUFXLEtBQUssQ0FBQztRQU90QixlQUFVLEdBQVksSUFBSSxDQUFDO1FBTXRDLFlBQU8sR0FBa0MsSUFBSSxDQUFDO1FBRTlDLHdCQUFtQixHQUFrQyxJQUFJLENBQUM7UUFHOUMsY0FBUyxHQUFzQixJQUFJLFlB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LENBQUM7SUFDRCxVQUFVLENBQUMsQ0FBSztRQUNkLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQztZQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDO1FBQ3RDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBNWNVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHlTQVl2QixzQkFBc0IsbUVBR25CLHNCQUFzQiw4UEMvQ25DLG85REFzREE7OzRGRHRCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsbUJBQW1CO29IQVVwQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFNUixPQUFPO3NCQUpKLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUU7d0JBQzlCLE1BQU0sRUFBRSxLQUFLO3dCQUNiLElBQUksRUFBRSxzQkFBc0I7cUJBQzdCO2dCQUdILG1CQUFtQjtzQkFEaEIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBR2pDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyxTQUFTO2dCQUVWLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFVYixTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxyXG4gIE1hdEF1dG9jb21wbGV0ZSxcclxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIHRhcCxcclxuICBmaWx0ZXIsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIGZpbmFsaXplLFxyXG4gIHRha2VVbnRpbCxcclxuICBtYXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9ZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0Jywge1xyXG4gICAgc3RhdGljOiBmYWxzZSxcclxuICAgIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbiAgfSlcclxudHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcilcclxuYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlciB8IG51bGwgPSBudWxsO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKVxyXG4gIG1hdEF1dG9jb21wbGV0ZUFwcCE6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06YW55PSBGb3JtR3JvdXA7XHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW107XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgLy8gICAgIHZhbHVlOiAnJyxcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmR1cG5nb25pdCgpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmKCEoZm91bmRlbXAgaW5zdGFuY2VvZiBOdW1iZXIpKXtcclxuICAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgICB9IFxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgICBcclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ2NoaXB2YWx1ZScpLmRpc2FibGUoKSA6ICcnICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaGlwdmFsdWU6IFtdLGRpc2FibGVkOiB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0nLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICAvLyB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAvLyAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWVcclxuICAgIC8vICAgICA6IFtdO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCd0aGlzLmNoaXBTZWxlY3RlZE9iaicsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAvLyAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgLy8gICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgIC8vICAgICA6IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgICAvLyApO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gQXJyYXkuaXNBcnJheSh0aGlzLklucHV0RmllbGRzLmRlZmF1bHR2YWx1ZSlcclxuICAgID8gdGhpcy5JbnB1dEZpZWxkcy5kZWZhdWx0dmFsdWVcclxuICAgIDogW3RoaXMuSW5wdXRGaWVsZHMuZGVmYXVsdHZhbHVlXTsgIC8vIPCflKUgd3JhcCBpbnRvIGFycmF5XHJcblxyXG4gIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuXHJcbiAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgIHRoaXMubG9vb3AoKTtcclxuICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUgJiZcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZTtcclxuICAgICAgY29uc29sZS5sb2coJ3Rlc3QnLHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5sb29vcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wZG93bnNlYXJjaCgpO1xyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydJbnB1dEZpZWxkcyddICYmIGNoYW5nZXNbJ0lucHV0RmllbGRzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdW1tYXJ5IExvZyBDaGFuZ2VzJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ1Jlc2V0Rm9ybSddICYmIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGl0dGVkJyk7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkID0gW107XHJcbiAgICAgIHRoaXMuZm9ybWtleWFyciA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdO1xyXG4gICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KFtdKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gcHVibGljIGRpc3BsYXlkZXZlbG9wY2xpZW50KGNsdDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gIC8vICAgcmV0dXJuIGtleVtjbHRdO1xyXG4gIC8vIH1cclxuICBhdXRvY29tcGxldGVBcHBTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgoeCkgPT4gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3ApLFxyXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbENsb3NpbmdBY3Rpb25zIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMuY3VycmVudHBhZ2UgKyAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5HZXRBcGkoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25kYXRhJywgdGhpcy5Ecm9wZG93bmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgaXNPcHRpb25TZWxlY3RlZDpib29sZWFuPWZhbHNlXHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBjb25zdCBjb250cm9sTmFtZSA9IHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCk7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KGNvbnRyb2xOYW1lKTtcclxuICAgIGlmIChjb250cm9sIFxyXG4gICAgXHJcbiAgICAgXHJcbiAgICApIHtcclxuICAgICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8udXJsKSB7XHJcbiAgICAgICAgICByZXR1cm4gO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSlcclxuICAgICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXHJcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgICAgIC8vIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIC8vICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIC8vICAgY29uc29sZS5sb2coJ2luc2lkZSB0YXAnKTtcclxuICAgICAgICAgICAgLy8gfSksXHJcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBpZih0aGlzLmlzT3B0aW9uU2VsZWN0ZWQpe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc09wdGlvblNlbGVjdGVkPWZhbHNlXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gW11cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImhpdGVlZWVkZGRkZGRkZGRkZGRkZD4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PlwiKVxyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAgICAgICAgICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KCcnKTtcclxuXHJcbiAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhXHJcblxyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgKHZhbHVlOmFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGEuZmlsdGVyKChpdGVtOmFueSkgPT5cclxuICAgICAgICAgICAgICBpdGVtW3RoaXMuSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldXHJcbiAgICAgICAgICAgICAgICA/LnRvTG93ZXJDYXNlKClcclxuICAgICAgICAgICAgICAgIC5pbmNsdWRlcyh2YWx1ZT8udG9Mb3dlckNhc2UoKSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyBpZiAoY29udHJvbCAmJiAhdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpXHJcbiAgICAvLyAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgLy8gICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAvLyAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgLy8gICAgICAgdGFwKCgpID0+IHtcclxuICAgIC8vICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgdGFwJyk7XHJcbiAgICAvLyAgICAgICB9KSxcclxuICAgIC8vICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgIC8vICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgIC8vICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAvLyAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgLy8gICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAvLyAgICAgICAgICAgICBwYXJhbXNcclxuICAgIC8vICAgICAgICAgICApXHJcbiAgICAvLyAgICAgICAgICAgLnBpcGUoXHJcbiAgICAvLyAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAvLyAgICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICAgIH0pXHJcbiAgICAvLyAgICAgICAgICAgKTtcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgKVxyXG4gICAgLy8gICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAvLyAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAvLyAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgLy8gICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICBnZXRkcm9wZG93bih2YWx1ZTphbnkpIHtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgIGlmICggdGhpcy5JbnB1dEZpZWxkcy51cmwpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1sncGFnaW5hdGlvbiddO1xyXG4gICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50cmlnZ2VyKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIE91dHB1dGRhdGE6IGFueSA9IFtdO1xyXG4gIGR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUgJiYgdGhpcy5mb3JtR3JvdXBcclxuICAgICAgPyB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWVcclxuICAgICAgOiAnY2hpcHZhbHVlJztcclxuICB9XHJcbiAgc2VsZWN0ZWQoKSB7XHJcbiAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZE9iajtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgdGhpcy5PdXRwdXRkYXRhID0gdGhpcy5jaGlwU2VsZWN0ZWRJZDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnBhdGNoVmFsdWUoXHJcbiAgICAgICAgdGhpcy5mb3Jta2V5YXJyXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm1rZXlhcnIpO1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25Gb3JtLmdldCcsIHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlKTtcclxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5PdXRwdXRkYXRhKTtcclxuXHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vIH1cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlOmFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqOmFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmouc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2coJ3RoaXMuZm9ybWtleWFycicsIHRoaXMuZm9ybWtleWFycik7XHJcblxyXG4gICAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgZm9ybWtleWFycjphbnk9W11cclxuICBwdWJsaWMgdmVuU2VsZWN0ZWQoZGF0YXM6YW55KTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YT0hZGF0YXMgJiYgZGF0YXM9PT0nJyAgPyBkYXRhcyA6ZGF0YXMub3B0aW9uLnZhbHVlXHJcbiAgICB0aGlzLmlzT3B0aW9uU2VsZWN0ZWQ9dHJ1ZVxyXG4gICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Lm9wdGlvbi52YWx1ZScsIGRhdGEpO1xyXG4gICAgdGhpcy5zZWxlY3R2ZW5CeU5hbWUoXHJcbiAgICAgIGRhdGFbdGhpcy5jb21wYXJla2V5KGRhdGEpXVxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdjaGlwU2VsZWN0ZWR2ZW5pZCcsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZWxlY3R2ZW5CeU5hbWUodmVuOmFueSkge1xyXG4gICAgbGV0IGZvdW5kZW1wMSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmZpbHRlcihcclxuICAgICAgKGU6YW55KSA9PiBlW3RoaXMuY29tcGFyZWtleShlKV0gPT0gdmVuXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKFxyXG4gICAgICAoZTphbnkpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW5cclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnB1c2goZm91bmRlbXBbMF0pO1xyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXS5pZCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXkpIHtcclxuICAgICAgICB0aGlzLmZvcm1rZXlhcnIucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XSk7XHJcbiAgICAgIH0gXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wYXJla2V5KGU6YW55KSB7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiAnaWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiXHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJEcm9wZG93bkZvcm1cIiBpZD1cIm1hdENoaXAtc2l6ZVwiPlxyXG4gICAgPCEtLSBjbGFzcz1cIm1hdC1jaGlwU2Nyb2xsXCIgLS0+XHJcbiAgICA8bWF0LWZvcm0tZmllbGRcclxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxyXG4gICAgICAoY2xpY2spPVwiIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhID8gdGhpcy5nZXRkcm9wZG93bignJykgOiAnJ1wiXHJcbiAgICA+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgSW5wdXRGaWVsZHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDwhLS0gY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiIC0tPlxyXG4gICAgICA8bWF0LWNoaXAtZ3JpZCBtdWx0aXBsZSAjY2hpcExpc3R2ZW5kb3I+XHJcbiAgICAgICAgPCEtLSBjbGFzcz1cIm1hdC1jaGlwRXhcIiAtLT5cclxuICAgICAgICA8bWF0LWNoaXAtcm93XHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb2JqIG9mIGNoaXBTZWxlY3RlZE9ialwiXHJcbiAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxyXG4gICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlY2hpcChvYmopXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvYmpbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgIDwhLS0gY2xhc3M9XCJtYXRmb3JtZmllbGRpbnB1dHN0eWxlXCIgLS0+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAjRHJvcElucHV0XHJcbiAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInNjcm9sbGxcIlxyXG4gICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdHZlbmRvclwiXHJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yc0tleXNDb2Rlc1wiXHJcbiAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIlxyXG4gICAgICAgICAgI2F1dG9Db21wbGV0ZUlucHV0PVwibWF0QXV0b2NvbXBsZXRlVHJpZ2dlclwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cInRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgICAjc2Nyb2xsbD1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgKG9wZW5lZCk9XCJhdXRvY29tcGxldGVBcHBTY3JvbGwoKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGRyb3B2YWx1ZXMgb2YgRHJvcGRvd25kYXRhXCJcclxuICAgICAgICAgICAgW3ZhbHVlXT1cIlxyXG4gICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgICAgICAgICAgID8gZHJvcHZhbHVlc1t0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XVxyXG4gICAgICAgICAgICAgICAgOiBkcm9wdmFsdWVzXHJcbiAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZSk9XCJ2ZW5TZWxlY3RlZChkcm9wdmFsdWVzKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGRyb3B2YWx1ZXNbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9mb3JtPlxyXG48IS0tICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZCgpXCJcclxuIC0tPlxyXG48IS0tICAgICAgICAgKG9wdGlvblNlbGVjdGVkKT1cInZlblNlbGVjdGVkKCRldmVudClcIlxyXG4gLS0+XHJcbiJdfQ==
|
|
@@ -4,7 +4,7 @@ import * as i1 from '@angular/common/http';
|
|
|
4
4
|
import { HttpClientModule, HttpClient } from '@angular/common/http';
|
|
5
5
|
import * as i5 from '@angular/material/autocomplete';
|
|
6
6
|
import { MatAutocompleteTrigger, MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
7
|
-
import { map, takeUntil, debounceTime, distinctUntilChanged,
|
|
7
|
+
import { map, takeUntil, debounceTime, distinctUntilChanged, switchMap, finalize } from 'rxjs/operators';
|
|
8
8
|
import { fromEvent } from 'rxjs';
|
|
9
9
|
import * as i2 from '@angular/forms';
|
|
10
10
|
import { FormGroup, FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
@@ -101,7 +101,6 @@ class VsChipddCmpComponent {
|
|
|
101
101
|
this.DropdownForm = FormGroup;
|
|
102
102
|
this.chipSelectedId = [];
|
|
103
103
|
this.chipSelectedObj = [];
|
|
104
|
-
this.searchControl = new FormControl('');
|
|
105
104
|
this.isOptionSelected = false;
|
|
106
105
|
this.Outputdata = [];
|
|
107
106
|
this.formkeyarr = [];
|
|
@@ -159,15 +158,12 @@ class VsChipddCmpComponent {
|
|
|
159
158
|
this.DropdownForm.addControl(this.dynamciformcontrolparent(), new FormControl({ value: [], disabled: this.InputFields?.disabled }));
|
|
160
159
|
}
|
|
161
160
|
else {
|
|
162
|
-
this.InputFields?.disabled
|
|
163
|
-
? this.DropdownForm.get('chipvalue').disable()
|
|
164
|
-
: '';
|
|
161
|
+
this.InputFields?.disabled ? this.DropdownForm.get('chipvalue').disable() : '';
|
|
165
162
|
}
|
|
166
163
|
}
|
|
167
164
|
else {
|
|
168
165
|
this.DropdownForm = this.fb.group({
|
|
169
|
-
chipvalue: [],
|
|
170
|
-
disabled: this.InputFields?.disabled,
|
|
166
|
+
chipvalue: [], disabled: this.InputFields?.disabled
|
|
171
167
|
});
|
|
172
168
|
}
|
|
173
169
|
console.log('this.DropdownForm', this.DropdownForm.value);
|
|
@@ -197,7 +193,7 @@ class VsChipddCmpComponent {
|
|
|
197
193
|
if (this.DropdownForm.get(this.dynamciformcontrolparent()).value &&
|
|
198
194
|
this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0) {
|
|
199
195
|
this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value;
|
|
200
|
-
console.log('test',
|
|
196
|
+
console.log('test', this.chipSelectedObj = this.DropdownForm.get(this.dynamciformcontrolparent()).value);
|
|
201
197
|
this.chipSelectedId = [];
|
|
202
198
|
this.formkeyarr = [];
|
|
203
199
|
this.looop();
|
|
@@ -271,112 +267,78 @@ class VsChipddCmpComponent {
|
|
|
271
267
|
});
|
|
272
268
|
}
|
|
273
269
|
}
|
|
274
|
-
// dropdownsearch() {
|
|
275
|
-
// const controlName = this.dynamciformcontrolparent();
|
|
276
|
-
// const control = this.DropdownForm.get(controlName);
|
|
277
|
-
// if (control) {
|
|
278
|
-
// if (!this.InputFields?.fronentdata) {
|
|
279
|
-
// if (!this.InputFields?.url) {
|
|
280
|
-
// return;
|
|
281
|
-
// }
|
|
282
|
-
// this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
283
|
-
// .valueChanges.pipe(
|
|
284
|
-
// debounceTime(300),
|
|
285
|
-
// distinctUntilChanged(),
|
|
286
|
-
// // tap(() => {
|
|
287
|
-
// // this.DrodownLoading = true;
|
|
288
|
-
// // console.log('inside tap');
|
|
289
|
-
// // }),
|
|
290
|
-
// switchMap((value) => {
|
|
291
|
-
// // if(this.isOptionSelected){
|
|
292
|
-
// // this.isOptionSelected=false
|
|
293
|
-
// // return []
|
|
294
|
-
// // }
|
|
295
|
-
// if (this.isOptionSelected) {
|
|
296
|
-
// this.isOptionSelected = false;
|
|
297
|
-
// return of({ data: [] }); // <-- ensures emit, triggers UI refresh
|
|
298
|
-
// }
|
|
299
|
-
// let params = this.searchparams(value);
|
|
300
|
-
// this.currentpage = 1;
|
|
301
|
-
// console.log(
|
|
302
|
-
// 'hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>',
|
|
303
|
-
// );
|
|
304
|
-
// return this.service
|
|
305
|
-
// .GetApi(
|
|
306
|
-
// this.InputFields.url + '?page=' + this.currentpage,
|
|
307
|
-
// params,
|
|
308
|
-
// )
|
|
309
|
-
// .pipe(
|
|
310
|
-
// finalize(() => {
|
|
311
|
-
// this.DrodownLoading = false;
|
|
312
|
-
// }),
|
|
313
|
-
// );
|
|
314
|
-
// }),
|
|
315
|
-
// )
|
|
316
|
-
// .subscribe((results: any) => {
|
|
317
|
-
// this.dataEvent.emit('');
|
|
318
|
-
// let datas = results['data'];
|
|
319
|
-
// this.Dropdowndata = datas;
|
|
320
|
-
// });
|
|
321
|
-
// } else {
|
|
322
|
-
// // this.Dropdowndata = this.InputFields?.data
|
|
323
|
-
// this.DropdownForm.get(
|
|
324
|
-
// this.dynamciformcontrolparent(),
|
|
325
|
-
// ).valueChanges.subscribe((value: any) => {
|
|
326
|
-
// this.Dropdowndata = this.InputFields?.data.filter((item: any) =>
|
|
327
|
-
// item[this.InputFields?.displaykey]
|
|
328
|
-
// ?.toLowerCase()
|
|
329
|
-
// .includes(value?.toLowerCase()),
|
|
330
|
-
// );
|
|
331
|
-
// });
|
|
332
|
-
// }
|
|
333
|
-
// }
|
|
334
|
-
// // if (control && !this.InputFields?.fronentdata) {
|
|
335
|
-
// // this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
336
|
-
// // .valueChanges.pipe(
|
|
337
|
-
// // debounceTime(200),
|
|
338
|
-
// // distinctUntilChanged(),
|
|
339
|
-
// // tap(() => {
|
|
340
|
-
// // this.DrodownLoading = true;
|
|
341
|
-
// // console.log('inside tap');
|
|
342
|
-
// // }),
|
|
343
|
-
// // switchMap((value) => {
|
|
344
|
-
// // let params = this.searchparams(value);
|
|
345
|
-
// // this.currentpage = 1;
|
|
346
|
-
// // return this.service
|
|
347
|
-
// // .GetApi(
|
|
348
|
-
// // this.InputFields.url + '?page=' + this.currentpage,
|
|
349
|
-
// // params
|
|
350
|
-
// // )
|
|
351
|
-
// // .pipe(
|
|
352
|
-
// // finalize(() => {
|
|
353
|
-
// // this.DrodownLoading = false;
|
|
354
|
-
// // })
|
|
355
|
-
// // );
|
|
356
|
-
// // })
|
|
357
|
-
// // )
|
|
358
|
-
// // .subscribe((results: any[]) => {
|
|
359
|
-
// // let datas = results['data'];
|
|
360
|
-
// // this.Dropdowndata = datas;
|
|
361
|
-
// // });
|
|
362
|
-
// // }
|
|
363
|
-
// }
|
|
364
270
|
dropdownsearch() {
|
|
365
|
-
this.
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
271
|
+
const controlName = this.dynamciformcontrolparent();
|
|
272
|
+
const control = this.DropdownForm.get(controlName);
|
|
273
|
+
if (control) {
|
|
274
|
+
if (!this.InputFields?.fronentdata) {
|
|
275
|
+
if (!this.InputFields?.url) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
279
|
+
.valueChanges.pipe(debounceTime(300), distinctUntilChanged(),
|
|
280
|
+
// tap(() => {
|
|
281
|
+
// this.DrodownLoading = true;
|
|
282
|
+
// console.log('inside tap');
|
|
283
|
+
// }),
|
|
284
|
+
switchMap((value) => {
|
|
285
|
+
if (this.isOptionSelected) {
|
|
286
|
+
this.isOptionSelected = false;
|
|
287
|
+
return [];
|
|
288
|
+
}
|
|
289
|
+
let params = this.searchparams(value);
|
|
290
|
+
this.currentpage = 1;
|
|
291
|
+
console.log("hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
|
|
292
|
+
return this.service
|
|
293
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
294
|
+
.pipe(finalize(() => {
|
|
295
|
+
this.DrodownLoading = false;
|
|
296
|
+
}));
|
|
297
|
+
}))
|
|
298
|
+
.subscribe((results) => {
|
|
299
|
+
this.dataEvent.emit('');
|
|
300
|
+
let datas = results['data'];
|
|
301
|
+
this.Dropdowndata = datas;
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
// this.Dropdowndata = this.InputFields?.data
|
|
306
|
+
this.DropdownForm.get(this.dynamciformcontrolparent()).valueChanges.subscribe((value) => {
|
|
307
|
+
this.Dropdowndata = this.InputFields?.data.filter((item) => item[this.InputFields?.displaykey]
|
|
308
|
+
?.toLowerCase()
|
|
309
|
+
.includes(value?.toLowerCase()));
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// if (control && !this.InputFields?.fronentdata) {
|
|
314
|
+
// this.DropdownForm.get(this.dynamciformcontrolparent())
|
|
315
|
+
// .valueChanges.pipe(
|
|
316
|
+
// debounceTime(200),
|
|
317
|
+
// distinctUntilChanged(),
|
|
318
|
+
// tap(() => {
|
|
319
|
+
// this.DrodownLoading = true;
|
|
320
|
+
// console.log('inside tap');
|
|
321
|
+
// }),
|
|
322
|
+
// switchMap((value) => {
|
|
323
|
+
// let params = this.searchparams(value);
|
|
324
|
+
// this.currentpage = 1;
|
|
325
|
+
// return this.service
|
|
326
|
+
// .GetApi(
|
|
327
|
+
// this.InputFields.url + '?page=' + this.currentpage,
|
|
328
|
+
// params
|
|
329
|
+
// )
|
|
330
|
+
// .pipe(
|
|
331
|
+
// finalize(() => {
|
|
332
|
+
// this.DrodownLoading = false;
|
|
333
|
+
// })
|
|
334
|
+
// );
|
|
335
|
+
// })
|
|
336
|
+
// )
|
|
337
|
+
// .subscribe((results: any[]) => {
|
|
338
|
+
// let datas = results['data'];
|
|
339
|
+
// this.Dropdowndata = datas;
|
|
340
|
+
// });
|
|
341
|
+
// }
|
|
380
342
|
}
|
|
381
343
|
getdropdown(value) {
|
|
382
344
|
this.currentpage = 1;
|
|
@@ -511,11 +473,11 @@ class VsChipddCmpComponent {
|
|
|
511
473
|
}
|
|
512
474
|
}
|
|
513
475
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
514
|
-
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 [
|
|
476
|
+
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 [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 (onSelectionChange)=\"venSelected(dropvalues)\"\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.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" }] }); }
|
|
515
477
|
}
|
|
516
478
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
|
|
517
479
|
type: Component,
|
|
518
|
-
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 [
|
|
480
|
+
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 [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 (onSelectionChange)=\"venSelected(dropvalues)\"\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" }]
|
|
519
481
|
}], ctorParameters: () => [{ type: VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
|
|
520
482
|
type: Input
|
|
521
483
|
}], ResetForm: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n MatAutocompleteSelectedEvent,\r\n MatAutocomplete,\r\n MatAutocompleteTrigger,\r\n} from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from 'rxjs/operators';\r\nimport { from, Observable, fromEvent, of } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss'],\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean = false;\r\n constructor(\r\n private service: VsChipdropdownService,\r\n private fb: FormBuilder,\r\n ) {}\r\n @Input() InputFields: any;\r\n @Input() ResetForm: any;\r\n @Input() Backendapi: boolean = true;\r\n\r\n @ViewChild('autoCompleteInput', {\r\n static: false,\r\n read: MatAutocompleteTrigger,\r\n })\r\n trigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild(MatAutocompleteTrigger)\r\n autocompleteTrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild('scrolll')\r\n matAutocompleteApp!: MatAutocomplete;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm: any = FormGroup;\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = [];\r\n @Input() formGroup!: FormGroup;\r\n searchControl = new FormControl('');\r\n ngOnInit() {\r\n // if (this.formGroup) {\r\n // this.DropdownForm = this.formGroup;\r\n // } else {\r\n // this.DropdownForm = this.fb.group({\r\n // value: '',\r\n // });\r\n // }\r\n // this.dupngonit();\r\n // if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(\"value\").patchValue(this.InputFields?.defaultvalue)\r\n // this.chipSelectedObj = this.InputFields?.defaultvalue\r\n // if (this.chipSelectedObj.length > 0) {\r\n // for (let foundemp of this.chipSelectedObj) {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey])\r\n // }\r\n // else {\r\n // this.chipSelectedId.push(foundemp.id)\r\n // }\r\n // }\r\n // this.selected()\r\n // }\r\n // }\r\n // if (this.InputFields?.fronentdata) {\r\n // this.Dropdowndata = this.InputFields?.data\r\n // }\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n looop() {\r\n for (let foundemp of this.chipSelectedObj) {\r\n if (!(foundemp instanceof Number)) {\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp.id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n }\r\n }\r\n }\r\n }\r\n dupngonit() {\r\n if (this.formGroup) {\r\n this.DropdownForm = this.formGroup;\r\n if (!this.DropdownForm.contains(this.InputFields?.formcontrolname)) {\r\n this.DropdownForm.addControl(\r\n this.dynamciformcontrolparent(),\r\n new FormControl({ value: [], disabled: this.InputFields?.disabled }),\r\n );\r\n } else {\r\n this.InputFields?.disabled\r\n ? this.DropdownForm.get('chipvalue').disable()\r\n : '';\r\n }\r\n } else {\r\n this.DropdownForm = this.fb.group({\r\n chipvalue: [],\r\n disabled: this.InputFields?.disabled,\r\n });\r\n }\r\n console.log('this.DropdownForm', this.DropdownForm.value);\r\n // this.chipSelectedObj =\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value\r\n // : [];\r\n // console.log('this.chipSelectedObj', this.chipSelectedObj);\r\n\r\n if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n // this.InputFields?.formkey\r\n // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]\r\n // : this.InputFields?.defaultvalue\r\n // );\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);\r\n this.chipSelectedObj = Array.isArray(this.InputFields.defaultvalue)\r\n ? this.InputFields.defaultvalue\r\n : [this.InputFields.defaultvalue]; // 🔥 wrap into array\r\n\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n\r\n if (this.chipSelectedObj.length > 0) {\r\n this.looop();\r\n this.selected();\r\n }\r\n }\r\n\r\n if (\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n ) {\r\n this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent(),\r\n ).value;\r\n console.log(\r\n 'test',\r\n (this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent(),\r\n ).value),\r\n );\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.looop();\r\n this.selected();\r\n }\r\n if (this.InputFields?.fronentdata) {\r\n this.Dropdowndata = this.InputFields?.data;\r\n }\r\n this.dropdownsearch();\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['InputFields'] && changes['InputFields'].currentValue) {\r\n console.log('Summary Log Changes');\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n }\r\n if (changes['ResetForm'] && changes['ResetForm'].currentValue) {\r\n console.log('hitted');\r\n // this.DropdownForm.reset();\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.chipSelectedObj = [];\r\n this.dataEvent.emit([]);\r\n }\r\n }\r\n // public displaydevelopclient(clt: any, key: string) {\r\n // return key[clt];\r\n // }\r\n autocompleteAppScroll() {\r\n if (!this.InputFields?.fronentdata) {\r\n setTimeout(() => {\r\n if (\r\n this.matAutocompleteApp &&\r\n this.autocompleteTrigger &&\r\n this.matAutocompleteApp.panel\r\n ) {\r\n fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')\r\n .pipe(\r\n map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop),\r\n takeUntil(\r\n this.autocompleteTrigger.panelClosingActions as Observable<any>,\r\n ),\r\n )\r\n .subscribe((x) => {\r\n const scrollTop =\r\n this.matAutocompleteApp.panel.nativeElement.scrollTop;\r\n const scrollHeight =\r\n this.matAutocompleteApp.panel.nativeElement.scrollHeight;\r\n const elementHeight =\r\n this.matAutocompleteApp.panel.nativeElement.clientHeight;\r\n const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;\r\n if (atBottom) {\r\n if (this.has_next === true) {\r\n let value = this.DropInput.nativeElement.value;\r\n let params = this.searchparams(value);\r\n this.currentpage = this.currentpage + 1;\r\n if (this.currentpage > 1) {\r\n this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params,\r\n )\r\n .subscribe((results) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = this.Dropdowndata.concat(datas);\r\n console.log('this.Dropdowndata', this.Dropdowndata);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n isOptionSelected: boolean = false;\r\n // dropdownsearch() {\r\n // const controlName = this.dynamciformcontrolparent();\r\n // const control = this.DropdownForm.get(controlName);\r\n // if (control) {\r\n // if (!this.InputFields?.fronentdata) {\r\n // if (!this.InputFields?.url) {\r\n // return;\r\n // }\r\n // this.DropdownForm.get(this.dynamciformcontrolparent())\r\n // .valueChanges.pipe(\r\n // debounceTime(300),\r\n // distinctUntilChanged(),\r\n // // tap(() => {\r\n // // this.DrodownLoading = true;\r\n // // console.log('inside tap');\r\n // // }),\r\n // switchMap((value) => {\r\n // // if(this.isOptionSelected){\r\n // // this.isOptionSelected=false\r\n // // return []\r\n // // }\r\n // if (this.isOptionSelected) {\r\n // this.isOptionSelected = false;\r\n // return of({ data: [] }); // <-- ensures emit, triggers UI refresh\r\n // }\r\n // let params = this.searchparams(value);\r\n // this.currentpage = 1;\r\n // console.log(\r\n // 'hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>',\r\n // );\r\n\r\n // return this.service\r\n // .GetApi(\r\n // this.InputFields.url + '?page=' + this.currentpage,\r\n // params,\r\n // )\r\n // .pipe(\r\n // finalize(() => {\r\n // this.DrodownLoading = false;\r\n // }),\r\n // );\r\n // }),\r\n // )\r\n // .subscribe((results: any) => {\r\n // this.dataEvent.emit('');\r\n\r\n // let datas = results['data'];\r\n // this.Dropdowndata = datas;\r\n // });\r\n // } else {\r\n // // this.Dropdowndata = this.InputFields?.data\r\n\r\n // this.DropdownForm.get(\r\n // this.dynamciformcontrolparent(),\r\n // ).valueChanges.subscribe((value: any) => {\r\n // this.Dropdowndata = this.InputFields?.data.filter((item: any) =>\r\n // item[this.InputFields?.displaykey]\r\n // ?.toLowerCase()\r\n // .includes(value?.toLowerCase()),\r\n // );\r\n // });\r\n // }\r\n // }\r\n // // if (control && !this.InputFields?.fronentdata) {\r\n // // this.DropdownForm.get(this.dynamciformcontrolparent())\r\n // // .valueChanges.pipe(\r\n // // debounceTime(200),\r\n // // distinctUntilChanged(),\r\n // // tap(() => {\r\n // // this.DrodownLoading = true;\r\n // // console.log('inside tap');\r\n // // }),\r\n // // switchMap((value) => {\r\n // // let params = this.searchparams(value);\r\n // // this.currentpage = 1;\r\n // // return this.service\r\n // // .GetApi(\r\n // // this.InputFields.url + '?page=' + this.currentpage,\r\n // // params\r\n // // )\r\n // // .pipe(\r\n // // finalize(() => {\r\n // // this.DrodownLoading = false;\r\n // // })\r\n // // );\r\n // // })\r\n // // )\r\n // // .subscribe((results: any[]) => {\r\n // // let datas = results['data'];\r\n // // this.Dropdowndata = datas;\r\n // // });\r\n // // }\r\n // }\r\n\r\n dropdownsearch() {\r\n this.searchControl.valueChanges\r\n .pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n tap(() => (this.DrodownLoading = true)),\r\n switchMap((value) => {\r\n if (!value) value = '';\r\n\r\n const params = this.searchparams(value);\r\n this.currentpage = 1;\r\n\r\n return this.service\r\n .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)\r\n .pipe(finalize(() => (this.DrodownLoading = false)));\r\n })\r\n )\r\n .subscribe((results: any) => {\r\n this.Dropdowndata = results.data;\r\n if (this.trigger) this.trigger.openPanel(); // force refresh\r\n });\r\n}\r\n getdropdown(value: any) {\r\n this.currentpage = 1;\r\n if (this.InputFields.url) {\r\n let params = this.searchparams(value);\r\n this.service\r\n .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)\r\n .subscribe((results: any) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = datas;\r\n setTimeout(() => {\r\n if (this.trigger) {\r\n this.trigger.openPanel();\r\n }\r\n }, 0);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n Outputdata: any = [];\r\n dynamciformcontrolparent() {\r\n return this.InputFields?.formcontrolname && this.formGroup\r\n ? this.InputFields?.formcontrolname\r\n : 'chipvalue';\r\n }\r\n selected() {\r\n this.Outputdata = this.chipSelectedObj;\r\n if (this.InputFields?.Outputkey) {\r\n this.Outputdata = this.chipSelectedId;\r\n }\r\n if (this.formGroup && this.InputFields?.formcontrolname) {\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n this.formkeyarr,\r\n );\r\n }\r\n console.log(this.formkeyarr);\r\n console.log('this.DropdownForm.get', this.DropdownForm.value);\r\n this.dataEvent.emit(this.Outputdata);\r\n\r\n // let data = this.DropdownForm.value.value\r\n // if (this.InputFields?.wholedata) {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n // else {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.dataEvent.emit(this.chipSelectedId);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedId);\r\n // }\r\n // }\r\n // else {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n searchparams(value: any) {\r\n let params = '';\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params;\r\n }\r\n let inpValue = value;\r\n inpValue\r\n ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)\r\n : '';\r\n return params;\r\n }\r\n removechip(obj: any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n this.chipSelectedObj.splice(index, 1);\r\n console.log(this.chipSelectedObj);\r\n this.chipSelectedId.splice(index, 1);\r\n console.log(this.chipSelectedId);\r\n this.formkeyarr.splice(index, 1);\r\n console.log('this.formkeyarr', this.formkeyarr);\r\n\r\n this.DropInput.nativeElement.value = '';\r\n this.selected();\r\n }\r\n }\r\n formkeyarr: any = [];\r\n public venSelected(datas: any): void {\r\n let data = !datas && datas === '' ? datas : datas.option.value;\r\n this.isOptionSelected = true;\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', data);\r\n this.selectvenByName(data[this.comparekey(data)]);\r\n console.log('chipSelectedvenid', this.chipSelectedObj);\r\n }\r\n private selectvenByName(ven: any) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e: any) => e[this.comparekey(e)] == ven,\r\n );\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter(\r\n (e: any) => e[this.comparekey(e)] == ven,\r\n );\r\n if (foundemp.length) {\r\n this.chipSelectedObj.push(foundemp[0]);\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);\r\n }\r\n this.selected();\r\n }\r\n }\r\n comparekey(e: any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey;\r\n } else {\r\n if (e?.id) {\r\n return 'id';\r\n } else {\r\n return this.InputFields.displaykey;\r\n }\r\n }\r\n }\r\n}\r\n","\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","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n MatAutocompleteSelectedEvent,\r\n MatAutocomplete,\r\n MatAutocompleteTrigger,\r\n} from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from 'rxjs/operators';\r\nimport { from, Observable, fromEvent } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss'],\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean =false;\r\n constructor(\r\n private service: VsChipdropdownService,\r\n private fb: FormBuilder\r\n ) {}\r\n @Input() InputFields: any;\r\n @Input() ResetForm: any;\r\n @Input() Backendapi: boolean = true;\r\n\r\n @ViewChild('autoCompleteInput', {\r\n static: false,\r\n read: MatAutocompleteTrigger,\r\n })\r\ntrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild(MatAutocompleteTrigger)\r\nautocompleteTrigger: MatAutocompleteTrigger | null = null;\r\n @ViewChild('scrolll')\r\n matAutocompleteApp!: MatAutocomplete;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm:any= FormGroup;\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = [];\r\n @Input() formGroup!: FormGroup;\r\n ngOnInit() {\r\n // if (this.formGroup) {\r\n // this.DropdownForm = this.formGroup;\r\n // } else {\r\n // this.DropdownForm = this.fb.group({\r\n // value: '',\r\n // });\r\n // }\r\n // this.dupngonit();\r\n\r\n // if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(\"value\").patchValue(this.InputFields?.defaultvalue)\r\n // this.chipSelectedObj = this.InputFields?.defaultvalue\r\n // if (this.chipSelectedObj.length > 0) {\r\n // for (let foundemp of this.chipSelectedObj) {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey])\r\n\r\n // }\r\n // else {\r\n // this.chipSelectedId.push(foundemp.id)\r\n\r\n // }\r\n // }\r\n // this.selected()\r\n // }\r\n\r\n // }\r\n // if (this.InputFields?.fronentdata) {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n // }\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n looop() {\r\n for (let foundemp of this.chipSelectedObj) {\r\n if(!(foundemp instanceof Number)){\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp.id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n } \r\n }\r\n }\r\n \r\n }\r\n dupngonit() {\r\n if (this.formGroup) {\r\n this.DropdownForm = this.formGroup;\r\n if (!this.DropdownForm.contains(this.InputFields?.formcontrolname)) {\r\n this.DropdownForm.addControl(\r\n this.dynamciformcontrolparent(),\r\n new FormControl({ value: [], disabled: this.InputFields?.disabled })\r\n );\r\n }\r\n else{\r\n this.InputFields?.disabled ? this.DropdownForm.get('chipvalue').disable() : '' }\r\n } else {\r\n this.DropdownForm = this.fb.group({\r\n chipvalue: [],disabled: this.InputFields?.disabled\r\n });\r\n\r\n }\r\n console.log('this.DropdownForm', this.DropdownForm.value);\r\n // this.chipSelectedObj =\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value\r\n // : [];\r\n // console.log('this.chipSelectedObj', this.chipSelectedObj);\r\n\r\n if (this.InputFields?.defaultvalue) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n // this.InputFields?.formkey\r\n // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]\r\n // : this.InputFields?.defaultvalue\r\n // );\r\n // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);\r\n this.chipSelectedObj = Array.isArray(this.InputFields.defaultvalue)\r\n ? this.InputFields.defaultvalue\r\n : [this.InputFields.defaultvalue]; // 🔥 wrap into array\r\n\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n\r\n if (this.chipSelectedObj.length > 0) {\r\n this.looop();\r\n this.selected();\r\n }\r\n }\r\n\r\n if (\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value &&\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).value.length !== 0\r\n ) {\r\n this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value;\r\n console.log('test',this.chipSelectedObj = this.DropdownForm.get(\r\n this.dynamciformcontrolparent()\r\n ).value)\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.looop();\r\n this.selected();\r\n }\r\n if (this.InputFields?.fronentdata) {\r\n this.Dropdowndata = this.InputFields?.data;\r\n }\r\n this.dropdownsearch();\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['InputFields'] && changes['InputFields'].currentValue) {\r\n console.log('Summary Log Changes');\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n }\r\n if (changes['ResetForm'] && changes['ResetForm'].currentValue) {\r\n console.log('hitted');\r\n // this.DropdownForm.reset();\r\n this.currentpage = 1;\r\n this.dupngonit();\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\r\n this.chipSelectedObj = [];\r\n this.dataEvent.emit([]);\r\n }\r\n }\r\n // public displaydevelopclient(clt: any, key: string) {\r\n // return key[clt];\r\n // }\r\n autocompleteAppScroll() {\r\n if (!this.InputFields?.fronentdata) {\r\n setTimeout(() => {\r\n if (\r\n this.matAutocompleteApp &&\r\n this.autocompleteTrigger &&\r\n this.matAutocompleteApp.panel\r\n ) {\r\n fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')\r\n .pipe(\r\n map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop),\r\n takeUntil(\r\n this.autocompleteTrigger.panelClosingActions as Observable<any>\r\n )\r\n )\r\n .subscribe((x) => {\r\n const scrollTop =\r\n this.matAutocompleteApp.panel.nativeElement.scrollTop;\r\n const scrollHeight =\r\n this.matAutocompleteApp.panel.nativeElement.scrollHeight;\r\n const elementHeight =\r\n this.matAutocompleteApp.panel.nativeElement.clientHeight;\r\n const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;\r\n if (atBottom) {\r\n if (this.has_next === true) {\r\n let value = this.DropInput.nativeElement.value;\r\n let params = this.searchparams(value);\r\n this.currentpage = this.currentpage + 1;\r\n if (this.currentpage > 1) {\r\n this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params\r\n )\r\n .subscribe((results) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = this.Dropdowndata.concat(datas);\r\n console.log('this.Dropdowndata', this.Dropdowndata);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n isOptionSelected:boolean=false\r\n dropdownsearch() {\r\n const controlName = this.dynamciformcontrolparent();\r\n const control = this.DropdownForm.get(controlName);\r\n if (control \r\n \r\n \r\n ) {\r\n if (!this.InputFields?.fronentdata) {\r\n if (!this.InputFields?.url) {\r\n return ;\r\n }\r\n this.DropdownForm.get(this.dynamciformcontrolparent())\r\n .valueChanges.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n switchMap((value) => {\r\n if(this.isOptionSelected){\r\n this.isOptionSelected=false\r\n return []\r\n }\r\n let params = this.searchparams(value);\r\n this.currentpage = 1;\r\n console.log(\"hiteeeedddddddddddddd>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\")\r\n\r\n return this.service\r\n .GetApi(\r\n this.InputFields.url + '?page=' + this.currentpage,\r\n params,\r\n \r\n )\r\n .pipe(\r\n finalize(() => {\r\n this.DrodownLoading = false;\r\n })\r\n );\r\n })\r\n )\r\n .subscribe((results: any) => {\r\n this.dataEvent.emit('');\r\n\r\n let datas = results['data'];\r\n this.Dropdowndata = datas;\r\n });\r\n } else {\r\n // this.Dropdowndata = this.InputFields?.data\r\n\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).valueChanges.subscribe(\r\n (value:any) => {\r\n this.Dropdowndata = this.InputFields?.data.filter((item:any) =>\r\n item[this.InputFields?.displaykey]\r\n ?.toLowerCase()\r\n .includes(value?.toLowerCase())\r\n );\r\n }\r\n );\r\n }\r\n }\r\n // if (control && !this.InputFields?.fronentdata) {\r\n // this.DropdownForm.get(this.dynamciformcontrolparent())\r\n // .valueChanges.pipe(\r\n // debounceTime(200),\r\n // distinctUntilChanged(),\r\n // tap(() => {\r\n // this.DrodownLoading = true;\r\n // console.log('inside tap');\r\n // }),\r\n // switchMap((value) => {\r\n // let params = this.searchparams(value);\r\n // this.currentpage = 1;\r\n // return this.service\r\n // .GetApi(\r\n // this.InputFields.url + '?page=' + this.currentpage,\r\n // params\r\n // )\r\n // .pipe(\r\n // finalize(() => {\r\n // this.DrodownLoading = false;\r\n // })\r\n // );\r\n // })\r\n // )\r\n // .subscribe((results: any[]) => {\r\n // let datas = results['data'];\r\n // this.Dropdowndata = datas;\r\n // });\r\n // }\r\n }\r\n getdropdown(value:any) {\r\n\r\n this.currentpage = 1;\r\n if ( this.InputFields.url) {\r\n let params = this.searchparams(value);\r\n this.service\r\n .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)\r\n .subscribe((results: any) => {\r\n let datas = results['data'];\r\n let datapagination = results['pagination'];\r\n this.Dropdowndata = datas;\r\n setTimeout(() => {\r\n if (this.trigger) {\r\n this.trigger.openPanel();\r\n }\r\n }, 0);\r\n if (this.Dropdowndata.length >= 0) {\r\n this.has_next = datapagination.has_next;\r\n this.has_previous = datapagination.has_previous;\r\n this.currentpage = datapagination.index;\r\n }\r\n });\r\n }\r\n }\r\n Outputdata: any = [];\r\n dynamciformcontrolparent() {\r\n return this.InputFields?.formcontrolname && this.formGroup\r\n ? this.InputFields?.formcontrolname\r\n : 'chipvalue';\r\n }\r\n selected() {\r\n this.Outputdata = this.chipSelectedObj;\r\n if (this.InputFields?.Outputkey) {\r\n this.Outputdata = this.chipSelectedId;\r\n }\r\n if (this.formGroup && this.InputFields?.formcontrolname) {\r\n this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(\r\n this.formkeyarr\r\n );\r\n }\r\n console.log(this.formkeyarr);\r\n console.log('this.DropdownForm.get', this.DropdownForm.value);\r\n this.dataEvent.emit(this.Outputdata);\r\n\r\n // let data = this.DropdownForm.value.value\r\n // if (this.InputFields?.wholedata) {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n // else {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.dataEvent.emit(this.chipSelectedId);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedId);\r\n // }\r\n // }\r\n // else {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n searchparams(value:any) {\r\n let params = '';\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params;\r\n }\r\n let inpValue = value;\r\n inpValue\r\n ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)\r\n : '';\r\n return params;\r\n }\r\n removechip(obj:any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n this.chipSelectedObj.splice(index, 1);\r\n console.log(this.chipSelectedObj);\r\n this.chipSelectedId.splice(index, 1);\r\n console.log(this.chipSelectedId);\r\n this.formkeyarr.splice(index, 1);\r\n console.log('this.formkeyarr', this.formkeyarr);\r\n\r\n this.DropInput.nativeElement.value = '';\r\n this.selected();\r\n }\r\n }\r\n formkeyarr:any=[]\r\n public venSelected(datas:any): void {\r\n let data=!datas && datas==='' ? datas :datas.option.value\r\n this.isOptionSelected=true\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', data);\r\n this.selectvenByName(\r\n data[this.comparekey(data)]\r\n );\r\n console.log('chipSelectedvenid', this.chipSelectedObj);\r\n }\r\n private selectvenByName(ven:any) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp.length) {\r\n this.chipSelectedObj.push(foundemp[0]);\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);\r\n }\r\n else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);\r\n } \r\n this.selected()\r\n }\r\n }\r\n comparekey(e:any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey;\r\n } else {\r\n if (e?.id) {\r\n return 'id';\r\n } else {\r\n return this.InputFields.displaykey;\r\n }\r\n }\r\n }\r\n}\r\n","\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 [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 (onSelectionChange)=\"venSelected(dropvalues)\"\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","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter, SimpleChanges } from '@angular/core';
|
|
2
2
|
import { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
|
3
3
|
import { VsChipdropdownService } from '../vs-chipdropdown.service';
|
|
4
|
-
import { FormBuilder,
|
|
4
|
+
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export declare class VsChipddCmpComponent {
|
|
7
7
|
private service;
|
|
@@ -25,7 +25,6 @@ export declare class VsChipddCmpComponent {
|
|
|
25
25
|
chipSelectedId: any;
|
|
26
26
|
chipSelectedObj: any;
|
|
27
27
|
formGroup: FormGroup;
|
|
28
|
-
searchControl: FormControl<string | null>;
|
|
29
28
|
ngOnInit(): void;
|
|
30
29
|
looop(): void;
|
|
31
30
|
dupngonit(): void;
|