lib-portal-angular 0.0.53 → 0.0.54

Sign up to get free protection for your applications and to get access to all the features.
@@ -32,11 +32,11 @@ export class CustomSwitchComponent {
32
32
  }
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, deps: [{ token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-input:not(:checked):before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:4px;left:4px;transition:background-color .3s,transform .3s}.form-check-input:checked:before{transform:translate(26px)}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'argenta-custom-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"] }]
39
+ args: [{ selector: 'argenta-custom-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-input:not(:checked):before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:4px;left:4px;transition:background-color .3s,transform .3s}.form-check-input:checked:before{transform:translate(26px)}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"] }]
40
40
  }], ctorParameters: function () { return [{ type: i1.AuthService }]; }, propDecorators: { checked: [{
41
41
  type: Input
42
42
  }], label: [{
@@ -1,7 +1,7 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, forwardRef } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { of, Subject } from 'rxjs';
4
- import { debounceTime, switchMap, catchError, startWith, map } from 'rxjs/operators';
4
+ import { catchError, debounceTime, map, startWith, switchMap } from 'rxjs/operators';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../service/auth-service.service";
7
7
  import * as i2 from "@angular/common/http";
@@ -15,12 +15,12 @@ export class MultiSelectComponent {
15
15
  this.label = 'Multi Select';
16
16
  this.data = []; // Accepts an array of generic objects
17
17
  this.placeholder = 'Select items';
18
- this.selected = []; // The selected variable should be an array
19
18
  this.id = 'multiSelectId';
20
19
  this.bindLabel = ''; // Generic dynamic label
21
20
  this.bindValue = ''; // Generic dynamic value
22
21
  this.closeOnSelect = false; // New property to control dropdown close behavior
23
22
  this.searchUrl = ''; // URL for backend search
23
+ this.multiple = true; // New property to control single or multiple selection
24
24
  this.keyupEvent = new EventEmitter();
25
25
  this.originalData = []; // Store the original list
26
26
  this.allItems = []; // Store the combined list
@@ -39,8 +39,32 @@ export class MultiSelectComponent {
39
39
  this.originalData = [...this.data]; // Preserve the original data
40
40
  this.allItems = [...this.data]; // Initialize allItems with the original data
41
41
  this.items = of(this.allItems);
42
- this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
43
- switchMap(term => this.search(term)));
42
+ if (this.searchUrl) {
43
+ this.fetchInitialData().subscribe(data => {
44
+ this.allItems = data;
45
+ this.items = of(this.allItems);
46
+ this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
47
+ switchMap(term => this.search(term)));
48
+ });
49
+ }
50
+ else {
51
+ this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
52
+ switchMap(term => this.search(term)));
53
+ }
54
+ }
55
+ fetchInitialData() {
56
+ return this.http.get(this.searchUrl).pipe(map((response) => {
57
+ if (response && response.length > 0) {
58
+ return response.map((item) => ({
59
+ [this.bindValue]: item[this.bindValue],
60
+ [this.bindLabel]: item[this.bindLabel]
61
+ }));
62
+ }
63
+ return [];
64
+ }), catchError((error) => {
65
+ console.error('Error fetching initial data from backend:', error);
66
+ return of([]);
67
+ }));
44
68
  }
45
69
  onFocus() {
46
70
  this.isCourseEntered = true;
@@ -52,8 +76,15 @@ export class MultiSelectComponent {
52
76
  this.keyupEvent.emit(event);
53
77
  }
54
78
  onSelectedChange(event) {
55
- const newlySelectedItems = event.filter((item) => !this.selected.includes(item));
56
- this.selected = event;
79
+ if (this.multiple) {
80
+ this.selected = event;
81
+ }
82
+ else {
83
+ this.selected = event ? event : null;
84
+ }
85
+ const newlySelectedItems = this.multiple
86
+ ? event.filter((item) => !this.selected.includes(item))
87
+ : [this.selected];
57
88
  // Check if any newly selected item is from backendItems
58
89
  const addedFromBackend = this.backendItems.filter((item) => newlySelectedItems.includes(item));
59
90
  if (addedFromBackend.length > 0) {
@@ -112,7 +143,7 @@ export class MultiSelectComponent {
112
143
  }
113
144
  }
114
145
  writeValue(value) {
115
- this.selected = value || [];
146
+ this.selected = value || (this.multiple ? [] : null);
116
147
  }
117
148
  registerOnChange(fn) {
118
149
  this.onChangeCallback = fn;
@@ -141,77 +172,23 @@ export class MultiSelectComponent {
141
172
  }
142
173
  }
143
174
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: i1.AuthService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
144
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
175
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl", multiple: "multiple" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
145
176
  {
146
177
  provide: NG_VALUE_ACCESSOR,
147
178
  useExisting: forwardRef(() => MultiSelectComponent),
148
179
  multi: true
149
180
  }
150
- ], ngImport: i0, template: `
151
- <div *ngIf="hasPermission()" class="form-group">
152
- <label [for]="id" class="form-label">{{ label }}</label>
153
- <ng-select
154
- [class.course-entry]="isCourseEntered"
155
- class="ng-select"
156
- [items]="filteredItems | async"
157
- [multiple]="true"
158
- [closeOnSelect]="closeOnSelect"
159
- [hideSelected]="true"
160
- [bindLabel]="bindLabel"
161
- [bindValue]="bindValue"
162
- [(ngModel)]="selected"
163
- [compareWith]="compareFn"
164
- (change)="onSelectedChange($event)"
165
- (keyup)="onKeyUp($event)"
166
- (input)="onInputChange($event)"
167
- [id]="id"
168
- [placeholder]="selected && selected.length === 0 ? placeholder : ''"
169
- (focus)="onFocus()"
170
- (blur)="onBlur()"
171
- >
172
- <ng-template ng-option-tmp let-item="item">
173
- {{ item[bindLabel] }}
174
- </ng-template>
175
- </ng-select>
176
- </div>
177
- `, isInline: true, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
181
+ ], ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 2rem;\">{{ label }}</label>\n <ng-select\n [class.course-entry]=\"isCourseEntered\"\n class=\"ng-select\"\n [items]=\"filteredItems | async\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"true\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [(ngModel)]=\"selected\"\n [compareWith]=\"compareFn\"\n (change)=\"onSelectedChange($event)\"\n (keyup)=\"onKeyUp($event)\"\n (input)=\"onInputChange($event)\"\n [id]=\"id\"\n [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item[bindLabel] }}\n </ng-template>\n </ng-select>\n </div>", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
178
182
  }
179
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
180
184
  type: Component,
181
- args: [{ selector: 'argenta-custom-multi-select', template: `
182
- <div *ngIf="hasPermission()" class="form-group">
183
- <label [for]="id" class="form-label">{{ label }}</label>
184
- <ng-select
185
- [class.course-entry]="isCourseEntered"
186
- class="ng-select"
187
- [items]="filteredItems | async"
188
- [multiple]="true"
189
- [closeOnSelect]="closeOnSelect"
190
- [hideSelected]="true"
191
- [bindLabel]="bindLabel"
192
- [bindValue]="bindValue"
193
- [(ngModel)]="selected"
194
- [compareWith]="compareFn"
195
- (change)="onSelectedChange($event)"
196
- (keyup)="onKeyUp($event)"
197
- (input)="onInputChange($event)"
198
- [id]="id"
199
- [placeholder]="selected && selected.length === 0 ? placeholder : ''"
200
- (focus)="onFocus()"
201
- (blur)="onBlur()"
202
- >
203
- <ng-template ng-option-tmp let-item="item">
204
- {{ item[bindLabel] }}
205
- </ng-template>
206
- </ng-select>
207
- </div>
208
- `, providers: [
185
+ args: [{ selector: 'argenta-custom-multi-select', template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 2rem;\">{{ label }}</label>\n <ng-select\n [class.course-entry]=\"isCourseEntered\"\n class=\"ng-select\"\n [items]=\"filteredItems | async\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"true\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [(ngModel)]=\"selected\"\n [compareWith]=\"compareFn\"\n (change)=\"onSelectedChange($event)\"\n (keyup)=\"onKeyUp($event)\"\n (input)=\"onInputChange($event)\"\n [id]=\"id\"\n [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item[bindLabel] }}\n </ng-template>\n </ng-select>\n </div>", providers: [
209
186
  {
210
187
  provide: NG_VALUE_ACCESSOR,
211
188
  useExisting: forwardRef(() => MultiSelectComponent),
212
189
  multi: true
213
190
  }
214
- ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"] }]
191
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"] }]
215
192
  }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.HttpClient }]; }, propDecorators: { label: [{
216
193
  type: Input
217
194
  }], data: [{
@@ -232,7 +209,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
232
209
  type: Input
233
210
  }], searchUrl: [{
234
211
  type: Input
212
+ }], multiple: [{
213
+ type: Input
235
214
  }], keyupEvent: [{
236
215
  type: Output
237
216
  }] } });
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUE0Q3JGLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQW9CLFdBQXdCLEVBQVUsSUFBZ0I7UUFBbEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBcEI3RCxVQUFLLEdBQVcsY0FBYyxDQUFDO1FBQy9CLFNBQUksR0FBVSxFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7UUFDeEQsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFDckMsYUFBUSxHQUFVLEVBQUUsQ0FBQyxDQUFDLDJDQUEyQztRQUNqRSxPQUFFLEdBQVcsZUFBZSxDQUFDO1FBQzdCLGNBQVMsR0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDaEQsY0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3QjtRQUVoRCxrQkFBYSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtEQUFrRDtRQUNsRixjQUFTLEdBQVcsRUFBRSxDQUFDLENBQUMseUJBQXlCO1FB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LFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkFsQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDs7NEZBVVUsb0JBQW9CO2tCQXhDaEMsU0FBUzsrQkFDRSw2QkFBNkIsWUFFN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxhQUNVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTsySEFHdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN3aXRjaE1hcCwgY2F0Y2hFcnJvciwgc3RhcnRXaXRoLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXV0aC1zZXJ2aWNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJnZW50YS1jdXN0b20tbXVsdGktc2VsZWN0JyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiAqbmdJZj1cImhhc1Blcm1pc3Npb24oKVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8bmctc2VsZWN0XG4gICAgICAgIFtjbGFzcy5jb3Vyc2UtZW50cnldPVwiaXNDb3Vyc2VFbnRlcmVkXCJcbiAgICAgICAgY2xhc3M9XCJuZy1zZWxlY3RcIlxuICAgICAgICBbaXRlbXNdPVwiZmlsdGVyZWRJdGVtcyB8IGFzeW5jXCJcbiAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxuICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcbiAgICAgICAgW2hpZGVTZWxlY3RlZF09XCJ0cnVlXCJcbiAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWxcIlxuICAgICAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdGVkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQpXCJcbiAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZWxlY3RlZCAmJiBzZWxlY3RlZC5sZW5ndGggPT09IDAgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAge3sgaXRlbVtiaW5kTGFiZWxdIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdNdWx0aSBTZWxlY3QnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBBY2NlcHRzIGFuIGFycmF5IG9mIGdlbmVyaWMgb2JqZWN0c1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnlbXSA9IFtdOyAvLyBUaGUgc2VsZWN0ZWQgdmFyaWFibGUgc2hvdWxkIGJlIGFuIGFycmF5XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnbXVsdGlTZWxlY3RJZCc7XG4gIEBJbnB1dCgpIGJpbmRMYWJlbDogc3RyaW5nID0gJyc7IC8vIEdlbmVyaWMgZHluYW1pYyBsYWJlbFxuICBASW5wdXQoKSBiaW5kVmFsdWU6IHN0cmluZyA9ICcnOyAvLyBHZW5lcmljIGR5bmFtaWMgdmFsdWVcbiAgQElucHV0KCkgcGVybWlzc2lvbnM6IHN0cmluZ1tdIHwgdW5kZWZpbmVkOyAvLyBBZGRpbmcgcGVybWlzc2lvbnMgYXMgaW5wdXRcbiAgQElucHV0KCkgY2xvc2VPblNlbGVjdDogYm9vbGVhbiA9IGZhbHNlOyAvLyBOZXcgcHJvcGVydHkgdG8gY29udHJvbCBkcm9wZG93biBjbG9zZSBiZWhhdmlvclxuICBASW5wdXQoKSBzZWFyY2hVcmw6IHN0cmluZyA9ICcnOyAvLyBVUkwgZm9yIGJhY2tlbmQgc2VhcmNoXG5cbiAgQE91dHB1dCgpIGtleXVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbERhdGE6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBsaXN0XG4gIHByaXZhdGUgYWxsSXRlbXM6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBjb21iaW5lZCBsaXN0XG4gIGl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTsgLy8gSW5pdGlhbGl6YXRpb24gb2YgdGhlIHByb3BlcnR5XG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+ID0gb2YoW10pOyAvLyBGaWx0ZXJlZCBpdGVtc1xuICBwcml2YXRlIHNlYXJjaFRlcm1zID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpOyAvLyBGb3Igc2VhcmNoIGRlYm91bmNlXG4gIHByaXZhdGUgYmFja2VuZEl0ZW1zOiBhbnlbXSA9IFtdOyAvLyBJdGVtcyBmb3VuZCBmcm9tIGJhY2tlbmRcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsRGF0YSA9IFsuLi50aGlzLmRhdGFdOyAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YVxuICAgIHRoaXMuYWxsSXRlbXMgPSBbLi4udGhpcy5kYXRhXTsgLy8gSW5pdGlhbGl6ZSBhbGxJdGVtcyB3aXRoIHRoZSBvcmlnaW5hbCBkYXRhXG4gICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuYWxsSXRlbXMpO1xuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuc2VhcmNoVGVybXMucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSg3MDApLFxuICAgICAgc3RhcnRXaXRoKCcnKSwgLy8gU3RhcnQgd2l0aCBhbiBlbXB0eSBzZWFyY2ggdG8gbG9hZCB0aGUgb3JpZ2luYWwgbGlzdFxuICAgICAgc3dpdGNoTWFwKHRlcm0gPT4gdGhpcy5zZWFyY2godGVybSkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2VDYWxsYmFjazogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHsgfTtcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcblxuICBpc0NvdXJzZUVudGVyZWQgPSBmYWxzZTtcblxuICBvbkZvY3VzKCkge1xuICAgIHRoaXMuaXNDb3Vyc2VFbnRlcmVkID0gdHJ1ZTtcbiAgfVxuXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLmlzQ291cnNlRW50ZXJlZCA9IGZhbHNlO1xuICB9XG5cbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMua2V5dXBFdmVudC5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIG9uU2VsZWN0ZWRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG5ld2x5U2VsZWN0ZWRJdGVtcyA9IGV2ZW50LmZpbHRlcigoaXRlbTogYW55KSA9PiAhdGhpcy5zZWxlY3RlZC5pbmNsdWRlcyhpdGVtKSk7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGV2ZW50O1xuXG4gICAgLy8gQ2hlY2sgaWYgYW55IG5ld2x5IHNlbGVjdGVkIGl0ZW0gaXMgZnJvbSBiYWNrZW5kSXRlbXNcbiAgICBjb25zdCBhZGRlZEZyb21CYWNrZW5kID0gdGhpcy5iYWNrZW5kSXRlbXMuZmlsdGVyKChpdGVtOiBhbnkpID0+IG5ld2x5U2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhpdGVtKSk7XG5cbiAgICBpZiAoYWRkZWRGcm9tQmFja2VuZC5sZW5ndGggPiAwKSB7XG4gICAgICAvLyBUcmFuc2Zvcm0gdGhlIGJhY2tlbmQgaXRlbXMgdG8gbWF0Y2ggdGhlIGZvcm1hdCBleHBlY3RlZCBieSB0aGUgY29tcG9uZW50XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZEl0ZW1zID0gYWRkZWRGcm9tQmFja2VuZC5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgW3RoaXMuYmluZFZhbHVlXTogaXRlbVt0aGlzLmJpbmRWYWx1ZV0sXG4gICAgICAgIFt0aGlzLmJpbmRMYWJlbF06IGl0ZW1bdGhpcy5iaW5kTGFiZWxdXG4gICAgICB9KSk7XG5cbiAgICAgIC8vIEFkZCBiYWNrZW5kIGl0ZW1zIHRvIHRoZSBhbGxJdGVtcyBsaXN0IGFuZCB1cGRhdGUgdGhlIG9ic2VydmFibGVcbiAgICAgIHRoaXMub3JpZ2luYWxEYXRhID0gWy4uLnRoaXMub3JpZ2luYWxEYXRhLCAuLi50cmFuc2Zvcm1lZEl0ZW1zXTtcbiAgICAgIHRoaXMuYWxsSXRlbXMgPSBbLi4udGhpcy5vcmlnaW5hbERhdGFdO1xuICAgICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuYWxsSXRlbXMpOyAvLyBVcGRhdGUgdGhlIG9ic2VydmFibGUgd2l0aCBuZXcgZGF0YVxuICAgICAgdGhpcy5iYWNrZW5kSXRlbXMgPSBbXTsgLy8gQ2xlYXIgYmFja2VuZCBpdGVtcyBhZnRlciBwcm9jZXNzaW5nXG4gICAgICB0aGlzLnNlYXJjaFRlcm1zLm5leHQoJycpOyAvLyBSZXNldCB0aGUgc2VhcmNoIHRlcm0gdG8gdXBkYXRlIHRoZSBsaXN0XG4gICAgICBjb25zb2xlLmxvZygnQWRkZWQgaXRlbXMgZnJvbSBiYWNrZW5kIHRvIHRoZSBsaXN0IGFuZCByZXNldCB0aGUgZHJvcGRvd24uJyk7XG4gICAgfVxuXG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrKHRoaXMuc2VsZWN0ZWQpO1xuICB9XG5cbiAgb25JbnB1dENoYW5nZShldmVudDogYW55KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5zZWFyY2hUZXJtcy5uZXh0KGlucHV0KTtcbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueVtdPiB7XG4gICAgaWYgKCF0ZXJtLnRyaW0oKSkge1xuICAgICAgLy8gSWYgdGhlIHNlYXJjaCB0ZXJtIGlzIGVtcHR5LCBzaG93IHRoZSBjb21wbGV0ZSBsaXN0XG4gICAgICByZXR1cm4gb2YodGhpcy5hbGxJdGVtcyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsdGVyZWQgPSB0aGlzLmFsbEl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PlxuICAgICAgaXRlbVt0aGlzLmJpbmRMYWJlbF0udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtLnRvTG93ZXJDYXNlKCkpXG4gICAgKTtcblxuICAgIGlmIChmaWx0ZXJlZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnSXRlbXMgZmlsdGVyZWQgbG9jYWxseS4nKTtcbiAgICAgIHJldHVybiBvZihmaWx0ZXJlZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnNlYXJjaFVybCkge1xuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnNlYXJjaFVybH0/dGVybT0ke3Rlcm19YCkucGlwZShcbiAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgYmFja2VuZCBpdGVtcyB0byBtYXRjaCB0aGUgZm9ybWF0IGV4cGVjdGVkIGJ5IHRoZSBjb21wb25lbnRcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkSXRlbXMgPSByZXNwb25zZS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcbiAgICAgICAgICAgICAgW3RoaXMuYmluZFZhbHVlXTogaXRlbVt0aGlzLmJpbmRWYWx1ZV0sXG4gICAgICAgICAgICAgIFt0aGlzLmJpbmRMYWJlbF06IGl0ZW1bdGhpcy5iaW5kTGFiZWxdXG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB0aGlzLmJhY2tlbmRJdGVtcyA9IHRyYW5zZm9ybWVkSXRlbXM7XG4gICAgICAgICAgICByZXR1cm4gWy4uLmZpbHRlcmVkLCAuLi50cmFuc2Zvcm1lZEl0ZW1zXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ05vIGl0ZW1zIGZvdW5kIGluIHRoZSBiYWNrZW5kIHNlYXJjaC4nKTtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgZnJvbSBiYWNrZW5kOicsIGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gb2YoZmlsdGVyZWQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5sb2coJ05vIHNlYXJjaCBVUkwgcHJvdmlkZWQgYW5kIG5vIGl0ZW1zIGZvdW5kIGxvY2FsbHkuJyk7XG4gICAgICByZXR1cm4gb2YoZmlsdGVyZWQpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWQgPSB2YWx1ZSB8fCBbXTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBObyBpbXBsZW1lbnRhdGlvbiBuZWVkZWQgZm9yIHRoaXMgZXhhbXBsZVxuICB9XG5cbiAgY29tcGFyZUZuID0gKGl0ZW0xOiBhbnksIGl0ZW0yOiBhbnkpOiBib29sZWFuID0+IHtcbiAgICByZXR1cm4gaXRlbTEgJiYgaXRlbTIgPyBpdGVtMVt0aGlzLmJpbmRWYWx1ZV0gPT09IGl0ZW0yW3RoaXMuYmluZFZhbHVlXSA6IGl0ZW0xID09PSBpdGVtMjtcbiAgfTtcblxuICBoYXNQZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5wZXJtaXNzaW9ucyB8fCB0aGlzLnBlcm1pc3Npb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmhhc1Blcm1pc3Npb24odGhpcy5wZXJtaXNzaW9ucyk7XG4gICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Blcm1pc3Npb24gZXJyb3I6JywgZXJyb3IubWVzc2FnZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdVbmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyBwZXJtaXNzaW9uIGNoZWNrJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFtQnJGLE1BQU0sT0FBTyxvQkFBb0I7SUFzQi9CLFlBQW9CLFdBQXdCLEVBQVUsSUFBZ0I7UUFBbEQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBckI3RCxVQUFLLEdBQVcsY0FBYyxDQUFDO1FBQy9CLFNBQUksR0FBVSxFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7UUFDeEQsZ0JBQVcsR0FBVyxjQUFjLENBQUM7UUFFckMsT0FBRSxHQUFXLGVBQWUsQ0FBQztRQUM3QixjQUFTLEdBQVcsRUFBRSxDQUFDLENBQUMsd0JBQXdCO1FBQ2hELGNBQVMsR0FBVyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFFaEQsa0JBQWEsR0FBWSxLQUFLLENBQUMsQ0FBQyxrREFBa0Q7UUFDbEYsY0FBUyxHQUFXLEVBQUUsQ0FBQyxDQUFDLHlCQUF5QjtRQUNqRCxhQUFRLEdBQVksSUFBSSxDQUFDLENBQUMsdURBQXVEO1FBRWhGLGVBQVUsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUUxRCxpQkFBWSxHQUFVLEVBQUUsQ0FBQyxDQUFDLDBCQUEwQjtRQUNwRCxhQUFRLEdBQVUsRUFBRSxDQUFDLENBQUMsMEJBQTBCO1FBQ3hELFVBQUssR0FBc0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1FBQ3BFLGtCQUFhLEdBQXNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtRQUNwRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUMsQ0FBQyxzQkFBc0I7UUFDM0QsaUJBQVksR0FBVSxFQUFFLENBQUMsQ0FBQywyQkFBMkI7UUE4Q3JELHFCQUFnQixHQUFxQixHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDL0Msc0JBQWlCLEdBQWUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRWxELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBNEd4QixjQUFTLEdBQUcsQ0FBQyxLQUFVLEVBQUUsS0FBVSxFQUFXLEVBQUU7WUFDOUMsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUM7UUFDNUYsQ0FBQyxDQUFDO0lBN0p3RSxDQUFDO0lBRTNFLFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyw2QkFBNkI7UUFDakUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNkNBQTZDO1FBQzdFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN4QyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQ2pCLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSx1REFBdUQ7Z0JBQ3RFLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDckMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3hDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLHVEQUF1RDtZQUN0RSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3JDLENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUM1QyxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUNwQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDbkMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNsQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDdEMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7aUJBQ3ZDLENBQUMsQ0FBQyxDQUFDO2FBQ0w7WUFDRCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFPRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUN2QjthQUFNO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ3RDO1FBRUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFcEIsd0RBQXdEO1FBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRXBHLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvQiw0RUFBNEU7WUFDNUUsTUFBTSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzVELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzthQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVKLG1FQUFtRTtZQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsc0NBQXNDO1lBQ3RFLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsdUNBQXVDO1lBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsMkNBQTJDO1lBQ3RFLE9BQU8sQ0FBQyxHQUFHLENBQUMsOERBQThELENBQUMsQ0FBQztTQUM3RTtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFVO1FBQ3RCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLHNEQUFzRDtZQUN0RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDMUI7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUNoRSxDQUFDO1FBRUYsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckI7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxTQUFTLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQzlELEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO2dCQUNwQixJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDbkMsNEVBQTRFO29CQUM1RSxNQUFNLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7d0JBQ3BELENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN0QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztxQkFDdkMsQ0FBQyxDQUFDLENBQUM7b0JBQ0osSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztvQkFDckMsT0FBTyxDQUFDLEdBQUcsUUFBUSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztpQkFDM0M7cUJBQU07b0JBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO29CQUNyRCxPQUFPLFFBQVEsQ0FBQztpQkFDakI7WUFDSCxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDckQsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztTQUNIO2FBQU07WUFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7WUFDbEUsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDckI7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFPO1FBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsNENBQTRDO0lBQzlDLENBQUM7SUFNRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDekQ7UUFBQyxPQUFPLEtBQWMsRUFBRTtZQUN2QixJQUFJLEtBQUssWUFBWSxLQUFLLEVBQUU7Z0JBQzFCLE9BQU8sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ25EO2lCQUFNO2dCQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQzthQUNqRTtZQUNELE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOytHQXBNVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiw2VkFUcEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2dCQUNuRCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDcEJILDgrQkF5QlU7OzRGREZHLG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0UsNkJBQTZCLHVnQ0FNNUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzJIQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hdXRoLXNlcnZpY2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZ2VudGEtY3VzdG9tLW11bHRpLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tdWx0aS1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBcbiAgICBcbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICdNdWx0aSBTZWxlY3QnO1xuICBASW5wdXQoKSBkYXRhOiBhbnlbXSA9IFtdOyAvLyBBY2NlcHRzIGFuIGFycmF5IG9mIGdlbmVyaWMgb2JqZWN0c1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBpdGVtcyc7XG4gIEBJbnB1dCgpIHNlbGVjdGVkOiBhbnk7IC8vIFRoZSBzZWxlY3RlZCB2YXJpYWJsZSBjYW4gYmUgYSBzaW5nbGUgdmFsdWUgb3IgYW4gYXJyYXlcbiAgQElucHV0KCkgaWQ6IHN0cmluZyA9ICdtdWx0aVNlbGVjdElkJztcbiAgQElucHV0KCkgYmluZExhYmVsOiBzdHJpbmcgPSAnJzsgLy8gR2VuZXJpYyBkeW5hbWljIGxhYmVsXG4gIEBJbnB1dCgpIGJpbmRWYWx1ZTogc3RyaW5nID0gJyc7IC8vIEdlbmVyaWMgZHluYW1pYyB2YWx1ZVxuICBASW5wdXQoKSBwZXJtaXNzaW9uczogc3RyaW5nW10gfCB1bmRlZmluZWQ7IC8vIEFkZGluZyBwZXJtaXNzaW9ucyBhcyBpbnB1dFxuICBASW5wdXQoKSBjbG9zZU9uU2VsZWN0OiBib29sZWFuID0gZmFsc2U7IC8vIE5ldyBwcm9wZXJ0eSB0byBjb250cm9sIGRyb3Bkb3duIGNsb3NlIGJlaGF2aW9yXG4gIEBJbnB1dCgpIHNlYXJjaFVybDogc3RyaW5nID0gJyc7IC8vIFVSTCBmb3IgYmFja2VuZCBzZWFyY2hcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW4gPSB0cnVlOyAvLyBOZXcgcHJvcGVydHkgdG8gY29udHJvbCBzaW5nbGUgb3IgbXVsdGlwbGUgc2VsZWN0aW9uXG5cbiAgQE91dHB1dCgpIGtleXVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBvcmlnaW5hbERhdGE6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBvcmlnaW5hbCBsaXN0XG4gIHByaXZhdGUgYWxsSXRlbXM6IGFueVtdID0gW107IC8vIFN0b3JlIHRoZSBjb21iaW5lZCBsaXN0XG4gIGl0ZW1zOiBPYnNlcnZhYmxlPGFueVtdPiA9IG9mKFtdKTsgLy8gSW5pdGlhbGl6YXRpb24gb2YgdGhlIHByb3BlcnR5XG4gIGZpbHRlcmVkSXRlbXM6IE9ic2VydmFibGU8YW55W10+ID0gb2YoW10pOyAvLyBGaWx0ZXJlZCBpdGVtc1xuICBwcml2YXRlIHNlYXJjaFRlcm1zID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpOyAvLyBGb3Igc2VhcmNoIGRlYm91bmNlXG4gIHByaXZhdGUgYmFja2VuZEl0ZW1zOiBhbnlbXSA9IFtdOyAvLyBJdGVtcyBmb3VuZCBmcm9tIGJhY2tlbmRcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yaWdpbmFsRGF0YSA9IFsuLi50aGlzLmRhdGFdOyAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YVxuICAgIHRoaXMuYWxsSXRlbXMgPSBbLi4udGhpcy5kYXRhXTsgLy8gSW5pdGlhbGl6ZSBhbGxJdGVtcyB3aXRoIHRoZSBvcmlnaW5hbCBkYXRhXG4gICAgdGhpcy5pdGVtcyA9IG9mKHRoaXMuYWxsSXRlbXMpO1xuXG4gICAgaWYgKHRoaXMuc2VhcmNoVXJsKSB7XG4gICAgICB0aGlzLmZldGNoSW5pdGlhbERhdGEoKS5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuYWxsSXRlbXMgPSBkYXRhO1xuICAgICAgICB0aGlzLml0ZW1zID0gb2YodGhpcy5hbGxJdGVtcyk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuc2VhcmNoVGVybXMucGlwZShcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcbiAgICAgICAgICBzdGFydFdpdGgoJycpLCAvLyBTdGFydCB3aXRoIGFuIGVtcHR5IHNlYXJjaCB0byBsb2FkIHRoZSBvcmlnaW5hbCBsaXN0XG4gICAgICAgICAgc3dpdGNoTWFwKHRlcm0gPT4gdGhpcy5zZWFyY2godGVybSkpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zZWFyY2hUZXJtcy5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoNzAwKSxcbiAgICAgICAgc3RhcnRXaXRoKCcnKSwgLy8gU3RhcnQgd2l0aCBhbiBlbXB0eSBzZWFyY2ggdG8gbG9hZCB0aGUgb3JpZ2luYWwgbGlzdFxuICAgICAgICBzd2l0Y2hNYXAodGVybSA9PiB0aGlzLnNlYXJjaCh0ZXJtKSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaEluaXRpYWxEYXRhKCk6IE9ic2VydmFibGU8YW55W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KHRoaXMuc2VhcmNoVXJsKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLm1hcCgoaXRlbTogYW55KSA9PiAoe1xuICAgICAgICAgICAgW3RoaXMuYmluZFZhbHVlXTogaXRlbVt0aGlzLmJpbmRWYWx1ZV0sXG4gICAgICAgICAgICBbdGhpcy5iaW5kTGFiZWxdOiBpdGVtW3RoaXMuYmluZExhYmVsXVxuICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gW107XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgaW5pdGlhbCBkYXRhIGZyb20gYmFja2VuZDonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiBvZihbXSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgpID0+IHZvaWQgPSAoKSA9PiB7IH07XG5cbiAgaXNDb3Vyc2VFbnRlcmVkID0gZmFsc2U7XG5cbiAgb25Gb2N1cygpIHtcbiAgICB0aGlzLmlzQ291cnNlRW50ZXJlZCA9IHRydWU7XG4gIH1cblxuICBvbkJsdXIoKSB7XG4gICAgdGhpcy5pc0NvdXJzZUVudGVyZWQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmtleXVwRXZlbnQuZW1pdChldmVudCk7XG4gIH1cblxuICBvblNlbGVjdGVkQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgdGhpcy5zZWxlY3RlZCA9IGV2ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkID0gZXZlbnQgPyBldmVudCA6IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbmV3bHlTZWxlY3RlZEl0ZW1zID0gdGhpcy5tdWx0aXBsZVxuICAgICAgPyBldmVudC5maWx0ZXIoKGl0ZW06IGFueSkgPT4gIXRoaXMuc2VsZWN0ZWQuaW5jbHVkZXMoaXRlbSkpXG4gICAgICA6IFt0aGlzLnNlbGVjdGVkXTtcblxuICAgIC8vIENoZWNrIGlmIGFueSBuZXdseSBzZWxlY3RlZCBpdGVtIGlzIGZyb20gYmFja2VuZEl0ZW1zXG4gICAgY29uc3QgYWRkZWRGcm9tQmFja2VuZCA9IHRoaXMuYmFja2VuZEl0ZW1zLmZpbHRlcigoaXRlbTogYW55KSA9PiBuZXdseVNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoaXRlbSkpO1xuXG4gICAgaWYgKGFkZGVkRnJvbUJhY2tlbmQubGVuZ3RoID4gMCkge1xuICAgICAgLy8gVHJhbnNmb3JtIHRoZSBiYWNrZW5kIGl0ZW1zIHRvIG1hdGNoIHRoZSBmb3JtYXQgZXhwZWN0ZWQgYnkgdGhlIGNvbXBvbmVudFxuICAgICAgY29uc3QgdHJhbnNmb3JtZWRJdGVtcyA9IGFkZGVkRnJvbUJhY2tlbmQubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgIFt0aGlzLmJpbmRWYWx1ZV06IGl0ZW1bdGhpcy5iaW5kVmFsdWVdLFxuICAgICAgICBbdGhpcy5iaW5kTGFiZWxdOiBpdGVtW3RoaXMuYmluZExhYmVsXVxuICAgICAgfSkpO1xuXG4gICAgICAvLyBBZGQgYmFja2VuZCBpdGVtcyB0byB0aGUgYWxsSXRlbXMgbGlzdCBhbmQgdXBkYXRlIHRoZSBvYnNlcnZhYmxlXG4gICAgICB0aGlzLm9yaWdpbmFsRGF0YSA9IFsuLi50aGlzLm9yaWdpbmFsRGF0YSwgLi4udHJhbnNmb3JtZWRJdGVtc107XG4gICAgICB0aGlzLmFsbEl0ZW1zID0gWy4uLnRoaXMub3JpZ2luYWxEYXRhXTtcbiAgICAgIHRoaXMuaXRlbXMgPSBvZih0aGlzLmFsbEl0ZW1zKTsgLy8gVXBkYXRlIHRoZSBvYnNlcnZhYmxlIHdpdGggbmV3IGRhdGFcbiAgICAgIHRoaXMuYmFja2VuZEl0ZW1zID0gW107IC8vIENsZWFyIGJhY2tlbmQgaXRlbXMgYWZ0ZXIgcHJvY2Vzc2luZ1xuICAgICAgdGhpcy5zZWFyY2hUZXJtcy5uZXh0KCcnKTsgLy8gUmVzZXQgdGhlIHNlYXJjaCB0ZXJtIHRvIHVwZGF0ZSB0aGUgbGlzdFxuICAgICAgY29uc29sZS5sb2coJ0FkZGVkIGl0ZW1zIGZyb20gYmFja2VuZCB0byB0aGUgbGlzdCBhbmQgcmVzZXQgdGhlIGRyb3Bkb3duLicpO1xuICAgIH1cblxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh0aGlzLnNlbGVjdGVkKTtcbiAgfVxuXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIHRoaXMuc2VhcmNoVGVybXMubmV4dChpbnB1dCk7XG4gIH1cblxuICBzZWFyY2godGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnlbXT4ge1xuICAgIGlmICghdGVybS50cmltKCkpIHtcbiAgICAgIC8vIElmIHRoZSBzZWFyY2ggdGVybSBpcyBlbXB0eSwgc2hvdyB0aGUgY29tcGxldGUgbGlzdFxuICAgICAgcmV0dXJuIG9mKHRoaXMuYWxsSXRlbXMpO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbHRlcmVkID0gdGhpcy5hbGxJdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cbiAgICAgIGl0ZW1bdGhpcy5iaW5kTGFiZWxdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybS50b0xvd2VyQ2FzZSgpKVxuICAgICk7XG5cbiAgICBpZiAoZmlsdGVyZWQubGVuZ3RoID4gMCkge1xuICAgICAgY29uc29sZS5sb2coJ0l0ZW1zIGZpbHRlcmVkIGxvY2FsbHkuJyk7XG4gICAgICByZXR1cm4gb2YoZmlsdGVyZWQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hVcmwpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYCR7dGhpcy5zZWFyY2hVcmx9P3Rlcm09JHt0ZXJtfWApLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAvLyBUcmFuc2Zvcm0gdGhlIGJhY2tlbmQgaXRlbXMgdG8gbWF0Y2ggdGhlIGZvcm1hdCBleHBlY3RlZCBieSB0aGUgY29tcG9uZW50XG4gICAgICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZEl0ZW1zID0gcmVzcG9uc2UubWFwKChpdGVtOiBhbnkpID0+ICh7XG4gICAgICAgICAgICAgIFt0aGlzLmJpbmRWYWx1ZV06IGl0ZW1bdGhpcy5iaW5kVmFsdWVdLFxuICAgICAgICAgICAgICBbdGhpcy5iaW5kTGFiZWxdOiBpdGVtW3RoaXMuYmluZExhYmVsXVxuICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgdGhpcy5iYWNrZW5kSXRlbXMgPSB0cmFuc2Zvcm1lZEl0ZW1zO1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5maWx0ZXJlZCwgLi4udHJhbnNmb3JtZWRJdGVtc107XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdObyBpdGVtcyBmb3VuZCBpbiB0aGUgYmFja2VuZCBzZWFyY2guJyk7XG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGZyb20gYmFja2VuZDonLCBlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIG9mKGZpbHRlcmVkKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBzZWFyY2ggVVJMIHByb3ZpZGVkIGFuZCBubyBpdGVtcyBmb3VuZCBsb2NhbGx5LicpO1xuICAgICAgcmV0dXJuIG9mKGZpbHRlcmVkKTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkID0gdmFsdWUgfHwgKHRoaXMubXVsdGlwbGUgPyBbXSA6IG51bGwpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZUNhbGxiYWNrID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWRDYWxsYmFjayA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIE5vIGltcGxlbWVudGF0aW9uIG5lZWRlZCBmb3IgdGhpcyBleGFtcGxlXG4gIH1cblxuICBjb21wYXJlRm4gPSAoaXRlbTE6IGFueSwgaXRlbTI6IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgIHJldHVybiBpdGVtMSAmJiBpdGVtMiA/IGl0ZW0xW3RoaXMuYmluZFZhbHVlXSA9PT0gaXRlbTJbdGhpcy5iaW5kVmFsdWVdIDogaXRlbTEgPT09IGl0ZW0yO1xuICB9O1xuXG4gIGhhc1Blcm1pc3Npb24oKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnBlcm1pc3Npb25zIHx8IHRoaXMucGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbih0aGlzLnBlcm1pc3Npb25zKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignUGVybWlzc2lvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBlcm1pc3Npb24gY2hlY2snKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImhhc1Blcm1pc3Npb24oKVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDJyZW07XCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuICAgICAgPG5nLXNlbGVjdFxuICAgICAgICBbY2xhc3MuY291cnNlLWVudHJ5XT1cImlzQ291cnNlRW50ZXJlZFwiXG4gICAgICAgIGNsYXNzPVwibmctc2VsZWN0XCJcbiAgICAgICAgW2l0ZW1zXT1cImZpbHRlcmVkSXRlbXMgfCBhc3luY1wiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgIFtjbG9zZU9uU2VsZWN0XT1cImNsb3NlT25TZWxlY3RcIlxuICAgICAgICBbaGlkZVNlbGVjdGVkXT1cInRydWVcIlxuICAgICAgICBbYmluZExhYmVsXT1cImJpbmRMYWJlbFwiXG4gICAgICAgIFtiaW5kVmFsdWVdPVwiYmluZFZhbHVlXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFwiXG4gICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlRm5cIlxuICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChrZXl1cCk9XCJvbktleVVwKCRldmVudClcIlxuICAgICAgICAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNlbGVjdGVkICYmIChtdWx0aXBsZSA/IHNlbGVjdGVkLmxlbmd0aCA9PT0gMCA6ICFzZWxlY3RlZCkgPyBwbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgICAgICAge3sgaXRlbVtiaW5kTGFiZWxdIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXNlbGVjdD5cbiAgICA8L2Rpdj4iXX0=
@@ -78,11 +78,11 @@ class CustomSwitchComponent {
78
78
  }
79
79
  }
80
80
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, deps: [{ token: AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomSwitchComponent, selector: "argenta-custom-switch", inputs: { checked: "checked", label: "label", permissions: "permissions" }, outputs: { switchChange: "switchChange" }, ngImport: i0, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-input:not(:checked):before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:4px;left:4px;transition:background-color .3s,transform .3s}.form-check-input:checked:before{transform:translate(26px)}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
82
  }
83
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomSwitchComponent, decorators: [{
84
84
  type: Component,
85
- args: [{ selector: 'argenta-custom-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:50px;height:24px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"] }]
85
+ args: [{ selector: 'argenta-custom-switch', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"hasPermission()\">\n <div class=\"form-check form-switch\">\n <input \n class=\"form-check-input\" \n type=\"checkbox\" \n [checked]=\"checked\" \n (change)=\"toggleSwitch()\" \n id=\"flexSwitchCheckDefault\" \n />\n <label class=\"form-check-label\" for=\"flexSwitchCheckDefault\">\n {{ label }}\n </label>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";.form-check{display:flex;align-items:center}.form-check-input{width:60px;height:34px;margin-right:10px;cursor:pointer}.form-check-input:checked{background-color:#00444c;border-color:#00444c}.form-check-input:not(:checked){border-color:#3ec9d6;box-shadow:0 0 5px #e5e5e5}.form-check-input:not(:checked):before{content:\"\";position:absolute;width:26px;height:26px;background-color:#00444c;border-radius:50%;top:4px;left:4px;transition:background-color .3s,transform .3s}.form-check-input:checked:before{transform:translate(26px)}.form-check-label{color:#00444c;font-family:Inter,sans-serif;font-size:16px;font-weight:600;height:24px;line-height:24px}\n"] }]
86
86
  }], ctorParameters: function () { return [{ type: AuthService }]; }, propDecorators: { checked: [{
87
87
  type: Input
88
88
  }], label: [{
@@ -1106,12 +1106,12 @@ class MultiSelectComponent {
1106
1106
  this.label = 'Multi Select';
1107
1107
  this.data = []; // Accepts an array of generic objects
1108
1108
  this.placeholder = 'Select items';
1109
- this.selected = []; // The selected variable should be an array
1110
1109
  this.id = 'multiSelectId';
1111
1110
  this.bindLabel = ''; // Generic dynamic label
1112
1111
  this.bindValue = ''; // Generic dynamic value
1113
1112
  this.closeOnSelect = false; // New property to control dropdown close behavior
1114
1113
  this.searchUrl = ''; // URL for backend search
1114
+ this.multiple = true; // New property to control single or multiple selection
1115
1115
  this.keyupEvent = new EventEmitter();
1116
1116
  this.originalData = []; // Store the original list
1117
1117
  this.allItems = []; // Store the combined list
@@ -1130,8 +1130,32 @@ class MultiSelectComponent {
1130
1130
  this.originalData = [...this.data]; // Preserve the original data
1131
1131
  this.allItems = [...this.data]; // Initialize allItems with the original data
1132
1132
  this.items = of(this.allItems);
1133
- this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
1134
- switchMap(term => this.search(term)));
1133
+ if (this.searchUrl) {
1134
+ this.fetchInitialData().subscribe(data => {
1135
+ this.allItems = data;
1136
+ this.items = of(this.allItems);
1137
+ this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
1138
+ switchMap(term => this.search(term)));
1139
+ });
1140
+ }
1141
+ else {
1142
+ this.filteredItems = this.searchTerms.pipe(debounceTime(700), startWith(''), // Start with an empty search to load the original list
1143
+ switchMap(term => this.search(term)));
1144
+ }
1145
+ }
1146
+ fetchInitialData() {
1147
+ return this.http.get(this.searchUrl).pipe(map((response) => {
1148
+ if (response && response.length > 0) {
1149
+ return response.map((item) => ({
1150
+ [this.bindValue]: item[this.bindValue],
1151
+ [this.bindLabel]: item[this.bindLabel]
1152
+ }));
1153
+ }
1154
+ return [];
1155
+ }), catchError((error) => {
1156
+ console.error('Error fetching initial data from backend:', error);
1157
+ return of([]);
1158
+ }));
1135
1159
  }
1136
1160
  onFocus() {
1137
1161
  this.isCourseEntered = true;
@@ -1143,8 +1167,15 @@ class MultiSelectComponent {
1143
1167
  this.keyupEvent.emit(event);
1144
1168
  }
1145
1169
  onSelectedChange(event) {
1146
- const newlySelectedItems = event.filter((item) => !this.selected.includes(item));
1147
- this.selected = event;
1170
+ if (this.multiple) {
1171
+ this.selected = event;
1172
+ }
1173
+ else {
1174
+ this.selected = event ? event : null;
1175
+ }
1176
+ const newlySelectedItems = this.multiple
1177
+ ? event.filter((item) => !this.selected.includes(item))
1178
+ : [this.selected];
1148
1179
  // Check if any newly selected item is from backendItems
1149
1180
  const addedFromBackend = this.backendItems.filter((item) => newlySelectedItems.includes(item));
1150
1181
  if (addedFromBackend.length > 0) {
@@ -1203,7 +1234,7 @@ class MultiSelectComponent {
1203
1234
  }
1204
1235
  }
1205
1236
  writeValue(value) {
1206
- this.selected = value || [];
1237
+ this.selected = value || (this.multiple ? [] : null);
1207
1238
  }
1208
1239
  registerOnChange(fn) {
1209
1240
  this.onChangeCallback = fn;
@@ -1232,77 +1263,23 @@ class MultiSelectComponent {
1232
1263
  }
1233
1264
  }
1234
1265
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, deps: [{ token: AuthService }, { token: i2.HttpClient }], target: i0.ɵɵFactoryTarget.Component }); }
1235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
1266
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiSelectComponent, selector: "argenta-custom-multi-select", inputs: { label: "label", data: "data", placeholder: "placeholder", selected: "selected", id: "id", bindLabel: "bindLabel", bindValue: "bindValue", permissions: "permissions", closeOnSelect: "closeOnSelect", searchUrl: "searchUrl", multiple: "multiple" }, outputs: { keyupEvent: "keyupEvent" }, providers: [
1236
1267
  {
1237
1268
  provide: NG_VALUE_ACCESSOR,
1238
1269
  useExisting: forwardRef(() => MultiSelectComponent),
1239
1270
  multi: true
1240
1271
  }
1241
- ], ngImport: i0, template: `
1242
- <div *ngIf="hasPermission()" class="form-group">
1243
- <label [for]="id" class="form-label">{{ label }}</label>
1244
- <ng-select
1245
- [class.course-entry]="isCourseEntered"
1246
- class="ng-select"
1247
- [items]="filteredItems | async"
1248
- [multiple]="true"
1249
- [closeOnSelect]="closeOnSelect"
1250
- [hideSelected]="true"
1251
- [bindLabel]="bindLabel"
1252
- [bindValue]="bindValue"
1253
- [(ngModel)]="selected"
1254
- [compareWith]="compareFn"
1255
- (change)="onSelectedChange($event)"
1256
- (keyup)="onKeyUp($event)"
1257
- (input)="onInputChange($event)"
1258
- [id]="id"
1259
- [placeholder]="selected && selected.length === 0 ? placeholder : ''"
1260
- (focus)="onFocus()"
1261
- (blur)="onBlur()"
1262
- >
1263
- <ng-template ng-option-tmp let-item="item">
1264
- {{ item[bindLabel] }}
1265
- </ng-template>
1266
- </ng-select>
1267
- </div>
1268
- `, isInline: true, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1272
+ ], ngImport: i0, template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 2rem;\">{{ label }}</label>\n <ng-select\n [class.course-entry]=\"isCourseEntered\"\n class=\"ng-select\"\n [items]=\"filteredItems | async\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"true\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [(ngModel)]=\"selected\"\n [compareWith]=\"compareFn\"\n (change)=\"onSelectedChange($event)\"\n (keyup)=\"onKeyUp($event)\"\n (input)=\"onInputChange($event)\"\n [id]=\"id\"\n [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item[bindLabel] }}\n </ng-template>\n </ng-select>\n </div>", styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i5.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1269
1273
  }
1270
1274
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiSelectComponent, decorators: [{
1271
1275
  type: Component,
1272
- args: [{ selector: 'argenta-custom-multi-select', template: `
1273
- <div *ngIf="hasPermission()" class="form-group">
1274
- <label [for]="id" class="form-label">{{ label }}</label>
1275
- <ng-select
1276
- [class.course-entry]="isCourseEntered"
1277
- class="ng-select"
1278
- [items]="filteredItems | async"
1279
- [multiple]="true"
1280
- [closeOnSelect]="closeOnSelect"
1281
- [hideSelected]="true"
1282
- [bindLabel]="bindLabel"
1283
- [bindValue]="bindValue"
1284
- [(ngModel)]="selected"
1285
- [compareWith]="compareFn"
1286
- (change)="onSelectedChange($event)"
1287
- (keyup)="onKeyUp($event)"
1288
- (input)="onInputChange($event)"
1289
- [id]="id"
1290
- [placeholder]="selected && selected.length === 0 ? placeholder : ''"
1291
- (focus)="onFocus()"
1292
- (blur)="onBlur()"
1293
- >
1294
- <ng-template ng-option-tmp let-item="item">
1295
- {{ item[bindLabel] }}
1296
- </ng-template>
1297
- </ng-select>
1298
- </div>
1299
- `, providers: [
1276
+ args: [{ selector: 'argenta-custom-multi-select', template: "<div *ngIf=\"hasPermission()\" class=\"form-group\">\n <label [for]=\"id\" class=\"form-label\" style=\"margin-top: 2rem;\">{{ label }}</label>\n <ng-select\n [class.course-entry]=\"isCourseEntered\"\n class=\"ng-select\"\n [items]=\"filteredItems | async\"\n [multiple]=\"multiple\"\n [closeOnSelect]=\"closeOnSelect\"\n [hideSelected]=\"true\"\n [bindLabel]=\"bindLabel\"\n [bindValue]=\"bindValue\"\n [(ngModel)]=\"selected\"\n [compareWith]=\"compareFn\"\n (change)=\"onSelectedChange($event)\"\n (keyup)=\"onKeyUp($event)\"\n (input)=\"onInputChange($event)\"\n [id]=\"id\"\n [placeholder]=\"selected && (multiple ? selected.length === 0 : !selected) ? placeholder : ''\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n >\n <ng-template ng-option-tmp let-item=\"item\">\n {{ item[bindLabel] }}\n </ng-template>\n </ng-select>\n </div>", providers: [
1300
1277
  {
1301
1278
  provide: NG_VALUE_ACCESSOR,
1302
1279
  useExisting: forwardRef(() => MultiSelectComponent),
1303
1280
  multi: true
1304
1281
  }
1305
- ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}\n"] }]
1282
+ ], changeDetection: ChangeDetectionStrategy.OnPush, styles: ["@charset \"UTF-8\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap\";body{font-family:Inter,sans-serif}.form-group{font-family:Inter,Arial,sans-serif;font-size:1rem}.form-check-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:.9rem}.form-check-label{width:623px;height:19px;top:1608px;left:133px;gap:0px;opacity:0px;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left}.custom-select{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem 2rem .5rem .5rem;appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:none;background-repeat:no-repeat;background-position:right .5rem center}.custom-input{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem;font-weight:400;border:1px solid #ccc;border-radius:4px;padding:.5rem}.form-label{font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.label-styles{font-weight:400;font-family:Inter,Arial,sans-serif;font-size:16px;line-height:19.36px;text-align:left;margin-top:1rem;margin-bottom:.5rem}.select-container{position:relative;display:inline-block;width:100%}.select-container lucide-icon{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:#5e6366}.ng-select{display:block;width:100%;font-family:Inter,Arial,sans-serif;color:#333;font-size:1rem}.ng-select .ng-select-container{display:flex;align-items:center;border:1px solid #ccc;border-radius:4px;padding:.5rem;background-color:#fff;color:#333}.ng-select .ng-select-container .ng-value-container{display:flex;align-items:center;flex-grow:1}.ng-select .ng-select-container .ng-clear{display:none}.ng-select .ng-select-container .ng-input{flex-grow:1;border:none;outline:none}.ng-select .ng-dropdown-panel{border:1px solid #ccc;border-radius:4px;background-color:#fff;color:#333;box-shadow:0 2px 4px #0000001a}.ng-select .ng-dropdown-panel .ng-option{padding:8px;cursor:pointer}.ng-select .ng-dropdown-panel .ng-option:hover{background-color:#f1f1f1}.ng-select .ng-dropdown-panel .ng-option.selected{background-color:#007bff;color:#fff}\n"] }]
1306
1283
  }], ctorParameters: function () { return [{ type: AuthService }, { type: i2.HttpClient }]; }, propDecorators: { label: [{
1307
1284
  type: Input
1308
1285
  }], data: [{
@@ -1323,6 +1300,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1323
1300
  type: Input
1324
1301
  }], searchUrl: [{
1325
1302
  type: Input
1303
+ }], multiple: [{
1304
+ type: Input
1326
1305
  }], keyupEvent: [{
1327
1306
  type: Output
1328
1307
  }] } });