@unnilouis.org/vs-chipdropdown 0.0.1 → 0.0.2-v17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # VsChipdropdown
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project vs-chipdropdown` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project vs-chipdropdown`.
8
- > Note: Don't forget to add `--project vs-chipdropdown` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build vs-chipdropdown` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build vs-chipdropdown`, go to the dist folder `cd dist/vs-chipdropdown` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test vs-chipdropdown` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # VsChipdropdown
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.2.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project vs-chipdropdown` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project vs-chipdropdown`.
8
+ > Note: Don't forget to add `--project vs-chipdropdown` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build vs-chipdropdown` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build vs-chipdropdown`, go to the dist folder `cd dist/vs-chipdropdown` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test vs-chipdropdown` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -1,136 +1,243 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { MatAutocompleteTrigger } from '@angular/material/autocomplete';
3
- import { debounceTime, distinctUntilChanged, tap, switchMap, finalize, takeUntil, map, } from "rxjs/operators";
4
- import { fromEvent } from 'rxjs';
5
- import { COMMA, ENTER } from '@angular/cdk/keycodes';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../vs-chipdropdown.service";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "@angular/material/form-field";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/material/core";
12
- import * as i6 from "@angular/material/autocomplete";
13
- import * as i7 from "@angular/material/chips";
14
- export class VsChipddCmpComponent {
15
- constructor(service, fb) {
16
- this.service = service;
17
- this.fb = fb;
18
- this.dataEvent = new EventEmitter();
19
- this.separatorsKeysCodes = [ENTER, COMMA];
20
- this.has_next = false;
21
- this.currentpage = 1;
22
- this.Dropdowndata = [];
23
- this.has_previous = false;
24
- this.chipSelectedven = [];
25
- }
26
- ngOnInit() {
27
- this.DropdownForm = this.fb.group({
28
- value: ''
29
- });
30
- this.getdropdown('');
31
- }
32
- displaydevelopclient(clt, key) {
33
- return key[clt];
34
- }
35
- autocompleteAppScroll() {
36
- setTimeout(() => {
37
- if (this.matAutocompleteApp &&
38
- this.autocompleteTrigger &&
39
- this.matAutocompleteApp.panel) {
40
- fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
41
- .pipe(map(x => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
42
- .subscribe(x => {
43
- const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
44
- const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
45
- const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
46
- const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;
47
- if (atBottom) {
48
- if (this.has_next === true) {
49
- let value = this.DropInput.nativeElement.value;
50
- let params = this.searchparams(value);
51
- this.currentpage = this.currentpage + 1;
52
- if (this.currentpage > 1) {
53
- this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
54
- .subscribe((results) => {
55
- let datas = results["data"];
56
- let datapagination = results["pagination"];
57
- this.Dropdowndata = this.Dropdowndata.concat(datas);
58
- console.log("this.Dropdowndata", this.Dropdowndata);
59
- if (this.Dropdowndata.length >= 0) {
60
- this.has_next = datapagination.has_next;
61
- this.has_previous = datapagination.has_previous;
62
- this.currentpage = datapagination.index;
63
- }
64
- });
65
- }
66
- }
67
- }
68
- });
69
- }
70
- });
71
- }
72
- dropdownsearch() {
73
- this.DropdownForm.get("value").valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
74
- this.DrodownLoading = true;
75
- console.log("inside tap");
76
- }), switchMap((value) => {
77
- let params = this.searchparams(value);
78
- this.currentpage = 1;
79
- return this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params).pipe(finalize(() => {
80
- this.DrodownLoading = false;
81
- }));
82
- })).subscribe((results) => {
83
- let datas = results["data"];
84
- this.Dropdowndata = datas;
85
- });
86
- }
87
- getdropdown(value) {
88
- let params = this.searchparams(value);
89
- this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
90
- .subscribe((results) => {
91
- let datas = results["data"];
92
- let datapagination = results["pagination"];
93
- this.Dropdowndata = datas;
94
- if (this.Dropdowndata.length >= 0) {
95
- this.has_next = datapagination.has_next;
96
- this.has_previous = datapagination.has_previous;
97
- this.currentpage = datapagination.index;
98
- }
99
- });
100
- }
101
- selected() {
102
- let data = this.DropdownForm.value.value;
103
- this.dataEvent.emit(data);
104
- }
105
- searchparams(value) {
106
- let params = '';
107
- if (this.InputFields.params) {
108
- params = this.InputFields.params;
109
- }
110
- let inpValue = value;
111
- inpValue ? params += '&' + this.InputFields.searchkey + '=' + inpValue : '';
112
- return params;
113
- }
114
- removechip(obj) {
115
- }
116
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: i1.VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: VsChipddCmpComponent, selector: "lib-vs-chipdd-cmp", inputs: { InputFields: "InputFields" }, 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 }], ngImport: i0, template: "<div>\n <form [formGroup]=\"DropdownForm\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{InputFields.label}}</mat-label>\n <mat-chip-grid multiple #chipListvendor>\n <mat-chip-row\n *ngFor=\"let vendor of chipSelectedven\"\n [removable]=\"true\"\n (removed)=\"removechip(vendor)\"\n >\n {{ vendor.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n <input\n #DropInput\n formControlName=\"value\"\n [matAutocomplete]=\"scrolll\"\n class=\"matformfieldinputstyle\"\n (keydown)=\"dropdownsearch()\"\n [matChipInputFor]=\"chipListvendor\"\n [matChipInputSeparatorKeyCodes]=\"\n separatorsKeysCodes\n \"\n [matChipInputAddOnBlur]=\"true\"\n />\n </mat-chip-grid>\n <mat-autocomplete #scrolll=\"matAutocomplete\"\n [displayWith]=\"displaydevelopclient.bind(this,InputFields.displaykey)\"\n (opened)=\"autocompleteAppScroll()\">\n <ng-container>\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\n {{dropvalues[InputFields.displaykey]}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </mat-form-field>\n </form>\n <!-- <mat-chip-grid multiple #chipListvendor>\n <mat-chip-row\n *ngFor=\"let vendor of chipSelectedven\"\n [removable]=\"true\"\n (removed)=\"removedven(vendor)\"\n >\n {{ vendor.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n <input\n #DropInput\n formControlName=\"value\"\n [matAutocomplete]=\"scrolll\"\n class=\"matformfieldinputstyle\"\n (keydown)=\"dropdownsearch()\"\n [matChipInputFor]=\"chipListvendor\"\n [matChipInputSeparatorKeyCodes]=\"\n separatorsKeysCodes\n \"\n [matChipInputAddOnBlur]=\"true\"\n />\n </mat-chip-grid> -->\n</div>", styles: [""], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i6.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", 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: "component", type: i7.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "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: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }] }); }
118
- }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
120
- type: Component,
121
- args: [{ selector: 'lib-vs-chipdd-cmp', template: "<div>\n <form [formGroup]=\"DropdownForm\">\n <mat-form-field appearance=\"outline\">\n <mat-label>{{InputFields.label}}</mat-label>\n <mat-chip-grid multiple #chipListvendor>\n <mat-chip-row\n *ngFor=\"let vendor of chipSelectedven\"\n [removable]=\"true\"\n (removed)=\"removechip(vendor)\"\n >\n {{ vendor.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n <input\n #DropInput\n formControlName=\"value\"\n [matAutocomplete]=\"scrolll\"\n class=\"matformfieldinputstyle\"\n (keydown)=\"dropdownsearch()\"\n [matChipInputFor]=\"chipListvendor\"\n [matChipInputSeparatorKeyCodes]=\"\n separatorsKeysCodes\n \"\n [matChipInputAddOnBlur]=\"true\"\n />\n </mat-chip-grid>\n <mat-autocomplete #scrolll=\"matAutocomplete\"\n [displayWith]=\"displaydevelopclient.bind(this,InputFields.displaykey)\"\n (opened)=\"autocompleteAppScroll()\">\n <ng-container>\n <mat-option *ngFor=\"let dropvalues of Dropdowndata\" [value]=\"dropvalues\" (click)=\"selected()\">\n {{dropvalues[InputFields.displaykey]}}\n </mat-option>\n </ng-container>\n </mat-autocomplete>\n </mat-form-field>\n </form>\n <!-- <mat-chip-grid multiple #chipListvendor>\n <mat-chip-row\n *ngFor=\"let vendor of chipSelectedven\"\n [removable]=\"true\"\n (removed)=\"removedven(vendor)\"\n >\n {{ vendor.name }}\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n <input\n #DropInput\n formControlName=\"value\"\n [matAutocomplete]=\"scrolll\"\n class=\"matformfieldinputstyle\"\n (keydown)=\"dropdownsearch()\"\n [matChipInputFor]=\"chipListvendor\"\n [matChipInputSeparatorKeyCodes]=\"\n separatorsKeysCodes\n \"\n [matChipInputAddOnBlur]=\"true\"\n />\n </mat-chip-grid> -->\n</div>" }]
122
- }], ctorParameters: function () { return [{ type: i1.VsChipdropdownService }, { type: i2.FormBuilder }]; }, propDecorators: { InputFields: [{
123
- type: Input
124
- }], autocompleteTrigger: [{
125
- type: ViewChild,
126
- args: [MatAutocompleteTrigger]
127
- }], matAutocompleteApp: [{
128
- type: ViewChild,
129
- args: ['scrolll']
130
- }], dataEvent: [{
131
- type: Output
132
- }], DropInput: [{
133
- type: ViewChild,
134
- args: ['DropInput']
135
- }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBaUQsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN2SCxPQUFPLEVBQ0wsWUFBWSxFQUNaLG9CQUFvQixFQUNwQixHQUFHLEVBRUgsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFvQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbkQsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7O0FBTXJELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsT0FBOEIsRUFBVSxFQUFlO1FBQXZELFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUlqRSxjQUFTLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEQsd0JBQW1CLEdBQWEsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEQsYUFBUSxHQUFXLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFTLENBQUMsQ0FBQztRQUN0QixpQkFBWSxHQUFNLEVBQUUsQ0FBQztRQUNyQixpQkFBWSxH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R0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUMzRSxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7SUFDRCxVQUFVLENBQUMsR0FBRztJQUVkLENBQUM7K0dBekhVLG9CQUFvQjttR0FBcEIsb0JBQW9CLDJMQUlwQixzQkFBc0IseU9DekJuQyxnNkZBMkRNOzs0RkR0Q08sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLG1CQUFtQjtzSUFPcEIsV0FBVztzQkFBbkIsS0FBSztnQkFDNkIsbUJBQW1CO3NCQUFyRCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFDWCxrQkFBa0I7c0JBQXZDLFNBQVM7dUJBQUMsU0FBUztnQkFDVixTQUFTO3NCQUFsQixNQUFNO2dCQUNpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBNYXRBdXRvY29tcGxldGUsIE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHtcbiAgZGVib3VuY2VUaW1lLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgdGFwLFxuICBmaWx0ZXIsXG4gIHN3aXRjaE1hcCxcbiAgZmluYWxpemUsXG4gIHRha2VVbnRpbCxcbiAgbWFwLFxufSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtWc0NoaXBkcm9wZG93blNlcnZpY2V9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJ1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENPTU1BLCBFTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRkLWNtcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdnMtY2hpcGRkLWNtcC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgVnNDaGlwZGRDbXBDb21wb25lbnQge1xuICBEcm9kb3duTG9hZGluZzogYm9vbGVhbjtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cbiAgQElucHV0KCkgSW5wdXRGaWVsZHM6IGFueVxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpIGF1dG9jb21wbGV0ZVRyaWdnZXI6IE1hdEF1dG9jb21wbGV0ZVRyaWdnZXI7XG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbGwnKSBtYXRBdXRvY29tcGxldGVBcHA6IE1hdEF1dG9jb21wbGV0ZTtcbiAgQE91dHB1dCgpIGRhdGFFdmVudDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQFZpZXdDaGlsZCgnRHJvcElucHV0JykgRHJvcElucHV0OiBhbnk7XG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XG5cbiAgaGFzX25leHQ6IGJvb2xlYW49IGZhbHNlO1xuICBjdXJyZW50cGFnZTogbnVtYmVyPTE7XG4gIERyb3Bkb3duZGF0YTogYW55PVtdO1xuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgRHJvcGRvd25Gb3JtOiBGb3JtR3JvdXBcbiAgY2hpcFNlbGVjdGVkdmVuOmFueT1bXVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuRHJvcGRvd25Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICB2YWx1ZTogJydcbiAgICB9KVxuICAgIHRoaXMuZ2V0ZHJvcGRvd24oJycpXG4gIH1cbiAgcHVibGljIGRpc3BsYXlkZXZlbG9wY2xpZW50KGNsdDogYW55LCBrZXk6IHN0cmluZykge1xuICAgIHJldHVybiBrZXlbY2x0XTtcbiAgfVxuICBhdXRvY29tcGxldGVBcHBTY3JvbGwoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlVHJpZ2dlciAmJlxuICAgICAgICB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbFxuICAgICAgKSB7XG4gICAgICAgIGZyb21FdmVudCh0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCh4ID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIucGFuZWxDbG9zaW5nQWN0aW9ucyBhcyBPYnNlcnZhYmxlPGFueT4pXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XG4gICAgICAgICAgICBjb25zdCBzY3JvbGxUb3AgPSB0aGlzLm1hdEF1dG9jb21wbGV0ZUFwcC5wYW5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcDtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAgICAgY29uc3QgYXRCb3R0b20gPSBzY3JvbGxIZWlnaHQgLSAxIDw9IHNjcm9sbFRvcCArIGVsZW1lbnRIZWlnaHQ7XG4gICAgICAgICAgICBpZiAoYXRCb3R0b20pIHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWU9IHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWVcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1zPXRoaXMuc2VhcmNocGFyYW1zKHZhbHVlKVxuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2U9dGhpcy5jdXJyZW50cGFnZSArIDFcbiAgICAgICAgICAgICAgICBpZih0aGlzLmN1cnJlbnRwYWdlPjEpe1xuICAgICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCArIFwiP3BhZ2U9XCIgK3RoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcbiAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbXCJkYXRhXCJdO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXBhZ2luYXRpb24gPSByZXN1bHRzW1wicGFnaW5hdGlvblwiXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSB0aGlzLkRyb3Bkb3duZGF0YS5jb25jYXQoZGF0YXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInRoaXMuRHJvcGRvd25kYXRhXCIsdGhpcy5Ecm9wZG93bmRhdGEpXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgZHJvcGRvd25zZWFyY2goKSB7XG4gICAgdGhpcy5Ecm9wZG93bkZvcm0uZ2V0KFwidmFsdWVcIikudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgY29uc29sZS5sb2coXCJpbnNpZGUgdGFwXCIpO1xuICAgICAgfSksXG4gICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XG4gICAgICAgIGxldCBwYXJhbXMgPSB0aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSk7XG4gICAgICAgIHRoaXMuY3VycmVudHBhZ2U9MVxuICAgICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLkdldEFwaSh0aGlzLklucHV0RmllbGRzLnVybCtcIj9wYWdlPVwiK3RoaXMuY3VycmVudHBhZ2UsIHBhcmFtcykucGlwZShcbiAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKS5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueVtdKSA9PiB7XG4gICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbXCJkYXRhXCJdO1xuICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzO1xuICAgICAgfSk7XG4gIH1cbiAgZ2V0ZHJvcGRvd24odmFsdWUpIHtcbiAgICBsZXQgcGFyYW1zID10aGlzLnNlYXJjaHBhcmFtcyh2YWx1ZSlcbiAgICB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsK1wiP3BhZ2U9XCIrdGhpcy5jdXJyZW50cGFnZSwgcGFyYW1zKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55W10pID0+IHtcbiAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1tcImRhdGFcIl07XG4gICAgICAgIGxldCBkYXRhcGFnaW5hdGlvbiA9IHJlc3VsdHNbXCJwYWdpbmF0aW9uXCJdO1xuICAgICAgICB0aGlzLkRyb3Bkb3duZGF0YSA9IGRhdGFzXG4gICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xuICAgICAgICAgIHRoaXMuaGFzX25leHQgPSBkYXRhcGFnaW5hdGlvbi5oYXNfbmV4dDtcbiAgICAgICAgICB0aGlzLmhhc19wcmV2aW91cyA9IGRhdGFwYWdpbmF0aW9uLmhhc19wcmV2aW91cztcbiAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gIH1cbiAgc2VsZWN0ZWQoKSB7XG4gICAgbGV0IGRhdGEgPSB0aGlzLkRyb3Bkb3duRm9ybS52YWx1ZS52YWx1ZVxuICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQoZGF0YSk7XG5cbiAgfVxuICBzZWFyY2hwYXJhbXModmFsdWUpIHtcbiAgICBsZXQgcGFyYW1zID0gJydcbiAgICBpZiAodGhpcy5JbnB1dEZpZWxkcy5wYXJhbXMpIHtcbiAgICAgIHBhcmFtcyA9IHRoaXMuSW5wdXRGaWVsZHMucGFyYW1zXG4gICAgfVxuICAgIGxldCBpbnBWYWx1ZSA9dmFsdWVcbiAgICBpbnBWYWx1ZSA/IHBhcmFtcyArPSAnJicgKyB0aGlzLklucHV0RmllbGRzLnNlYXJjaGtleSArICc9JyArIGlucFZhbHVlIDogJydcbiAgICByZXR1cm4gcGFyYW1zXG4gIH1cbiAgcmVtb3ZlY2hpcChvYmope1xuXG4gIH1cbn1cbiIsIjxkaXY+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJEcm9wZG93bkZvcm1cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7SW5wdXRGaWVsZHMubGFiZWx9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPG1hdC1jaGlwLWdyaWQgbXVsdGlwbGUgI2NoaXBMaXN0dmVuZG9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWNoaXAtcm93XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZlbmRvciBvZiBjaGlwU2VsZWN0ZWR2ZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZW1vdmFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlbW92ZWQpPVwicmVtb3ZlY2hpcCh2ZW5kb3IpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHZlbmRvci5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICNEcm9wSW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJzY3JvbGxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1hdGZvcm1maWVsZGlucHV0c3R5bGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImRyb3Bkb3duc2VhcmNoKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3R2ZW5kb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRTZXBhcmF0b3JLZXlDb2Rlc109XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcGFyYXRvcnNLZXlzQ29kZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2Nyb2xsbD1cIm1hdEF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlXaXRoXT1cImRpc3BsYXlkZXZlbG9wY2xpZW50LmJpbmQodGhpcyxJbnB1dEZpZWxkcy5kaXNwbGF5a2V5KVwiXG4gICAgICAgICAgICAgICAgKG9wZW5lZCk9XCJhdXRvY29tcGxldGVBcHBTY3JvbGwoKVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBkcm9wdmFsdWVzIG9mIERyb3Bkb3duZGF0YVwiIFt2YWx1ZV09XCJkcm9wdmFsdWVzXCIgKGNsaWNrKT1cInNlbGVjdGVkKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZHJvcHZhbHVlc1tJbnB1dEZpZWxkcy5kaXNwbGF5a2V5XX19XG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG4gICAgPCEtLSA8bWF0LWNoaXAtZ3JpZCBtdWx0aXBsZSAjY2hpcExpc3R2ZW5kb3I+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hpcC1yb3dcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgdmVuZG9yIG9mIGNoaXBTZWxlY3RlZHZlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVkdmVuKHZlbmRvcilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdmVuZG9yLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGlwLXJvdz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI0Ryb3BJbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cInNjcm9sbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0Zm9ybWZpZWxkaW5wdXRzdHlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwiZHJvcGRvd25zZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJjaGlwTGlzdHZlbmRvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VwYXJhdG9yc0tleXNDb2Rlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD4gLS0+XG48L2Rpdj4iXX0=
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
+ import { fromEvent } from 'rxjs';
5
+ import { FormGroup } from '@angular/forms';
6
+ import { COMMA, ENTER } from '@angular/cdk/keycodes';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../vs-chipdropdown.service";
9
+ import * as i2 from "@angular/forms";
10
+ import * as i3 from "@angular/material/form-field";
11
+ import * as i4 from "@angular/material/core";
12
+ import * as i5 from "@angular/material/autocomplete";
13
+ import * as i6 from "@angular/material/chips";
14
+ import * as i7 from "@angular/material/icon";
15
+ import * as i8 from "@ngx-translate/core";
16
+ export class VsChipddCmpComponent {
17
+ constructor(service, fb) {
18
+ this.service = service;
19
+ this.fb = fb;
20
+ this.DrodownLoading = false;
21
+ this.Backendapi = true;
22
+ this.autocompleteTrigger = MatAutocompleteTrigger;
23
+ this.matAutocompleteApp = MatAutocomplete;
24
+ this.dataEvent = new EventEmitter();
25
+ this.separatorsKeysCodes = [ENTER, COMMA];
26
+ this.has_next = false;
27
+ this.currentpage = 1;
28
+ this.Dropdowndata = [];
29
+ this.has_previous = false;
30
+ this.DropdownForm = FormGroup;
31
+ this.chipSelectedId = [];
32
+ this.chipSelectedObj = [];
33
+ }
34
+ ngOnInit() {
35
+ this.DropdownForm = this.fb.group({
36
+ value: ''
37
+ });
38
+ if (this.InputFields?.defaultvalue) {
39
+ this.DropdownForm.get("value").patchValue(this.InputFields?.defaultvalue);
40
+ this.chipSelectedObj = this.InputFields?.defaultvalue;
41
+ if (this.chipSelectedObj.length > 0) {
42
+ for (let foundemp of this.chipSelectedObj) {
43
+ if (this.InputFields?.Outputkey) {
44
+ this.chipSelectedId.push(foundemp[this.InputFields?.Outputkey]);
45
+ }
46
+ else {
47
+ this.chipSelectedId.push(foundemp.id);
48
+ }
49
+ }
50
+ this.selected();
51
+ }
52
+ }
53
+ if (this.InputFields?.fronentdata) {
54
+ this.Dropdowndata = this.InputFields?.data;
55
+ }
56
+ else {
57
+ this.getdropdown('');
58
+ }
59
+ }
60
+ ngOnChanges(changes) {
61
+ console.log("changes.ResetForm", changes['ResetForm'], changes['ResetForm'].currentValue, changes['ResetForm'] && changes['ResetForm'].currentValue);
62
+ if (changes['InputFields'] && changes['InputFields'].currentValue) {
63
+ console.log("Summary Log Changes");
64
+ this.currentpage = 1;
65
+ this.ngOnInit();
66
+ }
67
+ if (changes['ResetForm'] && changes['ResetForm'].currentValue) {
68
+ console.log("hitted");
69
+ this.DropdownForm.reset();
70
+ this.currentpage = 1;
71
+ this.ngOnInit();
72
+ this.chipSelectedId = [];
73
+ this.chipSelectedObj = [];
74
+ this.dataEvent.emit([]);
75
+ }
76
+ }
77
+ // public displaydevelopclient(clt: any, key: string) {
78
+ // return key[clt];
79
+ // }
80
+ autocompleteAppScroll() {
81
+ if (!(this.InputFields?.fronentdata)) {
82
+ setTimeout(() => {
83
+ if (this.matAutocompleteApp &&
84
+ this.autocompleteTrigger &&
85
+ this.matAutocompleteApp.panel) {
86
+ fromEvent(this.matAutocompleteApp.panel.nativeElement, 'scroll')
87
+ .pipe(map(x => this.matAutocompleteApp.panel.nativeElement.scrollTop), takeUntil(this.autocompleteTrigger.panelClosingActions))
88
+ .subscribe(x => {
89
+ const scrollTop = this.matAutocompleteApp.panel.nativeElement.scrollTop;
90
+ const scrollHeight = this.matAutocompleteApp.panel.nativeElement.scrollHeight;
91
+ const elementHeight = this.matAutocompleteApp.panel.nativeElement.clientHeight;
92
+ const atBottom = scrollHeight - 1 <= scrollTop + elementHeight;
93
+ if (atBottom) {
94
+ if (this.has_next === true) {
95
+ let value = this.DropInput.nativeElement.value;
96
+ let params = this.searchparams(value);
97
+ this.currentpage = this.currentpage + 1;
98
+ if (this.currentpage > 1) {
99
+ this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
100
+ .subscribe((results) => {
101
+ let datas = results["data"];
102
+ let datapagination = results["pagination"];
103
+ this.Dropdowndata = this.Dropdowndata.concat(datas);
104
+ console.log("this.Dropdowndata", this.Dropdowndata);
105
+ if (this.Dropdowndata.length >= 0) {
106
+ this.has_next = datapagination.has_next;
107
+ this.has_previous = datapagination.has_previous;
108
+ this.currentpage = datapagination.index;
109
+ }
110
+ });
111
+ }
112
+ }
113
+ }
114
+ });
115
+ }
116
+ });
117
+ }
118
+ }
119
+ dropdownsearch() {
120
+ if (!(this.InputFields?.fronentdata)) {
121
+ this.DropdownForm.get("value").valueChanges.pipe(debounceTime(100), distinctUntilChanged(), tap(() => {
122
+ this.DrodownLoading = true;
123
+ console.log("inside tap");
124
+ }), switchMap((value) => {
125
+ let params = this.searchparams(value);
126
+ this.currentpage = 1;
127
+ return this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params).pipe(finalize(() => {
128
+ this.DrodownLoading = false;
129
+ }));
130
+ })).subscribe((results) => {
131
+ let datas = results["data"];
132
+ this.Dropdowndata = datas;
133
+ });
134
+ }
135
+ }
136
+ getdropdown(value) {
137
+ let params = this.searchparams(value);
138
+ this.service.GetApi(this.InputFields.url + "?page=" + this.currentpage, params)
139
+ .subscribe((results) => {
140
+ let datas = results["data"];
141
+ let datapagination = results["pagination"];
142
+ this.Dropdowndata = datas;
143
+ if (this.Dropdowndata.length >= 0) {
144
+ this.has_next = datapagination.has_next;
145
+ this.has_previous = datapagination.has_previous;
146
+ this.currentpage = datapagination.index;
147
+ }
148
+ });
149
+ }
150
+ selected() {
151
+ // let data = this.DropdownForm.value.value
152
+ if (this.InputFields?.wholedata) {
153
+ this.dataEvent.emit(this.chipSelectedObj);
154
+ }
155
+ else {
156
+ if (this.InputFields?.Outputkey) {
157
+ this.dataEvent.emit(this.chipSelectedId);
158
+ }
159
+ else {
160
+ this.dataEvent.emit(this.chipSelectedObj);
161
+ }
162
+ }
163
+ }
164
+ searchparams(value) {
165
+ let params = '';
166
+ if (this.InputFields.params) {
167
+ params = this.InputFields.params;
168
+ }
169
+ let inpValue = value;
170
+ inpValue ? params += '&' + this.InputFields.searchkey + '=' + inpValue : '';
171
+ return params;
172
+ }
173
+ removechip(obj) {
174
+ const index = this.chipSelectedObj.indexOf(obj);
175
+ if (index >= 0) {
176
+ this.chipSelectedObj.splice(index, 1);
177
+ console.log(this.chipSelectedObj);
178
+ this.chipSelectedId.splice(index, 1);
179
+ console.log(this.chipSelectedId);
180
+ this.DropInput.nativeElement.value = '';
181
+ this.selected();
182
+ }
183
+ }
184
+ venSelected(event) {
185
+ this.DropInput.nativeElement.value = '';
186
+ console.log('event.option.value', event.option.value);
187
+ this.selectvenByName(event.option.value[this.comparekey(event.option.value)]);
188
+ console.log('chipSelectedvenid', this.chipSelectedObj);
189
+ }
190
+ selectvenByName(ven) {
191
+ let foundemp1 = this.chipSelectedObj.filter((e) => e[this.comparekey(e)] == ven);
192
+ if (foundemp1.length) {
193
+ return;
194
+ }
195
+ let foundemp = this.Dropdowndata.filter((e) => e[this.comparekey(e)] == ven);
196
+ if (foundemp.length) {
197
+ this.chipSelectedObj.push(foundemp[0]);
198
+ if (this.InputFields?.Outputkey) {
199
+ this.chipSelectedId.push(foundemp[0][this.InputFields?.Outputkey]);
200
+ }
201
+ else {
202
+ this.chipSelectedId.push(foundemp[0].id);
203
+ }
204
+ }
205
+ }
206
+ comparekey(e) {
207
+ if (this.InputFields?.comparekey) {
208
+ return this.InputFields?.comparekey;
209
+ }
210
+ else {
211
+ if (e?.id) {
212
+ return "id";
213
+ }
214
+ else {
215
+ return this.InputFields.displaykey;
216
+ }
217
+ }
218
+ }
219
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VsChipddCmpComponent, deps: [{ token: i1.VsChipdropdownService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
220
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", 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 @for(obj of chipSelectedObj; track obj ){\r\n <mat-chip-row [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 }\r\n \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 @for(dropvalues of Dropdowndata; track dropvalues ){\r\n <mat-option [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields.displaykey]}}\r\n </mat-option>\r\n }\r\n \r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>", styles: [".mat-chipScroll{max-width:420px;width:100%}.mat-chipEx{text-align:left}.chip-container{overflow-y:scroll;max-height:80px}.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}\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: "component", type: i6.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i6.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i6.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i6.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
221
+ }
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VsChipddCmpComponent, decorators: [{
223
+ type: Component,
224
+ 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 @for(obj of chipSelectedObj; track obj ){\r\n <mat-chip-row [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 }\r\n \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 @for(dropvalues of Dropdowndata; track dropvalues ){\r\n <mat-option [value]=\"dropvalues\" (click)=\"selected()\">\r\n {{dropvalues[InputFields.displaykey]}}\r\n </mat-option>\r\n }\r\n \r\n </ng-container>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n</div>", styles: [".mat-chipScroll{max-width:420px;width:100%}.mat-chipEx{text-align:left}.chip-container{overflow-y:scroll;max-height:80px}.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}\n"] }]
225
+ }], ctorParameters: () => [{ type: i1.VsChipdropdownService }, { type: i2.FormBuilder }], propDecorators: { InputFields: [{
226
+ type: Input
227
+ }], ResetForm: [{
228
+ type: Input
229
+ }], Backendapi: [{
230
+ type: Input
231
+ }], autocompleteTrigger: [{
232
+ type: ViewChild,
233
+ args: [MatAutocompleteTrigger]
234
+ }], matAutocompleteApp: [{
235
+ type: ViewChild,
236
+ args: ['scrolll']
237
+ }], dataEvent: [{
238
+ type: Output
239
+ }], DropInput: [{
240
+ type: ViewChild,
241
+ args: ['DropInput']
242
+ }] } });
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRkLWNtcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92cy1jaGlwZHJvcGRvd24vc3JjL2xpYi92cy1jaGlwZGQtY21wL3ZzLWNoaXBkZC1jbXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdnMtY2hpcGRyb3Bkb3duL3NyYy9saWIvdnMtY2hpcGRkLWNtcC92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQWdDLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZILE9BQU8sRUFDTCxZQUFZLEVBQ1osb0JBQW9CLEVBQ3BCLEdBQUcsRUFFSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQW9CLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixPQUE4QixFQUFVLEVBQWU7UUFBdkQsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBRDNFLG1CQUFjLEdBQVcsS0FBSyxDQUFDO1FBSXRCLGVBQVUsR0FBWSxJQUFJLENBQUE7UUFFQSx3QkFBbUIsR0FBTyxzQkFBc0IsQ0FBQztRQUM5RCx1QkFBa0IsR0FBTyxlQUFlLENBQUM7UUFDckQsY0FBUyxH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QUFDO2lCQUNJLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1lBRTFDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUNELFVBQVUsQ0FBQyxDQUFLO1FBQ2QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLENBQUE7UUFDckMsQ0FBQzthQUNJLENBQUM7WUFDSixJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztnQkFDVixPQUFPLElBQUksQ0FBQTtZQUNiLENBQUM7aUJBQ0ksQ0FBQztnQkFDSixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFBO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0ExT1Usb0JBQW9CO2tHQUFwQixvQkFBb0IsNk9BT3BCLHNCQUFzQiw4UEM3Qm5DLHFyREErQk07OzJGRFRPLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxtQkFBbUI7b0hBT3BCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUU2QixtQkFBbUI7c0JBQXJELFNBQVM7dUJBQUMsc0JBQXNCO2dCQUNYLGtCQUFrQjtzQkFBdkMsU0FBUzt1QkFBQyxTQUFTO2dCQUNWLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2lCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgTWF0QXV0b2NvbXBsZXRlLCBNYXRBdXRvY29tcGxldGVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHtcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXHJcbiAgdGFwLFxyXG4gIGZpbHRlcixcclxuICBzd2l0Y2hNYXAsXHJcbiAgZmluYWxpemUsXHJcbiAgdGFrZVVudGlsLFxyXG4gIG1hcCxcclxufSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZzQ2hpcGRyb3Bkb3duU2VydmljZSB9IGZyb20gJy4uL3ZzLWNoaXBkcm9wZG93bi5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ09NTUEsIEVOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXZzLWNoaXBkZC1jbXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi92cy1jaGlwZGQtY21wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdnMtY2hpcGRkLWNtcC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRkQ21wQ29tcG9uZW50IHtcclxuICBEcm9kb3duTG9hZGluZzpib29sZWFuID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBWc0NoaXBkcm9wZG93blNlcnZpY2UsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cclxuICBASW5wdXQoKSBJbnB1dEZpZWxkczogYW55XHJcbiAgQElucHV0KCkgUmVzZXRGb3JtOiBhbnlcclxuICBASW5wdXQoKSBCYWNrZW5kYXBpOiBib29sZWFuID0gdHJ1ZVxyXG5cclxuICBAVmlld0NoaWxkKE1hdEF1dG9jb21wbGV0ZVRyaWdnZXIpIGF1dG9jb21wbGV0ZVRyaWdnZXI6YW55ID0gTWF0QXV0b2NvbXBsZXRlVHJpZ2dlcjtcclxuICBAVmlld0NoaWxkKCdzY3JvbGxsJykgbWF0QXV0b2NvbXBsZXRlQXBwOmFueSA9IE1hdEF1dG9jb21wbGV0ZTtcclxuICBAT3V0cHV0KCkgZGF0YUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBWaWV3Q2hpbGQoJ0Ryb3BJbnB1dCcpIERyb3BJbnB1dDogYW55O1xyXG4gIHJlYWRvbmx5IHNlcGFyYXRvcnNLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQV07XHJcblxyXG4gIGhhc19uZXh0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgY3VycmVudHBhZ2U6IG51bWJlciA9IDE7XHJcbiAgRHJvcGRvd25kYXRhOiBhbnkgPSBbXTtcclxuICBoYXNfcHJldmlvdXM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBEcm9wZG93bkZvcm06IGFueSA9IEZvcm1Hcm91cFxyXG4gIGNoaXBTZWxlY3RlZElkOiBhbnkgPSBbXTtcclxuICBjaGlwU2VsZWN0ZWRPYmo6IGFueSA9IFtdXHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5Ecm9wZG93bkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgdmFsdWU6ICcnXHJcbiAgICB9KVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXCJ2YWx1ZVwiKS5wYXRjaFZhbHVlKHRoaXMuSW5wdXRGaWVsZHM/LmRlZmF1bHR2YWx1ZSlcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRPYmogPSB0aGlzLklucHV0RmllbGRzPy5kZWZhdWx0dmFsdWVcclxuICAgICAgaWYgKHRoaXMuY2hpcFNlbGVjdGVkT2JqLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3IgKGxldCBmb3VuZGVtcCBvZiB0aGlzLmNoaXBTZWxlY3RlZE9iaikge1xyXG4gICAgICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbdGhpcy5JbnB1dEZpZWxkcz8uT3V0cHV0a2V5XSlcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZC5wdXNoKGZvdW5kZW1wLmlkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSB7XHJcbiAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5JbnB1dEZpZWxkcz8uZGF0YVxyXG5cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmdldGRyb3Bkb3duKCcnKVxyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoYW5nZXMuUmVzZXRGb3JtXCIsIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddLCBjaGFuZ2VzWydSZXNldEZvcm0nXS5jdXJyZW50VmFsdWUsIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddICYmIGNoYW5nZXNbJ1Jlc2V0Rm9ybSddLmN1cnJlbnRWYWx1ZSlcclxuICAgIGlmIChjaGFuZ2VzWydJbnB1dEZpZWxkcyddICYmIGNoYW5nZXNbJ0lucHV0RmllbGRzJ10uY3VycmVudFZhbHVlKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiU3VtbWFyeSBMb2cgQ2hhbmdlc1wiKVxyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMVxyXG4gICAgICB0aGlzLm5nT25Jbml0KClcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydSZXNldEZvcm0nXSAmJiBjaGFuZ2VzWydSZXNldEZvcm0nXS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJoaXR0ZWRcIilcclxuICAgICAgdGhpcy5Ecm9wZG93bkZvcm0ucmVzZXQoKVxyXG4gICAgICB0aGlzLmN1cnJlbnRwYWdlID0gMVxyXG4gICAgICB0aGlzLm5nT25Jbml0KClcclxuICAgICAgdGhpcy5jaGlwU2VsZWN0ZWRJZCA9IFtdO1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iaiA9IFtdXHJcbiAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQoW10pO1xyXG5cclxuXHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBkaXNwbGF5ZGV2ZWxvcGNsaWVudChjbHQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAvLyAgIHJldHVybiBrZXlbY2x0XTtcclxuICAvLyB9XHJcbiAgYXV0b2NvbXBsZXRlQXBwU2Nyb2xsKCkge1xyXG4gICAgaWYgKCEodGhpcy5JbnB1dEZpZWxkcz8uZnJvbmVudGRhdGEpKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwICYmXHJcbiAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZVRyaWdnZXIgJiZcclxuICAgICAgICAgIHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBmcm9tRXZlbnQodGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudCwgJ3Njcm9sbCcpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCh4ID0+IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wKSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5hdXRvY29tcGxldGVUcmlnZ2VyLnBhbmVsQ2xvc2luZ0FjdGlvbnMgYXMgT2JzZXJ2YWJsZTxhbnk+KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoeCA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxUb3A7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGhpcy5tYXRBdXRvY29tcGxldGVBcHAucGFuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9IHRoaXMubWF0QXV0b2NvbXBsZXRlQXBwLnBhbmVsLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF0Qm90dG9tID0gc2Nyb2xsSGVpZ2h0IC0gMSA8PSBzY3JvbGxUb3AgKyBlbGVtZW50SGVpZ2h0O1xyXG4gICAgICAgICAgICAgIGlmIChhdEJvdHRvbSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaGFzX25leHQgPT09IHRydWUpIHtcclxuICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5Ecm9wSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZVxyXG4gICAgICAgICAgICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSB0aGlzLmN1cnJlbnRwYWdlICsgMVxyXG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5jdXJyZW50cGFnZSA+IDEpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgXCI/cGFnZT1cIiArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YXMgPSByZXN1bHRzW1wiZGF0YVwiXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1tcInBhZ2luYXRpb25cIl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gdGhpcy5Ecm9wZG93bmRhdGEuY29uY2F0KGRhdGFzKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJ0aGlzLkRyb3Bkb3duZGF0YVwiLCB0aGlzLkRyb3Bkb3duZGF0YSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuRHJvcGRvd25kYXRhLmxlbmd0aCA+PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGFzX3ByZXZpb3VzID0gZGF0YXBhZ2luYXRpb24uaGFzX3ByZXZpb3VzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudHBhZ2UgPSBkYXRhcGFnaW5hdGlvbi5pbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBkcm9wZG93bnNlYXJjaCgpIHtcclxuICAgIGlmICghKHRoaXMuSW5wdXRGaWVsZHM/LmZyb25lbnRkYXRhKSkge1xyXG4gICAgICB0aGlzLkRyb3Bkb3duRm9ybS5nZXQoXCJ2YWx1ZVwiKS52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICBkZWJvdW5jZVRpbWUoMTAwKSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLkRyb2Rvd25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zaWRlIHRhcFwiKTtcclxuICAgICAgICB9KSxcclxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpO1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50cGFnZSA9IDFcclxuICAgICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgXCI/cGFnZT1cIiArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcykucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuRHJvZG93bkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKHJlc3VsdHM6IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhcyA9IHJlc3VsdHNbXCJkYXRhXCJdO1xyXG4gICAgICAgIHRoaXMuRHJvcGRvd25kYXRhID0gZGF0YXM7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZ2V0ZHJvcGRvd24odmFsdWU6YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0gdGhpcy5zZWFyY2hwYXJhbXModmFsdWUpXHJcbiAgICB0aGlzLnNlcnZpY2UuR2V0QXBpKHRoaXMuSW5wdXRGaWVsZHMudXJsICsgXCI/cGFnZT1cIiArIHRoaXMuY3VycmVudHBhZ2UsIHBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0czogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGFzID0gcmVzdWx0c1tcImRhdGFcIl07XHJcbiAgICAgICAgbGV0IGRhdGFwYWdpbmF0aW9uID0gcmVzdWx0c1tcInBhZ2luYXRpb25cIl07XHJcbiAgICAgICAgdGhpcy5Ecm9wZG93bmRhdGEgPSBkYXRhc1xyXG4gICAgICAgIGlmICh0aGlzLkRyb3Bkb3duZGF0YS5sZW5ndGggPj0gMCkge1xyXG4gICAgICAgICAgdGhpcy5oYXNfbmV4dCA9IGRhdGFwYWdpbmF0aW9uLmhhc19uZXh0O1xyXG4gICAgICAgICAgdGhpcy5oYXNfcHJldmlvdXMgPSBkYXRhcGFnaW5hdGlvbi5oYXNfcHJldmlvdXM7XHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRwYWdlID0gZGF0YXBhZ2luYXRpb24uaW5kZXg7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBzZWxlY3RlZCgpIHtcclxuICAgIC8vIGxldCBkYXRhID0gdGhpcy5Ecm9wZG93bkZvcm0udmFsdWUudmFsdWVcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy53aG9sZWRhdGEpIHtcclxuICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuZGF0YUV2ZW50LmVtaXQodGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRhRXZlbnQuZW1pdCh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBzZWFyY2hwYXJhbXModmFsdWU6YW55KSB7XHJcbiAgICBsZXQgcGFyYW1zID0gJydcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzLnBhcmFtcykge1xyXG4gICAgICBwYXJhbXMgPSB0aGlzLklucHV0RmllbGRzLnBhcmFtc1xyXG4gICAgfVxyXG4gICAgbGV0IGlucFZhbHVlID0gdmFsdWVcclxuICAgIGlucFZhbHVlID8gcGFyYW1zICs9ICcmJyArIHRoaXMuSW5wdXRGaWVsZHMuc2VhcmNoa2V5ICsgJz0nICsgaW5wVmFsdWUgOiAnJ1xyXG4gICAgcmV0dXJuIHBhcmFtc1xyXG4gIH1cclxuICByZW1vdmVjaGlwKG9iajphbnkpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouaW5kZXhPZihvYmopO1xyXG5cclxuICAgIGlmIChpbmRleCA+PSAwKSB7XHJcblxyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICBjb25zb2xlLmxvZyh0aGlzLmNoaXBTZWxlY3RlZE9iaik7XHJcbiAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5jaGlwU2VsZWN0ZWRJZCk7XHJcbiAgICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5zZWxlY3RlZCgpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBwdWJsaWMgdmVuU2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuRHJvcElucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcclxuICAgIGNvbnNvbGUubG9nKCdldmVudC5vcHRpb24udmFsdWUnLCBldmVudC5vcHRpb24udmFsdWUpXHJcbiAgICB0aGlzLnNlbGVjdHZlbkJ5TmFtZShldmVudC5vcHRpb24udmFsdWVbdGhpcy5jb21wYXJla2V5KGV2ZW50Lm9wdGlvbi52YWx1ZSldKTtcclxuICAgIGNvbnNvbGUubG9nKCdjaGlwU2VsZWN0ZWR2ZW5pZCcsIHRoaXMuY2hpcFNlbGVjdGVkT2JqKVxyXG4gIH1cclxuICBwcml2YXRlIHNlbGVjdHZlbkJ5TmFtZSh2ZW46YW55KSB7XHJcbiAgICBsZXQgZm91bmRlbXAxID0gdGhpcy5jaGlwU2VsZWN0ZWRPYmouZmlsdGVyKChlOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4pO1xyXG4gICAgaWYgKGZvdW5kZW1wMS5sZW5ndGgpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbGV0IGZvdW5kZW1wID0gdGhpcy5Ecm9wZG93bmRhdGEuZmlsdGVyKChlOiB7IFt4OiBzdHJpbmddOiBhbnk7IH0pID0+IGVbdGhpcy5jb21wYXJla2V5KGUpXSA9PSB2ZW4pO1xyXG4gICAgaWYgKGZvdW5kZW1wLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmNoaXBTZWxlY3RlZE9iai5wdXNoKGZvdW5kZW1wWzBdKTtcclxuICAgICAgaWYgKHRoaXMuSW5wdXRGaWVsZHM/Lk91dHB1dGtleSkge1xyXG4gICAgICAgIHRoaXMuY2hpcFNlbGVjdGVkSWQucHVzaChmb3VuZGVtcFswXVt0aGlzLklucHV0RmllbGRzPy5PdXRwdXRrZXldKVxyXG5cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNoaXBTZWxlY3RlZElkLnB1c2goZm91bmRlbXBbMF0uaWQpXHJcblxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNvbXBhcmVrZXkoZTphbnkpIHtcclxuICAgIGlmICh0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzPy5jb21wYXJla2V5XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGU/LmlkKSB7XHJcbiAgICAgICAgcmV0dXJuIFwiaWRcIlxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLklucHV0RmllbGRzLmRpc3BsYXlrZXlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJEcm9wZG93bkZvcm1cIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtY2hpcFNjcm9sbFwiXHJcbiAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1sYWJlbD57e0lucHV0RmllbGRzLmxhYmVsIHwgdHJhbnNsYXRlfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgPG1hdC1jaGlwLWdyaWQgbXVsdGlwbGUgI2NoaXBMaXN0dmVuZG9yIGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIEBmb3Iob2JqIG9mIGNoaXBTZWxlY3RlZE9iajsgdHJhY2sgb2JqICl7XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwLXJvdyAgW3JlbW92YWJsZV09XCJ0cnVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlY2hpcChvYmopXCIgY2xhc3M9XCJtYXQtY2hpcEV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9ialtJbnB1dEZpZWxkcy5kaXNwbGF5a2V5XSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgI0Ryb3BJbnB1dCBbbWF0QXV0b2NvbXBsZXRlXT1cInNjcm9sbGxcIiBjbGFzcz1cIm1hdGZvcm1maWVsZGlucHV0c3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImRyb3Bkb3duc2VhcmNoKClcIiBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0dmVuZG9yXCIgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXBhcmF0b3JzS2V5c0NvZGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIiBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIiBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIC8+XHJcbiAgICAgICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3Njcm9sbGw9XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwidmVuU2VsZWN0ZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAob3BlbmVkKT1cImF1dG9jb21wbGV0ZUFwcFNjcm9sbCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IoZHJvcHZhbHVlcyBvZiBEcm9wZG93bmRhdGE7IHRyYWNrIGRyb3B2YWx1ZXMgKXtcclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImRyb3B2YWx1ZXNcIiAoY2xpY2spPVwic2VsZWN0ZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkcm9wdmFsdWVzW0lucHV0RmllbGRzLmRpc3BsYXlrZXldfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbjwvZGl2PiJdfQ==
@@ -1,19 +1,19 @@
1
- import { Component } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class VsChipdropdownComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VsChipdropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: VsChipdropdownComponent, selector: "lib-vs-chipdropdown", ngImport: i0, template: `
6
- <p>
7
- vs-chipdropdown works!
8
- </p>
9
- `, isInline: true }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VsChipdropdownComponent, decorators: [{
12
- type: Component,
13
- args: [{ selector: 'lib-vs-chipdropdown', template: `
14
- <p>
15
- vs-chipdropdown works!
16
- </p>
17
- ` }]
18
- }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZzLWNoaXBkcm9wZG93bi9zcmMvbGliL3ZzLWNoaXBkcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFZMUMsTUFBTSxPQUFPLHVCQUF1QjsrR0FBdkIsdUJBQXVCO21HQUF2Qix1QkFBdUIsMkRBUnhCOzs7O0dBSVQ7OzRGQUlVLHVCQUF1QjtrQkFWbkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRyb3Bkb3duJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIHZzLWNoaXBkcm9wZG93biB3b3JrcyFcbiAgICA8L3A+XG4gIGAsXG4gIHN0eWxlczogW1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRyb3Bkb3duQ29tcG9uZW50IHtcblxufVxuIl19
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class VsChipdropdownComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VsChipdropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.0", type: VsChipdropdownComponent, selector: "lib-vs-chipdropdown", ngImport: i0, template: `
6
+ <p>
7
+ vs-chipdropdown works!
8
+ </p>
9
+ `, isInline: true, styles: [""] }); }
10
+ }
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: VsChipdropdownComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'lib-vs-chipdropdown', template: `
14
+ <p>
15
+ vs-chipdropdown works!
16
+ </p>
17
+ ` }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidnMtY2hpcGRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZzLWNoaXBkcm9wZG93bi9zcmMvbGliL3ZzLWNoaXBkcm9wZG93bi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXMUMsTUFBTSxPQUFPLHVCQUF1Qjs4R0FBdkIsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMkRBUHhCOzs7O0dBSVQ7OzJGQUdVLHVCQUF1QjtrQkFUbkMsU0FBUzsrQkFDRSxxQkFBcUIsWUFDckI7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdnMtY2hpcGRyb3Bkb3duJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIHZzLWNoaXBkcm9wZG93biB3b3JrcyFcclxuICAgIDwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogYGBcclxufSlcclxuZXhwb3J0IGNsYXNzIFZzQ2hpcGRyb3Bkb3duQ29tcG9uZW50IHtcclxuXHJcbn1cclxuIl19