@unnilouis.org/vs-chipdropdown 9.0.2 → 9.0.4

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,7 +1,7 @@
1
1
  import { __decorate, __values } from "tslib";
2
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
3
- import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
4
- import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from "rxjs/operators";
2
+ import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
3
+ import { MatAutocompleteTrigger, } from '@angular/material/autocomplete';
4
+ import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from 'rxjs/operators';
5
5
  import { fromEvent } from 'rxjs';
6
6
  import { VsChipdropdownService } from '../vs-chipdropdown.service';
7
7
  import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
@@ -19,10 +19,11 @@ var VsChipddCmpComponent = /** @class */ (function () {
19
19
  this.has_previous = false;
20
20
  this.chipSelectedId = [];
21
21
  this.chipSelectedObj = [];
22
+ this.Outputdata = [];
22
23
  }
23
24
  VsChipddCmpComponent.prototype.ngOnInit = function () {
24
25
  this.DropdownForm = this.fb.group({
25
- value: ''
26
+ value: '',
26
27
  });
27
28
  // if (this.InputFields?.defaultvalue) {
28
29
  // this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue)
@@ -50,10 +51,10 @@ var VsChipddCmpComponent = /** @class */ (function () {
50
51
  var e_1, _a;
51
52
  var _b, _c, _d, _e, _f, _g, _h;
52
53
  this.DropdownForm = this.fb.group({
53
- value: ''
54
+ value: '',
54
55
  });
55
56
  if ((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.defaultvalue) {
56
- this.DropdownForm.get("value").patchValue((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.defaultvalue);
57
+ this.DropdownForm.get('value').patchValue((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.defaultvalue);
57
58
  this.chipSelectedObj = (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.defaultvalue;
58
59
  if (this.chipSelectedObj.length > 0) {
59
60
  try {
@@ -80,18 +81,18 @@ var VsChipddCmpComponent = /** @class */ (function () {
80
81
  if ((_g = this.InputFields) === null || _g === void 0 ? void 0 : _g.fronentdata) {
81
82
  this.Dropdowndata = (_h = this.InputFields) === null || _h === void 0 ? void 0 : _h.data;
82
83
  }
83
- else {
84
- this.getdropdown('');
85
- }
84
+ // else {
85
+ // this.getdropdown('')
86
+ // }
86
87
  };
87
88
  VsChipddCmpComponent.prototype.ngOnChanges = function (changes) {
88
89
  if (changes.InputFields && changes.InputFields.currentValue) {
89
- console.log("Summary Log Changes");
90
+ console.log('Summary Log Changes');
90
91
  this.currentpage = 1;
91
92
  this.dupngonit();
92
93
  }
93
94
  if (changes.ResetForm && changes.ResetForm.currentValue) {
94
- console.log("hitted");
95
+ console.log('hitted');
95
96
  this.DropdownForm.reset();
96
97
  this.currentpage = 1;
97
98
  this.dupngonit();
@@ -124,12 +125,13 @@ var VsChipddCmpComponent = /** @class */ (function () {
124
125
  var params = _this.searchparams(value);
125
126
  _this.currentpage = _this.currentpage + 1;
126
127
  if (_this.currentpage > 1) {
127
- _this.service.GetApi(_this.InputFields.url + "?page=" + _this.currentpage, params)
128
+ _this.service
129
+ .GetApi(_this.InputFields.url + '?page=' + _this.currentpage, params)
128
130
  .subscribe(function (results) {
129
- var datas = results["data"];
130
- var datapagination = results["pagination"];
131
+ var datas = results['data'];
132
+ var datapagination = results['pagination'];
131
133
  _this.Dropdowndata = _this.Dropdowndata.concat(datas);
132
- console.log("this.Dropdowndata", _this.Dropdowndata);
134
+ console.log('this.Dropdowndata', _this.Dropdowndata);
133
135
  if (_this.Dropdowndata.length >= 0) {
134
136
  _this.has_next = datapagination.has_next;
135
137
  _this.has_previous = datapagination.has_previous;
@@ -148,17 +150,21 @@ var VsChipddCmpComponent = /** @class */ (function () {
148
150
  var _this = this;
149
151
  var _a;
150
152
  if (!((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
151
- this.DropdownForm.get("value").valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(function () {
153
+ this.DropdownForm.get('value')
154
+ .valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(function () {
152
155
  _this.DrodownLoading = true;
153
- console.log("inside tap");
156
+ console.log('inside tap');
154
157
  }), switchMap(function (value) {
155
158
  var params = _this.searchparams(value);
156
159
  _this.currentpage = 1;
157
- return _this.service.GetApi(_this.InputFields.url + "?page=" + _this.currentpage, params).pipe(finalize(function () {
160
+ return _this.service
161
+ .GetApi(_this.InputFields.url + '?page=' + _this.currentpage, params)
162
+ .pipe(finalize(function () {
158
163
  _this.DrodownLoading = false;
159
164
  }));
160
- })).subscribe(function (results) {
161
- var datas = results["data"];
165
+ }))
166
+ .subscribe(function (results) {
167
+ var datas = results['data'];
162
168
  _this.Dropdowndata = datas;
163
169
  });
164
170
  }
@@ -167,10 +173,11 @@ var VsChipddCmpComponent = /** @class */ (function () {
167
173
  var _this = this;
168
174
  if (this.InputFields.url) {
169
175
  var params = this.searchparams(value);
170
- this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
176
+ this.service
177
+ .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
171
178
  .subscribe(function (results) {
172
- var datas = results["data"];
173
- var datapagination = results["pagination"];
179
+ var datas = results['data'];
180
+ var datapagination = results['pagination'];
174
181
  _this.Dropdowndata = datas;
175
182
  if (_this.Dropdowndata.length >= 0) {
176
183
  _this.has_next = datapagination.has_next;
@@ -181,19 +188,42 @@ var VsChipddCmpComponent = /** @class */ (function () {
181
188
  }
182
189
  };
183
190
  VsChipddCmpComponent.prototype.selected = function () {
184
- var _a, _b;
185
- // let data = this.DropdownForm.value.value
186
- if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.wholedata) {
187
- this.dataEvent.emit(this.chipSelectedObj);
191
+ var _a, _b, _c, _d, _e;
192
+ this.Outputdata = this.chipSelectedObj;
193
+ if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.Outputkey) {
194
+ this.Outputdata = this.chipSelectedId;
188
195
  }
189
- else {
190
- if ((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.Outputkey) {
191
- this.dataEvent.emit(this.chipSelectedId);
192
- }
193
- else {
194
- this.dataEvent.emit(this.chipSelectedObj);
195
- }
196
+ if (((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.formgroup) && ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formcontrolname)) {
197
+ (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formgroup.get((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.formcontrolname).patchValue(this.Outputdata);
196
198
  }
199
+ this.dataEvent.emit(this.Outputdata);
200
+ // let data = this.DropdownForm.value.value
201
+ // if (this.InputFields?.wholedata) {
202
+ // this.dataEvent.emit(this.chipSelectedObj);
203
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
204
+ // this.InputFields?.formgroup
205
+ // .get(this.InputFields?.formcontrolname)
206
+ // .patchValue(this.chipSelectedObj);
207
+ // }
208
+ // }
209
+ // else {
210
+ // if (this.InputFields?.Outputkey) {
211
+ // this.dataEvent.emit(this.chipSelectedId);
212
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
213
+ // this.InputFields?.formgroup
214
+ // .get(this.InputFields?.formcontrolname)
215
+ // .patchValue(this.chipSelectedId);
216
+ // }
217
+ // }
218
+ // else {
219
+ // this.dataEvent.emit(this.chipSelectedObj);
220
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
221
+ // this.InputFields?.formgroup
222
+ // .get(this.InputFields?.formcontrolname)
223
+ // .patchValue(this.chipSelectedObj);
224
+ // }
225
+ // }
226
+ // }
197
227
  };
198
228
  VsChipddCmpComponent.prototype.searchparams = function (value) {
199
229
  var params = '';
@@ -201,7 +231,9 @@ var VsChipddCmpComponent = /** @class */ (function () {
201
231
  params = this.InputFields.params;
202
232
  }
203
233
  var inpValue = value;
204
- inpValue ? params += '&' + this.InputFields.searchkey + '=' + inpValue : '';
234
+ inpValue
235
+ ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)
236
+ : '';
205
237
  return params;
206
238
  };
207
239
  VsChipddCmpComponent.prototype.removechip = function (obj) {
@@ -246,7 +278,7 @@ var VsChipddCmpComponent = /** @class */ (function () {
246
278
  }
247
279
  else {
248
280
  if (e === null || e === void 0 ? void 0 : e.id) {
249
- return "id";
281
+ return 'id';
250
282
  }
251
283
  else {
252
284
  return this.InputFields.displaykey;
@@ -281,11 +313,11 @@ var VsChipddCmpComponent = /** @class */ (function () {
281
313
  VsChipddCmpComponent = __decorate([
282
314
  Component({
283
315
  selector: 'lib-vs-chipdd-cmp',
284
- template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-list multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\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</div>\r\n",
316
+ template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-list multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\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</div>\r\n",
285
317
  styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:0 0}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}"]
286
318
  })
287
319
  ], VsChipddCmpComponent);
288
320
  return VsChipddCmpComponent;
289
321
  }());
290
322
  export { VsChipddCmpComponent };
291
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5uaWxvdWlzLm9yZy92cy1jaGlwZHJvcGRvd24vIiwic291cmNlcyI6WyJsaWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBaUQsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFvQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU1yRDtJQUVFLDhCQUFvQixPQUE4QixFQUFVLEVBQWU7UUFBdkQsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBR2xFLGVBQVUsR0FBWSxJQUFJLENBQUE7UUFJekIsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXhELHdCQUFtQixHQUFhLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhELGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFDeEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFD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Q0FBQTthQUV6QztTQUNGO0lBQ0gsQ0FBQztJQUNELHlDQUFVLEdBQVYsVUFBVyxDQUFDOztRQUNWLFVBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxFQUFFO1lBQ2hDLGFBQU8sSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxDQUFBO1NBQ3BDO2FBQ0k7WUFDSCxJQUFJLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUE7YUFDWjtpQkFDSTtnQkFDSCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFBO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDOztnQkExUTRCLHFCQUFxQjtnQkFBYyxXQUFXOztJQUNsRTtRQUFSLEtBQUssRUFBRTs2REFBaUI7SUFDaEI7UUFBUixLQUFLLEVBQUU7MkRBQWU7SUFDZDtRQUFSLEtBQUssRUFBRTs0REFBMkI7SUFFQTtRQUFsQyxTQUFTLENBQUMsc0JBQXNCLENBQUM7cUVBQTZDO0lBQ3pEO1FBQXJCLFNBQVMsQ0FBQyxTQUFTLENBQUM7b0VBQXFDO0lBQ2hEO1FBQVQsTUFBTSxFQUFFOzJEQUF3RDtJQUN6QztRQUF2QixTQUFTLENBQUMsV0FBVyxDQUFDOzJEQUFnQjtJQVY1QixvQkFBb0I7UUFMaEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixnaERBQTZDOztTQUU5QyxDQUFDO09BQ1csb0JBQW9CLENBNlFoQztJQUFELDJCQUFDO0NBQUEsQUE3UUQsSUE2UUM7U0E3UVksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGUsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICB0YXAsXHJcbiAgZmlsdGVyLFxyXG4gIHN3aXRjaE1hcCxcclxuICBmaW5hbGl6ZSxcclxuICB0YWtlVW50aWwsXHJcbiAgbWFwLFxyXG59IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnXHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi12cy1jaGlwZGQtY21wJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdnMtY2hpcGRkLWNtcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdnMtY2hpcGRkLWNtcC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWc0NoaXBkZENtcENvbXBvbmVudCB7XHJcbiAgRHJvZG93bkxvYWRpbmc6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cclxuICBASW5wdXQoKSBJbnB1dEZpZWxkczogYW55XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnlcclxuICBASW5wdXQoKSBCYWNrZW5kYXBpOiBib29sZWFuID0gdHJ1ZVxyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgQFZpZXdDaGlsZCgnc2Nyb2xsbCcpIG1hdEF1dG9jb21wbGV0ZUFwcDogTWF0QXV0b2NvbXBsZXRlO1xyXG4gIEBPdXRwdXQoKSBkYXRhRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQFZpZXdDaGlsZCgnRHJvcElucHV0JykgRHJvcElucHV0OiBhbnk7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yc0tleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcclxuXHJcbiAgaGFzX25leHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50cGFnZTogbnVtYmVyID0gMTtcclxuICBEcm9wZG93bmRhdGE6IGFueSA9IFtdO1xyXG4gIGhhc19wcmV2aW91czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERyb3Bkb3duRm9ybTogRm9ybUdyb3VwXHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW11cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB2YWx1ZTogJydcclxuICAgIH0pXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldChcInZhbHVlXCIpLnBhdGNoVmFsdWUodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKVxyXG4gICAgLy8gICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgLy8gICBpZiAodGhpcy5jaGlwU2VsZWN0ZWRPYmoubGVuZ3RoID4gMCkge1xyXG4gICAgLy8gICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAvLyAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKVxyXG5cclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICAgIGVsc2Uge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXAuaWQpXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgICB0aGlzLnNlbGVjdGVkKClcclxuICAgIC8vICAgfVxyXG5cclxuXHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhXHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIGR1cG5nb25pdCgpe1xyXG4gICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdmFsdWU6ICcnXHJcbiAgICB9KVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXCJ2YWx1ZVwiKS5wYXRjaFZhbHVlKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWVcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGxldCBmb3VuZGVtcCBvZiB0aGlzLmNoaXBTZWxlY3RlZE9iaikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSlcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5JbnB1dEZpZWxkcyAmJiBjaGFuZ2VzLklucHV0RmllbGRzLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcIlN1bW1hcnkgTG9nIENoYW5nZXNcIilcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDFcclxuICAgICAgdGhpcy5kdXBuZ29uaXQoKVxyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuUmVzZXRGb3JtICYmIGNoYW5nZXMuUmVzZXRGb3JtLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZyhcImhpdHRlZFwiKVxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5yZXNldCgpXHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxXHJcbiAgICAgIHRoaXMuZHVwbmdvbml0KClcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdXHJcbiAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQoW10pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBkaXNwbGF5ZGV2ZWxvcGNsaWVudChjbHQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBrZXlbY2x0XTtcclxuICAvLyB9XHJcbiAgYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKCkge1xyXG4gICAgaWYgKCEodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCh4ID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLnBhbmVsQ2xvc2luZ0FjdGlvbnMgYXMgT2JzZXJ2YWJsZTxhbnk+KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSB0aGlzLmN1cnJlbnRwYWdlICsgMVxyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgXCI/cGFnZT1cIiArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbXCJkYXRhXCJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzW1wicGFnaW5hdGlvblwiXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLkRyb3Bkb3duZGF0YS5jb25jYXQoZGF0YXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMuRHJvcGRvd25kYXRhXCIsIHRoaXMuRHJvcGRvd25kYXRhKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGRyb3Bkb3duc2VhcmNoKCkge1xyXG4gICAgaWYgKCEodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldChcInZhbHVlXCIpLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxyXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJpbnNpZGUgdGFwXCIpO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5HZXRBcGkodGhpcy5JbnB1dEZpZWxkcy51cmwgKyBcIj9wYWdlPVwiICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKS5waXBlKFxyXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcclxuICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzW1wiZGF0YVwiXTtcclxuICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGdldGRyb3Bkb3duKHZhbHVlKSB7XHJcbiAgICBpZih0aGlzLklucHV0RmllbGRzLnVybCl7XHJcbiAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSlcclxuICAgIHRoaXMuc2VydmljZS5HZXRBcGkodGhpcy5JbnB1dEZpZWxkcy51cmwgKyBcIj9wYWdlPVwiICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbXCJkYXRhXCJdO1xyXG4gICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbXCJwYWdpbmF0aW9uXCJdO1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXNcclxuICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcclxuICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuXHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcbiAgc2VsZWN0ZWQoKSB7XHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlKSB7XHJcbiAgICBsZXQgcGFyYW1zID0gJydcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzLnBhcmFtcykge1xyXG4gICAgICBwYXJhbXMgPSB0aGlzLklucHV0RmllbGRzLnBhcmFtc1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWVcclxuICAgIGlucFZhbHVlID8gcGFyYW1zICs9ICcmJyArIHRoaXMuSW5wdXRGaWVsZHMuc2VhcmNoa2V5ICsgJz0nICsgaW5wVmFsdWUgOiAnJ1xyXG4gICAgcmV0dXJuIHBhcmFtc1xyXG4gIH1cclxuICByZW1vdmVjaGlwKG9iaikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuXHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKClcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIHB1YmxpYyB2ZW5TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Lm9wdGlvbi52YWx1ZScsIGV2ZW50Lm9wdGlvbi52YWx1ZSlcclxuICAgIHRoaXMuc2VsZWN0dmVuQnlOYW1lKGV2ZW50Lm9wdGlvbi52YWx1ZVt0aGlzLmNvbXBhcmVrZXkoZXZlbnQub3B0aW9uLnZhbHVlKV0pO1xyXG4gICAgY29uc29sZS5sb2coJ2NoaXBTZWxlY3RlZHZlbmlkJywgdGhpcy5jaGlwU2VsZWN0ZWRPYmopXHJcbiAgfVxyXG4gIHByaXZhdGUgc2VsZWN0dmVuQnlOYW1lKHZlbikge1xyXG4gICAgbGV0IGZvdW5kZW1wMSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmZpbHRlcihlID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4pO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKGUgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlbik7XHJcbiAgICBpZiAoZm91bmRlbXAubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnB1c2goZm91bmRlbXBbMF0pO1xyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXS5pZClcclxuXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcGFyZWtleShlKSB7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiBcImlkXCJcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcy5kaXNwbGF5a2V5XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn0iXX0=
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5uaWxvdWlzLm9yZy92cy1jaGlwZHJvcGRvd24vIiwic291cmNlcyI6WyJsaWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJEO0lBRUUsOEJBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFJaEIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUsxQixjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEQsd0JBQW1CLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2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U0FBUyxDQUFDO29FQUFxQztJQUNoRDtRQUFULE1BQU0sRUFBRTsyREFBd0Q7SUFDekM7UUFBdkIsU0FBUyxDQUFDLFdBQVcsQ0FBQzsyREFBZ0I7SUFkNUIsb0JBQW9CO1FBTGhDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxtQkFBbUI7WUFDN0Isc2xEQUE2Qzs7U0FFOUMsQ0FBQztPQUNXLG9CQUFvQixDQStTaEM7SUFBRCwyQkFBQztDQUFBLEFBL1NELElBK1NDO1NBL1NZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcclxuICBNYXRBdXRvY29tcGxldGUsXHJcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICB0YXAsXHJcbiAgZmlsdGVyLFxyXG4gIHN3aXRjaE1hcCxcclxuICBmaW5hbGl6ZSxcclxuICB0YWtlVW50aWwsXHJcbiAgbWFwLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZzQ2hpcGRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZzLWNoaXBkZC1jbXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWc0NoaXBkZENtcENvbXBvbmVudCB7XHJcbiAgRHJvZG93bkxvYWRpbmc6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcilcclxuICBhdXRvY29tcGxldGVUcmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKSBtYXRBdXRvY29tcGxldGVBcHA6IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06IEZvcm1Hcm91cDtcclxuICBjaGlwU2VsZWN0ZWRJZDogYW55ID0gW107XHJcbiAgY2hpcFNlbGVjdGVkT2JqOiBhbnkgPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB2YWx1ZTogJycsXHJcbiAgICB9KTtcclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBkdXBuZ29uaXQoKSB7XHJcbiAgICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICB2YWx1ZTogJycsXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KCd2YWx1ZScpLnBhdGNoVmFsdWUodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWU7XHJcbiAgICAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhO1xyXG4gICAgfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLklucHV0RmllbGRzICYmIGNoYW5nZXMuSW5wdXRGaWVsZHMuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdW1tYXJ5IExvZyBDaGFuZ2VzJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuUmVzZXRGb3JtICYmIGNoYW5nZXMuUmVzZXRGb3JtLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGl0dGVkJyk7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkID0gW107XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gW107XHJcbiAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQoW10pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyBwdWJsaWMgZGlzcGxheWRldmVsb3BjbGllbnQoY2x0OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgLy8gICByZXR1cm4ga2V5W2NsdF07XHJcbiAgLy8gfVxyXG4gIGF1dG9jb21wbGV0ZUFwcFNjcm9sbCgpIHtcclxuICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAgJiZcclxuICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlciAmJlxyXG4gICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWxcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGZyb21FdmVudCh0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKCh4KSA9PiB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCksXHJcbiAgICAgICAgICAgICAgdGFrZVVudGlsKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLnBhbmVsQ2xvc2luZ0FjdGlvbnMgYXMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBzY3JvbGxUb3AgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgYXRCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSAxIDw9IHNjcm9sbFRvcCArIGVsZW1lbnRIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgaWYgKGF0Qm90dG9tKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNfbmV4dCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gdGhpcy5jdXJyZW50cGFnZSArIDE7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRwYWdlID4gMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgICAgICAgICAgICAgICAgLkdldEFwaShcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtc1xyXG4gICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25kYXRhJywgdGhpcy5Ecm9wZG93bmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCgndmFsdWUnKVxyXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnaW5zaWRlIHRhcCcpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLkdldEFwaShcclxuICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0ZHJvcGRvd24odmFsdWUpIHtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzLnVybCkge1xyXG4gICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpO1xyXG4gICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLCBwYXJhbXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbJ3BhZ2luYXRpb24nXTtcclxuICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBPdXRwdXRkYXRhOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZCgpIHtcclxuICAgIHRoaXMuT3V0cHV0ZGF0YSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZElkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5PdXRwdXRkYXRhKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5PdXRwdXRkYXRhKTtcclxuXHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vIH1cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlKSB7XHJcbiAgICBsZXQgcGFyYW1zID0gJyc7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcy5wYXJhbXMpIHtcclxuICAgICAgcGFyYW1zID0gdGhpcy5JbnB1dEZpZWxkcy5wYXJhbXM7XHJcbiAgICB9XHJcbiAgICBsZXQgaW5wVmFsdWUgPSB2YWx1ZTtcclxuICAgIGlucFZhbHVlXHJcbiAgICAgID8gKHBhcmFtcyArPSAnJicgKyB0aGlzLklucHV0RmllbGRzLnNlYXJjaGtleSArICc9JyArIGlucFZhbHVlKVxyXG4gICAgICA6ICcnO1xyXG4gICAgcmV0dXJuIHBhcmFtcztcclxuICB9XHJcbiAgcmVtb3ZlY2hpcChvYmopIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouaW5kZXhPZihvYmopO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHB1YmxpYyB2ZW5TZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xyXG4gICAgY29uc29sZS5sb2coJ2V2ZW50Lm9wdGlvbi52YWx1ZScsIGV2ZW50Lm9wdGlvbi52YWx1ZSk7XHJcbiAgICB0aGlzLnNlbGVjdHZlbkJ5TmFtZShcclxuICAgICAgZXZlbnQub3B0aW9uLnZhbHVlW3RoaXMuY29tcGFyZWtleShldmVudC5vcHRpb24udmFsdWUpXVxyXG4gICAgKTtcclxuICAgIGNvbnNvbGUubG9nKCdjaGlwU2VsZWN0ZWR2ZW5pZCcsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzZWxlY3R2ZW5CeU5hbWUodmVuKSB7XHJcbiAgICBsZXQgZm91bmRlbXAxID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouZmlsdGVyKFxyXG4gICAgICAoZSkgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlblxyXG4gICAgKTtcclxuICAgIGlmIChmb3VuZGVtcDEubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBmb3VuZGVtcCA9IHRoaXMuRHJvcGRvd25kYXRhLmZpbHRlcihcclxuICAgICAgKGUpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW5cclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqLnB1c2goZm91bmRlbXBbMF0pO1xyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXS5pZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcGFyZWtleShlKSB7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiAnaWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -88,10 +88,11 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
88
88
  this.has_previous = false;
89
89
  this.chipSelectedId = [];
90
90
  this.chipSelectedObj = [];
91
+ this.Outputdata = [];
91
92
  }
92
93
  ngOnInit() {
93
94
  this.DropdownForm = this.fb.group({
94
- value: ''
95
+ value: '',
95
96
  });
96
97
  // if (this.InputFields?.defaultvalue) {
97
98
  // this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue)
@@ -118,10 +119,10 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
118
119
  dupngonit() {
119
120
  var _a, _b, _c, _d, _e, _f, _g;
120
121
  this.DropdownForm = this.fb.group({
121
- value: ''
122
+ value: '',
122
123
  });
123
124
  if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.defaultvalue) {
124
- this.DropdownForm.get("value").patchValue((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.defaultvalue);
125
+ this.DropdownForm.get('value').patchValue((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.defaultvalue);
125
126
  this.chipSelectedObj = (_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.defaultvalue;
126
127
  if (this.chipSelectedObj.length > 0) {
127
128
  for (let foundemp of this.chipSelectedObj) {
@@ -138,18 +139,18 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
138
139
  if ((_f = this.InputFields) === null || _f === void 0 ? void 0 : _f.fronentdata) {
139
140
  this.Dropdowndata = (_g = this.InputFields) === null || _g === void 0 ? void 0 : _g.data;
140
141
  }
141
- else {
142
- this.getdropdown('');
143
- }
142
+ // else {
143
+ // this.getdropdown('')
144
+ // }
144
145
  }
145
146
  ngOnChanges(changes) {
146
147
  if (changes.InputFields && changes.InputFields.currentValue) {
147
- console.log("Summary Log Changes");
148
+ console.log('Summary Log Changes');
148
149
  this.currentpage = 1;
149
150
  this.dupngonit();
150
151
  }
151
152
  if (changes.ResetForm && changes.ResetForm.currentValue) {
152
- console.log("hitted");
153
+ console.log('hitted');
153
154
  this.DropdownForm.reset();
154
155
  this.currentpage = 1;
155
156
  this.dupngonit();
@@ -169,8 +170,8 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
169
170
  this.autocompleteTrigger &&
170
171
  this.matAutocompleteApp.panel) {
171
172
  fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
172
- .pipe(map(x => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
173
- .subscribe(x => {
173
+ .pipe(map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
174
+ .subscribe((x) => {
174
175
  const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
175
176
  const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
176
177
  const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
@@ -181,12 +182,13 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
181
182
  let params = this.searchparams(value);
182
183
  this.currentpage = this.currentpage + 1;
183
184
  if (this.currentpage > 1) {
184
- this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
185
+ this.service
186
+ .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
185
187
  .subscribe((results) => {
186
- let datas = results["data"];
187
- let datapagination = results["pagination"];
188
+ let datas = results['data'];
189
+ let datapagination = results['pagination'];
188
190
  this.Dropdowndata = this.Dropdowndata.concat(datas);
189
- console.log("this.Dropdowndata", this.Dropdowndata);
191
+ console.log('this.Dropdowndata', this.Dropdowndata);
190
192
  if (this.Dropdowndata.length >= 0) {
191
193
  this.has_next = datapagination.has_next;
192
194
  this.has_previous = datapagination.has_previous;
@@ -204,17 +206,21 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
204
206
  dropdownsearch() {
205
207
  var _a;
206
208
  if (!((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
207
- this.DropdownForm.get("value").valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
209
+ this.DropdownForm.get('value')
210
+ .valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
208
211
  this.DrodownLoading = true;
209
- console.log("inside tap");
212
+ console.log('inside tap');
210
213
  }), switchMap((value) => {
211
214
  let params = this.searchparams(value);
212
215
  this.currentpage = 1;
213
- return this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params).pipe(finalize(() => {
216
+ return this.service
217
+ .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
218
+ .pipe(finalize(() => {
214
219
  this.DrodownLoading = false;
215
220
  }));
216
- })).subscribe((results) => {
217
- let datas = results["data"];
221
+ }))
222
+ .subscribe((results) => {
223
+ let datas = results['data'];
218
224
  this.Dropdowndata = datas;
219
225
  });
220
226
  }
@@ -222,10 +228,11 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
222
228
  getdropdown(value) {
223
229
  if (this.InputFields.url) {
224
230
  let params = this.searchparams(value);
225
- this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
231
+ this.service
232
+ .GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
226
233
  .subscribe((results) => {
227
- let datas = results["data"];
228
- let datapagination = results["pagination"];
234
+ let datas = results['data'];
235
+ let datapagination = results['pagination'];
229
236
  this.Dropdowndata = datas;
230
237
  if (this.Dropdowndata.length >= 0) {
231
238
  this.has_next = datapagination.has_next;
@@ -236,19 +243,42 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
236
243
  }
237
244
  }
238
245
  selected() {
239
- var _a, _b;
240
- // let data = this.DropdownForm.value.value
241
- if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.wholedata) {
242
- this.dataEvent.emit(this.chipSelectedObj);
246
+ var _a, _b, _c, _d, _e;
247
+ this.Outputdata = this.chipSelectedObj;
248
+ if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.Outputkey) {
249
+ this.Outputdata = this.chipSelectedId;
243
250
  }
244
- else {
245
- if ((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.Outputkey) {
246
- this.dataEvent.emit(this.chipSelectedId);
247
- }
248
- else {
249
- this.dataEvent.emit(this.chipSelectedObj);
250
- }
251
+ if (((_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.formgroup) && ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formcontrolname)) {
252
+ (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formgroup.get((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.formcontrolname).patchValue(this.Outputdata);
251
253
  }
254
+ this.dataEvent.emit(this.Outputdata);
255
+ // let data = this.DropdownForm.value.value
256
+ // if (this.InputFields?.wholedata) {
257
+ // this.dataEvent.emit(this.chipSelectedObj);
258
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
259
+ // this.InputFields?.formgroup
260
+ // .get(this.InputFields?.formcontrolname)
261
+ // .patchValue(this.chipSelectedObj);
262
+ // }
263
+ // }
264
+ // else {
265
+ // if (this.InputFields?.Outputkey) {
266
+ // this.dataEvent.emit(this.chipSelectedId);
267
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
268
+ // this.InputFields?.formgroup
269
+ // .get(this.InputFields?.formcontrolname)
270
+ // .patchValue(this.chipSelectedId);
271
+ // }
272
+ // }
273
+ // else {
274
+ // this.dataEvent.emit(this.chipSelectedObj);
275
+ // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
276
+ // this.InputFields?.formgroup
277
+ // .get(this.InputFields?.formcontrolname)
278
+ // .patchValue(this.chipSelectedObj);
279
+ // }
280
+ // }
281
+ // }
252
282
  }
253
283
  searchparams(value) {
254
284
  let params = '';
@@ -256,7 +286,9 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
256
286
  params = this.InputFields.params;
257
287
  }
258
288
  let inpValue = value;
259
- inpValue ? params += '&' + this.InputFields.searchkey + '=' + inpValue : '';
289
+ inpValue
290
+ ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)
291
+ : '';
260
292
  return params;
261
293
  }
262
294
  removechip(obj) {
@@ -278,11 +310,11 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
278
310
  }
279
311
  selectvenByName(ven) {
280
312
  var _a, _b;
281
- let foundemp1 = this.chipSelectedObj.filter(e => e[this.comparekey(e)] == ven);
313
+ let foundemp1 = this.chipSelectedObj.filter((e) => e[this.comparekey(e)] == ven);
282
314
  if (foundemp1.length) {
283
315
  return;
284
316
  }
285
- let foundemp = this.Dropdowndata.filter(e => e[this.comparekey(e)] == ven);
317
+ let foundemp = this.Dropdowndata.filter((e) => e[this.comparekey(e)] == ven);
286
318
  if (foundemp.length) {
287
319
  this.chipSelectedObj.push(foundemp[0]);
288
320
  if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.Outputkey) {
@@ -300,7 +332,7 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
300
332
  }
301
333
  else {
302
334
  if (e === null || e === void 0 ? void 0 : e.id) {
303
- return "id";
335
+ return 'id';
304
336
  }
305
337
  else {
306
338
  return this.InputFields.displaykey;
@@ -336,7 +368,7 @@ __decorate([
336
368
  VsChipddCmpComponent = __decorate([
337
369
  Component({
338
370
  selector: 'lib-vs-chipdd-cmp',
339
- template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-list multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\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</div>\r\n",
371
+ template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-list multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\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</div>\r\n",
340
372
  styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:0 0}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}"]
341
373
  })
342
374
  ], VsChipddCmpComponent);