@unnilouis.org/vs-chipdropdown 17.0.4 → 17.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.mjs +76 -42
- package/esm2022/lib/vs-chipdropdown.service.mjs +1 -1
- package/fesm2022/unnilouis.org-vs-chipdropdown.mjs +72 -38
- package/fesm2022/unnilouis.org-vs-chipdropdown.mjs.map +1 -1
- package/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';
|
|
3
|
-
import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { MatAutocomplete, MatAutocompleteTrigger, } from '@angular/material/autocomplete';
|
|
3
|
+
import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from 'rxjs/operators';
|
|
4
4
|
import { fromEvent } from 'rxjs';
|
|
5
5
|
import { FormGroup } from '@angular/forms';
|
|
6
6
|
import { COMMA, ENTER } from '@angular/cdk/keycodes';
|
|
@@ -31,10 +31,11 @@ export class VsChipddCmpComponent {
|
|
|
31
31
|
this.DropdownForm = FormGroup;
|
|
32
32
|
this.chipSelectedId = [];
|
|
33
33
|
this.chipSelectedObj = [];
|
|
34
|
+
this.Outputdata = [];
|
|
34
35
|
}
|
|
35
36
|
ngOnInit() {
|
|
36
37
|
this.DropdownForm = this.fb.group({
|
|
37
|
-
value: ''
|
|
38
|
+
value: '',
|
|
38
39
|
});
|
|
39
40
|
// if (this.InputFields?.defaultvalue) {
|
|
40
41
|
// this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue)
|
|
@@ -60,10 +61,10 @@ export class VsChipddCmpComponent {
|
|
|
60
61
|
}
|
|
61
62
|
dupngonit() {
|
|
62
63
|
this.DropdownForm = this.fb.group({
|
|
63
|
-
value: ''
|
|
64
|
+
value: '',
|
|
64
65
|
});
|
|
65
66
|
if (this.InputFields?.defaultvalue) {
|
|
66
|
-
this.DropdownForm.get(
|
|
67
|
+
this.DropdownForm.get('value').patchValue(this.InputFields?.defaultvalue);
|
|
67
68
|
this.chipSelectedObj = this.InputFields?.defaultvalue;
|
|
68
69
|
if (this.chipSelectedObj.length > 0) {
|
|
69
70
|
for (let foundemp of this.chipSelectedObj) {
|
|
@@ -80,18 +81,18 @@ export class VsChipddCmpComponent {
|
|
|
80
81
|
if (this.InputFields?.fronentdata) {
|
|
81
82
|
this.Dropdowndata = this.InputFields?.data;
|
|
82
83
|
}
|
|
83
|
-
else {
|
|
84
|
-
|
|
85
|
-
}
|
|
84
|
+
// else {
|
|
85
|
+
// this.getdropdown('')
|
|
86
|
+
// }
|
|
86
87
|
}
|
|
87
88
|
ngOnChanges(changes) {
|
|
88
89
|
if (changes['InputFields'] && changes['InputFields'].currentValue) {
|
|
89
|
-
console.log(
|
|
90
|
+
console.log('Summary Log Changes');
|
|
90
91
|
this.currentpage = 1;
|
|
91
92
|
this.dupngonit();
|
|
92
93
|
}
|
|
93
94
|
if (changes['ResetForm'] && changes['ResetForm'].currentValue) {
|
|
94
|
-
console.log(
|
|
95
|
+
console.log('hitted');
|
|
95
96
|
this.DropdownForm.reset();
|
|
96
97
|
this.currentpage = 1;
|
|
97
98
|
this.dupngonit();
|
|
@@ -104,14 +105,14 @@ export class VsChipddCmpComponent {
|
|
|
104
105
|
// return key[clt];
|
|
105
106
|
// }
|
|
106
107
|
autocompleteAppScroll() {
|
|
107
|
-
if (!
|
|
108
|
+
if (!this.InputFields?.fronentdata) {
|
|
108
109
|
setTimeout(() => {
|
|
109
110
|
if (this.matAutocompleteApp &&
|
|
110
111
|
this.autocompleteTrigger &&
|
|
111
112
|
this.matAutocompleteApp.panel) {
|
|
112
113
|
fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
|
|
113
|
-
.pipe(map(x => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
|
|
114
|
-
.subscribe(x => {
|
|
114
|
+
.pipe(map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
|
|
115
|
+
.subscribe((x) => {
|
|
115
116
|
const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
|
|
116
117
|
const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
|
|
117
118
|
const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
|
|
@@ -122,12 +123,13 @@ export class VsChipddCmpComponent {
|
|
|
122
123
|
let params = this.searchparams(value);
|
|
123
124
|
this.currentpage = this.currentpage + 1;
|
|
124
125
|
if (this.currentpage > 1) {
|
|
125
|
-
this.service
|
|
126
|
+
this.service
|
|
127
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
126
128
|
.subscribe((results) => {
|
|
127
|
-
let datas = results[
|
|
128
|
-
let datapagination = results[
|
|
129
|
+
let datas = results['data'];
|
|
130
|
+
let datapagination = results['pagination'];
|
|
129
131
|
this.Dropdowndata = this.Dropdowndata.concat(datas);
|
|
130
|
-
console.log(
|
|
132
|
+
console.log('this.Dropdowndata', this.Dropdowndata);
|
|
131
133
|
if (this.Dropdowndata.length >= 0) {
|
|
132
134
|
this.has_next = datapagination.has_next;
|
|
133
135
|
this.has_previous = datapagination.has_previous;
|
|
@@ -143,18 +145,22 @@ export class VsChipddCmpComponent {
|
|
|
143
145
|
}
|
|
144
146
|
}
|
|
145
147
|
dropdownsearch() {
|
|
146
|
-
if (!
|
|
147
|
-
this.DropdownForm.get(
|
|
148
|
+
if (!this.InputFields?.fronentdata) {
|
|
149
|
+
this.DropdownForm.get('value')
|
|
150
|
+
.valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
|
|
148
151
|
this.DrodownLoading = true;
|
|
149
|
-
console.log(
|
|
152
|
+
console.log('inside tap');
|
|
150
153
|
}), switchMap((value) => {
|
|
151
154
|
let params = this.searchparams(value);
|
|
152
155
|
this.currentpage = 1;
|
|
153
|
-
return this.service
|
|
156
|
+
return this.service
|
|
157
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
158
|
+
.pipe(finalize(() => {
|
|
154
159
|
this.DrodownLoading = false;
|
|
155
160
|
}));
|
|
156
|
-
}))
|
|
157
|
-
|
|
161
|
+
}))
|
|
162
|
+
.subscribe((results) => {
|
|
163
|
+
let datas = results['data'];
|
|
158
164
|
this.Dropdowndata = datas;
|
|
159
165
|
});
|
|
160
166
|
}
|
|
@@ -162,10 +168,11 @@ export class VsChipddCmpComponent {
|
|
|
162
168
|
getdropdown(value) {
|
|
163
169
|
if (this.InputFields.url) {
|
|
164
170
|
let params = this.searchparams(value);
|
|
165
|
-
this.service
|
|
171
|
+
this.service
|
|
172
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
166
173
|
.subscribe((results) => {
|
|
167
|
-
let datas = results[
|
|
168
|
-
let datapagination = results[
|
|
174
|
+
let datas = results['data'];
|
|
175
|
+
let datapagination = results['pagination'];
|
|
169
176
|
this.Dropdowndata = datas;
|
|
170
177
|
if (this.Dropdowndata.length >= 0) {
|
|
171
178
|
this.has_next = datapagination.has_next;
|
|
@@ -176,18 +183,43 @@ export class VsChipddCmpComponent {
|
|
|
176
183
|
}
|
|
177
184
|
}
|
|
178
185
|
selected() {
|
|
179
|
-
|
|
180
|
-
if (this.InputFields?.
|
|
181
|
-
this.
|
|
186
|
+
this.Outputdata = this.chipSelectedObj;
|
|
187
|
+
if (this.InputFields?.Outputkey) {
|
|
188
|
+
this.Outputdata = this.chipSelectedId;
|
|
182
189
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
else {
|
|
188
|
-
this.dataEvent.emit(this.chipSelectedObj);
|
|
189
|
-
}
|
|
190
|
+
if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
191
|
+
this.InputFields?.formgroup
|
|
192
|
+
.get(this.InputFields?.formcontrolname)
|
|
193
|
+
.patchValue(this.Outputdata);
|
|
190
194
|
}
|
|
195
|
+
this.dataEvent.emit(this.Outputdata);
|
|
196
|
+
// let data = this.DropdownForm.value.value
|
|
197
|
+
// if (this.InputFields?.wholedata) {
|
|
198
|
+
// this.dataEvent.emit(this.chipSelectedObj);
|
|
199
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
200
|
+
// this.InputFields?.formgroup
|
|
201
|
+
// .get(this.InputFields?.formcontrolname)
|
|
202
|
+
// .patchValue(this.chipSelectedObj);
|
|
203
|
+
// }
|
|
204
|
+
// }
|
|
205
|
+
// else {
|
|
206
|
+
// if (this.InputFields?.Outputkey) {
|
|
207
|
+
// this.dataEvent.emit(this.chipSelectedId);
|
|
208
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
209
|
+
// this.InputFields?.formgroup
|
|
210
|
+
// .get(this.InputFields?.formcontrolname)
|
|
211
|
+
// .patchValue(this.chipSelectedId);
|
|
212
|
+
// }
|
|
213
|
+
// }
|
|
214
|
+
// else {
|
|
215
|
+
// this.dataEvent.emit(this.chipSelectedObj);
|
|
216
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
217
|
+
// this.InputFields?.formgroup
|
|
218
|
+
// .get(this.InputFields?.formcontrolname)
|
|
219
|
+
// .patchValue(this.chipSelectedObj);
|
|
220
|
+
// }
|
|
221
|
+
// }
|
|
222
|
+
// }
|
|
191
223
|
}
|
|
192
224
|
searchparams(value) {
|
|
193
225
|
let params = '';
|
|
@@ -195,7 +227,9 @@ export class VsChipddCmpComponent {
|
|
|
195
227
|
params = this.InputFields.params;
|
|
196
228
|
}
|
|
197
229
|
let inpValue = value;
|
|
198
|
-
inpValue
|
|
230
|
+
inpValue
|
|
231
|
+
? (params += '&' + this.InputFields.searchkey + '=' + inpValue)
|
|
232
|
+
: '';
|
|
199
233
|
return params;
|
|
200
234
|
}
|
|
201
235
|
removechip(obj) {
|
|
@@ -237,7 +271,7 @@ export class VsChipddCmpComponent {
|
|
|
237
271
|
}
|
|
238
272
|
else {
|
|
239
273
|
if (e?.id) {
|
|
240
|
-
return
|
|
274
|
+
return 'id';
|
|
241
275
|
}
|
|
242
276
|
else {
|
|
243
277
|
return this.InputFields.displaykey;
|
|
@@ -245,11 +279,11 @@ export class VsChipddCmpComponent {
|
|
|
245
279
|
}
|
|
246
280
|
}
|
|
247
281
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: i1.VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
248
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields", ResetForm: "ResetForm", Backendapi: "Backendapi" }, outputs: { dataEvent: "dataEvent" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "matAutocompleteApp", first: true, predicate: ["scrolll"], descendants: true }, { propertyName: "DropInput", first: true, predicate: ["DropInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
282
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields", ResetForm: "ResetForm", Backendapi: "Backendapi" }, outputs: { dataEvent: "dataEvent" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "matAutocompleteApp", first: true, predicate: ["scrolll"], descendants: true }, { propertyName: "DropInput", first: true, predicate: ["DropInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
249
283
|
}
|
|
250
284
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
|
|
251
285
|
type: Component,
|
|
252
|
-
args: [{ selector: 'lib-vs-chipdd-cmp', template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"] }]
|
|
286
|
+
args: [{ selector: 'lib-vs-chipdd-cmp', template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"] }]
|
|
253
287
|
}], ctorParameters: () => [{ type: i1.VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
|
|
254
288
|
type: Input
|
|
255
289
|
}], ResetForm: [{
|
|
@@ -268,4 +302,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
268
302
|
type: ViewChild,
|
|
269
303
|
args: ['DropInput']
|
|
270
304
|
}] } });
|
|
271
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQWdDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZILE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBTXJELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsT0FBOEIsRUFBVSxFQUFlO1FBQXZELFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUQzRSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUl2QixlQUFVLEdBQVksSUFBSSxDQUFBO1FBRUEsd0JBQW1CLEdBQU0sc0JBQXNCLENBQUM7UUFDN0QsdUJBQWtCLEdBQU0sZUFBZSxDQUFFO1FBQ3JELGNBQVMs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QUNWLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlLCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgdGFwLFxyXG4gIGZpbHRlcixcclxuICBzd2l0Y2hNYXAsXHJcbiAgZmluYWxpemUsXHJcbiAgdGFrZVVudGlsLFxyXG4gIG1hcCxcclxufSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZzQ2hpcGRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVnNDaGlwZGRDbXBDb21wb25lbnQge1xyXG4gIERyb2Rvd25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cclxuICBASW5wdXQoKSBJbnB1dEZpZWxkczogYW55XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnlcclxuICBASW5wdXQoKSBCYWNrZW5kYXBpOiBib29sZWFuID0gdHJ1ZVxyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpIGF1dG9jb21wbGV0ZVRyaWdnZXI6YW55PSBNYXRBdXRvY29tcGxldGVUcmlnZ2VyO1xyXG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKSBtYXRBdXRvY29tcGxldGVBcHA6YW55PSBNYXRBdXRvY29tcGxldGUgO1xyXG4gIEBPdXRwdXQoKSBkYXRhRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQFZpZXdDaGlsZCgnRHJvcElucHV0JykgRHJvcElucHV0OiBhbnk7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yc0tleXNDb2RlczogbnVtYmVyW10gPSBbRU5URVIsIENPTU1BXTtcclxuXHJcbiAgaGFzX25leHQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50cGFnZTogbnVtYmVyID0gMTtcclxuICBEcm9wZG93bmRhdGE6IGFueSA9IFtdO1xyXG4gIGhhc19wcmV2aW91czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIERyb3Bkb3duRm9ybTphbnk9IEZvcm1Hcm91cFxyXG4gIGNoaXBTZWxlY3RlZElkOiBhbnkgPSBbXTtcclxuICBjaGlwU2VsZWN0ZWRPYmo6IGFueSA9IFtdXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdmFsdWU6ICcnXHJcbiAgICB9KVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXCJ2YWx1ZVwiKS5wYXRjaFZhbHVlKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSlcclxuICAgIC8vICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWVcclxuICAgIC8vICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICBmb3IgKGxldCBmb3VuZGVtcCBvZiB0aGlzLmNoaXBTZWxlY3RlZE9iaikge1xyXG4gICAgLy8gICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSlcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgICBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKVxyXG5cclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICAvLyAgIH1cclxuXHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgLy8gfVxyXG4gIH1cclxuICBkdXBuZ29uaXQoKXtcclxuICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHZhbHVlOiAnJ1xyXG4gICAgfSlcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpXHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkT2JqID0gdGhpcy5JbnB1dEZpZWxkcz8uZGVmYXVsdHZhbHVlXHJcbiAgICAgIGlmICh0aGlzLmNoaXBTZWxlY3RlZE9iai5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgZm9yIChsZXQgZm91bmRlbXAgb2YgdGhpcy5jaGlwU2VsZWN0ZWRPYmopIHtcclxuICAgICAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wW3RoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleV0pXHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcC5pZClcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQoKVxyXG4gICAgICB9XHJcblxyXG5cclxuICAgIH1cclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGFcclxuXHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRkcm9wZG93bignJylcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ0lucHV0RmllbGRzJ10gJiYgY2hhbmdlc1snSW5wdXRGaWVsZHMnXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJTdW1tYXJ5IExvZyBDaGFuZ2VzXCIpXHJcbiAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxXHJcbiAgICAgIHRoaXMuZHVwbmdvbml0KClcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydSZXNldEZvcm0nXSAmJiBjaGFuZ2VzWydSZXNldEZvcm0nXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJoaXR0ZWRcIilcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0ucmVzZXQoKVxyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMVxyXG4gICAgICB0aGlzLmR1cG5nb25pdCgpXHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSBbXVxyXG4gICAgICB0aGlzLmRhdGFFdmVudC5lbWl0KFtdKTtcclxuXHJcblxyXG4gICAgfVxyXG4gIH1cclxuICAvLyBwdWJsaWMgZGlzcGxheWRldmVsb3BjbGllbnQoY2x0OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgLy8gICByZXR1cm4ga2V5W2NsdF07XHJcbiAgLy8gfVxyXG4gIGF1dG9jb21wbGV0ZUFwcFNjcm9sbCgpIHtcclxuICAgIGlmICghKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcCAmJlxyXG4gICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyICYmXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZnJvbUV2ZW50KHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBtYXAoeCA9PiB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCksXHJcbiAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlci5wYW5lbENsb3NpbmdBY3Rpb25zIGFzIE9ic2VydmFibGU8YW55PilcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHggPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRIZWlnaHQgPSB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIDEgPD0gc2Nyb2xsVG9wICsgZWxlbWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoYXRCb3R0b20pIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc19uZXh0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWVcclxuICAgICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gdGhpcy5jdXJyZW50cGFnZSArIDFcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudHBhZ2UgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArIFwiP3BhZ2U9XCIgKyB0aGlzLmN1cnJlbnRwYWdlLCBwYXJhbXMpXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1tcImRhdGFcIl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbXCJwYWdpbmF0aW9uXCJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuRHJvcGRvd25kYXRhLmNvbmNhdChkYXRhcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwidGhpcy5Ecm9wZG93bmRhdGFcIiwgdGhpcy5Ecm9wZG93bmRhdGEpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBpZiAoISh0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkpIHtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICAgICAgZGVib3VuY2VUaW1lKDEwMCksXHJcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5Ecm9kb3duTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImluc2lkZSB0YXBcIik7XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgbGV0IHBhcmFtcyA9IHRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKTtcclxuICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxXHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArIFwiP3BhZ2U9XCIgKyB0aGlzLmN1cnJlbnRwYWdlLCBwYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICkuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzW1wiZGF0YVwiXTtcclxuICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGdldGRyb3Bkb3duKHZhbHVlOmFueSkge1xyXG4gICAgaWYodGhpcy5JbnB1dEZpZWxkcy51cmwpe1xyXG4gICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpXHJcbiAgICB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgXCI/cGFnZT1cIiArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1tcImRhdGFcIl07XHJcbiAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1tcInBhZ2luYXRpb25cIl07XHJcbiAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhc1xyXG4gICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuICBzZWxlY3RlZCgpIHtcclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUudmFsdWVcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy53aG9sZWRhdGEpIHtcclxuICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzZWFyY2hwYXJhbXModmFsdWU6YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0gJydcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzLnBhcmFtcykge1xyXG4gICAgICBwYXJhbXMgPSB0aGlzLklucHV0RmllbGRzLnBhcmFtc1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWVcclxuICAgIGlucFZhbHVlID8gcGFyYW1zICs9ICcmJyArIHRoaXMuSW5wdXRGaWVsZHMuc2VhcmNoa2V5ICsgJz0nICsgaW5wVmFsdWUgOiAnJ1xyXG4gICAgcmV0dXJuIHBhcmFtc1xyXG4gIH1cclxuICByZW1vdmVjaGlwKG9iajphbnkpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouaW5kZXhPZihvYmopO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcblxyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBwdWJsaWMgdmVuU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIGNvbnNvbGUubG9nKCdldmVudC5vcHRpb24udmFsdWUnLCBldmVudC5vcHRpb24udmFsdWUpXHJcbiAgICB0aGlzLnNlbGVjdHZlbkJ5TmFtZShldmVudC5vcHRpb24udmFsdWVbdGhpcy5jb21wYXJla2V5KGV2ZW50Lm9wdGlvbi52YWx1ZSldKTtcclxuICAgIGNvbnNvbGUubG9nKCdjaGlwU2VsZWN0ZWR2ZW5pZCcsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKVxyXG4gIH1cclxuICBwcml2YXRlIHNlbGVjdHZlbkJ5TmFtZSh2ZW46YW55KSB7XHJcbiAgICBsZXQgZm91bmRlbXAxID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouZmlsdGVyKChlOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4pO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKChlOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4pO1xyXG4gICAgaWYgKGZvdW5kZW1wLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5wdXNoKGZvdW5kZW1wWzBdKTtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF0uaWQpXHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBhcmVrZXkoZTphbnkpIHtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGU/LmlkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiaWRcIlxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufSIsIjxkaXY+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkRyb3Bkb3duRm9ybVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1jaGlwU2Nyb2xsXCJcclxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7SW5wdXRGaWVsZHM/LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLWdyaWQgbXVsdGlwbGUgI2NoaXBMaXN0dmVuZG9yIGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IG9iaiBvZiBjaGlwU2VsZWN0ZWRPYmpcIiBbcmVtb3ZhYmxlXT1cInRydWVcIiAocmVtb3ZlZCk9XCJyZW1vdmVjaGlwKG9iailcIiBjbGFzcz1cIm1hdC1jaGlwRXhcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvYmpbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0ICNEcm9wSW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJzY3JvbGxsXCIgY2xhc3M9XCJtYXRmb3JtZmllbGRpbnB1dHN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJkcm9wZG93bnNlYXJjaCgpXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdHZlbmRvclwiIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yc0tleXNDb2Rlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzY3JvbGxsPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInZlblNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJhdXRvY29tcGxldGVBcHBTY3JvbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZHJvcHZhbHVlcyBvZiBEcm9wZG93bmRhdGFcIiBbdmFsdWVdPVwiZHJvcHZhbHVlc1wiIChjbGljayk9XCJzZWxlY3RlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZHJvcHZhbHVlc1tJbnB1dEZpZWxkcz8uZGlzcGxheWtleV19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
305
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFFTCxlQUFlLEVBQ2Ysc0JBQXNCLEdBQ3ZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUNMLFlBQVksRUFDWixvQkFBb0IsRUFDcEIsR0FBRyxFQUVILFNBQVMsRUFDVCxRQUFRLEVBQ1IsU0FBUyxFQUNULEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBNEIsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFNckQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUNVLE9BQThCLEVBQzlCLEVBQWU7UUFEZixZQUFPLEdBQVAsT0FBTyxDQUF1QjtRQUM5QixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBSHpCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT3ZCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFHcEMsd0JBQW1CLEdBQU0sc0JBQXNCLENBQUM7UUFDMUIsdUJBQWtCLEdBQU8sZUFBZSxDQUFDO1FBQ3JELGNBQVMs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LENBQUM7WUFDTixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDVixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0E5U1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsNk9BVXBCLHNCQUFzQiw4UEMxQ25DLG9sREEwQkE7OzJGRE1hLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7b0hBVXBCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdOLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRVgsa0JBQWtCO3NCQUF2QyxTQUFTO3VCQUFDLFNBQVM7Z0JBQ1YsU0FBUztzQkFBbEIsTUFBTTtnQkFDaUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LFxyXG4gIE1hdEF1dG9jb21wbGV0ZSxcclxuICBNYXRBdXRvY29tcGxldGVUcmlnZ2VyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7XHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxyXG4gIHRhcCxcclxuICBmaWx0ZXIsXHJcbiAgc3dpdGNoTWFwLFxyXG4gIGZpbmFsaXplLFxyXG4gIHRha2VVbnRpbCxcclxuICBtYXAsXHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIH0gZnJvbSAnLi4vdnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuICBASW5wdXQoKSBJbnB1dEZpZWxkczogYW55O1xyXG4gIEBJbnB1dCgpIFJlc2V0Rm9ybTogYW55O1xyXG4gIEBJbnB1dCgpIEJhY2tlbmRhcGk6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpXHJcbiAgYXV0b2NvbXBsZXRlVHJpZ2dlcjphbnk9IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XHJcbiAgQFZpZXdDaGlsZCgnc2Nyb2xsbCcpIG1hdEF1dG9jb21wbGV0ZUFwcDphbnkgPSBNYXRBdXRvY29tcGxldGU7XHJcbiAgQE91dHB1dCgpIGRhdGFFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAVmlld0NoaWxkKCdEcm9wSW5wdXQnKSBEcm9wSW5wdXQ6IGFueTtcclxuICByZWFkb25seSBzZXBhcmF0b3JzS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUFdO1xyXG5cclxuICBoYXNfbmV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGN1cnJlbnRwYWdlOiBudW1iZXIgPSAxO1xyXG4gIERyb3Bkb3duZGF0YTogYW55ID0gW107XHJcbiAgaGFzX3ByZXZpb3VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgRHJvcGRvd25Gb3JtOmFueT0gRm9ybUdyb3VwO1xyXG4gIGNoaXBTZWxlY3RlZElkOiBhbnkgPSBbXTtcclxuICBjaGlwU2VsZWN0ZWRPYmo6IGFueSA9IFtdO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHZhbHVlOiAnJyxcclxuICAgIH0pO1xyXG4gICAgLy8gaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgLy8gICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXCJ2YWx1ZVwiKS5wYXRjaFZhbHVlKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSlcclxuICAgIC8vICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWVcclxuICAgIC8vICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgIC8vICAgICBmb3IgKGxldCBmb3VuZGVtcCBvZiB0aGlzLmNoaXBTZWxlY3RlZE9iaikge1xyXG4gICAgLy8gICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgLy8gICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSlcclxuXHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgICBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKVxyXG5cclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICAvLyAgIH1cclxuXHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpIHtcclxuICAgIC8vICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLklucHV0RmllbGRzPy5kYXRhXHJcblxyXG4gICAgLy8gfVxyXG4gICAgLy8gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIGR1cG5nb25pdCgpIHtcclxuICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHZhbHVlOiAnJyxcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoJ3ZhbHVlJykucGF0Y2hWYWx1ZSh0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWUpO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZTtcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGxldCBmb3VuZGVtcCBvZiB0aGlzLmNoaXBTZWxlY3RlZE9iaikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXAuaWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNlbGVjdGVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IHRoaXMuSW5wdXRGaWVsZHM/LmRhdGE7XHJcbiAgICB9XHJcbiAgICAvLyBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5nZXRkcm9wZG93bignJylcclxuICAgIC8vIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ0lucHV0RmllbGRzJ10gJiYgY2hhbmdlc1snSW5wdXRGaWVsZHMnXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coJ1N1bW1hcnkgTG9nIENoYW5nZXMnKTtcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZHVwbmdvbml0KCk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snUmVzZXRGb3JtJ10gJiYgY2hhbmdlc1snUmVzZXRGb3JtJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCdoaXR0ZWQnKTtcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0ucmVzZXQoKTtcclxuICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDE7XHJcbiAgICAgIHRoaXMuZHVwbmdvbml0KCk7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQgPSBbXTtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSBbXTtcclxuICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdChbXSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBkaXNwbGF5ZGV2ZWxvcGNsaWVudChjbHQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBrZXlbY2x0XTtcclxuICAvLyB9XHJcbiAgYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKCkge1xyXG4gICAgaWYgKCF0aGlzLklucHV0RmllbGRzPy5mcm9uZW50ZGF0YSkge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcCAmJlxyXG4gICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyICYmXHJcbiAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZnJvbUV2ZW50KHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKHgpID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxDbG9zaW5nQWN0aW9ucyBhcyBPYnNlcnZhYmxlPGFueT5cclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHNjcm9sbFRvcCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcclxuICAgICAgICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPVxyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBjb25zdCBhdEJvdHRvbSA9IHNjcm9sbEhlaWdodCAtIDEgPD0gc2Nyb2xsVG9wICsgZWxlbWVudEhlaWdodDtcclxuICAgICAgICAgICAgICBpZiAoYXRCb3R0b20pIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc19uZXh0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSB0aGlzLmN1cnJlbnRwYWdlICsgMTtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudHBhZ2UgPiAxKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAuR2V0QXBpKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLklucHV0RmllbGRzLnVybCArICc/cGFnZT0nICsgdGhpcy5jdXJyZW50cGFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1snZGF0YSddO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzWydwYWdpbmF0aW9uJ107XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3RoaXMuRHJvcGRvd25kYXRhJywgdGhpcy5Ecm9wZG93bmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19uZXh0ID0gZGF0YXBhZ2luYXRpb24uaGFzX25leHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZHJvcGRvd25zZWFyY2goKSB7XHJcbiAgICBpZiAoIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25Gb3JtLmdldCgndmFsdWUnKVxyXG4gICAgICAgIC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnaW5zaWRlIHRhcCcpO1xyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSAxO1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlXHJcbiAgICAgICAgICAgICAgLkdldEFwaShcclxuICAgICAgICAgICAgICAgIHRoaXMuSW5wdXRGaWVsZHMudXJsICsgJz9wYWdlPScgKyB0aGlzLmN1cnJlbnRwYWdlLFxyXG4gICAgICAgICAgICAgICAgcGFyYW1zXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgIClcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldGRyb3Bkb3duKHZhbHVlOmFueSkge1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMudXJsKSB7XHJcbiAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAgIC5HZXRBcGkodGhpcy5JbnB1dEZpZWxkcy51cmwgKyAnP3BhZ2U9JyArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgICAuc3Vic2NyaWJlKChyZXN1bHRzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbJ2RhdGEnXTtcclxuICAgICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbJ3BhZ2luYXRpb24nXTtcclxuICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgICAgICBpZiAodGhpcy5Ecm9wZG93bmRhdGEubGVuZ3RoID49IDApIHtcclxuICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IGRhdGFwYWdpbmF0aW9uLmluZGV4O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBPdXRwdXRkYXRhOiBhbnkgPSBbXTtcclxuICBzZWxlY3RlZCgpIHtcclxuICAgIHRoaXMuT3V0cHV0ZGF0YSA9IHRoaXMuY2hpcFNlbGVjdGVkT2JqO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICB0aGlzLk91dHB1dGRhdGEgPSB0aGlzLmNoaXBTZWxlY3RlZElkO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5PdXRwdXRkYXRhKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5PdXRwdXRkYXRhKTtcclxuXHJcbiAgICAvLyBsZXQgZGF0YSA9IHRoaXMuRHJvcGRvd25Gb3JtLnZhbHVlLnZhbHVlXHJcbiAgICAvLyBpZiAodGhpcy5JbnB1dEZpZWxkcz8ud2hvbGVkYXRhKSB7XHJcbiAgICAvLyAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgLmdldCh0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpXHJcbiAgICAvLyAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuICAgIC8vIGVsc2Uge1xyXG4gICAgLy8gICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5KSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwICYmIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSkge1xyXG4gICAgLy8gICAgICAgdGhpcy5JbnB1dEZpZWxkcz8uZm9ybWdyb3VwXHJcbiAgICAvLyAgICAgICAgIC5nZXQodGhpcy5JbnB1dEZpZWxkcz8uZm9ybWNvbnRyb2xuYW1lKVxyXG4gICAgLy8gICAgICAgICAucGF0Y2hWYWx1ZSh0aGlzLmNoaXBTZWxlY3RlZElkKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgIH1cclxuICAgIC8vICAgZWxzZSB7XHJcbiAgICAvLyAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAvLyAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cCAmJiB0aGlzLklucHV0RmllbGRzPy5mb3JtY29udHJvbG5hbWUpIHtcclxuICAgIC8vICAgICAgIHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1ncm91cFxyXG4gICAgLy8gICAgICAgICAuZ2V0KHRoaXMuSW5wdXRGaWVsZHM/LmZvcm1jb250cm9sbmFtZSlcclxuICAgIC8vICAgICAgICAgLnBhdGNoVmFsdWUodGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfVxyXG5cclxuICAgIC8vIH1cclxuICB9XHJcbiAgc2VhcmNocGFyYW1zKHZhbHVlOmFueSkge1xyXG4gICAgbGV0IHBhcmFtcyA9ICcnO1xyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zKSB7XHJcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zO1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWU7XHJcbiAgICBpbnBWYWx1ZVxyXG4gICAgICA/IChwYXJhbXMgKz0gJyYnICsgdGhpcy5JbnB1dEZpZWxkcy5zZWFyY2hrZXkgKyAnPScgKyBpbnBWYWx1ZSlcclxuICAgICAgOiAnJztcclxuICAgIHJldHVybiBwYXJhbXM7XHJcbiAgfVxyXG4gIHJlbW92ZWNoaXAob2JqOmFueSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNoaXBTZWxlY3RlZE9iai5pbmRleE9mKG9iaik7XHJcblxyXG4gICAgaWYgKGluZGV4ID49IDApIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmouc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuY2hpcFNlbGVjdGVkSWQpO1xyXG4gICAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIHZlblNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLkRyb3BJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XHJcbiAgICBjb25zb2xlLmxvZygnZXZlbnQub3B0aW9uLnZhbHVlJywgZXZlbnQub3B0aW9uLnZhbHVlKTtcclxuICAgIHRoaXMuc2VsZWN0dmVuQnlOYW1lKFxyXG4gICAgICBldmVudC5vcHRpb24udmFsdWVbdGhpcy5jb21wYXJla2V5KGV2ZW50Lm9wdGlvbi52YWx1ZSldXHJcbiAgICApO1xyXG4gICAgY29uc29sZS5sb2coJ2NoaXBTZWxlY3RlZHZlbmlkJywgdGhpcy5jaGlwU2VsZWN0ZWRPYmopO1xyXG4gIH1cclxuICBwcml2YXRlIHNlbGVjdHZlbkJ5TmFtZSh2ZW46YW55KSB7XHJcbiAgICBsZXQgZm91bmRlbXAxID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouZmlsdGVyKFxyXG4gICAgICAoZTphbnkpID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW5cclxuICAgICk7XHJcbiAgICBpZiAoZm91bmRlbXAxLmxlbmd0aCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgZm91bmRlbXAgPSB0aGlzLkRyb3Bkb3duZGF0YS5maWx0ZXIoXHJcbiAgICAgIChlOmFueSkgPT4gZVt0aGlzLmNvbXBhcmVrZXkoZSldID09IHZlblxyXG4gICAgKTtcclxuICAgIGlmIChmb3VuZGVtcC5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmoucHVzaChmb3VuZGVtcFswXSk7XHJcbiAgICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXkpIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF1bdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wWzBdLmlkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBjb21wYXJla2V5KGU6YW55KSB7XHJcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5JbnB1dEZpZWxkcz8uY29tcGFyZWtleTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChlPy5pZCkge1xyXG4gICAgICAgIHJldHVybiAnaWQnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAoY2xpY2spPVwiIXRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhID8gdGhpcy5nZXRkcm9wZG93bignJyk6JycgXCI+XHJcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cIkRyb3Bkb3duRm9ybVwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cIm1hdC1jaGlwU2Nyb2xsXCJcclxuICAgICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7SW5wdXRGaWVsZHM/LmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLWdyaWQgbXVsdGlwbGUgI2NoaXBMaXN0dmVuZG9yIGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IG9iaiBvZiBjaGlwU2VsZWN0ZWRPYmpcIiBbcmVtb3ZhYmxlXT1cInRydWVcIiAocmVtb3ZlZCk9XCJyZW1vdmVjaGlwKG9iailcIiBjbGFzcz1cIm1hdC1jaGlwRXhcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBvYmpbSW5wdXRGaWVsZHM/LmRpc3BsYXlrZXldIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgICAgICAgPGlucHV0ICNEcm9wSW5wdXQgW21hdEF1dG9jb21wbGV0ZV09XCJzY3JvbGxsXCIgY2xhc3M9XCJtYXRmb3JtZmllbGRpbnB1dHN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJkcm9wZG93bnNlYXJjaCgpXCIgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdHZlbmRvclwiIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yc0tleXNDb2Rlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCIgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiAvPlxyXG4gICAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XHJcbiAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNzY3JvbGxsPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInZlblNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJhdXRvY29tcGxldGVBcHBTY3JvbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZHJvcHZhbHVlcyBvZiBEcm9wZG93bmRhdGFcIiBbdmFsdWVdPVwiZHJvcHZhbHVlc1wiIChjbGljayk9XCJzZWxlY3RlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZHJvcHZhbHVlc1tJbnB1dEZpZWxkcz8uZGlzcGxheWtleV19fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -42,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
|
42
42
|
providedIn: 'root'
|
|
43
43
|
}]
|
|
44
44
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRyb3Bkb3duLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZHJvcGRvd24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBQUksQ0FBQztJQUN6QyxPQUFPLENBQUMsTUFBVSxFQUFDLElBQUksR0FBQyxFQUFFLEVBQUMsTUFBVTtRQUNuQyxNQUFNLFFBQVEsR0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEMsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBQyxNQUFNLENBQUMsQ0FBQTtRQUM1QixJQUFJLFFBQVEsR0FBQyxFQUFFLENBQUE7UUFDZixJQUFHLE1BQU0sS0FBRyxTQUFTLElBQUksTUFBTSxLQUFHLElBQUksSUFBSSxNQUFNLEtBQUcsRUFBRSxFQUFDLENBQUM7WUFDckQsUUFBUSxHQUFDLE1BQU0sQ0FBQTtRQUNqQixDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ3BELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQU0sTUFBTSxHQUFDLFFBQVEsRUFBQyxJQUFJLEVBQUU7WUFDL0MsT0FBTyxFQUFFLE9BQU87U0FFakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFVLEVBQUMsTUFBTSxHQUFDLEVBQUU7UUFDekIsTUFBTSxRQUFRLEdBQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUMsTUFBTSxDQUFDLENBQUE7UUFDNUIsSUFBSSxRQUFRLEdBQUMsRUFBRSxDQUFBO1FBQ2YsSUFBRyxNQUFNLEtBQUcsU0FBUyxJQUFJLE1BQU0sS0FBRyxJQUFJLElBQUksTUFBTSxLQUFHLEVBQUUsRUFBQyxDQUFDO1lBQ3JELFFBQVEsR0FBQyxNQUFNLENBQUE7UUFDakIsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLEVBQUUsYUFBYSxFQUFFLFFBQVEsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLE1BQU0sR0FBQyxRQUFRLEVBQUM7WUFDeEMsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EvQlUscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTs7MkZBRVAscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVnNDaGlwZHJvcGRvd25TZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuICBwb3N0QXBpKEFwaXVybDphbnksanNvbj17fSxwYXJhbXM6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IGdldFRva2VuOmFueSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwic2Vzc2lvbkRhdGFcIik7XHJcbiAgICBsZXQgdG9rZW5WYWx1ZSA9IEpTT04ucGFyc2UoZ2V0VG9rZW4pO1xyXG4gICAgbGV0IHRva2VuID0gdG9rZW5WYWx1ZS50b2tlbjtcclxuICAgIGNvbnNvbGUubG9nKFwicGFyYW1zXCIscGFyYW1zKVxyXG4gICAgbGV0IHBhcmFkYXRhPScnXHJcbiAgICBpZihwYXJhbXMhPT11bmRlZmluZWQgJiYgcGFyYW1zIT09bnVsbCAmJiBwYXJhbXMhPT0nJyl7XHJcbiAgICAgIHBhcmFkYXRhPXBhcmFtc1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGVhZGVycyA9IHsgQXV0aG9yaXphdGlvbjogXCJUb2tlbiBcIiArIHRva2VuIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihBcGl1cmwrcGFyYWRhdGEsanNvbiAse1xyXG4gICAgICBoZWFkZXJzOiBoZWFkZXJzLFxyXG4gICAgICBcclxuICAgIH0pO1xyXG4gIH1cclxuICBHZXRBcGkoQXBpdXJsOmFueSxwYXJhbXM9JycpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgZ2V0VG9rZW46YW55ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJzZXNzaW9uRGF0YVwiKTtcclxuICAgIGxldCB0b2tlblZhbHVlID0gSlNPTi5wYXJzZShnZXRUb2tlbik7XHJcbiAgICBsZXQgdG9rZW4gPSB0b2tlblZhbHVlLnRva2VuO1xyXG4gICAgY29uc29sZS5sb2coXCJwYXJhbXNcIixwYXJhbXMpXHJcbiAgICBsZXQgcGFyYWRhdGE9JydcclxuICAgIGlmKHBhcmFtcyE9PXVuZGVmaW5lZCAmJiBwYXJhbXMhPT1udWxsICYmIHBhcmFtcyE9PScnKXtcclxuICAgICAgcGFyYWRhdGE9cGFyYW1zXHJcbiAgICB9XHJcbiAgICBjb25zdCBoZWFkZXJzID0geyBBdXRob3JpemF0aW9uOiBcIlRva2VuIFwiICsgdG9rZW4gfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oQXBpdXJsK3BhcmFkYXRhLHtcclxuICAgICAgaGVhZGVyczogaGVhZGVycyxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -101,10 +101,11 @@ class VsChipddCmpComponent {
|
|
|
101
101
|
this.DropdownForm = FormGroup;
|
|
102
102
|
this.chipSelectedId = [];
|
|
103
103
|
this.chipSelectedObj = [];
|
|
104
|
+
this.Outputdata = [];
|
|
104
105
|
}
|
|
105
106
|
ngOnInit() {
|
|
106
107
|
this.DropdownForm = this.fb.group({
|
|
107
|
-
value: ''
|
|
108
|
+
value: '',
|
|
108
109
|
});
|
|
109
110
|
// if (this.InputFields?.defaultvalue) {
|
|
110
111
|
// this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue)
|
|
@@ -130,10 +131,10 @@ class VsChipddCmpComponent {
|
|
|
130
131
|
}
|
|
131
132
|
dupngonit() {
|
|
132
133
|
this.DropdownForm = this.fb.group({
|
|
133
|
-
value: ''
|
|
134
|
+
value: '',
|
|
134
135
|
});
|
|
135
136
|
if (this.InputFields?.defaultvalue) {
|
|
136
|
-
this.DropdownForm.get(
|
|
137
|
+
this.DropdownForm.get('value').patchValue(this.InputFields?.defaultvalue);
|
|
137
138
|
this.chipSelectedObj = this.InputFields?.defaultvalue;
|
|
138
139
|
if (this.chipSelectedObj.length > 0) {
|
|
139
140
|
for (let foundemp of this.chipSelectedObj) {
|
|
@@ -150,18 +151,18 @@ class VsChipddCmpComponent {
|
|
|
150
151
|
if (this.InputFields?.fronentdata) {
|
|
151
152
|
this.Dropdowndata = this.InputFields?.data;
|
|
152
153
|
}
|
|
153
|
-
else {
|
|
154
|
-
|
|
155
|
-
}
|
|
154
|
+
// else {
|
|
155
|
+
// this.getdropdown('')
|
|
156
|
+
// }
|
|
156
157
|
}
|
|
157
158
|
ngOnChanges(changes) {
|
|
158
159
|
if (changes['InputFields'] && changes['InputFields'].currentValue) {
|
|
159
|
-
console.log(
|
|
160
|
+
console.log('Summary Log Changes');
|
|
160
161
|
this.currentpage = 1;
|
|
161
162
|
this.dupngonit();
|
|
162
163
|
}
|
|
163
164
|
if (changes['ResetForm'] && changes['ResetForm'].currentValue) {
|
|
164
|
-
console.log(
|
|
165
|
+
console.log('hitted');
|
|
165
166
|
this.DropdownForm.reset();
|
|
166
167
|
this.currentpage = 1;
|
|
167
168
|
this.dupngonit();
|
|
@@ -174,14 +175,14 @@ class VsChipddCmpComponent {
|
|
|
174
175
|
// return key[clt];
|
|
175
176
|
// }
|
|
176
177
|
autocompleteAppScroll() {
|
|
177
|
-
if (!
|
|
178
|
+
if (!this.InputFields?.fronentdata) {
|
|
178
179
|
setTimeout(() => {
|
|
179
180
|
if (this.matAutocompleteApp &&
|
|
180
181
|
this.autocompleteTrigger &&
|
|
181
182
|
this.matAutocompleteApp.panel) {
|
|
182
183
|
fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
|
|
183
|
-
.pipe(map(x => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
|
|
184
|
-
.subscribe(x => {
|
|
184
|
+
.pipe(map((x) => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
|
|
185
|
+
.subscribe((x) => {
|
|
185
186
|
const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
|
|
186
187
|
const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
|
|
187
188
|
const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
|
|
@@ -192,12 +193,13 @@ class VsChipddCmpComponent {
|
|
|
192
193
|
let params = this.searchparams(value);
|
|
193
194
|
this.currentpage = this.currentpage + 1;
|
|
194
195
|
if (this.currentpage > 1) {
|
|
195
|
-
this.service
|
|
196
|
+
this.service
|
|
197
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
196
198
|
.subscribe((results) => {
|
|
197
|
-
let datas = results[
|
|
198
|
-
let datapagination = results[
|
|
199
|
+
let datas = results['data'];
|
|
200
|
+
let datapagination = results['pagination'];
|
|
199
201
|
this.Dropdowndata = this.Dropdowndata.concat(datas);
|
|
200
|
-
console.log(
|
|
202
|
+
console.log('this.Dropdowndata', this.Dropdowndata);
|
|
201
203
|
if (this.Dropdowndata.length >= 0) {
|
|
202
204
|
this.has_next = datapagination.has_next;
|
|
203
205
|
this.has_previous = datapagination.has_previous;
|
|
@@ -213,18 +215,22 @@ class VsChipddCmpComponent {
|
|
|
213
215
|
}
|
|
214
216
|
}
|
|
215
217
|
dropdownsearch() {
|
|
216
|
-
if (!
|
|
217
|
-
this.DropdownForm.get(
|
|
218
|
+
if (!this.InputFields?.fronentdata) {
|
|
219
|
+
this.DropdownForm.get('value')
|
|
220
|
+
.valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
|
|
218
221
|
this.DrodownLoading = true;
|
|
219
|
-
console.log(
|
|
222
|
+
console.log('inside tap');
|
|
220
223
|
}), switchMap((value) => {
|
|
221
224
|
let params = this.searchparams(value);
|
|
222
225
|
this.currentpage = 1;
|
|
223
|
-
return this.service
|
|
226
|
+
return this.service
|
|
227
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
228
|
+
.pipe(finalize(() => {
|
|
224
229
|
this.DrodownLoading = false;
|
|
225
230
|
}));
|
|
226
|
-
}))
|
|
227
|
-
|
|
231
|
+
}))
|
|
232
|
+
.subscribe((results) => {
|
|
233
|
+
let datas = results['data'];
|
|
228
234
|
this.Dropdowndata = datas;
|
|
229
235
|
});
|
|
230
236
|
}
|
|
@@ -232,10 +238,11 @@ class VsChipddCmpComponent {
|
|
|
232
238
|
getdropdown(value) {
|
|
233
239
|
if (this.InputFields.url) {
|
|
234
240
|
let params = this.searchparams(value);
|
|
235
|
-
this.service
|
|
241
|
+
this.service
|
|
242
|
+
.GetApi(this.InputFields.url + '?page=' + this.currentpage, params)
|
|
236
243
|
.subscribe((results) => {
|
|
237
|
-
let datas = results[
|
|
238
|
-
let datapagination = results[
|
|
244
|
+
let datas = results['data'];
|
|
245
|
+
let datapagination = results['pagination'];
|
|
239
246
|
this.Dropdowndata = datas;
|
|
240
247
|
if (this.Dropdowndata.length >= 0) {
|
|
241
248
|
this.has_next = datapagination.has_next;
|
|
@@ -246,18 +253,43 @@ class VsChipddCmpComponent {
|
|
|
246
253
|
}
|
|
247
254
|
}
|
|
248
255
|
selected() {
|
|
249
|
-
|
|
250
|
-
if (this.InputFields?.
|
|
251
|
-
this.
|
|
256
|
+
this.Outputdata = this.chipSelectedObj;
|
|
257
|
+
if (this.InputFields?.Outputkey) {
|
|
258
|
+
this.Outputdata = this.chipSelectedId;
|
|
252
259
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
else {
|
|
258
|
-
this.dataEvent.emit(this.chipSelectedObj);
|
|
259
|
-
}
|
|
260
|
+
if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
261
|
+
this.InputFields?.formgroup
|
|
262
|
+
.get(this.InputFields?.formcontrolname)
|
|
263
|
+
.patchValue(this.Outputdata);
|
|
260
264
|
}
|
|
265
|
+
this.dataEvent.emit(this.Outputdata);
|
|
266
|
+
// let data = this.DropdownForm.value.value
|
|
267
|
+
// if (this.InputFields?.wholedata) {
|
|
268
|
+
// this.dataEvent.emit(this.chipSelectedObj);
|
|
269
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
270
|
+
// this.InputFields?.formgroup
|
|
271
|
+
// .get(this.InputFields?.formcontrolname)
|
|
272
|
+
// .patchValue(this.chipSelectedObj);
|
|
273
|
+
// }
|
|
274
|
+
// }
|
|
275
|
+
// else {
|
|
276
|
+
// if (this.InputFields?.Outputkey) {
|
|
277
|
+
// this.dataEvent.emit(this.chipSelectedId);
|
|
278
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
279
|
+
// this.InputFields?.formgroup
|
|
280
|
+
// .get(this.InputFields?.formcontrolname)
|
|
281
|
+
// .patchValue(this.chipSelectedId);
|
|
282
|
+
// }
|
|
283
|
+
// }
|
|
284
|
+
// else {
|
|
285
|
+
// this.dataEvent.emit(this.chipSelectedObj);
|
|
286
|
+
// if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {
|
|
287
|
+
// this.InputFields?.formgroup
|
|
288
|
+
// .get(this.InputFields?.formcontrolname)
|
|
289
|
+
// .patchValue(this.chipSelectedObj);
|
|
290
|
+
// }
|
|
291
|
+
// }
|
|
292
|
+
// }
|
|
261
293
|
}
|
|
262
294
|
searchparams(value) {
|
|
263
295
|
let params = '';
|
|
@@ -265,7 +297,9 @@ class VsChipddCmpComponent {
|
|
|
265
297
|
params = this.InputFields.params;
|
|
266
298
|
}
|
|
267
299
|
let inpValue = value;
|
|
268
|
-
inpValue
|
|
300
|
+
inpValue
|
|
301
|
+
? (params += '&' + this.InputFields.searchkey + '=' + inpValue)
|
|
302
|
+
: '';
|
|
269
303
|
return params;
|
|
270
304
|
}
|
|
271
305
|
removechip(obj) {
|
|
@@ -307,7 +341,7 @@ class VsChipddCmpComponent {
|
|
|
307
341
|
}
|
|
308
342
|
else {
|
|
309
343
|
if (e?.id) {
|
|
310
|
-
return
|
|
344
|
+
return 'id';
|
|
311
345
|
}
|
|
312
346
|
else {
|
|
313
347
|
return this.InputFields.displaykey;
|
|
@@ -315,11 +349,11 @@ class VsChipddCmpComponent {
|
|
|
315
349
|
}
|
|
316
350
|
}
|
|
317
351
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
318
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields", ResetForm: "ResetForm", Backendapi: "Backendapi" }, outputs: { dataEvent: "dataEvent" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "matAutocompleteApp", first: true, predicate: ["scrolll"], descendants: true }, { propertyName: "DropInput", first: true, predicate: ["DropInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
352
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields", ResetForm: "ResetForm", Backendapi: "Backendapi" }, outputs: { dataEvent: "dataEvent" }, viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "matAutocompleteApp", first: true, predicate: ["scrolll"], descendants: true }, { propertyName: "DropInput", first: true, predicate: ["DropInput"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i7.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i7.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
|
|
319
353
|
}
|
|
320
354
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
|
|
321
355
|
type: Component,
|
|
322
|
-
args: [{ selector: 'lib-vs-chipdd-cmp', template: "<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"] }]
|
|
356
|
+
args: [{ selector: 'lib-vs-chipdd-cmp', template: "<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n", styles: [".mat-chipScroll{width:420px!important}.mat-chipEx{text-align:left}.chip-container::-webkit-scrollbar{width:6px;height:6px}.chip-container::-webkit-scrollbar-track{background:transparent}.chip-container::-webkit-scrollbar-thumb{border-radius:20px;background:#c3c3c3}.chip-container::-webkit-scrollbar-thumb:hover{background:#a6a6a6}.mat-chipScroll .mat-chip-list-wrapper{height:80px;overflow-y:scroll}mat-form-field{width:250px;font-family:var(--base-font-family)}\n"] }]
|
|
323
357
|
}], ctorParameters: () => [{ type: VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
|
|
324
358
|
type: Input
|
|
325
359
|
}], ResetForm: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { MatAutocompleteSelectedEvent, MatAutocomplete, MatAutocompleteTrigger } from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from \"rxjs/operators\";\r\nimport { from, Observable, fromEvent } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service'\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss']\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean = false;\r\n constructor(private service: VsChipdropdownService, private fb: FormBuilder) { }\r\n @Input() InputFields: any\r\n @Input() ResetForm: any\r\n @Input() Backendapi: boolean = true\r\n\r\n @ViewChild(MatAutocompleteTrigger) autocompleteTrigger:any= MatAutocompleteTrigger;\r\n @ViewChild('scrolll') matAutocompleteApp:any= MatAutocomplete ;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm:any= FormGroup\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = []\r\n\r\n ngOnInit() {\r\n this.DropdownForm = this.fb.group({\r\n value: ''\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 // }\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 dupngonit(){\r\n this.DropdownForm = this.fb.group({\r\n value: ''\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 }\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 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.chipSelectedObj = []\r\n this.dataEvent.emit([]);\r\n\r\n\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(this.autocompleteTrigger.panelClosingActions as Observable<any>)\r\n )\r\n .subscribe(x => {\r\n const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;\r\n const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;\r\n const elementHeight = 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.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 = 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\r\n }\r\n dropdownsearch() {\r\n if (!(this.InputFields?.fronentdata)) {\r\n this.DropdownForm.get(\"value\").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.GetApi(this.InputFields.url + \"?page=\" + this.currentpage, params).pipe(\r\n finalize(() => {\r\n this.DrodownLoading = false;\r\n })\r\n );\r\n })\r\n ).subscribe((results: any) => {\r\n let datas = results[\"data\"];\r\n this.Dropdowndata = datas;\r\n });\r\n }\r\n\r\n }\r\n getdropdown(value:any) {\r\n if(this.InputFields.url){\r\n let params = this.searchparams(value)\r\n this.service.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 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 selected() {\r\n // let data = this.DropdownForm.value.value\r\n if (this.InputFields?.wholedata) {\r\n this.dataEvent.emit(this.chipSelectedObj);\r\n }\r\n else {\r\n if (this.InputFields?.Outputkey) {\r\n this.dataEvent.emit(this.chipSelectedId);\r\n }\r\n else {\r\n this.dataEvent.emit(this.chipSelectedObj);\r\n }\r\n\r\n }\r\n\r\n }\r\n searchparams(value:any) {\r\n let params = ''\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params\r\n }\r\n let inpValue = value\r\n inpValue ? params += '&' + this.InputFields.searchkey + '=' + inpValue : ''\r\n return params\r\n }\r\n removechip(obj:any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n\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.DropInput.nativeElement.value = '';\r\n this.selected()\r\n }\r\n\r\n }\r\n public venSelected(event: MatAutocompleteSelectedEvent): void {\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', event.option.value)\r\n this.selectvenByName(event.option.value[this.comparekey(event.option.value)]);\r\n console.log('chipSelectedvenid', this.chipSelectedObj)\r\n }\r\n private selectvenByName(ven:any) {\r\n let foundemp1 = this.chipSelectedObj.filter((e: { [x: string]: any; }) => e[this.comparekey(e)] == ven);\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter((e: { [x: string]: any; }) => e[this.comparekey(e)] == ven);\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 }\r\n else {\r\n this.chipSelectedId.push(foundemp[0].id)\r\n\r\n }\r\n }\r\n }\r\n comparekey(e:any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey\r\n }\r\n else {\r\n if (e?.id) {\r\n return \"id\"\r\n }\r\n else {\r\n return this.InputFields.displaykey\r\n }\r\n }\r\n }\r\n}","<div>\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unnilouis.org-vs-chipdropdown.mjs","sources":["../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.service.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.ts","../../../projects/vs-chipdropdown/src/lib/vs-chipdd-cmp/vs-chipdd-cmp.component.html","../../../projects/vs-chipdropdown/src/lib/vs-chipdropdown.module.ts","../../../projects/vs-chipdropdown/src/public-api.ts","../../../projects/vs-chipdropdown/src/unnilouis.org-vs-chipdropdown.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class VsChipdropdownService {\r\n\r\n constructor(private http: HttpClient) { }\r\n postApi(Apiurl:any,json={},params:any): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.post<any>(Apiurl+paradata,json ,{\r\n headers: headers,\r\n \r\n });\r\n }\r\n GetApi(Apiurl:any,params=''): Observable<any> {\r\n const getToken:any = localStorage.getItem(\"sessionData\");\r\n let tokenValue = JSON.parse(getToken);\r\n let token = tokenValue.token;\r\n console.log(\"params\",params)\r\n let paradata=''\r\n if(params!==undefined && params!==null && params!==''){\r\n paradata=params\r\n }\r\n const headers = { Authorization: \"Token \" + token };\r\n return this.http.get<any>(Apiurl+paradata,{\r\n headers: headers,\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-vs-chipdropdown',\r\n template: `\r\n <p>\r\n vs-chipdropdown works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class VsChipdropdownComponent {\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n MatAutocompleteSelectedEvent,\r\n MatAutocomplete,\r\n MatAutocompleteTrigger,\r\n} from '@angular/material/autocomplete';\r\nimport {\r\n debounceTime,\r\n distinctUntilChanged,\r\n tap,\r\n filter,\r\n switchMap,\r\n finalize,\r\n takeUntil,\r\n map,\r\n} from 'rxjs/operators';\r\nimport { from, Observable, fromEvent } from 'rxjs';\r\nimport { VsChipdropdownService } from '../vs-chipdropdown.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { COMMA, ENTER } from '@angular/cdk/keycodes';\r\n@Component({\r\n selector: 'lib-vs-chipdd-cmp',\r\n templateUrl: './vs-chipdd-cmp.component.html',\r\n styleUrls: ['./vs-chipdd-cmp.component.scss'],\r\n})\r\nexport class VsChipddCmpComponent {\r\n DrodownLoading: boolean = false;\r\n constructor(\r\n private service: VsChipdropdownService,\r\n private fb: FormBuilder\r\n ) {}\r\n @Input() InputFields: any;\r\n @Input() ResetForm: any;\r\n @Input() Backendapi: boolean = true;\r\n\r\n @ViewChild(MatAutocompleteTrigger)\r\n autocompleteTrigger:any= MatAutocompleteTrigger;\r\n @ViewChild('scrolll') matAutocompleteApp:any = MatAutocomplete;\r\n @Output() dataEvent: EventEmitter<any> = new EventEmitter<any>();\r\n @ViewChild('DropInput') DropInput: any;\r\n readonly separatorsKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n has_next: boolean = false;\r\n currentpage: number = 1;\r\n Dropdowndata: any = [];\r\n has_previous: boolean = false;\r\n DropdownForm:any= FormGroup;\r\n chipSelectedId: any = [];\r\n chipSelectedObj: any = [];\r\n\r\n ngOnInit() {\r\n this.DropdownForm = this.fb.group({\r\n value: '',\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 dupngonit() {\r\n this.DropdownForm = this.fb.group({\r\n value: '',\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 } else {\r\n this.chipSelectedId.push(foundemp.id);\r\n }\r\n }\r\n this.selected();\r\n }\r\n }\r\n if (this.InputFields?.fronentdata) {\r\n this.Dropdowndata = this.InputFields?.data;\r\n }\r\n // else {\r\n // this.getdropdown('')\r\n // }\r\n }\r\n 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.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:any) {\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 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 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.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n this.InputFields?.formgroup\r\n .get(this.InputFields?.formcontrolname)\r\n .patchValue(this.Outputdata);\r\n }\r\n this.dataEvent.emit(this.Outputdata);\r\n\r\n // let data = this.DropdownForm.value.value\r\n // if (this.InputFields?.wholedata) {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n // else {\r\n // if (this.InputFields?.Outputkey) {\r\n // this.dataEvent.emit(this.chipSelectedId);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedId);\r\n // }\r\n // }\r\n // else {\r\n // this.dataEvent.emit(this.chipSelectedObj);\r\n // if (this.InputFields?.formgroup && this.InputFields?.formcontrolname) {\r\n // this.InputFields?.formgroup\r\n // .get(this.InputFields?.formcontrolname)\r\n // .patchValue(this.chipSelectedObj);\r\n // }\r\n // }\r\n\r\n // }\r\n }\r\n searchparams(value:any) {\r\n let params = '';\r\n if (this.InputFields.params) {\r\n params = this.InputFields.params;\r\n }\r\n let inpValue = value;\r\n inpValue\r\n ? (params += '&' + this.InputFields.searchkey + '=' + inpValue)\r\n : '';\r\n return params;\r\n }\r\n removechip(obj:any) {\r\n const index = this.chipSelectedObj.indexOf(obj);\r\n\r\n if (index >= 0) {\r\n this.chipSelectedObj.splice(index, 1);\r\n console.log(this.chipSelectedObj);\r\n this.chipSelectedId.splice(index, 1);\r\n console.log(this.chipSelectedId);\r\n this.DropInput.nativeElement.value = '';\r\n this.selected();\r\n }\r\n }\r\n public venSelected(event: MatAutocompleteSelectedEvent): void {\r\n this.DropInput.nativeElement.value = '';\r\n console.log('event.option.value', event.option.value);\r\n this.selectvenByName(\r\n event.option.value[this.comparekey(event.option.value)]\r\n );\r\n console.log('chipSelectedvenid', this.chipSelectedObj);\r\n }\r\n private selectvenByName(ven:any) {\r\n let foundemp1 = this.chipSelectedObj.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp1.length) {\r\n return;\r\n }\r\n let foundemp = this.Dropdowndata.filter(\r\n (e:any) => e[this.comparekey(e)] == ven\r\n );\r\n if (foundemp.length) {\r\n this.chipSelectedObj.push(foundemp[0]);\r\n if (this.InputFields?.Outputkey) {\r\n this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);\r\n } else {\r\n this.chipSelectedId.push(foundemp[0].id);\r\n }\r\n }\r\n }\r\n comparekey(e:any) {\r\n if (this.InputFields?.comparekey) {\r\n return this.InputFields?.comparekey;\r\n } else {\r\n if (e?.id) {\r\n return 'id';\r\n } else {\r\n return this.InputFields.displaykey;\r\n }\r\n }\r\n }\r\n}\r\n","<div (click)=\"!this.InputFields?.fronentdata ? this.getdropdown(''):'' \">\r\n <form [formGroup]=\"DropdownForm\">\r\n <mat-form-field class=\"mat-chipScroll\"\r\n appearance=\"outline\">\r\n <mat-label>{{InputFields?.label | translate}}</mat-label>\r\n <mat-chip-grid multiple #chipListvendor class=\"chip-container\">\r\n <mat-chip-row *ngFor=\"let obj of chipSelectedObj\" [removable]=\"true\" (removed)=\"removechip(obj)\" class=\"mat-chipEx\">\r\n {{ obj[InputFields?.displaykey] }}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n <input #DropInput [matAutocomplete]=\"scrolll\" class=\"matformfieldinputstyle\"\r\n (keydown)=\"dropdownsearch()\" [matChipInputFor]=\"chipListvendor\" [matChipInputSeparatorKeyCodes]=\"\r\n separatorsKeysCodes\r\n \" [matChipInputAddOnBlur]=\"true\" formControlName=\"value\" />\r\n </mat-chip-grid>\r\n <mat-autocomplete #scrolll=\"matAutocomplete\" (optionSelected)=\"venSelected($event)\"\r\n (opened)=\"autocompleteAppScroll()\">\r\n <ng-container>\r\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields?.displaykey]}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { VsChipdropdownComponent } from './vs-chipdropdown.component';\r\nimport { VsChipddCmpComponent } from './vs-chipdd-cmp/vs-chipdd-cmp.component';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\r\n// import {VsSharedModuleModule} from '@unnilouis.org/vs-shared-module'\r\n\r\n\r\n@NgModule({\r\n declarations: [VsChipdropdownComponent, VsChipddCmpComponent],\r\n imports: [MatFormFieldModule,MatInputModule,MatSelectModule,MatAutocompleteModule,FormsModule,ReactiveFormsModule,CommonModule,MatGridListModule,MatChipsModule,MatIconModule,\r\n TranslateModule,\r\n HttpClientModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: httpTranslateLoader,\r\n deps: [HttpClient],\r\n },\r\n }),],\r\n // imports: [VsSharedModuleModule],\r\n exports: [VsChipddCmpComponent]\r\n})\r\nexport class VsChipdropdownModule { }\r\nexport function httpTranslateLoader(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n","/*\r\n * Public API Surface of vs-chipdropdown\r\n */\r\n\r\nexport * from './lib/vs-chipdropdown.service';\r\nexport * from './lib/vs-chipdropdown.component';\r\nexport * from './lib/vs-chipdropdown.module';\r\nexport * from './lib/vs-chipdd-cmp/vs-chipdd-cmp.component'","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.VsChipdropdownService"],"mappings":"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"}
|