@piserve-tech/drop-down 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,19 +1,14 @@
1
1
  import { Component, EventEmitter, HostListener, Input, Output, ViewChild, } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "../service/countryService";
4
- import * as i2 from "@angular/forms";
5
- import * as i3 from "@angular/common";
3
+ import * as i1 from "@angular/forms";
4
+ import * as i2 from "@angular/common";
6
5
  export class DropdownComponent {
7
- constructor(countryService) {
8
- this.countryService = countryService;
6
+ constructor() {
9
7
  this.selectedItems = [];
10
8
  this.placeholder = "";
11
- this.label = "";
12
9
  this.items = [];
13
10
  this.customButtons = [];
14
11
  this.showBorder = true;
15
- this.isCountryCode = false;
16
- this.borderThickness = true;
17
12
  this.buttonClick = new EventEmitter();
18
13
  this.selectedItemsChange = new EventEmitter();
19
14
  this.onScroll = new EventEmitter();
@@ -21,27 +16,15 @@ export class DropdownComponent {
21
16
  this.onSearch = new EventEmitter();
22
17
  this.dropdownOpened = false;
23
18
  this.selectedItemName = "";
19
+ this.selectedItemImage = "";
24
20
  this.originalItems = [];
25
21
  this.searchTerm = "";
26
- this.selectedFlag = "";
27
- this.countryDetails = [];
28
22
  }
29
23
  ngOnInit() {
30
24
  if (this.selectedItems && this.selectedItems.length > 0) {
31
25
  if (!this.multiple)
32
26
  this.selectItem(this.selectedItems[0]);
33
27
  }
34
- if (this.isCountryCode) {
35
- this.countryService.loadCountryDetails().subscribe((data) => {
36
- this.countryDetails = this.countryService.processCountryDetails(data);
37
- console.log("CountryDetails", this.countryDetails);
38
- this.items = this.countryDetails; // Move this line here
39
- this.originalItems = this.items.slice();
40
- console.log(this.isCountryCode);
41
- console.log("Items", this.items);
42
- });
43
- this.label = "countryName";
44
- }
45
28
  this.originalItems = this.items.slice();
46
29
  }
47
30
  openDropdown() {
@@ -70,20 +53,11 @@ export class DropdownComponent {
70
53
  }
71
54
  else {
72
55
  this.selectedItems[0] = item;
73
- if (this.isCountryCode) {
74
- this.selectedItemName = this.selectedItems[0]["ISDCode"];
75
- this.selectedFlag = this.selectedItems[0]["ISOCode"].toLowerCase();
76
- console.log("flag", this.selectedFlag);
77
- this.dropdownOpened = false;
78
- // this.items = this.originalItems.slice();
79
- this.selectedItemsChange.emit(this.selectedItems);
80
- }
81
- else {
82
- this.selectedItemName = this.selectedItems[0][this.label];
83
- this.dropdownOpened = false;
84
- // this.items = this.originalItems.slice();
85
- this.selectedItemsChange.emit(this.selectedItems);
86
- }
56
+ this.selectedItemName = this.selectedItems[0]?.label;
57
+ this.selectedItemImage = this.selectedItems[0]?.image;
58
+ this.dropdownOpened = false;
59
+ // this.items = this.originalItems.slice();
60
+ this.selectedItemsChange.emit(this.selectedItems);
87
61
  }
88
62
  }
89
63
  unselectItem(item) {
@@ -106,58 +80,42 @@ export class DropdownComponent {
106
80
  this.onCreateNew.emit();
107
81
  }
108
82
  search(event) {
109
- console.log("Search method triggered");
110
83
  const keyCode = event.keyCode;
111
84
  if (keyCode === 8 && !this.multiple) {
112
85
  this.selectedItems = [];
113
86
  this.selectedItemName = "";
114
- this.selectedFlag = "";
87
+ this.selectedItemImage = "";
115
88
  this.items = this.originalItems.slice();
116
89
  this.selectedItemsChange.emit(this.selectedItems);
117
90
  }
118
91
  else {
119
92
  this.searchTerm = event.target.value.toLowerCase();
120
- console.log("Search term:", this.searchTerm);
121
- if (!this.isCountryCode) {
122
- if (!this.onSearch.observers.length) {
123
- if (this.searchTerm.trim() === "") {
124
- this.items = this.originalItems.slice();
125
- }
126
- else {
127
- this.items = this.originalItems.filter((item) => item[this.label].toLowerCase().startsWith(this.searchTerm));
128
- }
129
- }
130
- else {
131
- this.onSearch.emit(this.searchTerm);
132
- }
133
- }
134
- else {
93
+ if (!this.onSearch.observers.length) {
135
94
  if (this.searchTerm.trim() === "") {
136
95
  this.items = this.originalItems.slice();
137
96
  }
138
97
  else {
139
- this.items = this.originalItems.filter((item) => {
140
- const startsWithSearchTerm = item["countryName"]
141
- .toLowerCase()
142
- .includes(this.searchTerm);
143
- console.log(`Item...: ${item["countryName"]}, Match: ${startsWithSearchTerm}`);
144
- return startsWithSearchTerm;
145
- });
98
+ this.items = this.originalItems.filter((item) => item.label.toLowerCase().startsWith(this.searchTerm) ||
99
+ (item.value &&
100
+ item.value.toLowerCase().startsWith(this.searchTerm)));
146
101
  }
147
102
  }
103
+ else {
104
+ this.onSearch.emit(this.searchTerm);
105
+ }
148
106
  }
149
107
  }
150
108
  handleButtonClick(action) {
151
109
  action();
152
110
  this.buttonClick.emit();
153
111
  }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [{ token: i1.CountryService }], target: i0.ɵɵFactoryTarget.Component }); }
155
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { multiple: "multiple", scrollable: "scrollable", selectedItems: "selectedItems", placeholder: "placeholder", label: "label", items: "items", showCreateNew: "showCreateNew", customButtons: "customButtons", showBorder: "showBorder", isCountryCode: "isCountryCode", borderThickness: "borderThickness" }, outputs: { buttonClick: "buttonClick", selectedItemsChange: "selectedItemsChange", onScroll: "onScroll", onCreateNew: "onCreateNew", onSearch: "onSearch" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownitems", first: true, predicate: ["dropdownItems"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border':isCountryCode || !borderThickness,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border': isCountryCode || !borderThickness\r\n }\"\r\n (click)=\"isCountryCode && openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n {{ selectedItem[label] }}\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div *ngIf=\"selectedItems.length > 3\" class=\"remaining-items\">\r\n + {{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"input-field\"\r\n [ngClass]=\"{\r\n 'country-code-border': isCountryCode\r\n }\"\r\n >\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\" class=\"country-code-wrapper\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n <span *ngIf=\"isCountryCode\" class=\"flag-icon\">\r\n <span [class]=\"'fi fi-' + selectedFlag\"></span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"down-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px}.dropdown .dropdown-field .input-field .dropdown_text{width:97%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field .input-field.country-code-border{height:42px}.dropdown .dropdown-field.closed{border:2px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:2px solid #d8d8d8}.dropdown .dropdown-field.country-code-border{border:1px solid #dee2e6;border-radius:6px}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.country-code-wrapper{display:flex;align-items:center}.country-code-wrapper .flag-icon{margin-left:-29px;font-size:16px}\n"], dependencies: [{ 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { multiple: "multiple", scrollable: "scrollable", selectedItems: "selectedItems", placeholder: "placeholder", items: "items", showCreateNew: "showCreateNew", customButtons: "customButtons", showBorder: "showBorder" }, outputs: { buttonClick: "buttonClick", selectedItemsChange: "selectedItemsChange", onScroll: "onScroll", onCreateNew: "onCreateNew", onSearch: "onSearch" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownitems", first: true, predicate: ["dropdownItems"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n (click)=\"openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected selectedList\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n <img\r\n *ngIf=\"selectedItem?.image\"\r\n class=\"multiSelected-icon-size\"\r\n [src]=\"selectedItem?.image\"\r\n alt=\"image\"\r\n />\r\n <span>{{ selectedItem.label }}</span>\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div class=\"remaining-items\" *ngIf=\"selectedItems.length > 3\">\r\n +{{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-field\">\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\">\r\n <img\r\n *ngIf=\"selectedItemImage\"\r\n class=\"selected-icon-size\"\r\n [src]=\"selectedItemImage\"\r\n alt=\"image\"\r\n />\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"down-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected.selectedList{display:flex;flex-wrap:wrap}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px;font-size:small}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px;font-size:smaller}.dropdown .dropdown-field .input-field .dropdown_text{width:76%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field.closed{border:1px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:1px solid #d8d8d8}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.space{width:10px}.item-details{display:flex;align-items:center}.icon-size{width:25px;height:20px;margin-right:7px}.smallSpace{width:3px}.selected-icon-size{width:25px;height:20px;margin-left:10px}.multiSelected-icon-size{width:25px;height:20px;margin-left:1px;margin-bottom:1px;margin-right:3px}\n"], dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
156
114
  }
157
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, decorators: [{
158
116
  type: Component,
159
- args: [{ selector: "lib-dropdown", template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border':isCountryCode || !borderThickness,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border': isCountryCode || !borderThickness\r\n }\"\r\n (click)=\"isCountryCode && openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n {{ selectedItem[label] }}\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div *ngIf=\"selectedItems.length > 3\" class=\"remaining-items\">\r\n + {{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"input-field\"\r\n [ngClass]=\"{\r\n 'country-code-border': isCountryCode\r\n }\"\r\n >\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\" class=\"country-code-wrapper\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n <span *ngIf=\"isCountryCode\" class=\"flag-icon\">\r\n <span [class]=\"'fi fi-' + selectedFlag\"></span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"down-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px}.dropdown .dropdown-field .input-field .dropdown_text{width:97%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field .input-field.country-code-border{height:42px}.dropdown .dropdown-field.closed{border:2px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:2px solid #d8d8d8}.dropdown .dropdown-field.country-code-border{border:1px solid #dee2e6;border-radius:6px}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.country-code-wrapper{display:flex;align-items:center}.country-code-wrapper .flag-icon{margin-left:-29px;font-size:16px}\n"] }]
160
- }], ctorParameters: function () { return [{ type: i1.CountryService }]; }, propDecorators: { multiple: [{
117
+ args: [{ selector: "lib-dropdown", template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n (click)=\"openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected selectedList\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n <img\r\n *ngIf=\"selectedItem?.image\"\r\n class=\"multiSelected-icon-size\"\r\n [src]=\"selectedItem?.image\"\r\n alt=\"image\"\r\n />\r\n <span>{{ selectedItem.label }}</span>\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div class=\"remaining-items\" *ngIf=\"selectedItems.length > 3\">\r\n +{{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-field\">\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\">\r\n <img\r\n *ngIf=\"selectedItemImage\"\r\n class=\"selected-icon-size\"\r\n [src]=\"selectedItemImage\"\r\n alt=\"image\"\r\n />\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"down-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected.selectedList{display:flex;flex-wrap:wrap}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px;font-size:small}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px;font-size:smaller}.dropdown .dropdown-field .input-field .dropdown_text{width:76%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field.closed{border:1px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:1px solid #d8d8d8}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.space{width:10px}.item-details{display:flex;align-items:center}.icon-size{width:25px;height:20px;margin-right:7px}.smallSpace{width:3px}.selected-icon-size{width:25px;height:20px;margin-left:10px}.multiSelected-icon-size{width:25px;height:20px;margin-left:1px;margin-bottom:1px;margin-right:3px}\n"] }]
118
+ }], ctorParameters: function () { return []; }, propDecorators: { multiple: [{
161
119
  type: Input
162
120
  }], scrollable: [{
163
121
  type: Input
@@ -165,8 +123,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
165
123
  type: Input
166
124
  }], placeholder: [{
167
125
  type: Input
168
- }], label: [{
169
- type: Input
170
126
  }], items: [{
171
127
  type: Input
172
128
  }], showCreateNew: [{
@@ -175,10 +131,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
175
131
  type: Input
176
132
  }], showBorder: [{
177
133
  type: Input
178
- }], isCountryCode: [{
179
- type: Input
180
- }], borderThickness: [{
181
- type: Input
182
134
  }], buttonClick: [{
183
135
  type: Output
184
136
  }], selectedItemsChange: [{
@@ -199,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
199
151
  type: HostListener,
200
152
  args: ["document:click", ["$event"]]
201
153
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZHJvcGRvd24vc3JjL2xpYi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kcm9wZG93bi9zcmMvbGliL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRdkIsTUFBTSxPQUFPLGlCQUFpQjtJQWlDNUIsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBOUJ6QyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFVBQUssR0FBVSxFQUFFLENBQUM7UUFFbEIsa0JBQWEsR0FLaEIsRUFBRSxDQUFDO1FBQ0EsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixrQkFBYSxHQUFVLEtBQUssQ0FBQztRQUM3QixvQkFBZSxHQUFZLElBQUksQ0FBQztRQUMvQixnQkFBVyxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzdELHdCQUFtQixHQUF3QixJQUFJLFlBQVksRUFFbEUsQ0FBQztRQUNNLGFBQVEsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUMxRCxnQkFBVyxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzdELGFBQVEsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV0RSxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUVoQyxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFDOUIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4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QUksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBcExVLGlCQUFpQjttR0FBakIsaUJBQWlCLG94QkNqQjlCLGk1SkE4SkE7OzRGRDdJYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYztxR0FLZixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQU1HLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csbUJBQW1CO3NCQUE1QixNQUFNO2dCQUdHLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQXFDcUIsYUFBYTtzQkFBeEMsU0FBUzt1QkFBQyxlQUFlO2dCQTJESCxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVU7Z0JBRXJCLGVBQWU7c0JBRGQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb3VudHJ5U2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlL2NvdW50cnlTZXJ2aWNlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItZHJvcGRvd25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzY3JvbGxhYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBTdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dDcmVhdGVOZXchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgYWN0aW9uOiAoKSA9PiB2b2lkO1xyXG4gIH1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dCb3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGlzQ291bnRyeUNvZGU6IGJvb2xlYW49ZmFsc2U7XHJcbiAgQElucHV0KCkgYm9yZGVyVGhpY2tuZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZEl0ZW1zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxcclxuICAgIGFueVtdXHJcbiAgPigpO1xyXG4gIEBPdXRwdXQoKSBvblNjcm9sbDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uQ3JlYXRlTmV3OiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGRyb3Bkb3duT3BlbmVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgc2VsZWN0ZWRJdGVtTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBvcmlnaW5hbEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIHNlYXJjaFRlcm06IHN0cmluZyA9IFwiXCI7XHJcbiAgc2VsZWN0ZWRGbGFnOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGNvdW50cnlEZXRhaWxzOiBhbnlbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvdW50cnlTZXJ2aWNlOiBDb3VudHJ5U2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW1zICYmIHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkgdGhpcy5zZWxlY3RJdGVtKHRoaXMuc2VsZWN0ZWRJdGVtc1swXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pc0NvdW50cnlDb2RlKSB7XHJcbiAgICAgIHRoaXMuY291bnRyeVNlcnZpY2UubG9hZENvdW50cnlEZXRhaWxzKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5RGV0YWlscyA9IHRoaXMuY291bnRyeVNlcnZpY2UucHJvY2Vzc0NvdW50cnlEZXRhaWxzKGRhdGEpO1xyXG5cclxuICAgICAgICBjb25zb2xlLmxvZyhcIkNvdW50cnlEZXRhaWxzXCIsIHRoaXMuY291bnRyeURldGFpbHMpO1xyXG5cclxuICAgICAgICB0aGlzLml0ZW1zID0gdGhpcy5jb3VudHJ5RGV0YWlsczsgLy8gTW92ZSB0aGlzIGxpbmUgaGVyZVxyXG4gICAgICAgIHRoaXMub3JpZ2luYWxJdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2UoKTtcclxuXHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5pc0NvdW50cnlDb2RlKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcIkl0ZW1zXCIsIHRoaXMuaXRlbXMpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5sYWJlbCA9IFwiY291bnRyeU5hbWVcIjtcclxuICAgIH1cclxuICAgIHRoaXMub3JpZ2luYWxJdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSAhdGhpcy5kcm9wZG93bk9wZW5lZDtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93bkl0ZW1zXCIpIGRyb3Bkb3duaXRlbXMhOiBFbGVtZW50UmVmO1xyXG5cclxuICBvbkRyb3Bkb3duU2Nyb2xsKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uU2Nyb2xsKSB7XHJcbiAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duaXRlbXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPVxyXG4gICAgICAgIGRyb3Bkb3duRWxlbWVudC5zY3JvbGxUb3AgKyBkcm9wZG93bkVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBjb25zdCB0b3RhbEhlaWdodCA9IGRyb3Bkb3duRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcblxyXG4gICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPj0gdG90YWxIZWlnaHQpIHtcclxuICAgICAgICB0aGlzLm9uU2Nyb2xsLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbShpdGVtOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGl0ZW0pKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKFxyXG4gICAgICAgICAgKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkICE9PSBpdGVtXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNbMF0gPSBpdGVtO1xyXG4gICAgICBpZiAodGhpcy5pc0NvdW50cnlDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1OYW1lID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdW1wiSVNEQ29kZVwiXTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRmxhZyA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXVtcIklTT0NvZGVcIl0udG9Mb3dlckNhc2UoKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhcImZsYWdcIiwgdGhpcy5zZWxlY3RlZEZsYWcpO1xyXG5cclxuICAgICAgICB0aGlzLmRyb3Bkb3duT3BlbmVkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5zbGljZSgpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1OYW1lID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdW3RoaXMubGFiZWxdO1xyXG4gICAgICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSBmYWxzZTtcclxuICAgICAgICAvLyB0aGlzLml0ZW1zID0gdGhpcy5vcmlnaW5hbEl0ZW1zLnNsaWNlKCk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdW5zZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihcclxuICAgICAgKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkICE9PSBpdGVtXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHVuc2VsZWN0QWxsKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbU5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIC8vIHRoaXMuaXRlbXMgPSB0aGlzLm9yaWdpbmFsSXRlbXMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93blwiKSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XHJcbiAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpc0NsaWNrSW5zaWRlRHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXHJcbiAgICAgIGV2ZW50LnRhcmdldFxyXG4gICAgKTtcclxuICAgIGlmICghaXNDbGlja0luc2lkZURyb3Bkb3duKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZU5ldygpIHtcclxuICAgIHRoaXMub25DcmVhdGVOZXcuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnNvbGUubG9nKFwiU2VhcmNoIG1ldGhvZCB0cmlnZ2VyZWRcIik7XHJcbiAgICBjb25zdCBrZXlDb2RlID0gZXZlbnQua2V5Q29kZTtcclxuXHJcbiAgICBpZiAoa2V5Q29kZSA9PT0gOCAmJiAhdGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1OYW1lID0gXCJcIjtcclxuICAgICAgdGhpcy5zZWxlY3RlZEZsYWcgPSBcIlwiO1xyXG4gICAgICB0aGlzLml0ZW1zID0gdGhpcy5vcmlnaW5hbEl0ZW1zLnNsaWNlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtc0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaFRlcm0gPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgY29uc29sZS5sb2coXCJTZWFyY2ggdGVybTpcIiwgdGhpcy5zZWFyY2hUZXJtKTtcclxuICAgICAgaWYgKCF0aGlzLmlzQ291bnRyeUNvZGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMub25TZWFyY2gub2JzZXJ2ZXJzLmxlbmd0aCkge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybS50cmltKCkgPT09IFwiXCIpIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5zbGljZSgpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgICAgICAgaXRlbVt0aGlzLmxhYmVsXS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodGhpcy5zZWFyY2hUZXJtKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm9uU2VhcmNoLmVtaXQodGhpcy5zZWFyY2hUZXJtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybS50cmltKCkgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLm9yaWdpbmFsSXRlbXMuc2xpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgc3RhcnRzV2l0aFNlYXJjaFRlcm0gPSBpdGVtW1wiY291bnRyeU5hbWVcIl1cclxuICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAgICAgICAgIC5pbmNsdWRlcyh0aGlzLnNlYXJjaFRlcm0pO1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICAgICAgICBgSXRlbS4uLjogJHtpdGVtW1wiY291bnRyeU5hbWVcIl19LCBNYXRjaDogJHtzdGFydHNXaXRoU2VhcmNoVGVybX1gXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiBzdGFydHNXaXRoU2VhcmNoVGVybTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQnV0dG9uQ2xpY2soYWN0aW9uOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICBhY3Rpb24oKTtcclxuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2Ryb3Bkb3duXHJcbiAgY2xhc3M9XCJkcm9wZG93blwiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgb3BlbmVkOiBzaG93Qm9yZGVyICYmIGRyb3Bkb3duT3BlbmVkLFxyXG4gICAgY2xvc2VkOiBzaG93Qm9yZGVyICYmICFkcm9wZG93bk9wZW5lZCxcclxuICAgICdjb3VudHJ5LWNvZGUtYm9yZGVyJzppc0NvdW50cnlDb2RlIHx8ICFib3JkZXJUaGlja25lc3MsXHJcbiAgfVwiXHJcbj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLWZpZWxkXCJcclxuICAgIGlkPVwiZGl2aXNpb25cIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICBvcGVuZWQ6IHNob3dCb3JkZXIgJiYgZHJvcGRvd25PcGVuZWQsXHJcbiAgICAgIGNsb3NlZDogc2hvd0JvcmRlciAmJiAhZHJvcGRvd25PcGVuZWQsXHJcbiAgICAgICdjb3VudHJ5LWNvZGUtYm9yZGVyJzogaXNDb3VudHJ5Q29kZSB8fCAhYm9yZGVyVGhpY2tuZXNzXHJcbiAgICB9XCJcclxuICAgIChjbGljayk9XCJpc0NvdW50cnlDb2RlICYmIG9wZW5Ecm9wZG93bigpXCJcclxuICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGVkSXRlbSAmJiBtdWx0aXBsZVwiIGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBzZWxlY3RlZEl0ZW0gb2Ygc2VsZWN0ZWRJdGVtcy5zbGljZSgwLCAzKVwiXHJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1pdGVtXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7IHNlbGVjdGVkSXRlbVtsYWJlbF0gfX1cclxuICAgICAgICA8c3BhbiAoY2xpY2spPVwidW5zZWxlY3RJdGVtKHNlbGVjdGVkSXRlbSlcIiBjbGFzcz1cImNsb3NlLWljb25cIlxyXG4gICAgICAgICAgPiZ0aW1lczs8L3NwYW5cclxuICAgICAgICA+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAzXCIgY2xhc3M9XCJyZW1haW5pbmctaXRlbXNcIj5cclxuICAgICAgICArIHt7IHNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMyB9fSBtb3JlXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcclxuICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICdjb3VudHJ5LWNvZGUtYm9yZGVyJzogaXNDb3VudHJ5Q29kZVxyXG4gICAgICB9XCJcclxuICAgID5cclxuICAgICAgPGRpdiAqbmdJZj1cIm11bHRpcGxlXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duX3RleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIChrZXl1cCk9XCJzZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCIhbXVsdGlwbGVcIiBjbGFzcz1cImNvdW50cnktY29kZS13cmFwcGVyXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBjbGFzcz1cImRyb3Bkb3duX3RleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRJdGVtTmFtZVwiXHJcbiAgICAgICAgICAoa2V5dXApPVwic2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpc0NvdW50cnlDb2RlXCIgY2xhc3M9XCJmbGFnLWljb25cIj5cclxuICAgICAgICAgIDxzcGFuIFtjbGFzc109XCInZmkgZmktJyArIHNlbGVjdGVkRmxhZ1wiPjwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImRvd24tYXJyb3dcIiAqbmdJZj1cIiFpc0NvdW50cnlDb2RlXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCI+XHJcbiAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIyNVwiXHJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI1XCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93LWltZ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IG9wZW5lZDogZHJvcGRvd25PcGVuZWQsIGNsb3NlZDogIWRyb3Bkb3duT3BlbmVkIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxnIGlkPVwiRG93biBBcnJvd1wiPlxyXG4gICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGlkPVwiUGF0aFwiXHJcbiAgICAgICAgICAgICAgICBkPVwiTTYgOS4xMzc0MUwxMiAxNS4yMjlMMTggOS4xMzc0MVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjOEU5QUEwXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXAtYXJyb3dcIiAqbmdJZj1cIiFpc0NvdW50cnlDb2RlXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCI+XHJcbiAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIyNVwiXHJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI1XCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ1cC1hcnJvdy1pbWdcIlxyXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBvcGVuZWQ6IGRyb3Bkb3duT3BlbmVkLCBjbG9zZWQ6ICFkcm9wZG93bk9wZW5lZCB9XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICBkPVwiTTE4IDE1LjIyOUwxMiA5LjEzNzRMNiAxNS4yMjlcIlxyXG4gICAgICAgICAgICBzdHJva2U9XCIjOEU5QUEwXCJcclxuICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS41XCJcclxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8c3BhblxyXG4gICAgICAgIChjbGljayk9XCJ1bnNlbGVjdEFsbCgpXCJcclxuICAgICAgICAqbmdJZj1cIihzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDAgfHwgc2VsZWN0ZWRJdGVtTmFtZSAhPSAnJykgJiYgbXVsdGlwbGVcIlxyXG4gICAgICAgIGNsYXNzPVwiZGVzZWxlY3RcIlxyXG4gICAgICAgID4mdGltZXM7PC9zcGFuXHJcbiAgICAgID5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2XHJcbiAgICAjZHJvcGRvd25JdGVtc1xyXG4gICAgY2xhc3M9XCJkcm9wZG93bi1pdGVtc1wiXHJcbiAgICAqbmdJZj1cImRyb3Bkb3duT3BlbmVkXCJcclxuICAgIChzY3JvbGwpPVwib25Ecm9wZG93blNjcm9sbCgkZXZlbnQpXCJcclxuICA+XHJcbiAgICA8YSBjbGFzcz1cImNyZWF0ZV9idXR0b25cIiAoY2xpY2spPVwiY3JlYXRlTmV3KClcIiAqbmdJZj1cInNob3dDcmVhdGVOZXdcIlxyXG4gICAgICA+Q3JlYXRlIG5ldzwvYVxyXG4gICAgPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZTsgZWxzZSBzaW5nbGVTZWxlY3Rpb25cIj5cclxuICAgICAgPGFcclxuICAgICAgICBjbGFzcz1cIml0ZW1zIGQtYmxvY2tcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBpdGVtW2xhYmVsXSB9fVxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bl9idXR0b25zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY3VzdG9tQnV0dG9uc1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljayhidXR0b24uYWN0aW9uKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpIFtjbGFzc109XCJidXR0b24uaWNvblwiIFtzdHlsZS5jb2xvcl09XCJidXR0b24uY29sb3JcIj48L2k+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNzaW5nbGVTZWxlY3Rpb24+XHJcbiAgICAgIDxhXHJcbiAgICAgICAgY2xhc3M9XCJpdGVtcyBkLWJsb2NrXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgaXRlbVtsYWJlbF0gfX1cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25fYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGN1c3RvbUJ1dHRvbnNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnV0dG9uLmFjdGlvbilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiYnV0dG9uLmljb25cIiBbc3R5bGUuY29sb3JdPVwiYnV0dG9uLmNvbG9yXCI+PC9pPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZHJvcGRvd24vc3JjL2xpYi9kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kcm9wZG93bi9zcmMvbGliL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQzs7OztBQWF2QixNQUFNLE9BQU8saUJBQWlCO0lBNkI1QjtRQTFCUyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUMxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6QixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUUzQixrQkFBYSxHQUtoQixFQUFFLENBQUM7UUFDQSxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzFCLGdCQUFXLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDN0Qsd0JBQW1CLEdBQXdCLElBQUksWUFBWSxFQUVsRSxDQUFDO1FBQ00sYUFBUSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzFELGdCQUFXLEdBQXdCLElBQUksWUFBWSxFQUFTLENBQUM7UUFDN0QsYUFBUSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXRFLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRWhDLHFCQUFnQixHQUFXLEVBQUUsQ0FBQztRQUM5QixzQkFBaUIsR0FBVyxFQUFFLENBQUM7UUFDL0Isa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsZUFBVSxHQUFXLEVBQUUsQ0FBQztJQUVULENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdkQs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QyxLQUFLOzRCQUNULElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUMxRCxDQUFDO2lCQUNIO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3JDO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsTUFBa0I7UUFDbEMsTUFBTSxFQUFFLENBQUM7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBM0lVLGlCQUFpQjttR0FBakIsaUJBQWlCLGdzQkN0QjlCLG15TEF3TEE7OzRGRGxLYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzswRUFLZixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFHRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFzQnFCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFtREgsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUVyQixlQUFlO3NCQURkLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmludGVyZmFjZSBEcm9wZG93bkl0ZW0ge1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpbWFnZTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItZHJvcGRvd25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIG11bHRpcGxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzY3JvbGxhYmxlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBTdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGl0ZW1zOiBEcm9wZG93bkl0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dDcmVhdGVOZXchOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGN1c3RvbUJ1dHRvbnM6IHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBpY29uOiBzdHJpbmc7XHJcbiAgICBjb2xvcjogc3RyaW5nO1xyXG4gICAgYWN0aW9uOiAoKSA9PiB2b2lkO1xyXG4gIH1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dCb3JkZXI6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBPdXRwdXQoKSBidXR0b25DbGljazogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbXNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgYW55W11cclxuICA+KCk7XHJcbiAgQE91dHB1dCgpIG9uU2Nyb2xsOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuICBAT3V0cHV0KCkgb25DcmVhdGVOZXc6IEV2ZW50RW1pdHRlcjxFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSBvblNlYXJjaDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgZHJvcGRvd25PcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEl0ZW06IGFueTtcclxuICBzZWxlY3RlZEl0ZW1OYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHNlbGVjdGVkSXRlbUltYWdlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIG9yaWdpbmFsSXRlbXM6IGFueVtdID0gW107XHJcbiAgc2VhcmNoVGVybTogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB0aGlzLnNlbGVjdEl0ZW0odGhpcy5zZWxlY3RlZEl0ZW1zWzBdKTtcclxuICAgIH1cclxuICAgIHRoaXMub3JpZ2luYWxJdGVtcyA9IHRoaXMuaXRlbXMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIG9wZW5Ecm9wZG93bigpIHtcclxuICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSAhdGhpcy5kcm9wZG93bk9wZW5lZDtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93bkl0ZW1zXCIpIGRyb3Bkb3duaXRlbXMhOiBFbGVtZW50UmVmO1xyXG5cclxuICBvbkRyb3Bkb3duU2Nyb2xsKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uU2Nyb2xsKSB7XHJcbiAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duaXRlbXMubmF0aXZlRWxlbWVudDtcclxuICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPVxyXG4gICAgICAgIGRyb3Bkb3duRWxlbWVudC5zY3JvbGxUb3AgKyBkcm9wZG93bkVsZW1lbnQuY2xpZW50SGVpZ2h0O1xyXG4gICAgICBjb25zdCB0b3RhbEhlaWdodCA9IGRyb3Bkb3duRWxlbWVudC5zY3JvbGxIZWlnaHQ7XHJcblxyXG4gICAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPj0gdG90YWxIZWlnaHQpIHtcclxuICAgICAgICB0aGlzLm9uU2Nyb2xsLmVtaXQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0SXRlbShpdGVtOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIGlmICghdGhpcy5zZWxlY3RlZEl0ZW1zLmluY2x1ZGVzKGl0ZW0pKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKFxyXG4gICAgICAgICAgKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkICE9PSBpdGVtXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNbMF0gPSBpdGVtO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1OYW1lID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdPy5sYWJlbDtcclxuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbWFnZSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXT8uaW1hZ2U7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5zbGljZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdW5zZWxlY3RJdGVtKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbHRlcihcclxuICAgICAgKHNlbGVjdGVkOiBhbnkpID0+IHNlbGVjdGVkICE9PSBpdGVtXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHVuc2VsZWN0QWxsKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbU5hbWUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1zQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW1zKTtcclxuICAgIC8vIHRoaXMuaXRlbXMgPSB0aGlzLm9yaWdpbmFsSXRlbXMuc2xpY2UoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93blwiKSBkcm9wZG93biE6IEVsZW1lbnRSZWY7XHJcbiAgQEhvc3RMaXN0ZW5lcihcImRvY3VtZW50OmNsaWNrXCIsIFtcIiRldmVudFwiXSlcclxuICBvbkRvY3VtZW50Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBpc0NsaWNrSW5zaWRlRHJvcGRvd24gPSB0aGlzLmRyb3Bkb3duLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXHJcbiAgICAgIGV2ZW50LnRhcmdldFxyXG4gICAgKTtcclxuICAgIGlmICghaXNDbGlja0luc2lkZURyb3Bkb3duKSB7XHJcbiAgICAgIHRoaXMuZHJvcGRvd25PcGVuZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZU5ldygpIHtcclxuICAgIHRoaXMub25DcmVhdGVOZXcuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGNvbnN0IGtleUNvZGUgPSBldmVudC5rZXlDb2RlO1xyXG5cclxuICAgIGlmIChrZXlDb2RlID09PSA4ICYmICF0aGlzLm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbU5hbWUgPSBcIlwiO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUltYWdlID0gXCJcIjtcclxuICAgICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5zbGljZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbXNDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hUZXJtID0gZXZlbnQudGFyZ2V0LnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGlmICghdGhpcy5vblNlYXJjaC5vYnNlcnZlcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVGVybS50cmltKCkgPT09IFwiXCIpIHtcclxuICAgICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLm9yaWdpbmFsSXRlbXMuc2xpY2UoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHRoaXMub3JpZ2luYWxJdGVtcy5maWx0ZXIoXHJcbiAgICAgICAgICAgIChpdGVtKSA9PlxyXG4gICAgICAgICAgICAgIGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHRoaXMuc2VhcmNoVGVybSkgfHxcclxuICAgICAgICAgICAgICAoaXRlbS52YWx1ZSAmJlxyXG4gICAgICAgICAgICAgICAgaXRlbS52YWx1ZS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgodGhpcy5zZWFyY2hUZXJtKSlcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0aGlzLnNlYXJjaFRlcm0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVCdXR0b25DbGljayhhY3Rpb246ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIGFjdGlvbigpO1xyXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjZHJvcGRvd25cclxuICBjbGFzcz1cImRyb3Bkb3duXCJcclxuICBbbmdDbGFzc109XCJ7XHJcbiAgICBvcGVuZWQ6IHNob3dCb3JkZXIgJiYgZHJvcGRvd25PcGVuZWQsXHJcbiAgICBjbG9zZWQ6IHNob3dCb3JkZXIgJiYgIWRyb3Bkb3duT3BlbmVkLFxyXG4gIH1cIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJkcm9wZG93bi1maWVsZFwiXHJcbiAgICBpZD1cImRpdmlzaW9uXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgb3BlbmVkOiBzaG93Qm9yZGVyICYmIGRyb3Bkb3duT3BlbmVkLFxyXG4gICAgICBjbG9zZWQ6IHNob3dCb3JkZXIgJiYgIWRyb3Bkb3duT3BlbmVkLFxyXG4gICAgfVwiXHJcbiAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKClcIlxyXG4gID5cclxuICAgIDxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRJdGVtICYmIG11bHRpcGxlXCIgY2xhc3M9XCJzZWxlY3RlZCBzZWxlY3RlZExpc3RcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBzZWxlY3RlZEl0ZW0gb2Ygc2VsZWN0ZWRJdGVtcy5zbGljZSgwLCAzKVwiXHJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1pdGVtXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWdcclxuICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRJdGVtPy5pbWFnZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm11bHRpU2VsZWN0ZWQtaWNvbi1zaXplXCJcclxuICAgICAgICAgIFtzcmNdPVwic2VsZWN0ZWRJdGVtPy5pbWFnZVwiXHJcbiAgICAgICAgICBhbHQ9XCJpbWFnZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8c3Bhbj57eyBzZWxlY3RlZEl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cInVuc2VsZWN0SXRlbShzZWxlY3RlZEl0ZW0pXCIgY2xhc3M9XCJjbG9zZS1pY29uXCJcclxuICAgICAgICAgID4mdGltZXM7PC9zcGFuXHJcbiAgICAgICAgPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbWFpbmluZy1pdGVtc1wiICpuZ0lmPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAzXCI+XHJcbiAgICAgICAgK3t7IHNlbGVjdGVkSXRlbXMubGVuZ3RoIC0gMyB9fSBtb3JlXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWZpZWxkXCI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJtdWx0aXBsZVwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgY2xhc3M9XCJkcm9wZG93bl90ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAoa2V5dXApPVwic2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIW11bHRpcGxlXCI+XHJcbiAgICAgICAgPGltZ1xyXG4gICAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEl0ZW1JbWFnZVwiXHJcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkLWljb24tc2l6ZVwiXHJcbiAgICAgICAgICBbc3JjXT1cInNlbGVjdGVkSXRlbUltYWdlXCJcclxuICAgICAgICAgIGFsdD1cImltYWdlXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgY2xhc3M9XCJkcm9wZG93bl90ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkSXRlbU5hbWVcIlxyXG4gICAgICAgICAgKGtleXVwKT1cInNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAvPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93XCI+XHJcbiAgICAgICAgPHN2Z1xyXG4gICAgICAgICAgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICBoZWlnaHQ9XCIyNVwiXHJcbiAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI1XCJcclxuICAgICAgICAgIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgICAgY2xhc3M9XCJkb3duLWFycm93LWltZ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IG9wZW5lZDogZHJvcGRvd25PcGVuZWQsIGNsb3NlZDogIWRyb3Bkb3duT3BlbmVkIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxnIGlkPVwiRG93biBBcnJvd1wiPlxyXG4gICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgIGlkPVwiUGF0aFwiXHJcbiAgICAgICAgICAgICAgICBkPVwiTTYgOS4xMzc0MUwxMiAxNS4yMjlMMTggOS4xMzc0MVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2U9XCIjOEU5QUEwXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXAtYXJyb3dcIj5cclxuICAgICAgICA8c3ZnXHJcbiAgICAgICAgICB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgIGhlaWdodD1cIjI1XCJcclxuICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjVcIlxyXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXHJcbiAgICAgICAgICBjbGFzcz1cInVwLWFycm93LWltZ1wiXHJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7IG9wZW5lZDogZHJvcGRvd25PcGVuZWQsIGNsb3NlZDogIWRyb3Bkb3duT3BlbmVkIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNMTggMTUuMjI5TDEyIDkuMTM3NEw2IDE1LjIyOVwiXHJcbiAgICAgICAgICAgIHN0cm9rZT1cIiM4RTlBQTBcIlxyXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgICAgLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxzcGFuXHJcbiAgICAgICAgKGNsaWNrKT1cInVuc2VsZWN0QWxsKClcIlxyXG4gICAgICAgICpuZ0lmPVwiKHNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMCB8fCBzZWxlY3RlZEl0ZW1OYW1lICE9ICcnKSAmJiBtdWx0aXBsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJkZXNlbGVjdFwiXHJcbiAgICAgICAgPiZ0aW1lczs8L3NwYW5cclxuICAgICAgPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgICNkcm9wZG93bkl0ZW1zXHJcbiAgICBjbGFzcz1cImRyb3Bkb3duLWl0ZW1zXCJcclxuICAgICpuZ0lmPVwiZHJvcGRvd25PcGVuZWRcIlxyXG4gICAgKHNjcm9sbCk9XCJvbkRyb3Bkb3duU2Nyb2xsKCRldmVudClcIlxyXG4gID5cclxuICAgIDxhIGNsYXNzPVwiY3JlYXRlX2J1dHRvblwiIChjbGljayk9XCJjcmVhdGVOZXcoKVwiICpuZ0lmPVwic2hvd0NyZWF0ZU5ld1wiXHJcbiAgICAgID5DcmVhdGUgbmV3PC9hXHJcbiAgICA+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpcGxlOyBlbHNlIHNpbmdsZVNlbGVjdGlvblwiPlxyXG4gICAgICA8YVxyXG4gICAgICAgIGNsYXNzPVwiaXRlbXMgZC1ibG9ja1wiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIlxyXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1kZXRhaWxzXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0/LmltYWdlXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0/LmltYWdlXCJcclxuICAgICAgICAgICAgICBhbHQ9XCJJdGVtIEltYWdlXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIml0ZW0taW1hZ2UgaWNvbi1zaXplXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLWxhYmVsXCI+e3sgaXRlbT8ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjZVwiICpuZ0lmPVwiaXRlbT8ubGFiZWxcIj48L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpdGVtLXZhbHVlXCI+e3sgaXRlbT8udmFsdWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bl9idXR0b25zXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiBjdXN0b21CdXR0b25zXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVCdXR0b25DbGljayhidXR0b24uYWN0aW9uKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImJ1dHRvbi5pY29uXCIgW3N0eWxlLmNvbG9yXT1cImJ1dHRvbi5jb2xvclwiPjwvaT5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9hPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNzaW5nbGVTZWxlY3Rpb24+XHJcbiAgICAgIDxhXHJcbiAgICAgICAgY2xhc3M9XCJpdGVtcyBkLWJsb2NrXCJcclxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdEl0ZW0oaXRlbSlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWRldGFpbHNcIj5cclxuICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbT8uaW1hZ2VcIlxyXG4gICAgICAgICAgICAgIGFsdD1cIkl0ZW0gSW1hZ2VcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiaXRlbS1pbWFnZSBpY29uLXNpemVcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tbGFiZWxcIj57eyBpdGVtPy5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlXCIgKm5nSWY9XCJpdGVtPy5sYWJlbFwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIml0ZW0tdmFsdWVcIj57eyBpdGVtPy52YWx1ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duX2J1dHRvbnNcIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIGN1c3RvbUJ1dHRvbnNcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUJ1dHRvbkNsaWNrKGJ1dHRvbi5hY3Rpb24pXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiYnV0dG9uLmljb25cIiBbc3R5bGUuY29sb3JdPVwiYnV0dG9uLmNvbG9yXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2E+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,9 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, EventEmitter, Component, Input, Output, ViewChild, HostListener, NgModule } from '@angular/core';
3
- import * as i1 from '@angular/common/http';
4
- import * as i2 from '@angular/forms';
3
+ import * as i1 from '@angular/forms';
5
4
  import { FormsModule } from '@angular/forms';
6
- import * as i3 from '@angular/common';
5
+ import * as i2 from '@angular/common';
7
6
  import { CommonModule } from '@angular/common';
8
7
 
9
8
  class DropdownService {
@@ -18,68 +17,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
18
17
  }]
19
18
  }], ctorParameters: function () { return []; } });
20
19
 
21
- class CountryService {
22
- constructor(http) {
23
- this.http = http;
24
- }
25
- loadCountryDetails() {
26
- return this.http.get("../assets/ContryDetails.json");
27
- }
28
- processCountryDetails(data) {
29
- let countries = [];
30
- data.forEach((country) => {
31
- const name = country.name && country.name.common ? country.name.common : "";
32
- const isoCode = country.cca2 && country.cca3 ? `${country.cca2}` : "";
33
- if (country.idd &&
34
- country.idd.root &&
35
- country.idd.suffixes &&
36
- country.idd.suffixes.length > 0) {
37
- country.idd.suffixes.forEach((suffix) => {
38
- const isdCode = `${country.idd.root}${suffix}`;
39
- const flag = country.flags && country.flags.svg ? country.flags.svg : "";
40
- countries.push({
41
- Name: name,
42
- ISOCode: isoCode,
43
- ISDCode: isdCode,
44
- Flag: flag,
45
- countryName: `${name} (${isdCode})`,
46
- });
47
- });
48
- }
49
- else {
50
- const flag = country.flags && country.flags.svg ? country.flags.svg : "";
51
- countries.push({
52
- Name: name,
53
- ISOCode: isoCode,
54
- ISDCode: country.idd && country.idd.root ? country.idd.root : "",
55
- Flag: flag,
56
- countryName: `${name} (${country.idd && country.idd.root ? country.idd.root : ""})`,
57
- });
58
- }
59
- });
60
- return countries;
61
- }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
63
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, providedIn: "root" }); }
64
- }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, decorators: [{
66
- type: Injectable,
67
- args: [{
68
- providedIn: "root",
69
- }]
70
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
71
-
72
20
  class DropdownComponent {
73
- constructor(countryService) {
74
- this.countryService = countryService;
21
+ constructor() {
75
22
  this.selectedItems = [];
76
23
  this.placeholder = "";
77
- this.label = "";
78
24
  this.items = [];
79
25
  this.customButtons = [];
80
26
  this.showBorder = true;
81
- this.isCountryCode = false;
82
- this.borderThickness = true;
83
27
  this.buttonClick = new EventEmitter();
84
28
  this.selectedItemsChange = new EventEmitter();
85
29
  this.onScroll = new EventEmitter();
@@ -87,27 +31,15 @@ class DropdownComponent {
87
31
  this.onSearch = new EventEmitter();
88
32
  this.dropdownOpened = false;
89
33
  this.selectedItemName = "";
34
+ this.selectedItemImage = "";
90
35
  this.originalItems = [];
91
36
  this.searchTerm = "";
92
- this.selectedFlag = "";
93
- this.countryDetails = [];
94
37
  }
95
38
  ngOnInit() {
96
39
  if (this.selectedItems && this.selectedItems.length > 0) {
97
40
  if (!this.multiple)
98
41
  this.selectItem(this.selectedItems[0]);
99
42
  }
100
- if (this.isCountryCode) {
101
- this.countryService.loadCountryDetails().subscribe((data) => {
102
- this.countryDetails = this.countryService.processCountryDetails(data);
103
- console.log("CountryDetails", this.countryDetails);
104
- this.items = this.countryDetails; // Move this line here
105
- this.originalItems = this.items.slice();
106
- console.log(this.isCountryCode);
107
- console.log("Items", this.items);
108
- });
109
- this.label = "countryName";
110
- }
111
43
  this.originalItems = this.items.slice();
112
44
  }
113
45
  openDropdown() {
@@ -136,20 +68,11 @@ class DropdownComponent {
136
68
  }
137
69
  else {
138
70
  this.selectedItems[0] = item;
139
- if (this.isCountryCode) {
140
- this.selectedItemName = this.selectedItems[0]["ISDCode"];
141
- this.selectedFlag = this.selectedItems[0]["ISOCode"].toLowerCase();
142
- console.log("flag", this.selectedFlag);
143
- this.dropdownOpened = false;
144
- // this.items = this.originalItems.slice();
145
- this.selectedItemsChange.emit(this.selectedItems);
146
- }
147
- else {
148
- this.selectedItemName = this.selectedItems[0][this.label];
149
- this.dropdownOpened = false;
150
- // this.items = this.originalItems.slice();
151
- this.selectedItemsChange.emit(this.selectedItems);
152
- }
71
+ this.selectedItemName = this.selectedItems[0]?.label;
72
+ this.selectedItemImage = this.selectedItems[0]?.image;
73
+ this.dropdownOpened = false;
74
+ // this.items = this.originalItems.slice();
75
+ this.selectedItemsChange.emit(this.selectedItems);
153
76
  }
154
77
  }
155
78
  unselectItem(item) {
@@ -172,58 +95,42 @@ class DropdownComponent {
172
95
  this.onCreateNew.emit();
173
96
  }
174
97
  search(event) {
175
- console.log("Search method triggered");
176
98
  const keyCode = event.keyCode;
177
99
  if (keyCode === 8 && !this.multiple) {
178
100
  this.selectedItems = [];
179
101
  this.selectedItemName = "";
180
- this.selectedFlag = "";
102
+ this.selectedItemImage = "";
181
103
  this.items = this.originalItems.slice();
182
104
  this.selectedItemsChange.emit(this.selectedItems);
183
105
  }
184
106
  else {
185
107
  this.searchTerm = event.target.value.toLowerCase();
186
- console.log("Search term:", this.searchTerm);
187
- if (!this.isCountryCode) {
188
- if (!this.onSearch.observers.length) {
189
- if (this.searchTerm.trim() === "") {
190
- this.items = this.originalItems.slice();
191
- }
192
- else {
193
- this.items = this.originalItems.filter((item) => item[this.label].toLowerCase().startsWith(this.searchTerm));
194
- }
195
- }
196
- else {
197
- this.onSearch.emit(this.searchTerm);
198
- }
199
- }
200
- else {
108
+ if (!this.onSearch.observers.length) {
201
109
  if (this.searchTerm.trim() === "") {
202
110
  this.items = this.originalItems.slice();
203
111
  }
204
112
  else {
205
- this.items = this.originalItems.filter((item) => {
206
- const startsWithSearchTerm = item["countryName"]
207
- .toLowerCase()
208
- .includes(this.searchTerm);
209
- console.log(`Item...: ${item["countryName"]}, Match: ${startsWithSearchTerm}`);
210
- return startsWithSearchTerm;
211
- });
113
+ this.items = this.originalItems.filter((item) => item.label.toLowerCase().startsWith(this.searchTerm) ||
114
+ (item.value &&
115
+ item.value.toLowerCase().startsWith(this.searchTerm)));
212
116
  }
213
117
  }
118
+ else {
119
+ this.onSearch.emit(this.searchTerm);
120
+ }
214
121
  }
215
122
  }
216
123
  handleButtonClick(action) {
217
124
  action();
218
125
  this.buttonClick.emit();
219
126
  }
220
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [{ token: CountryService }], target: i0.ɵɵFactoryTarget.Component }); }
221
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { multiple: "multiple", scrollable: "scrollable", selectedItems: "selectedItems", placeholder: "placeholder", label: "label", items: "items", showCreateNew: "showCreateNew", customButtons: "customButtons", showBorder: "showBorder", isCountryCode: "isCountryCode", borderThickness: "borderThickness" }, outputs: { buttonClick: "buttonClick", selectedItemsChange: "selectedItemsChange", onScroll: "onScroll", onCreateNew: "onCreateNew", onSearch: "onSearch" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownitems", first: true, predicate: ["dropdownItems"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border':isCountryCode || !borderThickness,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border': isCountryCode || !borderThickness\r\n }\"\r\n (click)=\"isCountryCode && openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n {{ selectedItem[label] }}\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div *ngIf=\"selectedItems.length > 3\" class=\"remaining-items\">\r\n + {{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"input-field\"\r\n [ngClass]=\"{\r\n 'country-code-border': isCountryCode\r\n }\"\r\n >\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\" class=\"country-code-wrapper\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n <span *ngIf=\"isCountryCode\" class=\"flag-icon\">\r\n <span [class]=\"'fi fi-' + selectedFlag\"></span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"down-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px}.dropdown .dropdown-field .input-field .dropdown_text{width:97%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field .input-field.country-code-border{height:42px}.dropdown .dropdown-field.closed{border:2px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:2px solid #d8d8d8}.dropdown .dropdown-field.country-code-border{border:1px solid #dee2e6;border-radius:6px}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.country-code-wrapper{display:flex;align-items:center}.country-code-wrapper .flag-icon{margin-left:-29px;font-size:16px}\n"], dependencies: [{ 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
127
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
128
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DropdownComponent, selector: "lib-dropdown", inputs: { multiple: "multiple", scrollable: "scrollable", selectedItems: "selectedItems", placeholder: "placeholder", items: "items", showCreateNew: "showCreateNew", customButtons: "customButtons", showBorder: "showBorder" }, outputs: { buttonClick: "buttonClick", selectedItemsChange: "selectedItemsChange", onScroll: "onScroll", onCreateNew: "onCreateNew", onSearch: "onSearch" }, host: { listeners: { "document:click": "onDocumentClick($event)" } }, viewQueries: [{ propertyName: "dropdownitems", first: true, predicate: ["dropdownItems"], descendants: true }, { propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n (click)=\"openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected selectedList\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n <img\r\n *ngIf=\"selectedItem?.image\"\r\n class=\"multiSelected-icon-size\"\r\n [src]=\"selectedItem?.image\"\r\n alt=\"image\"\r\n />\r\n <span>{{ selectedItem.label }}</span>\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div class=\"remaining-items\" *ngIf=\"selectedItems.length > 3\">\r\n +{{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-field\">\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\">\r\n <img\r\n *ngIf=\"selectedItemImage\"\r\n class=\"selected-icon-size\"\r\n [src]=\"selectedItemImage\"\r\n alt=\"image\"\r\n />\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"down-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected.selectedList{display:flex;flex-wrap:wrap}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px;font-size:small}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px;font-size:smaller}.dropdown .dropdown-field .input-field .dropdown_text{width:76%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field.closed{border:1px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:1px solid #d8d8d8}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.space{width:10px}.item-details{display:flex;align-items:center}.icon-size{width:25px;height:20px;margin-right:7px}.smallSpace{width:3px}.selected-icon-size{width:25px;height:20px;margin-left:10px}.multiSelected-icon-size{width:25px;height:20px;margin-left:1px;margin-bottom:1px;margin-right:3px}\n"], dependencies: [{ kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
222
129
  }
223
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DropdownComponent, decorators: [{
224
131
  type: Component,
225
- args: [{ selector: "lib-dropdown", template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border':isCountryCode || !borderThickness,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border': isCountryCode || !borderThickness\r\n }\"\r\n (click)=\"isCountryCode && openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n {{ selectedItem[label] }}\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div *ngIf=\"selectedItems.length > 3\" class=\"remaining-items\">\r\n + {{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"input-field\"\r\n [ngClass]=\"{\r\n 'country-code-border': isCountryCode\r\n }\"\r\n >\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\" class=\"country-code-wrapper\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n <span *ngIf=\"isCountryCode\" class=\"flag-icon\">\r\n <span [class]=\"'fi fi-' + selectedFlag\"></span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"down-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px}.dropdown .dropdown-field .input-field .dropdown_text{width:97%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field .input-field.country-code-border{height:42px}.dropdown .dropdown-field.closed{border:2px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:2px solid #d8d8d8}.dropdown .dropdown-field.country-code-border{border:1px solid #dee2e6;border-radius:6px}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.country-code-wrapper{display:flex;align-items:center}.country-code-wrapper .flag-icon{margin-left:-29px;font-size:16px}\n"] }]
226
- }], ctorParameters: function () { return [{ type: CountryService }]; }, propDecorators: { multiple: [{
132
+ args: [{ selector: "lib-dropdown", template: "<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n (click)=\"openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected selectedList\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n <img\r\n *ngIf=\"selectedItem?.image\"\r\n class=\"multiSelected-icon-size\"\r\n [src]=\"selectedItem?.image\"\r\n alt=\"image\"\r\n />\r\n <span>{{ selectedItem.label }}</span>\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div class=\"remaining-items\" *ngIf=\"selectedItems.length > 3\">\r\n +{{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-field\">\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\">\r\n <img\r\n *ngIf=\"selectedItemImage\"\r\n class=\"selected-icon-size\"\r\n [src]=\"selectedItemImage\"\r\n alt=\"image\"\r\n />\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"down-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".dropdown{background:#fff;border-radius:6px}.dropdown .dropdown-field{background:#fff;border-radius:6px;position:relative;cursor:pointer}.dropdown .dropdown-field .selected{margin:5px}.dropdown .dropdown-field .selected.selectedList{display:flex;flex-wrap:wrap}.dropdown .dropdown-field .selected .selected-item{background:#cdd0d1;display:inline;margin:5px;padding:3px;border-radius:5px;font-size:small}.dropdown .dropdown-field .selected .remaining-items{margin:5px;padding:3px;font-size:smaller}.dropdown .dropdown-field .input-field .dropdown_text{width:76%;border:none;padding:10px;margin-left:3px;outline:none;box-sizing:border-box;font-size:14px}.dropdown .dropdown-field .input-field .down-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .down-arrow-img.opened{display:none}.dropdown .dropdown-field .input-field .down-arrow-img.closed{display:block}.dropdown .dropdown-field .input-field .up-arrow-img{position:absolute;top:50%;right:10px;transform:translateY(-50%);cursor:pointer}.dropdown .dropdown-field .input-field .up-arrow-img.closed{display:none}.dropdown .dropdown-field .input-field .deselect{position:absolute;top:50%;right:40px;transform:translateY(-50%)}.dropdown .dropdown-field.closed{border:1px solid #d8d8d8}.dropdown .dropdown-field.opened{border-bottom:1px solid #d8d8d8}.dropdown .dropdown-items{overflow-y:auto;overflow-x:hidden}@media only screen and (min-width: 276px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 576px){.dropdown .dropdown-items{max-height:150px;padding:3px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items{max-height:150px;padding:5px}}@media only screen and (min-width: 1441px){.dropdown .dropdown-items{max-height:200px;padding:7px}}.dropdown .dropdown-items .create_button{text-decoration:none;line-height:41px;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .create_button{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .create_button{padding-left:8px}}.dropdown .dropdown-items .items{text-decoration:none;color:inherit;line-height:41px;position:relative;cursor:pointer}@media only screen and (min-width: 576px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}@media only screen and (min-width: 992px){.dropdown .dropdown-items .items{padding-left:8px}}@media only screen and (min-width: 1200px){.dropdown .dropdown-items .items{padding-left:8px;font-size:small}}.dropdown .dropdown-items .items:hover{background:#cdd0d1;border-radius:6px}.dropdown .dropdown-items .items:hover button{visibility:visible}.dropdown .dropdown-items .items .dropdown_buttons{display:inline;position:absolute;right:5%}.dropdown .dropdown-items .items button{border:0;background:transparent;visibility:hidden}.dropdown.opened{border:1px #d8d8d8 solid}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background-color:transparent}::-webkit-scrollbar-thumb{background-color:#b2b2b2;border-radius:6px}.space{width:10px}.item-details{display:flex;align-items:center}.icon-size{width:25px;height:20px;margin-right:7px}.smallSpace{width:3px}.selected-icon-size{width:25px;height:20px;margin-left:10px}.multiSelected-icon-size{width:25px;height:20px;margin-left:1px;margin-bottom:1px;margin-right:3px}\n"] }]
133
+ }], ctorParameters: function () { return []; }, propDecorators: { multiple: [{
227
134
  type: Input
228
135
  }], scrollable: [{
229
136
  type: Input
@@ -231,8 +138,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
231
138
  type: Input
232
139
  }], placeholder: [{
233
140
  type: Input
234
- }], label: [{
235
- type: Input
236
141
  }], items: [{
237
142
  type: Input
238
143
  }], showCreateNew: [{
@@ -241,10 +146,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
241
146
  type: Input
242
147
  }], showBorder: [{
243
148
  type: Input
244
- }], isCountryCode: [{
245
- type: Input
246
- }], borderThickness: [{
247
- type: Input
248
149
  }], buttonClick: [{
249
150
  type: Output
250
151
  }], selectedItemsChange: [{
@@ -1 +1 @@
1
- {"version":3,"file":"piserve-tech-drop-down.mjs","sources":["../../../projects/dropdown/src/lib/dropdown.service.ts","../../../projects/dropdown/src/service/countryService.ts","../../../projects/dropdown/src/lib/dropdown.component.ts","../../../projects/dropdown/src/lib/dropdown.component.html","../../../projects/dropdown/src/lib/dropdown.module.ts","../../../projects/dropdown/src/public-api.ts","../../../projects/dropdown/src/piserve-tech-drop-down.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DropdownService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CountryService {\r\n constructor(private http: HttpClient) {}\r\n\r\n loadCountryDetails(): Observable<any> {\r\n return this.http.get<any>(\"../assets/ContryDetails.json\");\r\n }\r\n\r\n processCountryDetails(data: any[]): any[] {\r\n let countries: any[] = [];\r\n\r\n data.forEach((country) => {\r\n const name =\r\n country.name && country.name.common ? country.name.common : \"\";\r\n const isoCode = country.cca2 && country.cca3 ? `${country.cca2}` : \"\";\r\n\r\n if (\r\n country.idd &&\r\n country.idd.root &&\r\n country.idd.suffixes &&\r\n country.idd.suffixes.length > 0\r\n ) {\r\n country.idd.suffixes.forEach((suffix: string) => {\r\n const isdCode = `${country.idd.root}${suffix}`;\r\n const flag =\r\n country.flags && country.flags.svg ? country.flags.svg : \"\";\r\n\r\n countries.push({\r\n Name: name,\r\n ISOCode: isoCode,\r\n ISDCode: isdCode,\r\n Flag: flag,\r\n countryName: `${name} (${isdCode})`,\r\n });\r\n });\r\n } else {\r\n const flag =\r\n country.flags && country.flags.svg ? country.flags.svg : \"\";\r\n\r\n countries.push({\r\n Name: name,\r\n ISOCode: isoCode,\r\n ISDCode: country.idd && country.idd.root ? country.idd.root : \"\",\r\n Flag: flag,\r\n countryName: `${name} (${\r\n country.idd && country.idd.root ? country.idd.root : \"\"\r\n })`,\r\n });\r\n }\r\n });\r\n\r\n return countries;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { CountryService } from \"../service/countryService\";\r\n\r\n@Component({\r\n selector: \"lib-dropdown\",\r\n templateUrl: \"./dropdown.component.html\",\r\n styleUrls: [\"./dropdown.component.scss\"],\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n @Input() multiple!: boolean;\r\n @Input() scrollable!: boolean;\r\n @Input() selectedItems: any[] = [];\r\n @Input() placeholder: String = \"\";\r\n @Input() label: string = \"\";\r\n @Input() items: any[] = [];\r\n @Input() showCreateNew!: boolean;\r\n @Input() customButtons: {\r\n label: string;\r\n icon: string;\r\n color: string;\r\n action: () => void;\r\n }[] = [];\r\n @Input() showBorder: boolean = true;\r\n @Input() isCountryCode: boolean=false;\r\n @Input() borderThickness: boolean = true;\r\n @Output() buttonClick: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() selectedItemsChange: EventEmitter<any[]> = new EventEmitter<\r\n any[]\r\n >();\r\n @Output() onScroll: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() onCreateNew: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n dropdownOpened: boolean = false;\r\n selectedItem: any;\r\n selectedItemName: string = \"\";\r\n originalItems: any[] = [];\r\n searchTerm: string = \"\";\r\n selectedFlag: string = \"\";\r\n countryDetails: any[] = [];\r\n\r\n constructor(private countryService: CountryService) {}\r\n\r\n ngOnInit(): void {\r\n if (this.selectedItems && this.selectedItems.length > 0) {\r\n if (!this.multiple) this.selectItem(this.selectedItems[0]);\r\n }\r\n if (this.isCountryCode) {\r\n this.countryService.loadCountryDetails().subscribe((data) => {\r\n this.countryDetails = this.countryService.processCountryDetails(data);\r\n\r\n console.log(\"CountryDetails\", this.countryDetails);\r\n\r\n this.items = this.countryDetails; // Move this line here\r\n this.originalItems = this.items.slice();\r\n\r\n console.log(this.isCountryCode);\r\n console.log(\"Items\", this.items);\r\n });\r\n this.label = \"countryName\";\r\n }\r\n this.originalItems = this.items.slice();\r\n }\r\n\r\n openDropdown() {\r\n this.dropdownOpened = !this.dropdownOpened;\r\n }\r\n\r\n @ViewChild(\"dropdownItems\") dropdownitems!: ElementRef;\r\n\r\n onDropdownScroll(event: any): void {\r\n if (this.onScroll) {\r\n const dropdownElement: HTMLElement = this.dropdownitems.nativeElement;\r\n const scrollPosition =\r\n dropdownElement.scrollTop + dropdownElement.clientHeight;\r\n const totalHeight = dropdownElement.scrollHeight;\r\n\r\n if (scrollPosition >= totalHeight) {\r\n this.onScroll.emit();\r\n }\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n if (this.multiple) {\r\n if (!this.selectedItems.includes(item)) {\r\n this.selectedItems.push(item);\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n } else {\r\n this.selectedItems = this.selectedItems.filter(\r\n (selected: any) => selected !== item\r\n );\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n } else {\r\n this.selectedItems[0] = item;\r\n if (this.isCountryCode) {\r\n this.selectedItemName = this.selectedItems[0][\"ISDCode\"];\r\n this.selectedFlag = this.selectedItems[0][\"ISOCode\"].toLowerCase();\r\n console.log(\"flag\", this.selectedFlag);\r\n\r\n this.dropdownOpened = false;\r\n // this.items = this.originalItems.slice();\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n } else {\r\n this.selectedItemName = this.selectedItems[0][this.label];\r\n this.dropdownOpened = false;\r\n // this.items = this.originalItems.slice();\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n }\r\n }\r\n\r\n unselectItem(item: any): void {\r\n this.selectedItems = this.selectedItems.filter(\r\n (selected: any) => selected !== item\r\n );\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n\r\n unselectAll() {\r\n this.selectedItems = [];\r\n this.selectedItemName = \"\";\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n // this.items = this.originalItems.slice();\r\n }\r\n\r\n @ViewChild(\"dropdown\") dropdown!: ElementRef;\r\n @HostListener(\"document:click\", [\"$event\"])\r\n onDocumentClick(event: Event): void {\r\n const isClickInsideDropdown = this.dropdown.nativeElement.contains(\r\n event.target\r\n );\r\n if (!isClickInsideDropdown) {\r\n this.dropdownOpened = false;\r\n }\r\n }\r\n\r\n createNew() {\r\n this.onCreateNew.emit();\r\n }\r\n\r\n search(event: any): void {\r\n console.log(\"Search method triggered\");\r\n const keyCode = event.keyCode;\r\n\r\n if (keyCode === 8 && !this.multiple) {\r\n this.selectedItems = [];\r\n this.selectedItemName = \"\";\r\n this.selectedFlag = \"\";\r\n this.items = this.originalItems.slice();\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n } else {\r\n this.searchTerm = event.target.value.toLowerCase();\r\n console.log(\"Search term:\", this.searchTerm);\r\n if (!this.isCountryCode) {\r\n if (!this.onSearch.observers.length) {\r\n if (this.searchTerm.trim() === \"\") {\r\n this.items = this.originalItems.slice();\r\n } else {\r\n this.items = this.originalItems.filter((item) =>\r\n item[this.label].toLowerCase().startsWith(this.searchTerm)\r\n );\r\n }\r\n } else {\r\n this.onSearch.emit(this.searchTerm);\r\n }\r\n } else {\r\n if (this.searchTerm.trim() === \"\") {\r\n this.items = this.originalItems.slice();\r\n } else {\r\n this.items = this.originalItems.filter((item) => {\r\n const startsWithSearchTerm = item[\"countryName\"]\r\n .toLowerCase()\r\n .includes(this.searchTerm);\r\n console.log(\r\n `Item...: ${item[\"countryName\"]}, Match: ${startsWithSearchTerm}`\r\n );\r\n return startsWithSearchTerm;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n handleButtonClick(action: () => void): void {\r\n action();\r\n this.buttonClick.emit();\r\n }\r\n}\r\n","<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border':isCountryCode || !borderThickness,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n 'country-code-border': isCountryCode || !borderThickness\r\n }\"\r\n (click)=\"isCountryCode && openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n {{ selectedItem[label] }}\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div *ngIf=\"selectedItems.length > 3\" class=\"remaining-items\">\r\n + {{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"input-field\"\r\n [ngClass]=\"{\r\n 'country-code-border': isCountryCode\r\n }\"\r\n >\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\" class=\"country-code-wrapper\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n <span *ngIf=\"isCountryCode\" class=\"flag-icon\">\r\n <span [class]=\"'fi fi-' + selectedFlag\"></span>\r\n </span>\r\n </div>\r\n\r\n <div class=\"down-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\" *ngIf=\"!isCountryCode\" (click)=\"openDropdown()\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n {{ item[label] }}\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { DropdownComponent } from './dropdown.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DropdownComponent\r\n ],\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n ],\r\n exports: [\r\n DropdownComponent\r\n ]\r\n})\r\nexport class DropdownModule { }\r\n","/*\r\n * Public API Surface of dropdown\r\n */\r\n\r\nexport * from './lib/dropdown.service';\r\nexport * from './lib/dropdown.component';\r\nexport * from './lib/dropdown.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.CountryService"],"mappings":"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"}
1
+ {"version":3,"file":"piserve-tech-drop-down.mjs","sources":["../../../projects/dropdown/src/lib/dropdown.service.ts","../../../projects/dropdown/src/lib/dropdown.component.ts","../../../projects/dropdown/src/lib/dropdown.component.html","../../../projects/dropdown/src/lib/dropdown.module.ts","../../../projects/dropdown/src/public-api.ts","../../../projects/dropdown/src/piserve-tech-drop-down.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DropdownService {\r\n\r\n constructor() { }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\n\r\ninterface DropdownItem {\r\n value: string;\r\n label: string;\r\n image: string;\r\n}\r\n\r\n@Component({\r\n selector: \"lib-dropdown\",\r\n templateUrl: \"./dropdown.component.html\",\r\n styleUrls: [\"./dropdown.component.scss\"],\r\n})\r\nexport class DropdownComponent implements OnInit {\r\n @Input() multiple!: boolean;\r\n @Input() scrollable!: boolean;\r\n @Input() selectedItems: any[] = [];\r\n @Input() placeholder: String = \"\";\r\n @Input() items: DropdownItem[] = [];\r\n @Input() showCreateNew!: boolean;\r\n @Input() customButtons: {\r\n label: string;\r\n icon: string;\r\n color: string;\r\n action: () => void;\r\n }[] = [];\r\n @Input() showBorder: boolean = true;\r\n @Output() buttonClick: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() selectedItemsChange: EventEmitter<any[]> = new EventEmitter<\r\n any[]\r\n >();\r\n @Output() onScroll: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() onCreateNew: EventEmitter<Event> = new EventEmitter<Event>();\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n dropdownOpened: boolean = false;\r\n selectedItem: any;\r\n selectedItemName: string = \"\";\r\n selectedItemImage: string = \"\";\r\n originalItems: any[] = [];\r\n searchTerm: string = \"\";\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n if (this.selectedItems && this.selectedItems.length > 0) {\r\n if (!this.multiple) this.selectItem(this.selectedItems[0]);\r\n }\r\n this.originalItems = this.items.slice();\r\n }\r\n\r\n openDropdown() {\r\n this.dropdownOpened = !this.dropdownOpened;\r\n }\r\n\r\n @ViewChild(\"dropdownItems\") dropdownitems!: ElementRef;\r\n\r\n onDropdownScroll(event: any): void {\r\n if (this.onScroll) {\r\n const dropdownElement: HTMLElement = this.dropdownitems.nativeElement;\r\n const scrollPosition =\r\n dropdownElement.scrollTop + dropdownElement.clientHeight;\r\n const totalHeight = dropdownElement.scrollHeight;\r\n\r\n if (scrollPosition >= totalHeight) {\r\n this.onScroll.emit();\r\n }\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n if (this.multiple) {\r\n if (!this.selectedItems.includes(item)) {\r\n this.selectedItems.push(item);\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n } else {\r\n this.selectedItems = this.selectedItems.filter(\r\n (selected: any) => selected !== item\r\n );\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n } else {\r\n this.selectedItems[0] = item;\r\n\r\n this.selectedItemName = this.selectedItems[0]?.label;\r\n this.selectedItemImage = this.selectedItems[0]?.image;\r\n this.dropdownOpened = false;\r\n // this.items = this.originalItems.slice();\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n }\r\n\r\n unselectItem(item: any): void {\r\n this.selectedItems = this.selectedItems.filter(\r\n (selected: any) => selected !== item\r\n );\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n }\r\n\r\n unselectAll() {\r\n this.selectedItems = [];\r\n this.selectedItemName = \"\";\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n // this.items = this.originalItems.slice();\r\n }\r\n\r\n @ViewChild(\"dropdown\") dropdown!: ElementRef;\r\n @HostListener(\"document:click\", [\"$event\"])\r\n onDocumentClick(event: Event): void {\r\n const isClickInsideDropdown = this.dropdown.nativeElement.contains(\r\n event.target\r\n );\r\n if (!isClickInsideDropdown) {\r\n this.dropdownOpened = false;\r\n }\r\n }\r\n\r\n createNew() {\r\n this.onCreateNew.emit();\r\n }\r\n\r\n search(event: any): void {\r\n const keyCode = event.keyCode;\r\n\r\n if (keyCode === 8 && !this.multiple) {\r\n this.selectedItems = [];\r\n this.selectedItemName = \"\";\r\n this.selectedItemImage = \"\";\r\n this.items = this.originalItems.slice();\r\n this.selectedItemsChange.emit(this.selectedItems);\r\n } else {\r\n this.searchTerm = event.target.value.toLowerCase();\r\n if (!this.onSearch.observers.length) {\r\n if (this.searchTerm.trim() === \"\") {\r\n this.items = this.originalItems.slice();\r\n } else {\r\n this.items = this.originalItems.filter(\r\n (item) =>\r\n item.label.toLowerCase().startsWith(this.searchTerm) ||\r\n (item.value &&\r\n item.value.toLowerCase().startsWith(this.searchTerm))\r\n );\r\n }\r\n } else {\r\n this.onSearch.emit(this.searchTerm);\r\n }\r\n }\r\n }\r\n\r\n handleButtonClick(action: () => void): void {\r\n action();\r\n this.buttonClick.emit();\r\n }\r\n}\r\n","<div\r\n #dropdown\r\n class=\"dropdown\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n>\r\n <div\r\n class=\"dropdown-field\"\r\n id=\"division\"\r\n [ngClass]=\"{\r\n opened: showBorder && dropdownOpened,\r\n closed: showBorder && !dropdownOpened,\r\n }\"\r\n (click)=\"openDropdown()\"\r\n >\r\n <div *ngIf=\"!selectedItem && multiple\" class=\"selected selectedList\">\r\n <div\r\n *ngFor=\"let selectedItem of selectedItems.slice(0, 3)\"\r\n class=\"selected-item\"\r\n >\r\n <img\r\n *ngIf=\"selectedItem?.image\"\r\n class=\"multiSelected-icon-size\"\r\n [src]=\"selectedItem?.image\"\r\n alt=\"image\"\r\n />\r\n <span>{{ selectedItem.label }}</span>\r\n <span (click)=\"unselectItem(selectedItem)\" class=\"close-icon\"\r\n >&times;</span\r\n >\r\n </div>\r\n <div class=\"remaining-items\" *ngIf=\"selectedItems.length > 3\">\r\n +{{ selectedItems.length - 3 }} more\r\n </div>\r\n </div>\r\n\r\n <div class=\"input-field\">\r\n <div *ngIf=\"multiple\">\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n <div *ngIf=\"!multiple\">\r\n <img\r\n *ngIf=\"selectedItemImage\"\r\n class=\"selected-icon-size\"\r\n [src]=\"selectedItemImage\"\r\n alt=\"image\"\r\n />\r\n <input\r\n class=\"dropdown_text\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItemName\"\r\n (keyup)=\"search($event)\"\r\n />\r\n </div>\r\n\r\n <div class=\"down-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"down-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <g id=\"Down Arrow\">\r\n <g id=\"Group\">\r\n <path\r\n id=\"Path\"\r\n d=\"M6 9.13741L12 15.229L18 9.13741\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </g>\r\n </g>\r\n </svg>\r\n </div>\r\n <div class=\"up-arrow\">\r\n <svg\r\n width=\"24\"\r\n height=\"25\"\r\n viewBox=\"0 0 24 25\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"up-arrow-img\"\r\n [ngClass]=\"{ opened: dropdownOpened, closed: !dropdownOpened }\"\r\n >\r\n <path\r\n d=\"M18 15.229L12 9.1374L6 15.229\"\r\n stroke=\"#8E9AA0\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n <span\r\n (click)=\"unselectAll()\"\r\n *ngIf=\"(selectedItems.length > 0 || selectedItemName != '') && multiple\"\r\n class=\"deselect\"\r\n >&times;</span\r\n >\r\n </div>\r\n </div>\r\n\r\n <div\r\n #dropdownItems\r\n class=\"dropdown-items\"\r\n *ngIf=\"dropdownOpened\"\r\n (scroll)=\"onDropdownScroll($event)\"\r\n >\r\n <a class=\"create_button\" (click)=\"createNew()\" *ngIf=\"showCreateNew\"\r\n >Create new</a\r\n >\r\n\r\n <ng-container *ngIf=\"multiple; else singleSelection\">\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-template #singleSelection>\r\n <a\r\n class=\"items d-block\"\r\n *ngFor=\"let item of items\"\r\n (click)=\"selectItem(item)\"\r\n >\r\n <div class=\"dropdown-item\">\r\n <div class=\"item-details\">\r\n <img\r\n *ngIf=\"item?.image\"\r\n [src]=\"item?.image\"\r\n alt=\"Item Image\"\r\n class=\"item-image icon-size\"\r\n />\r\n <span class=\"item-label\">{{ item?.label }}</span>\r\n <div class=\"space\" *ngIf=\"item?.label\"></div>\r\n <span class=\"item-value\">{{ item?.value }}</span>\r\n <div class=\"dropdown_buttons\">\r\n <button\r\n *ngFor=\"let button of customButtons\"\r\n (click)=\"handleButtonClick(button.action)\"\r\n >\r\n <i [class]=\"button.icon\" [style.color]=\"button.color\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </a>\r\n </ng-template>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { DropdownComponent } from './dropdown.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n DropdownComponent\r\n ],\r\n imports: [\r\n FormsModule,\r\n CommonModule,\r\n ],\r\n exports: [\r\n DropdownComponent\r\n ]\r\n})\r\nexport class DropdownModule { }\r\n","/*\r\n * Public API Surface of dropdown\r\n */\r\n\r\nexport * from './lib/dropdown.service';\r\nexport * from './lib/dropdown.component';\r\nexport * from './lib/dropdown.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  import { ElementRef, EventEmitter, OnInit } from "@angular/core";
2
- import { CountryService } from "../service/countryService";
3
2
  import * as i0 from "@angular/core";
3
+ interface DropdownItem {
4
+ value: string;
5
+ label: string;
6
+ image: string;
7
+ }
4
8
  export declare class DropdownComponent implements OnInit {
5
- private countryService;
6
9
  multiple: boolean;
7
10
  scrollable: boolean;
8
11
  selectedItems: any[];
9
12
  placeholder: String;
10
- label: string;
11
- items: any[];
13
+ items: DropdownItem[];
12
14
  showCreateNew: boolean;
13
15
  customButtons: {
14
16
  label: string;
@@ -17,8 +19,6 @@ export declare class DropdownComponent implements OnInit {
17
19
  action: () => void;
18
20
  }[];
19
21
  showBorder: boolean;
20
- isCountryCode: boolean;
21
- borderThickness: boolean;
22
22
  buttonClick: EventEmitter<Event>;
23
23
  selectedItemsChange: EventEmitter<any[]>;
24
24
  onScroll: EventEmitter<Event>;
@@ -27,11 +27,10 @@ export declare class DropdownComponent implements OnInit {
27
27
  dropdownOpened: boolean;
28
28
  selectedItem: any;
29
29
  selectedItemName: string;
30
+ selectedItemImage: string;
30
31
  originalItems: any[];
31
32
  searchTerm: string;
32
- selectedFlag: string;
33
- countryDetails: any[];
34
- constructor(countryService: CountryService);
33
+ constructor();
35
34
  ngOnInit(): void;
36
35
  openDropdown(): void;
37
36
  dropdownitems: ElementRef;
@@ -45,5 +44,6 @@ export declare class DropdownComponent implements OnInit {
45
44
  search(event: any): void;
46
45
  handleButtonClick(action: () => void): void;
47
46
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "lib-dropdown", never, { "multiple": { "alias": "multiple"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "label": { "alias": "label"; "required": false; }; "items": { "alias": "items"; "required": false; }; "showCreateNew": { "alias": "showCreateNew"; "required": false; }; "customButtons": { "alias": "customButtons"; "required": false; }; "showBorder": { "alias": "showBorder"; "required": false; }; "isCountryCode": { "alias": "isCountryCode"; "required": false; }; "borderThickness": { "alias": "borderThickness"; "required": false; }; }, { "buttonClick": "buttonClick"; "selectedItemsChange": "selectedItemsChange"; "onScroll": "onScroll"; "onCreateNew": "onCreateNew"; "onSearch": "onSearch"; }, never, never, false, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "lib-dropdown", never, { "multiple": { "alias": "multiple"; "required": false; }; "scrollable": { "alias": "scrollable"; "required": false; }; "selectedItems": { "alias": "selectedItems"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "items": { "alias": "items"; "required": false; }; "showCreateNew": { "alias": "showCreateNew"; "required": false; }; "customButtons": { "alias": "customButtons"; "required": false; }; "showBorder": { "alias": "showBorder"; "required": false; }; }, { "buttonClick": "buttonClick"; "selectedItemsChange": "selectedItemsChange"; "onScroll": "onScroll"; "onCreateNew": "onCreateNew"; "onSearch": "onSearch"; }, never, never, false, never>;
49
48
  }
49
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piserve-tech/drop-down",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.2.0",
6
6
  "@angular/core": "^16.2.0"
@@ -1,54 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common/http";
4
- export class CountryService {
5
- constructor(http) {
6
- this.http = http;
7
- }
8
- loadCountryDetails() {
9
- return this.http.get("../assets/ContryDetails.json");
10
- }
11
- processCountryDetails(data) {
12
- let countries = [];
13
- data.forEach((country) => {
14
- const name = country.name && country.name.common ? country.name.common : "";
15
- const isoCode = country.cca2 && country.cca3 ? `${country.cca2}` : "";
16
- if (country.idd &&
17
- country.idd.root &&
18
- country.idd.suffixes &&
19
- country.idd.suffixes.length > 0) {
20
- country.idd.suffixes.forEach((suffix) => {
21
- const isdCode = `${country.idd.root}${suffix}`;
22
- const flag = country.flags && country.flags.svg ? country.flags.svg : "";
23
- countries.push({
24
- Name: name,
25
- ISOCode: isoCode,
26
- ISDCode: isdCode,
27
- Flag: flag,
28
- countryName: `${name} (${isdCode})`,
29
- });
30
- });
31
- }
32
- else {
33
- const flag = country.flags && country.flags.svg ? country.flags.svg : "";
34
- countries.push({
35
- Name: name,
36
- ISOCode: isoCode,
37
- ISDCode: country.idd && country.idd.root ? country.idd.root : "",
38
- Flag: flag,
39
- countryName: `${name} (${country.idd && country.idd.root ? country.idd.root : ""})`,
40
- });
41
- }
42
- });
43
- return countries;
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, providedIn: "root" }); }
47
- }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CountryService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: "root",
52
- }]
53
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeVNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9kcm9wZG93bi9zcmMvc2VydmljZS9jb3VudHJ5U2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0MsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUFHLENBQUM7SUFFeEMsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQU0sOEJBQThCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBVztRQUMvQixJQUFJLFNBQVMsR0FBVSxFQUFFLENBQUM7UUFFMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxHQUNSLE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBRXRFLElBQ0UsT0FBTyxDQUFDLEdBQUc7Z0JBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJO2dCQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVE7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQy9CO2dCQUNBLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQWMsRUFBRSxFQUFFO29CQUM5QyxNQUFNLE9BQU8sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDO29CQUMvQyxNQUFNLElBQUksR0FDUixPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUU5RCxTQUFTLENBQUMsSUFBSSxDQUFDO3dCQUNiLElBQUksRUFBRSxJQUFJO3dCQUNWLE9BQU8sRUFBRSxPQUFPO3dCQUNoQixPQUFPLEVBQUUsT0FBTzt3QkFDaEIsSUFBSSxFQUFFLElBQUk7d0JBQ1YsV0FBVyxFQUFFLEdBQUcsSUFBSSxLQUFLLE9BQU8sR0FBRztxQkFDcEMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEdBQ1IsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFFOUQsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDYixJQUFJLEVBQUUsSUFBSTtvQkFDVixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNoRSxJQUFJLEVBQUUsSUFBSTtvQkFDVixXQUFXLEVBQUUsR0FBRyxJQUFJLEtBQ2xCLE9BQU8sQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUN2RCxHQUFHO2lCQUNKLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOytHQW5EVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ291bnRyeVNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cclxuXHJcbiAgbG9hZENvdW50cnlEZXRhaWxzKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KFwiLi4vYXNzZXRzL0NvbnRyeURldGFpbHMuanNvblwiKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NDb3VudHJ5RGV0YWlscyhkYXRhOiBhbnlbXSk6IGFueVtdIHtcclxuICAgIGxldCBjb3VudHJpZXM6IGFueVtdID0gW107XHJcblxyXG4gICAgZGF0YS5mb3JFYWNoKChjb3VudHJ5KSA9PiB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPVxyXG4gICAgICAgIGNvdW50cnkubmFtZSAmJiBjb3VudHJ5Lm5hbWUuY29tbW9uID8gY291bnRyeS5uYW1lLmNvbW1vbiA6IFwiXCI7XHJcbiAgICAgIGNvbnN0IGlzb0NvZGUgPSBjb3VudHJ5LmNjYTIgJiYgY291bnRyeS5jY2EzID8gYCR7Y291bnRyeS5jY2EyfWAgOiBcIlwiO1xyXG5cclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNvdW50cnkuaWRkICYmXHJcbiAgICAgICAgY291bnRyeS5pZGQucm9vdCAmJlxyXG4gICAgICAgIGNvdW50cnkuaWRkLnN1ZmZpeGVzICYmXHJcbiAgICAgICAgY291bnRyeS5pZGQuc3VmZml4ZXMubGVuZ3RoID4gMFxyXG4gICAgICApIHtcclxuICAgICAgICBjb3VudHJ5LmlkZC5zdWZmaXhlcy5mb3JFYWNoKChzdWZmaXg6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXNkQ29kZSA9IGAke2NvdW50cnkuaWRkLnJvb3R9JHtzdWZmaXh9YDtcclxuICAgICAgICAgIGNvbnN0IGZsYWcgPVxyXG4gICAgICAgICAgICBjb3VudHJ5LmZsYWdzICYmIGNvdW50cnkuZmxhZ3Muc3ZnID8gY291bnRyeS5mbGFncy5zdmcgOiBcIlwiO1xyXG5cclxuICAgICAgICAgIGNvdW50cmllcy5wdXNoKHtcclxuICAgICAgICAgICAgTmFtZTogbmFtZSxcclxuICAgICAgICAgICAgSVNPQ29kZTogaXNvQ29kZSxcclxuICAgICAgICAgICAgSVNEQ29kZTogaXNkQ29kZSxcclxuICAgICAgICAgICAgRmxhZzogZmxhZyxcclxuICAgICAgICAgICAgY291bnRyeU5hbWU6IGAke25hbWV9ICgke2lzZENvZGV9KWAsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBjb25zdCBmbGFnID1cclxuICAgICAgICAgIGNvdW50cnkuZmxhZ3MgJiYgY291bnRyeS5mbGFncy5zdmcgPyBjb3VudHJ5LmZsYWdzLnN2ZyA6IFwiXCI7XHJcblxyXG4gICAgICAgIGNvdW50cmllcy5wdXNoKHtcclxuICAgICAgICAgIE5hbWU6IG5hbWUsXHJcbiAgICAgICAgICBJU09Db2RlOiBpc29Db2RlLFxyXG4gICAgICAgICAgSVNEQ29kZTogY291bnRyeS5pZGQgJiYgY291bnRyeS5pZGQucm9vdCA/IGNvdW50cnkuaWRkLnJvb3QgOiBcIlwiLFxyXG4gICAgICAgICAgRmxhZzogZmxhZyxcclxuICAgICAgICAgIGNvdW50cnlOYW1lOiBgJHtuYW1lfSAoJHtcclxuICAgICAgICAgICAgY291bnRyeS5pZGQgJiYgY291bnRyeS5pZGQucm9vdCA/IGNvdW50cnkuaWRkLnJvb3QgOiBcIlwiXHJcbiAgICAgICAgICB9KWAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb3VudHJpZXM7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,11 +0,0 @@
1
- import { HttpClient } from "@angular/common/http";
2
- import { Observable } from "rxjs";
3
- import * as i0 from "@angular/core";
4
- export declare class CountryService {
5
- private http;
6
- constructor(http: HttpClient);
7
- loadCountryDetails(): Observable<any>;
8
- processCountryDetails(data: any[]): any[];
9
- static ɵfac: i0.ɵɵFactoryDeclaration<CountryService, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<CountryService>;
11
- }