@unnilouis.org/vs-chipdropdown 9.0.6 → 9.0.8

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.
@@ -81,16 +81,19 @@ var VsChipddCmpComponent = /** @class */ (function () {
81
81
  }
82
82
  };
83
83
  VsChipddCmpComponent.prototype.dupngonit = function () {
84
- var _a, _b, _c, _d, _e, _f;
84
+ var _a, _b, _c, _d, _e, _f, _g, _h;
85
85
  if (this.formGroup) {
86
86
  this.DropdownForm = this.formGroup;
87
87
  if (!this.DropdownForm.contains((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.formcontrolname)) {
88
88
  this.DropdownForm.addControl(this.dynamciformcontrolparent(), new FormControl({ value: [], disabled: (_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.disabled }));
89
89
  }
90
+ else {
91
+ ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.disabled) ? this.DropdownForm.get('chipvalue').disable() : '';
92
+ }
90
93
  }
91
94
  else {
92
95
  this.DropdownForm = this.fb.group({
93
- chipvalue: [],
96
+ chipvalue: [], disabled: (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.disabled
94
97
  });
95
98
  }
96
99
  console.log('this.DropdownForm', this.DropdownForm.value);
@@ -100,14 +103,14 @@ var VsChipddCmpComponent = /** @class */ (function () {
100
103
  // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value
101
104
  // : [];
102
105
  // console.log('this.chipSelectedObj', this.chipSelectedObj);
103
- if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.defaultvalue) {
106
+ if ((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.defaultvalue) {
104
107
  // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(
105
108
  // this.InputFields?.formkey
106
109
  // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]
107
110
  // : this.InputFields?.defaultvalue
108
111
  // );
109
112
  // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);
110
- this.chipSelectedObj = (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.defaultvalue;
113
+ this.chipSelectedObj = (_f = this.InputFields) === null || _f === void 0 ? void 0 : _f.defaultvalue;
111
114
  this.chipSelectedId = [];
112
115
  this.formkeyarr = [];
113
116
  if (this.chipSelectedObj.length > 0) {
@@ -124,9 +127,10 @@ var VsChipddCmpComponent = /** @class */ (function () {
124
127
  this.looop();
125
128
  this.selected();
126
129
  }
127
- if ((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.fronentdata) {
128
- this.Dropdowndata = (_f = this.InputFields) === null || _f === void 0 ? void 0 : _f.data;
130
+ if ((_g = this.InputFields) === null || _g === void 0 ? void 0 : _g.fronentdata) {
131
+ this.Dropdowndata = (_h = this.InputFields) === null || _h === void 0 ? void 0 : _h.data;
129
132
  }
133
+ this.dropdownsearch();
130
134
  // else {
131
135
  // this.getdropdown('')
132
136
  // }
@@ -196,9 +200,11 @@ var VsChipddCmpComponent = /** @class */ (function () {
196
200
  VsChipddCmpComponent.prototype.dropdownsearch = function () {
197
201
  var _this = this;
198
202
  var _a;
199
- if (!((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
200
- this.DropdownForm.get('value')
201
- .valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(function () {
203
+ var controlName = this.dynamciformcontrolparent();
204
+ var control = this.DropdownForm.get(controlName);
205
+ if (control && !((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
206
+ this.DropdownForm.get(this.dynamciformcontrolparent())
207
+ .valueChanges.pipe(debounceTime(200), distinctUntilChanged(), tap(function () {
202
208
  _this.DrodownLoading = true;
203
209
  console.log('inside tap');
204
210
  }), switchMap(function (value) {
@@ -326,13 +332,12 @@ var VsChipddCmpComponent = /** @class */ (function () {
326
332
  if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.Outputkey) {
327
333
  this.chipSelectedId.push(foundemp[0][(_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.Outputkey]);
328
334
  }
329
- if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formkey) {
330
- this.formkeyarr.push(foundemp[0][(_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formkey]);
331
- }
332
335
  else {
333
336
  this.chipSelectedId.push(foundemp[0].id);
334
337
  }
335
- console.log('formkeyarr12', this.formkeyarr);
338
+ if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formkey) {
339
+ this.formkeyarr.push(foundemp[0][(_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formkey]);
340
+ }
336
341
  this.selected();
337
342
  }
338
343
  };
@@ -387,11 +392,11 @@ var VsChipddCmpComponent = /** @class */ (function () {
387
392
  VsChipddCmpComponent = __decorate([
388
393
  Component({
389
394
  selector: 'lib-vs-chipdd-cmp',
390
- template: "<div>\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-list multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip\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>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [matAutocomplete]=\"scrolll\"\r\n (keydown)=\"dropdownsearch()\"\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-list>\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</div>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n",
395
+ template: "<div>\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-list multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip\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>\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-list>\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</div>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n",
391
396
  styles: [""]
392
397
  })
393
398
  ], VsChipddCmpComponent);
394
399
  return VsChipddCmpComponent;
395
400
  }());
396
401
  export { VsChipddCmpComponent };
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5uaWxvdWlzLm9yZy92cy1jaGlwZHJvcGRvd24vIiwic291cmNlcyI6WyJsaWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJEO0lBRUUsOEJBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFJaEIsZUFBVSxHQUFZLElBQUksQ0FBQztRQVcxQixjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEQsd0JBQW1CLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2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TyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOztnQkE1WGtCLHFCQUFxQjtnQkFDMUIsV0FBVzs7SUFFaEI7UUFBUixLQUFLLEVBQUU7NkRBQWtCO0lBQ2pCO1FBQVIsS0FBSyxFQUFFOzJEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFOzREQUE0QjtJQU1wQztRQUpDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxzQkFBc0I7U0FDN0IsQ0FBQzt5REFDOEI7SUFHaEM7UUFEQyxTQUFTLENBQUMsc0JBQXNCLENBQUM7cUVBQ1U7SUFDdEI7UUFBckIsU0FBUyxDQUFDLFNBQVMsQ0FBQztvRUFBcUM7SUFDaEQ7UUFBVCxNQUFNLEVBQUU7MkRBQXdEO0lBQ3pDO1FBQXZCLFNBQVMsQ0FBQyxXQUFXLENBQUM7MkRBQWdCO0lBVTlCO1FBQVIsS0FBSyxFQUFFOzJEQUF1QjtJQTlCcEIsb0JBQW9CO1FBTGhDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IsaWhFQUE2Qzs7U0FFOUMsQ0FBQztPQUNXLG9CQUFvQixDQWdZaEM7SUFBRCwyQkFBQztDQUFBLEFBaFlELElBZ1lDO1NBaFlZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcclxuICBNYXRBdXRvY29tcGxldGUsXHJcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICB0YXAsXHJcbiAgZmlsdGVyLFxyXG4gIHN3aXRjaE1hcCxcclxuICBmaW5hbGl6ZSxcclxuICB0YWtlVW50aWwsXHJcbiAgbWFwLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZzQ2hpcGRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZzLWNoaXBkZC1jbXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWc0NoaXBkZENtcENvbXBvbmVudCB7XHJcbiAgRHJvZG93bkxvYWRpbmc6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0Jywge1xyXG4gICAgc3RhdGljOiBmYWxzZSxcclxuICAgIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbiAgfSlcclxuICB0cmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXHJcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBAVmlld0NoaWxkKCdzY3JvbGxsJykgbWF0QXV0b2NvbXBsZXRlQXBwOiBNYXRBdXRvY29tcGxldGU7XHJcbiAgQE91dHB1dCgpIGRhdGFFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKCdEcm9wSW5wdXQnKSBEcm9wSW5wdXQ6IGFueTtcclxuICByZWFkb25seSBzZXBhcmF0b3JzS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG5cclxuICBoYXNfbmV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1cnJlbnRwYWdlOiBudW1iZXIgPSAxO1xyXG4gIERyb3Bkb3duZGF0YTogYW55ID0gW107XHJcbiAgaGFzX3ByZXZpb3VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRHJvcGRvd25Gb3JtOiBGb3JtR3JvdXA7XHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW107XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgLy8gICAgIHZhbHVlOiAnJyxcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmR1cG5nb25pdCgpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmKCEoZm91bmRlbXAgaW5zdGFuY2VvZiBOdW1iZXIpKXtcclxuICAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1rZXlhcnIucHVzaChmb3VuZGVtcFt0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgICBcclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICAgIGNoaXB2YWx1ZTogW10sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25Gb3JtJywgdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUpO1xyXG4gICAgLy8gdGhpcy5jaGlwU2VsZWN0ZWRPYmogPVxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUgJiZcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgLy8gICAgID8gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlXHJcbiAgICAvLyAgICAgOiBbXTtcclxuICAgIC8vICAgICBjb25zb2xlLmxvZygndGhpcy5jaGlwU2VsZWN0ZWRPYmonLCB0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcblxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZShcclxuICAgICAgLy8gICB0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XHJcbiAgICAgIC8vICAgICA/IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVt0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XVxyXG4gICAgICAvLyAgICAgOiB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWVcclxuICAgICAgLy8gKTtcclxuICAgICAgLy8gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnBhdGNoVmFsdWUodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWU7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICAgICAgdGhpcy5mb3Jta2V5YXJyID0gW107XHJcbiAgICAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5sb29vcCgpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlICYmXHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZS5sZW5ndGggIT09IDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuRHJvcGRvd25Gb3JtLmdldChcclxuICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpXHJcbiAgICAgICkudmFsdWU7XHJcbiAgICAgIGNvbnNvbGUubG9nKCd0ZXN0Jyx0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuRHJvcGRvd25Gb3JtLmdldChcclxuICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpXHJcbiAgICAgICkudmFsdWUpXHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICAgICAgdGhpcy5mb3Jta2V5YXJyID0gW107XHJcbiAgICAgIHRoaXMubG9vb3AoKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YTtcclxuICAgIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5JbnB1dEZpZWxkcyAmJiBjaGFuZ2VzLklucHV0RmllbGRzLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnU3VtbWFyeSBMb2cgQ2hhbmdlcycpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgdGhpcy5kdXBuZ29uaXQoKTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzLlJlc2V0Rm9ybSAmJiBjaGFuZ2VzLlJlc2V0Rm9ybS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ2hpdHRlZCcpO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5yZXNldCgpO1xyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMTtcclxuICAgICAgdGhpcy5kdXBuZ29uaXQoKTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSBbXTtcclxuICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdChbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBkaXNwbGF5ZGV2ZWxvcGNsaWVudChjbHQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBrZXlbY2x0XTtcclxuICAvLyB9XHJcbiAgYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcCAmJlxyXG4gICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyICYmXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZnJvbUV2ZW50KHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKHgpID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxDbG9zaW5nQWN0aW9ucyBhcyBPYnNlcnZhYmxlPGFueT5cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIDEgPD0gc2Nyb2xsVG9wICsgZWxlbWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoYXRCb3R0b20pIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc19uZXh0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSB0aGlzLmN1cnJlbnRwYWdlICsgMTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudHBhZ2UgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnlbXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbJ3BhZ2luYXRpb24nXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLkRyb3Bkb3duZGF0YS5jb25jYXQoZGF0YXMpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bmRhdGEnLCB0aGlzLkRyb3Bkb3duZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBkcm9wZG93bnNlYXJjaCgpIHtcclxuICAgIGlmICghdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KCd2YWx1ZScpXHJcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgdGFwJyk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRkcm9wZG93bih2YWx1ZSkge1xyXG4gICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcy51cmwpIHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlci5vcGVuUGFuZWwoKTtcclxuICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgaWYgKHRoaXMuRHJvcGRvd25kYXRhLmxlbmd0aCA+PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcclxuICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSBkYXRhcGFnaW5hdGlvbi5pbmRleDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgT3V0cHV0ZGF0YTogYW55ID0gW107XHJcbiAgZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSAmJiB0aGlzLmZvcm1Hcm91cFxyXG4gICAgICA/IHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZVxyXG4gICAgICA6ICdjaGlwdmFsdWUnO1xyXG4gIH1cclxuICBzZWxlY3RlZCgpIHtcclxuICAgIHRoaXMuT3V0cHV0ZGF0YSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZElkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZShcclxuICAgICAgICB0aGlzLmZvcm1rZXlhcnJcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybWtleWFycik7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0uZ2V0JywgdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLk91dHB1dGRhdGEpO1xyXG5cclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUudmFsdWVcclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy53aG9sZWRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAvLyAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgIC5wYXRjaFZhbHVlKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgLy8gICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXBcclxuICAgIC8vICAgICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAgIC5wYXRjaFZhbHVlKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG4gICAgLy8gICBlbHNlIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBzZWFyY2hwYXJhbXModmFsdWUpIHtcclxuICAgIGxldCBwYXJhbXMgPSAnJztcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzLnBhcmFtcykge1xyXG4gICAgICBwYXJhbXMgPSB0aGlzLklucHV0RmllbGRzLnBhcmFtcztcclxuICAgIH1cclxuICAgIGxldCBpbnBWYWx1ZSA9IHZhbHVlO1xyXG4gICAgaW5wVmFsdWVcclxuICAgICAgPyAocGFyYW1zICs9ICcmJyArIHRoaXMuSW5wdXRGaWVsZHMuc2VhcmNoa2V5ICsgJz0nICsgaW5wVmFsdWUpXHJcbiAgICAgIDogJyc7XHJcbiAgICByZXR1cm4gcGFyYW1zO1xyXG4gIH1cclxuICByZW1vdmVjaGlwKG9iaikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmouc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2coJ3RoaXMuZm9ybWtleWFycicsIHRoaXMuZm9ybWtleWFycik7XHJcblxyXG4gICAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIHZlblNlbGVjdGVkKGRhdGEpOiB2b2lkIHtcclxuICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIGNvbnNvbGUubG9nKCdldmVudC5vcHRpb24udmFsdWUnLCBkYXRhKTtcclxuICAgIHRoaXMuc2VsZWN0dmVuQnlOYW1lKGRhdGFbdGhpcy5jb21wYXJla2V5KGRhdGEpXSk7XHJcbiAgICBjb25zb2xlLmxvZygnY2hpcFNlbGVjdGVkdmVuaWQnLCB0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgfVxyXG4gIGZvcm1rZXlhcnI6IGFueSA9IFtdO1xyXG4gIHByaXZhdGUgc2VsZWN0dmVuQnlOYW1lKHZlbikge1xyXG4gICAgbGV0IGZvdW5kZW1wMSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmZpbHRlcihcclxuICAgICAgKGUpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW5cclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAxLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZm91bmRlbXAgPSB0aGlzLkRyb3Bkb3duZGF0YS5maWx0ZXIoXHJcbiAgICAgIChlKSA9PiBlW3RoaXMuY29tcGFyZWtleShlKV0gPT0gdmVuXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5wdXNoKGZvdW5kZW1wWzBdKTtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleSkge1xyXG4gICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF0uaWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnNvbGUubG9nKCdmb3Jta2V5YXJyMTInLCB0aGlzLmZvcm1rZXlhcnIpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBhcmVrZXkoZSkge1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZT8uaWQpIHtcclxuICAgICAgICByZXR1cm4gJ2lkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcy5kaXNwbGF5a2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
402
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5uaWxvdWlzLm9yZy92cy1jaGlwZHJvcGRvd24vIiwic291cmNlcyI6WyJsaWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHNCQUFzQixHQUN2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBTXJEO0lBRUUsOEJBQ1UsT0FBOEIsRUFDOUIsRUFBZTtRQURmLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLE9BQUUsR0FBRixFQUFFLENBQWE7UUFJaEIsZUFBVSxHQUFZLElBQUksQ0FBQztRQVcxQixjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEQsd0JBQW1CLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUN4QixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUU5QixtQkFBYyxHQUFRLEVBQUUsQ0FBQztRQUN6QixvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQXFQMUIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQTJFckIsZUFBVSxHQUFLLEVBQUUsQ0FBQTtJQXhWZCxDQUFDO0lBMEJKLHVDQUFRLEdBQVI7UUFDRSx3QkFBd0I7UUFDeEIsd0NBQXdDO1FBQ3hDLFdBQVc7UUFDWCx3Q0FBd0M7UUFDeEMsaUJBQWlCO1FBQ2pCLFFBQVE7UUFDUixJQUFJO1FBQ0osb0JBQW9CO1FBRXBCLHdDQUF3QztRQUN4Qyw4RUFBOEU7UUFDOUUsMERBQTBEO1FBQzFELDJDQUEyQztRQUMzQyxtREFBbUQ7UUFDbkQsMkNBQTJDO1FBQzNDLDBFQUEwRTtRQUUxRSxVQUFVO1FBQ1YsZUFBZTtRQUNmLGdEQUFnRDtRQUVoRCxVQUFVO1FBQ1YsUUFBUTtRQUNSLHNCQUFzQjtRQUN0QixNQUFNO1FBRU4sSUFBSTtRQUNKLHVDQUF1QztRQUN2QywrQ0FBK0M7UUFFL0MsSUFBSTtRQUNKLFNBQVM7UUFDVCx5QkFBeUI7UUFDekIsSUFBSTtJQUNOLENBQUM7SUFDRCxvQ0FBSyxHQUFMOzs7O1lBQ0UsS0FBcUIsSUFBQSxLQUFBLFNBQUEsSUFBSSxDQUFDLGVBQWUsQ0FBQSxnQkFBQSw0QkFBRTtnQkFBdEMsSUFBSSxRQUFRLFdBQUE7Z0JBQ2YsSUFBRyxDQUFDLENBQUMsUUFBUSxZQUFZLE1BQU0sQ0FBQyxFQUFDO29CQUMvQixVQUFJLElBQUksQ0FBQyxXQUFXLDBDQUFFLFNBQVMsRUFBRTt3QkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxPQUFDLElBQUksQ0FBQyxXQUFXLDBDQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7cUJBQ2pFO29CQUNELFVBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxFQUFFO3dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLE9BQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztxQkFDM0Q7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO3FCQUN2QztpQkFDRjthQUNBOzs7Ozs7Ozs7SUFFTCxDQUFDO0lBQ0Qsd0NBQVMsR0FBVDs7UUFDRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsT0FBQyxJQUFJLENBQUMsV0FBVywwQ0FBRSxlQUFlLENBQUMsRUFBRTtnQkFDbEUsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQzFCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxFQUMvQixJQUFJLFdBQVcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxRQUFFLElBQUksQ0FBQyxXQUFXLDBDQUFFLFFBQVEsRUFBRSxDQUFDLENBQ3JFLENBQUM7YUFDSDtpQkFDRztnQkFDRixPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLFFBQVEsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTthQUFPO1NBQ3hGO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO2dCQUNoQyxTQUFTLEVBQUUsRUFBRSxFQUFDLFFBQVEsUUFBRSxJQUFJLENBQUMsV0FBVywwQ0FBRSxRQUFRO2FBQ25ELENBQUMsQ0FBQztTQUVKO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELHlCQUF5QjtRQUN6QixvRUFBb0U7UUFDcEUsOEVBQThFO1FBQzlFLHFFQUFxRTtRQUNyRSxZQUFZO1FBQ1osaUVBQWlFO1FBRWpFLFVBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsWUFBWSxFQUFFO1lBQ2xDLHFFQUFxRTtZQUNyRSw4QkFBOEI7WUFDOUIsa0VBQWtFO1lBQ2xFLHVDQUF1QztZQUN2QyxLQUFLO1lBQ0wscUdBQXFHO1lBQ3JHLElBQUksQ0FBQyxlQUFlLFNBQUcsSUFBSSxDQUFDLFdBQVcsMENBQUUsWUFBWSxDQUFDO1lBQ3RELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ2pCO1NBQ0Y7UUFFRCxJQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsS0FBSztZQUM1RCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUN6RTtZQUNBLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQzFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDLEtBQUssQ0FBQztZQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQzdELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ1IsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsVUFBSSxJQUFJLENBQUMsV0FBVywwQ0FBRSxXQUFXLEVBQUU7WUFDakMsSUFBSSxDQUFDLFlBQVksU0FBRyxJQUFJLENBQUMsV0FBVywwQ0FBRSxJQUFJLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsU0FBUztRQUNULHlCQUF5QjtRQUN6QixJQUFJO0lBQ04sQ0FBQztJQUNELDBDQUFXLEdBQVgsVUFBWSxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDM0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNsQjtRQUNELElBQUksT0FBTyxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRTtZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLDZCQUE2QjtZQUM3QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBQ0QsdURBQXVEO0lBQ3ZELHFCQUFxQjtJQUNyQixJQUFJO0lBQ0osb0RBQXFCLEdBQXJCO1FBQUEsaUJBb0RDOztRQW5EQyxJQUFJLFFBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsV0FBVyxDQUFBLEVBQUU7WUFDbEMsVUFBVSxDQUFDO2dCQUNULElBQ0UsS0FBSSxDQUFDLGtCQUFrQjtvQkFDdkIsS0FBSSxDQUFDLG1CQUFtQjtvQkFDeEIsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFDN0I7b0JBQ0EsU0FBUyxDQUFDLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQzt5QkFDN0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxVQUFDLENBQUMsSUFBSyxPQUFBLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBckQsQ0FBcUQsQ0FBQyxFQUNqRSxTQUFTLENBQ1AsS0FBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFzQyxDQUNoRSxDQUNGO3lCQUNBLFNBQVMsQ0FBQyxVQUFDLENBQUM7d0JBQ1gsSUFBTSxTQUFTLEdBQ2IsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO3dCQUN4RCxJQUFNLFlBQVksR0FDaEIsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO3dCQUMzRCxJQUFNLGFBQWEsR0FDakIsS0FBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO3dCQUMzRCxJQUFNLFFBQVEsR0FBRyxZQUFZLEdBQUcsQ0FBQyxJQUFJLFNBQVMsR0FBRyxhQUFhLENBQUM7d0JBQy9ELElBQUksUUFBUSxFQUFFOzRCQUNaLElBQUksS0FBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7Z0NBQzFCLElBQUksS0FBSyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztnQ0FDL0MsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQ0FDdEMsS0FBSSxDQUFDLFdBQVcsR0FBRyxLQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztnQ0FDeEMsSUFBSSxLQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtvQ0FDeEIsS0FBSSxDQUFDLE9BQU87eUNBQ1QsTUFBTSxDQUNMLEtBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxHQUFHLFFBQVEsR0FBRyxLQUFJLENBQUMsV0FBVyxFQUNsRCxNQUFNLENBQ1A7eUNBQ0EsU0FBUyxDQUFDLFVBQUMsT0FBYzt3Q0FDeEIsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO3dDQUM1QixJQUFJLGNBQWMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7d0NBQzNDLEtBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7d0NBQ3BELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsS0FBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dDQUNwRCxJQUFJLEtBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTs0Q0FDakMsS0FBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDOzRDQUN4QyxLQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUM7NENBQ2hELEtBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQzt5Q0FDekM7b0NBQ0gsQ0FBQyxDQUFDLENBQUM7aUNBQ047NkJBQ0Y7eUJBQ0Y7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7aUJBQ047WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUNELDZDQUFjLEdBQWQ7UUFBQSxpQkFnQ0M7O1FBL0JDLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ3BELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25ELElBQUksT0FBTyxJQUFJLFFBQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsV0FBVyxDQUFBLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7aUJBQ25ELFlBQVksQ0FBQyxJQUFJLENBQ2hCLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDO2dCQUNGLEtBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxVQUFDLEtBQUs7Z0JBQ2QsSUFBSSxNQUFNLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsS0FBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ3JCLE9BQU8sS0FBSSxDQUFDLE9BQU87cUJBQ2hCLE1BQU0sQ0FDTCxLQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsR0FBRyxRQUFRLEdBQUcsS0FBSSxDQUFDLFdBQVcsRUFDbEQsTUFBTSxDQUNQO3FCQUNBLElBQUksQ0FDSCxRQUFRLENBQUM7b0JBQ1AsS0FBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDTixDQUFDLENBQUMsQ0FDSDtpQkFDQSxTQUFTLENBQUMsVUFBQyxPQUFjO2dCQUN4QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLEtBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBQ0QsMENBQVcsR0FBWCxVQUFZLEtBQUs7UUFBakIsaUJBcUJDO1FBbkJDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDekIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsT0FBTztpQkFDVCxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDO2lCQUNsRSxTQUFTLENBQUMsVUFBQyxPQUFjO2dCQUN4QixJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzVCLElBQUksY0FBYyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDM0MsS0FBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBQzFCLFVBQVUsQ0FBQztvQkFDVCxLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxLQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7b0JBQ2pDLEtBQUksQ0FBQyxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQztvQkFDeEMsS0FBSSxDQUFDLFlBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDO29CQUNoRCxLQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7aUJBQ3pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFFRCx1REFBd0IsR0FBeEI7O1FBQ0UsT0FBTyxPQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLGVBQWUsS0FBSSxJQUFJLENBQUMsU0FBUztZQUN4RCxDQUFDLE9BQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsZUFBZSxDQUNuQyxDQUFDLENBQUMsV0FBVyxDQUFDO0lBQ2xCLENBQUM7SUFDRCx1Q0FBUSxHQUFSOztRQUNFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUN2QyxVQUFJLElBQUksQ0FBQyxXQUFXLDBDQUFFLFNBQVMsRUFBRTtZQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLFdBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsZUFBZSxDQUFBLEVBQUU7WUFDdkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxVQUFVLENBQy9ELElBQUksQ0FBQyxVQUFVLENBQ2hCLENBQUM7U0FDSDtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFckMsMkNBQTJDO1FBQzNDLHFDQUFxQztRQUNyQywrQ0FBK0M7UUFDL0MsNEVBQTRFO1FBQzVFLGtDQUFrQztRQUNsQyxnREFBZ0Q7UUFDaEQsMkNBQTJDO1FBQzNDLE1BQU07UUFDTixJQUFJO1FBQ0osU0FBUztRQUNULHVDQUF1QztRQUN2QyxnREFBZ0Q7UUFDaEQsOEVBQThFO1FBQzlFLG9DQUFvQztRQUNwQyxrREFBa0Q7UUFDbEQsNENBQTRDO1FBQzVDLFFBQVE7UUFDUixNQUFNO1FBQ04sV0FBVztRQUNYLGlEQUFpRDtRQUNqRCw4RUFBOEU7UUFDOUUsb0NBQW9DO1FBQ3BDLGtEQUFrRDtRQUNsRCw2Q0FBNkM7UUFDN0MsUUFBUTtRQUNSLE1BQU07UUFFTixJQUFJO0lBQ04sQ0FBQztJQUNELDJDQUFZLEdBQVosVUFBYSxLQUFLO1FBQ2hCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztTQUNsQztRQUNELElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztRQUNyQixRQUFRO1lBQ04sQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO1lBQy9ELENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0QseUNBQVUsR0FBVixVQUFXLEdBQUc7UUFDWixJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoRCxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVoRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFTSwwQ0FBVyxHQUFsQixVQUFtQixJQUFJO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUM1QixDQUFDO1FBQ0YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNPLDhDQUFlLEdBQXZCLFVBQXdCLEdBQUc7UUFBM0IsaUJBdUJDOztRQXRCQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDekMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBNUIsQ0FBNEIsQ0FDcEMsQ0FBQztRQUNGLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNwQixPQUFPO1NBQ1I7UUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDckMsVUFBQyxDQUFDLElBQUssT0FBQSxDQUFDLENBQUMsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBNUIsQ0FBNEIsQ0FDcEMsQ0FBQztRQUNGLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxVQUFJLElBQUksQ0FBQyxXQUFXLDBDQUFFLFNBQVMsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFDLElBQUksQ0FBQyxXQUFXLDBDQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDcEU7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzFDO1lBQ0QsVUFBSSxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBQyxJQUFJLENBQUMsV0FBVywwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzlEO1lBQ0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFBO1NBQ2hCO0lBQ0gsQ0FBQztJQUNELHlDQUFVLEdBQVYsVUFBVyxDQUFDOztRQUNWLFVBQUksSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxFQUFFO1lBQ2hDLGFBQU8sSUFBSSxDQUFDLFdBQVcsMENBQUUsVUFBVSxDQUFDO1NBQ3JDO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBRCxDQUFDLHVCQUFELENBQUMsQ0FBRSxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxJQUFJLENBQUM7YUFDYjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO2FBQ3BDO1NBQ0Y7SUFDSCxDQUFDOztnQkFyWWtCLHFCQUFxQjtnQkFDMUIsV0FBVzs7SUFFaEI7UUFBUixLQUFLLEVBQUU7NkRBQWtCO0lBQ2pCO1FBQVIsS0FBSyxFQUFFOzJEQUFnQjtJQUNmO1FBQVIsS0FBSyxFQUFFOzREQUE0QjtJQU1wQztRQUpDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxzQkFBc0I7U0FDN0IsQ0FBQzt5REFDOEI7SUFHaEM7UUFEQyxTQUFTLENBQUMsc0JBQXNCLENBQUM7cUVBQ1U7SUFDdEI7UUFBckIsU0FBUyxDQUFDLFNBQVMsQ0FBQztvRUFBcUM7SUFDaEQ7UUFBVCxNQUFNLEVBQUU7MkRBQXdEO0lBQ3pDO1FBQXZCLFNBQVMsQ0FBQyxXQUFXLENBQUM7MkRBQWdCO0lBVTlCO1FBQVIsS0FBSyxFQUFFOzJEQUF1QjtJQTlCcEIsb0JBQW9CO1FBTGhDLFNBQVMsQ0FBQztZQUNULFFBQVEsRUFBRSxtQkFBbUI7WUFDN0IscStEQUE2Qzs7U0FFOUMsQ0FBQztPQUNXLG9CQUFvQixDQXlZaEM7SUFBRCwyQkFBQztDQUFBLEFBellELElBeVlDO1NBellZLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCxcclxuICBNYXRBdXRvY29tcGxldGUsXHJcbiAgTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcixcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQge1xyXG4gIGRlYm91bmNlVGltZSxcclxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcclxuICB0YXAsXHJcbiAgZmlsdGVyLFxyXG4gIHN3aXRjaE1hcCxcclxuICBmaW5hbGl6ZSxcclxuICB0YWtlVW50aWwsXHJcbiAgbWFwLFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZzQ2hpcGRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZzLWNoaXBkZC1jbXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWc0NoaXBkZENtcENvbXBvbmVudCB7XHJcbiAgRHJvZG93bkxvYWRpbmc6IGJvb2xlYW47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFZzQ2hpcGRyb3Bkb3duU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIElucHV0RmllbGRzOiBhbnk7XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnk7XHJcbiAgQElucHV0KCkgQmFja2VuZGFwaTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2F1dG9Db21wbGV0ZUlucHV0Jywge1xyXG4gICAgc3RhdGljOiBmYWxzZSxcclxuICAgIHJlYWQ6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIsXHJcbiAgfSlcclxuICB0cmlnZ2VyOiBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXHJcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjogTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBAVmlld0NoaWxkKCdzY3JvbGxsJykgbWF0QXV0b2NvbXBsZXRlQXBwOiBNYXRBdXRvY29tcGxldGU7XHJcbiAgQE91dHB1dCgpIGRhdGFFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKCdEcm9wSW5wdXQnKSBEcm9wSW5wdXQ6IGFueTtcclxuICByZWFkb25seSBzZXBhcmF0b3JzS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG5cclxuICBoYXNfbmV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1cnJlbnRwYWdlOiBudW1iZXIgPSAxO1xyXG4gIERyb3Bkb3duZGF0YTogYW55ID0gW107XHJcbiAgaGFzX3ByZXZpb3VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRHJvcGRvd25Gb3JtOiBGb3JtR3JvdXA7XHJcbiAgY2hpcFNlbGVjdGVkSWQ6IGFueSA9IFtdO1xyXG4gIGNoaXBTZWxlY3RlZE9iajogYW55ID0gW107XHJcbiAgQElucHV0KCkgZm9ybUdyb3VwITogRm9ybUdyb3VwO1xyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgLy8gICAgIHZhbHVlOiAnJyxcclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyB0aGlzLmR1cG5nb25pdCgpO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAvLyAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAvLyAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAvLyAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgIC8vICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgLy8gICAgICAgfVxyXG4gICAgLy8gICAgICAgZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgLy8gICB9XHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBsb29vcCgpIHtcclxuICAgIGZvciAobGV0IGZvdW5kZW1wIG9mIHRoaXMuY2hpcFNlbGVjdGVkT2JqKSB7XHJcbiAgICAgIGlmKCEoZm91bmRlbXAgaW5zdGFuY2VvZiBOdW1iZXIpKXtcclxuICAgICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5KSB7XHJcbiAgICAgICAgICB0aGlzLmZvcm1rZXlhcnIucHVzaChmb3VuZGVtcFt0aGlzLklucHV0RmllbGRzPy5mb3Jta2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIH1cclxuICAgICBcclxuICB9XHJcbiAgZHVwbmdvbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mb3JtR3JvdXA7XHJcbiAgICAgIGlmICghdGhpcy5Ecm9wZG93bkZvcm0uY29udGFpbnModGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSkge1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmFkZENvbnRyb2woXHJcbiAgICAgICAgICB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpLFxyXG4gICAgICAgICAgbmV3IEZvcm1Db250cm9sKHsgdmFsdWU6IFtdLCBkaXNhYmxlZDogdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZGlzYWJsZWQgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ2NoaXB2YWx1ZScpLmRpc2FibGUoKSA6ICcnICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICBjaGlwdmFsdWU6IFtdLGRpc2FibGVkOiB0aGlzLklucHV0RmllbGRzPy5kaXNhYmxlZFxyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5Ecm9wZG93bkZvcm0nLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICAvLyB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS52YWx1ZSAmJlxyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUubGVuZ3RoICE9PSAwXHJcbiAgICAvLyAgICAgPyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWVcclxuICAgIC8vICAgICA6IFtdO1xyXG4gICAgLy8gICAgIGNvbnNvbGUubG9nKCd0aGlzLmNoaXBTZWxlY3RlZE9iaicsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuXHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlKSB7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAvLyAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXlcclxuICAgICAgLy8gICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldXHJcbiAgICAgIC8vICAgICA6IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZVxyXG4gICAgICAvLyApO1xyXG4gICAgICAvLyB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxvb29wKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQodGhpcy5keW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSkudmFsdWUgJiZcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpLnZhbHVlLmxlbmd0aCAhPT0gMFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZTtcclxuICAgICAgY29uc29sZS5sb2coJ3Rlc3QnLHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFxyXG4gICAgICAgIHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KClcclxuICAgICAgKS52YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmZvcm1rZXlhcnIgPSBbXTtcclxuICAgICAgdGhpcy5sb29vcCgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhO1xyXG4gICAgfVxyXG4gICAgdGhpcy5kcm9wZG93bnNlYXJjaCgpO1xyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLklucHV0RmllbGRzICYmIGNoYW5nZXMuSW5wdXRGaWVsZHMuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdTdW1tYXJ5IExvZyBDaGFuZ2VzJyk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXMuUmVzZXRGb3JtICYmIGNoYW5nZXMuUmVzZXRGb3JtLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zb2xlLmxvZygnaGl0dGVkJyk7XHJcbiAgICAgIC8vIHRoaXMuRHJvcGRvd25Gb3JtLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkID0gW107XHJcbiAgICAgIHRoaXMuZm9ybWtleWFyciA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdO1xyXG4gICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KFtdKTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gcHVibGljIGRpc3BsYXlkZXZlbG9wY2xpZW50KGNsdDogYW55LCBrZXk6IHN0cmluZykge1xyXG4gIC8vICAgcmV0dXJuIGtleVtjbHRdO1xyXG4gIC8vIH1cclxuICBhdXRvY29tcGxldGVBcHBTY3JvbGwoKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgoeCkgPT4gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3ApLFxyXG4gICAgICAgICAgICAgIHRha2VVbnRpbChcclxuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbENsb3NpbmdBY3Rpb25zIGFzIE9ic2VydmFibGU8YW55PlxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IHRoaXMuY3VycmVudHBhZ2UgKyAxO1xyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5HZXRBcGkoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1sncGFnaW5hdGlvbiddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuRHJvcGRvd25kYXRhLmNvbmNhdChkYXRhcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCd0aGlzLkRyb3Bkb3duZGF0YScsIHRoaXMuRHJvcGRvd25kYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRHJvcGRvd25kYXRhLmxlbmd0aCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSBkYXRhcGFnaW5hdGlvbi5pbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRyb3Bkb3duc2VhcmNoKCkge1xyXG4gICAgY29uc3QgY29udHJvbE5hbWUgPSB0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpO1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuRHJvcGRvd25Gb3JtLmdldChjb250cm9sTmFtZSk7XHJcbiAgICBpZiAoY29udHJvbCAmJiAhdGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KHRoaXMuZHluYW1jaWZvcm1jb250cm9scGFyZW50KCkpXHJcbiAgICAgICAgLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICAgICAgZGVib3VuY2VUaW1lKDIwMCksXHJcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdpbnNpZGUgdGFwJyk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2VcclxuICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsXHJcbiAgICAgICAgICAgICAgICBwYXJhbXNcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzWydkYXRhJ107XHJcbiAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRkcm9wZG93bih2YWx1ZSkge1xyXG5cclxuICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgaWYgKCB0aGlzLklucHV0RmllbGRzLnVybCkge1xyXG4gICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpO1xyXG4gICAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgICAuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLCBwYXJhbXMpXHJcbiAgICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbJ3BhZ2luYXRpb24nXTtcclxuICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50cmlnZ2VyLm9wZW5QYW5lbCgpO1xyXG4gICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBPdXRwdXRkYXRhOiBhbnkgPSBbXTtcclxuICBkeW5hbWNpZm9ybWNvbnRyb2xwYXJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lICYmIHRoaXMuZm9ybUdyb3VwXHJcbiAgICAgID8gdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lXHJcbiAgICAgIDogJ2NoaXB2YWx1ZSc7XHJcbiAgfVxyXG4gIHNlbGVjdGVkKCkge1xyXG4gICAgdGhpcy5PdXRwdXRkYXRhID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmo7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAgIHRoaXMuT3V0cHV0ZGF0YSA9IHRoaXMuY2hpcFNlbGVjdGVkSWQ7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCh0aGlzLmR5bmFtY2lmb3JtY29udHJvbHBhcmVudCgpKS5wYXRjaFZhbHVlKFxyXG4gICAgICAgIHRoaXMuZm9ybWtleWFyclxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2codGhpcy5mb3Jta2V5YXJyKTtcclxuICAgIGNvbnNvbGUubG9nKCd0aGlzLkRyb3Bkb3duRm9ybS5nZXQnLCB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZSk7XHJcbiAgICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuT3V0cHV0ZGF0YSk7XHJcblxyXG4gICAgLy8gbGV0IGRhdGEgPSB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZS52YWx1ZVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lndob2xlZGF0YSkge1xyXG4gICAgLy8gICB0aGlzLmRhdGFFdmVudC5lbWl0KHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICB0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXBcclxuICAgIC8vICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgLy8gICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICB9XHJcbiAgICAvLyAgIGVsc2Uge1xyXG4gICAgLy8gICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXAgJiYgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKSB7XHJcbiAgICAvLyAgICAgICB0aGlzLklucHV0RmllbGRzPy5mb3JtZ3JvdXBcclxuICAgIC8vICAgICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAgIC5wYXRjaFZhbHVlKHRoaXMuY2hpcFNlbGVjdGVkT2JqKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIHNlYXJjaHBhcmFtcyh2YWx1ZSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqLmluZGV4T2Yob2JqKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAgIHRoaXMuZm9ybWtleWFyci5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZygndGhpcy5mb3Jta2V5YXJyJywgdGhpcy5mb3Jta2V5YXJyKTtcclxuXHJcbiAgICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBmb3Jta2V5YXJyOmFueT1bXVxyXG4gIHB1YmxpYyB2ZW5TZWxlY3RlZChkYXRhKTogdm9pZCB7XHJcbiAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICBjb25zb2xlLmxvZygnZXZlbnQub3B0aW9uLnZhbHVlJywgZGF0YSk7XHJcbiAgICB0aGlzLnNlbGVjdHZlbkJ5TmFtZShcclxuICAgICAgZGF0YVt0aGlzLmNvbXBhcmVrZXkoZGF0YSldXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coJ2NoaXBTZWxlY3RlZHZlbmlkJywgdGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gIH1cclxuICBwcml2YXRlIHNlbGVjdHZlbkJ5TmFtZSh2ZW4pIHtcclxuICAgIGxldCBmb3VuZGVtcDEgPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5maWx0ZXIoXHJcbiAgICAgIChlKSA9PiBlW3RoaXMuY29tcGFyZWtleShlKV0gPT0gdmVuXHJcbiAgICApO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKFxyXG4gICAgICAoZSkgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlblxyXG4gICAgKTtcclxuICAgIGlmIChmb3VuZGVtcC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmoucHVzaChmb3VuZGVtcFswXSk7XHJcbiAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF1bdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdLmlkKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWtleSkge1xyXG4gICAgICAgIHRoaXMuZm9ybWtleWFyci5wdXNoKGZvdW5kZW1wWzBdW3RoaXMuSW5wdXRGaWVsZHM/LmZvcm1rZXldKTtcclxuICAgICAgfSBcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBhcmVrZXkoZSkge1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuSW5wdXRGaWVsZHM/LmNvbXBhcmVrZXk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoZT8uaWQpIHtcclxuICAgICAgICByZXR1cm4gJ2lkJztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcy5kaXNwbGF5a2V5O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -139,16 +139,19 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
139
139
  }
140
140
  }
141
141
  dupngonit() {
142
- var _a, _b, _c, _d, _e, _f;
142
+ var _a, _b, _c, _d, _e, _f, _g, _h;
143
143
  if (this.formGroup) {
144
144
  this.DropdownForm = this.formGroup;
145
145
  if (!this.DropdownForm.contains((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.formcontrolname)) {
146
146
  this.DropdownForm.addControl(this.dynamciformcontrolparent(), new FormControl({ value: [], disabled: (_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.disabled }));
147
147
  }
148
+ else {
149
+ ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.disabled) ? this.DropdownForm.get('chipvalue').disable() : '';
150
+ }
148
151
  }
149
152
  else {
150
153
  this.DropdownForm = this.fb.group({
151
- chipvalue: [],
154
+ chipvalue: [], disabled: (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.disabled
152
155
  });
153
156
  }
154
157
  console.log('this.DropdownForm', this.DropdownForm.value);
@@ -158,14 +161,14 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
158
161
  // ? this.DropdownForm.get(this.dynamciformcontrolparent()).value
159
162
  // : [];
160
163
  // console.log('this.chipSelectedObj', this.chipSelectedObj);
161
- if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.defaultvalue) {
164
+ if ((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.defaultvalue) {
162
165
  // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(
163
166
  // this.InputFields?.formkey
164
167
  // ? this.InputFields?.defaultvalue[this.InputFields?.formkey]
165
168
  // : this.InputFields?.defaultvalue
166
169
  // );
167
170
  // this.DropdownForm.get(this.dynamciformcontrolparent()).patchValue(this.InputFields?.defaultvalue);
168
- this.chipSelectedObj = (_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.defaultvalue;
171
+ this.chipSelectedObj = (_f = this.InputFields) === null || _f === void 0 ? void 0 : _f.defaultvalue;
169
172
  this.chipSelectedId = [];
170
173
  this.formkeyarr = [];
171
174
  if (this.chipSelectedObj.length > 0) {
@@ -182,9 +185,10 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
182
185
  this.looop();
183
186
  this.selected();
184
187
  }
185
- if ((_e = this.InputFields) === null || _e === void 0 ? void 0 : _e.fronentdata) {
186
- this.Dropdowndata = (_f = this.InputFields) === null || _f === void 0 ? void 0 : _f.data;
188
+ if ((_g = this.InputFields) === null || _g === void 0 ? void 0 : _g.fronentdata) {
189
+ this.Dropdowndata = (_h = this.InputFields) === null || _h === void 0 ? void 0 : _h.data;
187
190
  }
191
+ this.dropdownsearch();
188
192
  // else {
189
193
  // this.getdropdown('')
190
194
  // }
@@ -252,9 +256,11 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
252
256
  }
253
257
  dropdownsearch() {
254
258
  var _a;
255
- if (!((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
256
- this.DropdownForm.get('value')
257
- .valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
259
+ const controlName = this.dynamciformcontrolparent();
260
+ const control = this.DropdownForm.get(controlName);
261
+ if (control && !((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.fronentdata)) {
262
+ this.DropdownForm.get(this.dynamciformcontrolparent())
263
+ .valueChanges.pipe(debounceTime(200), distinctUntilChanged(), tap(() => {
258
264
  this.DrodownLoading = true;
259
265
  console.log('inside tap');
260
266
  }), switchMap((value) => {
@@ -380,13 +386,12 @@ let VsChipddCmpComponent = class VsChipddCmpComponent {
380
386
  if ((_a = this.InputFields) === null || _a === void 0 ? void 0 : _a.Outputkey) {
381
387
  this.chipSelectedId.push(foundemp[0][(_b = this.InputFields) === null || _b === void 0 ? void 0 : _b.Outputkey]);
382
388
  }
383
- if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formkey) {
384
- this.formkeyarr.push(foundemp[0][(_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formkey]);
385
- }
386
389
  else {
387
390
  this.chipSelectedId.push(foundemp[0].id);
388
391
  }
389
- console.log('formkeyarr12', this.formkeyarr);
392
+ if ((_c = this.InputFields) === null || _c === void 0 ? void 0 : _c.formkey) {
393
+ this.formkeyarr.push(foundemp[0][(_d = this.InputFields) === null || _d === void 0 ? void 0 : _d.formkey]);
394
+ }
390
395
  this.selected();
391
396
  }
392
397
  }
@@ -442,7 +447,7 @@ __decorate([
442
447
  VsChipddCmpComponent = __decorate([
443
448
  Component({
444
449
  selector: 'lib-vs-chipdd-cmp',
445
- template: "<div>\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-list multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip\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>\r\n <!-- class=\"matformfieldinputstyle\" -->\r\n <input\r\n #DropInput\r\n [matAutocomplete]=\"scrolll\"\r\n (keydown)=\"dropdownsearch()\"\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-list>\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</div>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n",
450
+ template: "<div>\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-list multiple #chipListvendor>\r\n <!-- class=\"mat-chipEx\" -->\r\n <mat-chip\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>\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-list>\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</div>\r\n<!-- (click)=\"selected()\"\r\n -->\r\n<!-- (optionSelected)=\"venSelected($event)\"\r\n -->\r\n",
446
451
  styles: [""]
447
452
  })
448
453
  ], VsChipddCmpComponent);
@@ -1 +1 @@
1
- {"version":3,"file":"unnilouis.org-vs-chipdropdown.js","sources":["ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.service.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.component.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.module.ts","ng://@unnilouis.org/vs-chipdropdown/public-api.ts","ng://@unnilouis.org/vs-chipdropdown/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,json={},params): Observable<any> {\r\n const getToken = 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,params=''): Observable<any> {\r\n const getToken = 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, OnInit } 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\n})\r\nexport class VsChipdropdownComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\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;\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;\r\n\r\n @ViewChild(MatAutocompleteTrigger)\r\n autocompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('scrolll') 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: 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 if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp.id);\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.DropdownForm = this.fb.group({\r\n chipvalue: [],\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 = this.InputFields?.defaultvalue;\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\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 // 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: any[]) => {\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 dropdownsearch() {\r\n if (!this.InputFields?.fronentdata) {\r\n this.DropdownForm.get('value')\r\n .valueChanges.pipe(\r\n debounceTime(100),\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) {\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 this.trigger.openPanel();\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) {\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) {\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 public venSelected(data): void {\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 formkeyarr: any = [];\r\n private selectvenByName(ven) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e) => 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) => 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 if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[0][this.InputFields?.formkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n console.log('formkeyarr12', this.formkeyarr);\r\n this.selected();\r\n }\r\n }\r\n comparekey(e) {\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","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'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unnilouis.org-vs-chipdropdown.js","sources":["ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.service.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.component.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","ng://@unnilouis.org/vs-chipdropdown/lib/vs-chipdropdown.module.ts","ng://@unnilouis.org/vs-chipdropdown/public-api.ts","ng://@unnilouis.org/vs-chipdropdown/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,json={},params): Observable<any> {\r\n const getToken = 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,params=''): Observable<any> {\r\n const getToken = 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, OnInit } 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\n})\r\nexport class VsChipdropdownComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\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;\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;\r\n\r\n @ViewChild(MatAutocompleteTrigger)\r\n autocompleteTrigger: MatAutocompleteTrigger;\r\n @ViewChild('scrolll') 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: 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 if (this.InputFields?.formkey) {\r\n this.formkeyarr.push(foundemp[this.InputFields?.formkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp.id);\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 = this.InputFields?.defaultvalue;\r\n this.chipSelectedId = [];\r\n this.formkeyarr = [];\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: any[]) => {\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 dropdownsearch() {\r\n const controlName = this.dynamciformcontrolparent();\r\n const control = this.DropdownForm.get(controlName);\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) {\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 this.trigger.openPanel();\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) {\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) {\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(data): void {\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) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e) => 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) => 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) {\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","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'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}