@rangertechnologies/ngnxt 2.1.183 → 2.1.184

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.
@@ -9,7 +9,7 @@ export const VERSION = {
9
9
  "semver": null,
10
10
  "suffix": "05a52cb-dirty",
11
11
  "semverString": null,
12
- "version": "2.1.183"
12
+ "version": "2.1.18"
13
13
  };
14
14
  /* tslint:enable */
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2Vudmlyb25tZW50cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLGVBQWU7SUFDdEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0NBQ3ZCLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCIwNWE1MmNiLWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiMDVhNTJjYlwiLFxuICAgIFwiZGlzdGFuY2VcIjogbnVsbCxcbiAgICBcInRhZ1wiOiBudWxsLFxuICAgIFwic2VtdmVyXCI6IG51bGwsXG4gICAgXCJzdWZmaXhcIjogXCIwNWE1MmNiLWRpcnR5XCIsXG4gICAgXCJzZW12ZXJTdHJpbmdcIjogbnVsbCxcbiAgICBcInZlcnNpb25cIjogXCIyLjEuMTgzXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2Vudmlyb25tZW50cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLGVBQWU7SUFDdEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxRQUFRO0NBQ3RCLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCIwNWE1MmNiLWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiMDVhNTJjYlwiLFxuICAgIFwiZGlzdGFuY2VcIjogbnVsbCxcbiAgICBcInRhZ1wiOiBudWxsLFxuICAgIFwic2VtdmVyXCI6IG51bGwsXG4gICAgXCJzdWZmaXhcIjogXCIwNWE1MmNiLWRpcnR5XCIsXG4gICAgXCJzZW12ZXJTdHJpbmdcIjogbnVsbCxcbiAgICBcInZlcnNpb25cIjogXCIyLjEuMThcIlxufTtcbi8qIHRzbGludDplbmFibGUgKi9cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Component, Input, Output, EventEmitter, } from "@angular/core";
1
+ import { Component, Input, Output, EventEmitter, signal } from "@angular/core";
2
2
  import { ChangeWrapper } from "../../model/changeWrapper";
3
3
  import { CommonModule } from "@angular/common";
4
4
  import { FormsModule } from "@angular/forms";
@@ -20,7 +20,7 @@ export class SearchBoxComponent {
20
20
  apiObj;
21
21
  SearchItem;
22
22
  filterName; // VD 20Aug default filter value as input
23
- finalResults = [];
23
+ finalResults = signal([]);
24
24
  searchKeyWord = '';
25
25
  newResult;
26
26
  showResult = false;
@@ -59,7 +59,8 @@ export class SearchBoxComponent {
59
59
  //RS 03FEB2025
60
60
  // Clears search-related data, including results, search term, and suggestions.
61
61
  resetComponentState() {
62
- this.finalResults = [];
62
+ this.finalResults.set([]);
63
+ ;
63
64
  this.filterName = '';
64
65
  this.searchKeyWord = '';
65
66
  this.showSuggestion = false;
@@ -67,20 +68,23 @@ export class SearchBoxComponent {
67
68
  }
68
69
  clearList() {
69
70
  setTimeout(() => {
70
- this.finalResults = [];
71
+ this.finalResults.set([]);
72
+ ;
71
73
  }, 1000);
72
74
  }
73
75
  getSourceDataLocal(event) {
74
76
  if (event.value.length > 2) {
75
77
  this.showSuggestion = true;
76
- this.finalResults = [];
78
+ this.finalResults.set([]);
79
+ ;
77
80
  this.searchKeyWord = event.value;
78
81
  this.showResult = false;
79
82
  this.getSourceData(event.value);
80
83
  }
81
84
  else {
82
85
  this.showSuggestion = false;
83
- this.finalResults = [];
86
+ this.finalResults.set([]);
87
+ ;
84
88
  this.noResult = false;
85
89
  }
86
90
  }
@@ -114,12 +118,13 @@ export class SearchBoxComponent {
114
118
  }
115
119
  }
116
120
  this.noResult = results.length === 0;
117
- this.finalResults = results;
121
+ this.finalResults.set(results);
118
122
  }, (error) => {
119
123
  console.error('API error:', error);
120
124
  this.isLoading = false;
121
125
  this.noResult = true;
122
- this.finalResults = [];
126
+ this.finalResults.set([]);
127
+ ;
123
128
  });
124
129
  }
125
130
  };
@@ -219,7 +224,7 @@ export class SearchBoxComponent {
219
224
  }
220
225
  }
221
226
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, deps: [{ token: i1.DataService }, { token: i2.I18nService }], target: i0.ɵɵFactoryTarget.Component });
222
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBoxComponent, isStandalone: true, selector: "lib-search-box", inputs: { placeHolderText: "placeHolderText", question: "question", apiMeta: "apiMeta", id: "id", readOnly: "readOnly", mode: "mode", filterName: "filterName" }, outputs: { searchValueChange: "searchValueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;background:#fff;z-index:2}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "clearInputEmit", "nativeInputRef"] }] });
227
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBoxComponent, isStandalone: true, selector: "lib-search-box", inputs: { placeHolderText: "placeHolderText", question: "question", apiMeta: "apiMeta", id: "id", readOnly: "readOnly", mode: "mode", filterName: "filterName" }, outputs: { searchValueChange: "searchValueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults().length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults()\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;top:100%;left:0;background:#fff;z-index:2}.search-wrapper{position:relative}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "clearInputEmit", "nativeInputRef"] }] });
223
228
  }
224
229
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, decorators: [{
225
230
  type: Component,
@@ -227,7 +232,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
227
232
  CommonModule,
228
233
  FormsModule,
229
234
  NxtInput
230
- ], template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;background:#fff;z-index:2}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"] }]
235
+ ], template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults().length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults()\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;top:100%;left:0;background:#fff;z-index:2}.search-wrapper{position:relative}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"] }]
231
236
  }], ctorParameters: () => [{ type: i1.DataService }, { type: i2.I18nService }], propDecorators: { placeHolderText: [{
232
237
  type: Input
233
238
  }], question: [{
@@ -245,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
245
250
  }], filterName: [{
246
251
  type: Input
247
252
  }] } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBR2IsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7OztBQWE1RCxNQUFNLE9BQU8sa0JBQWtCO0lBd0JSO0lBQWlDO0lBdkI3QyxlQUFlLENBQVM7SUFFeEIsUUFBUSxDQUFDO0lBQ1QsT0FBTyxDQUFTO0lBQ2hCLEVBQUUsQ0FBUztJQUNYLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQywrQkFBK0I7SUFDakQsSUFBSSxHQUE4QixNQUFNLENBQUMsQ0FBQyw0QkFBNEI7SUFDckUsaUJBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFDeEUsTUFBTSxDQUFLO0lBQ1gsVUFBVSxDQUFNO0lBRVIsVUFBVSxDQUFTLENBQUMseUNBQXlDO0lBQy9ELFlBQVksR0FBVSxFQUFFLENBQUM7SUFDekIsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixTQUFTLENBQU07SUFDZixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLFFB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QUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3FCQUNUOzBHQUtRLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFJRSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2UnO1xuLy8gVkQgMjNKQU4yNCByZW1vdmVkIGh0dHBDbGllbnQgaW1wb3J0IHVzZWQgc2VydmljZSBmaWxlIGZvciBjYWxsb3V0XG5pbXBvcnQgeyBBUElNZXRhIH0gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXMvYXBpbWV0YVwiO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gXCIuLi8uLi9tb2RlbC9jaGFuZ2VXcmFwcGVyXCI7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IE54dElucHV0IH0gZnJvbSBcIi4uL254dC1pbnB1dC9ueHQtaW5wdXQuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWFyY2gtYm94JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBOeHRJbnB1dFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1ib3guY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyVGV4dDogc3RyaW5nO1xuXG4gIEBJbnB1dCgpIHF1ZXN0aW9uO1xuICBASW5wdXQoKSBhcGlNZXRhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7IC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2VcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gU0tTMTFKVU4yNSBOZXcgbW9kZSBpbnB1dFxuICBAT3V0cHV0KCkgc2VhcmNoVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICBhcGlPYmo6YW55O1xuICAgU2VhcmNoSXRlbTogYW55O1xuXG4gIEBJbnB1dCgpIGZpbHRlck5hbWU6IHN0cmluZzsgLy8gVkQgMjBBdWcgZGVmYXVsdCBmaWx0ZXIgdmFsdWUgYXMgaW5wdXRcbiAgcHVibGljIGZpbmFsUmVzdWx0czogYW55W10gPSBbXTtcbiAgcHVibGljIHNlYXJjaEtleVdvcmQ6IHN0cmluZyA9ICcnO1xuICBwdWJsaWMgbmV3UmVzdWx0OiBhbnk7XG4gIHB1YmxpYyBzaG93UmVzdWx0ID0gZmFsc2U7XG4gIHB1YmxpYyBub1Jlc3VsdCA9IGZhbHNlO1xuICBwdWJsaWMgc2hvd1N1Z2dlc3Rpb24gPSB0cnVlO1xuICBwcml2YXRlIGVsOiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSBzZXJ2OiBzdHJpbmcgPSAnYXBpJztcbiAgcHJpdmF0ZSB0a246IHN0cmluZyA9ICcnO1xuICBpc0xvYWRpbmcgPSBmYWxzZVxuICBcbiAgY29uc3RydWN0b3IoIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSB7IH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gIFZEIDAzTWF5LSBzZWFyY2ggY2hhbmdlc1xuICAgICAvLyBBUC0yNk1BUjI1IEVuc3VyZSBxdWVzLnN1YlRleHQgaXMgYWx3YXlzIGFuIG9iamVjdCBieSBwYXJzaW5nIGl0IGlmIGl0J3MgYSBzdHJpbmdcbiAgICBpZih0aGlzLmFwaU1ldGEpe1xuICAgICAgdGhpcy5hcGlNZXRhID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICBsZXQgYXBpT2JqOiBhbnkgPSB0aGlzLmFwaU1ldGE7XG4gICAgICB0aGlzLlNlYXJjaEl0ZW0gPSBhcGlPYmouZmllbGQ7XG4gICAgfVxuICB9XG4vLy8vUlMgMDNGRUIyMDI1XG4vLyBSZXNldHMgc3RhdGUgd2hlbiBmaWx0ZXJOYW1lIG9yIGFwaU1ldGEgY2hhbmdlcyB0byByZWZsZWN0IHVwZGF0ZWQgZGF0YVxuIC8vIEFQLTI2TUFSMjUgRW5zdXJlIHF1ZXMuc3ViVGV4dCBpcyBhbHdheXMgYW4gb2JqZWN0IGJ5IHBhcnNpbmcgaXQgaWYgaXQncyBhIHN0cmluZ1xubmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICBpZiAoY2hhbmdlc1snbW9kZSddKSB7XG4gICAgdGhpcy5tb2RlID0gY2hhbmdlc1snbW9kZSddLmN1cnJlbnRWYWx1ZTtcbiAgfVxuICBpZiAoY2hhbmdlc1snYXBpTWV0YSddICYmIHRoaXMuYXBpTWV0YSkge1xuICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgIHRoaXMuYXBpT2JqID0gdGhpcy5hcGlNZXRhO1xuICAgIHRoaXMuU2VhcmNoSXRlbSA9IHRoaXMuYXBpT2JqPy5maWVsZDtcbiAgfVxufVxuLy9SUyAwM0ZFQjIwMjVcbi8vIENsZWFycyBzZWFyY2gtcmVsYXRlZCBkYXRhLCBpbmNsdWRpbmcgcmVzdWx0cywgc2VhcmNoIHRlcm0sIGFuZCBzdWdnZXN0aW9ucy5cbnByaXZhdGUgcmVzZXRDb21wb25lbnRTdGF0ZSgpOiB2b2lkIHtcbiAgdGhpcy5maW5hbFJlc3VsdHMgPSBbXTtcbiAgdGhpcy5maWx0ZXJOYW1lID0gJyc7IFxuICB0aGlzLnNlYXJjaEtleVdvcmQgPSAnJzsgIFxuICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbn1cbmNsZWFyTGlzdCgpe1xuICBzZXRUaW1lb3V0KCgpPT4ge1xuICAgIHRoaXMuZmluYWxSZXN1bHRzID0gW107XG4gIH0sIDEwMDApO1xufVxuXG5nZXRTb3VyY2VEYXRhTG9jYWwoZXZlbnQ6IGFueSkgeyAvL3RvIGdldCByZXN1bHRzIGxpc3QgZnJvbSBiYWNrZW5kIEFQSSB3aGVuZXZlciBrZXkgaXMgdXAgYWZ0ZXIgdGhlIGVudGVyaW5nIGF0bGVhc3Qgb25lIGtleVxuICBpZiAoZXZlbnQudmFsdWUubGVuZ3RoID4gMikge1xuICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSB0cnVlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzID0gW107XG4gICAgdGhpcy5zZWFyY2hLZXlXb3JkID0gZXZlbnQudmFsdWU7XG4gICAgdGhpcy5zaG93UmVzdWx0ID0gZmFsc2U7XG4gICAgdGhpcy5nZXRTb3VyY2VEYXRhKGV2ZW50LnZhbHVlKTtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLnNob3dTdWdnZXN0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5maW5hbFJlc3VsdHMgPSBbXTtcbiAgICB0aGlzLm5vUmVzdWx0ID0gZmFsc2U7XG4gIH1cbn1cbi8vIFZEIDAzTWF5LSBzZWFyY2ggY2hhbmdlc1xuLy8gVkQgMzFOT1YyNCBudWxsIGNoZWNrXG4vLyBSUyAyOUpBTjI1XG4vL011bHRpLXdvcmQgc2VhcmNoIGFjcm9zcyBhbGwgb2JqZWN0IHZhbHVlc1xucHVibGljIGdldFNvdXJjZURhdGEgPSAoa2V5d29yZDogc3RyaW5nKSA9PiB7XG4gICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gIGlmICh0aGlzLmFwaU1ldGEpIHtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuZGF0YVNlcnZpY2UuYXBpUmVzcG9uc2UoYXBpT2JqLmVuZHBvaW50KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgbGV0IHJlc3BvbnNlO1xuICAgICAgaWYgKGFwaU9iai52YXJpYWJsZSkge1xuICAgICAgICByZXNwb25zZSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0VmFsdWUoYXBpUmVzcG9uc2UsIGFwaU9iai52YXJpYWJsZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNwb25zZSA9IGFwaVJlc3BvbnNlO1xuICAgICAgfSAgICAgIFxuICAgICAgbGV0IHJlc3VsdHMgPSBbXTtcbiAgICAgIGxldCBzZWFyY2hUZXJtcyA9IGtleXdvcmQudG9Mb3dlckNhc2UoKT8uc3BsaXQoXCIgXCIpO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByZXNwb25zZS5sZW5ndGg7IGkrKykge1xuICAgICAgICBsZXQgb2JqID0gcmVzcG9uc2VbaV07XG4gICAgICAgIGxldCBjb21iaW5lZFZhbHVlcyA9IHRoaXMuZ2V0Q29tYmluZWRWYWx1ZXNGcm9tQ29sdW1ucyhvYmosIGFwaU9iai5maWVsZCk7XG4gICAgICAgIGxldCBtYXRjaCA9IHNlYXJjaFRlcm1zLmV2ZXJ5KHRlcm0gPT4gY29tYmluZWRWYWx1ZXMuaW5jbHVkZXModGVybSkpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICByZXN1bHRzLnB1c2gob2JqKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHJlc3VsdHMubGVuZ3RoID09PSAwO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMgPSByZXN1bHRzO1xuICAgIH0sXG4gICAgKGVycm9yKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKCdBUEkgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMubm9SZXN1bHQgPSB0cnVlO1xuICAgICAgdGhpcy5maW5hbFJlc3VsdHMgPSBbXTtcbiAgICB9KTtcbiAgfVxufTtcbi8vIFNLUzI3RkVCIEhlbHBlciBmdW5jdGlvbnNcbnByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vU0tTMjdGRUIgQ29udmVydCBhcnJheSBpbmRleGVzIHRvIGRvdCBub3RhdGlvbiAoZS5nLiwgWzBdIC0+IC4wKVxuICBjb25zdCBwcm9jZXNzZWRQYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFxkKylcXF0vZywgJy4kMScpO1xuICBjb25zdCBwYXJ0cyA9IHByb2Nlc3NlZFBhdGguc3BsaXQoJy4nKTtcbiAgbGV0IGN1cnJlbnQgPSBvYmo7XG4gIFxuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBpZiAoIWN1cnJlbnQgfHwgdHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKSByZXR1cm4gJyc7XG4gICAgY3VycmVudCA9IGN1cnJlbnRbcGFydF07XG4gIH1cbiAgXG4gIHJldHVybiBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCBcbiAgICA/IFN0cmluZyhjdXJyZW50KS50b0xvd2VyQ2FzZSgpLnRyaW0oKSBcbiAgICA6ICcnO1xufVxuXG5wcml2YXRlIGdldENvbWJpbmVkVmFsdWVzRnJvbUNvbHVtbnMob2JqOiBhbnksIGNvbHVtbnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICAvLyBTS1MyOEZFQiBjaGVjayBpZiBjb2x1bW5zIGlzIGFuIGFycmF5XG4gIGlmKHR5cGVvZiBjb2x1bW5zID09PSAnc3RyaW5nJyAmJiAhQXJyYXkuaXNBcnJheShjb2x1bW5zKSAgKSB7XG4gICAgY29sdW1ucyA9IFtjb2x1bW5zXTtcbiAgfVxuICBcbiAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXROZXN0ZWRWYWx1ZShvYmosIGNvbHVtbik7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4gdmFsdWVzLmpvaW4oJyAnKTtcbn1cbi8vIFNLUzI3RkVCIGdldCB2YWx1ZSBmcm9tIGRhdGEgc3BlY2lmaWMgY29sdW1uXG5wdWJsaWMgZ2V0VmFsdWVzKGVsZW1lbnQ6IGFueSwgY29sdW1uczogYW55KTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgLy8gU0tTMjhGRUIgY2hlY2sgaWYgY29sdW1ucyBpcyBhbiBhcnJheVxuICBpZih0eXBlb2YgY29sdW1ucyA9PT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkoY29sdW1ucykgICkge1xuICAgIGNvbHVtbnMgPSBbY29sdW1uc107XG4gIH1cbiAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICBsZXQgdGVtcEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIGxldCBmbGRzID0gY29sdW1uPy5zcGxpdCgnLicpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmxkcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHNwbGl0RmxkcyA9IGZsZHNbaV0/LnNwbGl0KCdbJyk7XG4gICAgICBpZiAoc3BsaXRGbGRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB0ZW1wRWxlbWVudCA9IHRlbXBFbGVtZW50W2ZsZHNbaV1dIHx8ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGluZGV4ID0gTnVtYmVyKHNwbGl0Rmxkc1sxXT8uc3BsaXQoJ10nKVswXSk7XG4gICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbc3BsaXRGbGRzWzBdXT8uW2luZGV4XSB8fCAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0W2NvbHVtbl0gPSB0ZW1wRWxlbWVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIFNLUzI3RkVCIGNvbHVtbiB2YWx1ZSBnZXQgZnVudGlvblxuZ2V0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XG59XG4gIHB1YmxpYyBjbGlja0l0ZW0oZXZlbnQpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIGNsaWNrSXRlbSBvZiAnICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQsIG51bGwsIDIpKTtcbiAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgaWYodGhpcy5hcGlNZXRhKXtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgIFxuICAgIC8vIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnRbYXBpT2JqLmRlZmF1bHRGaWVsZCB8fCBhcGlPYmouZmllbGRbMF0gfHwgYXBpT2JqLmZpZWxkXTsgLy9TS1MyN0ZFQiBkZWZhdWx0RmllbGQgaXMgdXNlZCBmb3Igc2hvd2luZyBhIHNlYXJjaCBmaWVsZCBpbnB1dCBpZiBmaWVsZCBoYXZlIGFycmF5IG9mIGRhdGFcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5pZDtcbiAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcbiAgICBjaGFuZ2UuZmllbGQgPSBhcGlPYmouZmllbGQ7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgfVxuICB9XG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIFJlc2V0cyBjb21wb25lbnQgc3RhdGUgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHsgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7ICB9XG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OnN0cmluZyl7XG4gICAgbGV0IHVwZGF0ZWRUZXh0ID0gcXVlc3Rpb25UZXh0Py5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgICByZXR1cm4gdXBkYXRlZFRleHQ7XG4gIH1cbiAgaW5wdXRWYWx1ZShldmVudCxxdWVzKXtcbiAgICBpZihxdWVzLnNpbmdsZUZpZWxkQ2hhbmdlKXtcbiAgICAgIGlmKHRoaXMuYXBpTWV0YSl7XG4gICAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgICBsZXQgYXBpT2JqOiBhbnkgPSB0aGlzLmFwaU1ldGE7XG4gICAgICBcbiAgICAgICAgLy8gbGV0IGFwaU9iajogQVBJTWV0YSA9IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcbiAgICAgICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnRbYXBpT2JqLmRlZmF1bHRGaWVsZCB8fCBhcGlPYmouZmllbGRbMF0gfHwgYXBpT2JqLmZpZWxkXTsgLy9TS1MyN0ZFQiBkZWZhdWx0RmllbGQgaXMgdXNlZCBmb3Igc2hvd2luZyBhIHNlYXJjaCBmaWVsZCBpbnB1dCBpZiBmaWVsZCBoYXZlIGFycmF5IG9mIGRhdGFcbiAgICAgICAgbGV0IGNoYW5nZSA9IG5ldyBDaGFuZ2VXcmFwcGVyKCk7IC8vIENoYW5nZVdyYXBwZXIgPSBKU09OLnBhcnNlKCd7fScpO1xuICAgICAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgICAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcbiAgICAgICAgY2hhbmdlLmZpZWxkID0gYXBpT2JqLmZpZWxkO1xuICAgICAgICBjaGFuZ2UucmVmZXJlbmNlRmllbGQgPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogcXVlcywgdmFsdWU6IGNoYW5nZX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuICAgICIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiPlxuICA8bnh0LWlucHV0IFt0eXBlXT1cIidsaXN0J1wiIFttb2RlXT1cIm1vZGVcIiBbdmFsdWVdPVwiZmlsdGVyTmFtZVwiXG4gICAgW2xhYmVsRm9udF09XCJxdWVzdGlvbi5mb250XCIgW2xhYmVsXT1cInJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb24/LnF1ZXN0aW9uVGV4dClcIiBbbGFiZWxDb2xvcl09XCJxdWVzdGlvbi5mb250Q29sb3JcIlxuICAgIFtsYWJlbFNpemVdPVwicXVlc3Rpb24uZm9udFNpemVcIiBbaW5wdXRWYWx1ZVNpemVdPVwicXVlc3Rpb24uZm9udFNpemVcIiBbbGFiZWxXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiXG4gICAgW2lucHV0V2VpZ2h0XT1cInF1ZXN0aW9uLmZvbnRXZWlnaHRcIiBbc2hvd0xhYmVsXT1cInF1ZXN0aW9uLnN0eWxlPy5zaG93TGFiZWxcIiBpbnB1dEJvcmRlcj1cIm5vbmVcIiBzdmdIZWlnaHQ9XCIyMHB4XCJcbiAgICBzdmdXaWR0aD1cIjIwcHhcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJUZXh0XCIgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzT3B0aW9uYWxcIiBpbnB1dEJnQ29sb3I9XCIjRjVGNUY1XCJcbiAgICBbaW5wdXRJZF09XCJxdWVzdGlvbi50cmFja2luZ0lkXCIgW2Vycm9yTWVzc2FnZXNdPVwieyByZXF1aXJlZDogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH1cIlxuICAgIFtpbnB1dEljb25MZWZ0U3JjXT1cInF1ZXN0aW9uLmljb25MZWZ0U3JjXCIgKGlucHV0VmFsdWUpPVwiZ2V0U291cmNlRGF0YUxvY2FsKCRldmVudCk7IGlucHV0VmFsdWUoJGV2ZW50LnZhbHVlLCRldmVudC5xdWVzdGlvbilcIiAob25CbHVyKT1cImNsZWFyTGlzdCgpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPGRpdiAqbmdJZj1cImZpbmFsUmVzdWx0cy5sZW5ndGggPiAwICYmIHNob3dTdWdnZXN0aW9uXCIgY2xhc3M9XCJzdWdnZXN0aW9ucy1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmluYWxSZXN1bHRzXCIgKGNsaWNrKT1cImNsaWNrSXRlbShpdGVtKVwiIGNsYXNzPVwic3VnZ2VzdGlvbi1pdGVtXCIgcm9sZT1cIm9wdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZC14IGFsaWduLW1pZGRsZVwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnRodW1ibmFpbFwiIGNsYXNzPVwiY2VsbCBzaHJpbmsgdGh1bWJuYWlsLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJpdGVtLnRodW1ibmFpbFwiIGFsdD1cIlRodW1ibmFpbFwiPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNlbGwgYXV0byBpdGVtLWRldGFpbHNcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGtleSBvZiBnZXRLZXlzKGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKSlcIiBjbGFzcz1cIml0ZW0tdmFsdWVcIj5cbiAgICAgICAgICAgICAge3sgZ2V0VmFsdWVzKGl0ZW0sIFNlYXJjaEl0ZW0pW2tleV0gfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9zZWFyY2gtYm94L3NlYXJjaC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvc2VhcmNoLWJveC9zZWFyY2gtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRUUsTUFBTSxFQUNyQixNQUFNLGVBQWUsQ0FBQztBQUl2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBYTVELE1BQU0sT0FBTyxrQkFBa0I7SUF3QlI7SUFBaUM7SUF2QjdDLGVBQWUsQ0FBUztJQUV4QixRQUFRLENBQUM7SUFDVCxPQUFPLENBQVM7SUFDaEIsRUFBRSxDQUFTO0lBQ1gsUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtJQUNqRCxJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLDRCQUE0QjtJQUNyRSxpQkFBaUIsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUN4RSxNQUFNLENBQUs7SUFDWCxVQUFVLENBQU07SUFFUixVQUFVLENBQVMsQ0FBQyx5Q0FBeUM7SUFDL0QsWUFBWSxHQUEwQixNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixTQUFTLENBQU07SUFDZixV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Q0FBQyxDQUFDO1lBQ2hFLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzt3R0F0TlUsa0JBQWtCOzRGQUFsQixrQkFBa0Isc1RDOUIvQiwweERBNkJNLDZkRE5GLFlBQVksK1BBQ1osV0FBVywrQkFDWCxRQUFROzs0RkFLQyxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxRQUFRO3FCQUNUOzBHQUtRLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFJRSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgVmlld0NoaWxkLFxuICBTaW1wbGVDaGFuZ2VzLHNpZ25hbCwgV3JpdGFibGVTaWduYWxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcbi8vIFZEIDIzSkFOMjQgcmVtb3ZlZCBodHRwQ2xpZW50IGltcG9ydCB1c2VkIHNlcnZpY2UgZmlsZSBmb3IgY2FsbG91dFxuaW1wb3J0IHsgQVBJTWV0YSB9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzL2FwaW1ldGFcIjtcbmltcG9ydCB7IENoYW5nZVdyYXBwZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWwvY2hhbmdlV3JhcHBlclwiO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gXCIuLi8uLi9pMThuLnNlcnZpY2VcIjtcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBOeHRJbnB1dCB9IGZyb20gXCIuLi9ueHQtaW5wdXQvbnh0LWlucHV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2VhcmNoLWJveCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTnh0SW5wdXRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlYXJjaC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtYm94LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hCb3hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBwbGFjZUhvbGRlclRleHQ6IHN0cmluZztcblxuICBASW5wdXQoKSBxdWVzdGlvbjtcbiAgQElucHV0KCkgYXBpTWV0YTogc3RyaW5nO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSByZWFkT25seSA9IGZhbHNlOyAvLyBWRCAxMkp1bjI0IC0gcmVhZG9ubHkgY2hhbmdlXG4gIEBJbnB1dCgpIG1vZGU6ICd2aWV3JyB8ICdlZGl0JyB8ICdwcmludCcgPSAnZWRpdCc7IC8vIFNLUzExSlVOMjUgTmV3IG1vZGUgaW5wdXRcbiAgQE91dHB1dCgpIHNlYXJjaFZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgYXBpT2JqOmFueTtcbiAgIFNlYXJjaEl0ZW06IGFueTtcblxuICBASW5wdXQoKSBmaWx0ZXJOYW1lOiBzdHJpbmc7IC8vIFZEIDIwQXVnIGRlZmF1bHQgZmlsdGVyIHZhbHVlIGFzIGlucHV0XG4gIHB1YmxpYyBmaW5hbFJlc3VsdHM6IFdyaXRhYmxlU2lnbmFsPGFueVtdPiA9IHNpZ25hbChbXSk7XG4gIHB1YmxpYyBzZWFyY2hLZXlXb3JkOiBzdHJpbmcgPSAnJztcbiAgcHVibGljIG5ld1Jlc3VsdDogYW55O1xuICBwdWJsaWMgc2hvd1Jlc3VsdCA9IGZhbHNlO1xuICBwdWJsaWMgbm9SZXN1bHQgPSBmYWxzZTtcbiAgcHVibGljIHNob3dTdWdnZXN0aW9uID0gdHJ1ZTtcbiAgcHJpdmF0ZSBlbDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgc2Vydjogc3RyaW5nID0gJ2FwaSc7XG4gIHByaXZhdGUgdGtuOiBzdHJpbmcgPSAnJztcbiAgaXNMb2FkaW5nID0gZmFsc2VcbiAgXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHVibGljIGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkgeyB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vICBWRCAwM01heS0gc2VhcmNoIGNoYW5nZXNcbiAgICAgLy8gQVAtMjZNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgaWYodGhpcy5hcGlNZXRhKXtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgICAgdGhpcy5TZWFyY2hJdGVtID0gYXBpT2JqLmZpZWxkO1xuICAgIH1cbiAgfVxuLy8vL1JTIDAzRkVCMjAyNVxuLy8gUmVzZXRzIHN0YXRlIHdoZW4gZmlsdGVyTmFtZSBvciBhcGlNZXRhIGNoYW5nZXMgdG8gcmVmbGVjdCB1cGRhdGVkIGRhdGFcbiAvLyBBUC0yNk1BUjI1IEVuc3VyZSBxdWVzLnN1YlRleHQgaXMgYWx3YXlzIGFuIG9iamVjdCBieSBwYXJzaW5nIGl0IGlmIGl0J3MgYSBzdHJpbmdcbm5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgaWYgKGNoYW5nZXNbJ21vZGUnXSkge1xuICAgIHRoaXMubW9kZSA9IGNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gIH1cbiAgaWYgKGNoYW5nZXNbJ2FwaU1ldGEnXSAmJiB0aGlzLmFwaU1ldGEpIHtcbiAgICB0aGlzLmFwaU1ldGEgPSB0eXBlb2YgdGhpcy5hcGlNZXRhID09PSAnb2JqZWN0JyA/IHRoaXMuYXBpTWV0YSA6IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcbiAgICB0aGlzLmFwaU9iaiA9IHRoaXMuYXBpTWV0YTtcbiAgICB0aGlzLlNlYXJjaEl0ZW0gPSB0aGlzLmFwaU9iaj8uZmllbGQ7XG4gIH1cbn1cbi8vUlMgMDNGRUIyMDI1XG4vLyBDbGVhcnMgc2VhcmNoLXJlbGF0ZWQgZGF0YSwgaW5jbHVkaW5nIHJlc3VsdHMsIHNlYXJjaCB0ZXJtLCBhbmQgc3VnZ2VzdGlvbnMuXG5wcml2YXRlIHJlc2V0Q29tcG9uZW50U3RhdGUoKTogdm9pZCB7XG4gIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7O1xuICB0aGlzLmZpbHRlck5hbWUgPSAnJzsgXG4gIHRoaXMuc2VhcmNoS2V5V29yZCA9ICcnOyAgXG4gIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSBmYWxzZTtcbiAgdGhpcy5ub1Jlc3VsdCA9IGZhbHNlO1xufVxuY2xlYXJMaXN0KCl7XG4gIHNldFRpbWVvdXQoKCk9PiB7XG4gICAgdGhpcy5maW5hbFJlc3VsdHMuc2V0KFtdKTs7XG4gIH0sIDEwMDApO1xufVxuXG5nZXRTb3VyY2VEYXRhTG9jYWwoZXZlbnQ6IGFueSkgeyAvL3RvIGdldCByZXN1bHRzIGxpc3QgZnJvbSBiYWNrZW5kIEFQSSB3aGVuZXZlciBrZXkgaXMgdXAgYWZ0ZXIgdGhlIGVudGVyaW5nIGF0bGVhc3Qgb25lIGtleVxuICBpZiAoZXZlbnQudmFsdWUubGVuZ3RoID4gMikge1xuICAgIHRoaXMuc2hvd1N1Z2dlc3Rpb24gPSB0cnVlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7O1xuICAgIHRoaXMuc2VhcmNoS2V5V29yZCA9IGV2ZW50LnZhbHVlO1xuICAgIHRoaXMuc2hvd1Jlc3VsdCA9IGZhbHNlO1xuICAgIHRoaXMuZ2V0U291cmNlRGF0YShldmVudC52YWx1ZSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5zaG93U3VnZ2VzdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuZmluYWxSZXN1bHRzLnNldChbXSk7O1xuICAgIHRoaXMubm9SZXN1bHQgPSBmYWxzZTtcbiAgfVxufVxuLy8gVkQgMDNNYXktIHNlYXJjaCBjaGFuZ2VzXG4vLyBWRCAzMU5PVjI0IG51bGwgY2hlY2tcbi8vIFJTIDI5SkFOMjVcbi8vTXVsdGktd29yZCBzZWFyY2ggYWNyb3NzIGFsbCBvYmplY3QgdmFsdWVzXG5wdWJsaWMgZ2V0U291cmNlRGF0YSA9IChrZXl3b3JkOiBzdHJpbmcpID0+IHtcbiAgIC8vIE1TTS0yN01BUjI1IEVuc3VyZSBxdWVzLnN1YlRleHQgaXMgYWx3YXlzIGFuIG9iamVjdCBieSBwYXJzaW5nIGl0IGlmIGl0J3MgYSBzdHJpbmdcbiAgaWYgKHRoaXMuYXBpTWV0YSkge1xuICAgICAgdGhpcy5hcGlNZXRhID0gdHlwZW9mIHRoaXMuYXBpTWV0YSA9PT0gJ29iamVjdCcgPyB0aGlzLmFwaU1ldGEgOiBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgICBsZXQgYXBpT2JqOiBhbnkgPSB0aGlzLmFwaU1ldGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5kYXRhU2VydmljZS5hcGlSZXNwb25zZShhcGlPYmouZW5kcG9pbnQpLnN1YnNjcmliZSgoYXBpUmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICBsZXQgcmVzcG9uc2U7XG4gICAgICBpZiAoYXBpT2JqLnZhcmlhYmxlKSB7XG4gICAgICAgIHJlc3BvbnNlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShhcGlSZXNwb25zZSwgYXBpT2JqLnZhcmlhYmxlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3BvbnNlID0gYXBpUmVzcG9uc2U7XG4gICAgICB9ICAgICAgXG4gICAgICBsZXQgcmVzdWx0cyA9IFtdO1xuICAgICAgbGV0IHNlYXJjaFRlcm1zID0ga2V5d29yZC50b0xvd2VyQ2FzZSgpPy5zcGxpdChcIiBcIik7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJlc3BvbnNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGxldCBvYmogPSByZXNwb25zZVtpXTtcbiAgICAgICAgbGV0IGNvbWJpbmVkVmFsdWVzID0gdGhpcy5nZXRDb21iaW5lZFZhbHVlc0Zyb21Db2x1bW5zKG9iaiwgYXBpT2JqLmZpZWxkKTtcbiAgICAgICAgbGV0IG1hdGNoID0gc2VhcmNoVGVybXMuZXZlcnkodGVybSA9PiBjb21iaW5lZFZhbHVlcy5pbmNsdWRlcyh0ZXJtKSk7XG4gICAgICAgIGlmIChtYXRjaCkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChvYmopO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLm5vUmVzdWx0ID0gcmVzdWx0cy5sZW5ndGggPT09IDA7XG4gICAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQocmVzdWx0cyk7XG4gICAgfSxcbiAgICAoZXJyb3IpID0+IHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0FQSSBlcnJvcjonLCBlcnJvcik7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5ub1Jlc3VsdCA9IHRydWU7XG4gICAgICB0aGlzLmZpbmFsUmVzdWx0cy5zZXQoW10pOztcbiAgICB9KTtcbiAgfVxufTtcbi8vIFNLUzI3RkVCIEhlbHBlciBmdW5jdGlvbnNcbnByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vU0tTMjdGRUIgQ29udmVydCBhcnJheSBpbmRleGVzIHRvIGRvdCBub3RhdGlvbiAoZS5nLiwgWzBdIC0+IC4wKVxuICBjb25zdCBwcm9jZXNzZWRQYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFxkKylcXF0vZywgJy4kMScpO1xuICBjb25zdCBwYXJ0cyA9IHByb2Nlc3NlZFBhdGguc3BsaXQoJy4nKTtcbiAgbGV0IGN1cnJlbnQgPSBvYmo7XG4gIFxuICBmb3IgKGNvbnN0IHBhcnQgb2YgcGFydHMpIHtcbiAgICBpZiAoIWN1cnJlbnQgfHwgdHlwZW9mIGN1cnJlbnQgIT09ICdvYmplY3QnKSByZXR1cm4gJyc7XG4gICAgY3VycmVudCA9IGN1cnJlbnRbcGFydF07XG4gIH1cbiAgXG4gIHJldHVybiBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHVuZGVmaW5lZCBcbiAgICA/IFN0cmluZyhjdXJyZW50KS50b0xvd2VyQ2FzZSgpLnRyaW0oKSBcbiAgICA6ICcnO1xufVxuXG5wcml2YXRlIGdldENvbWJpbmVkVmFsdWVzRnJvbUNvbHVtbnMob2JqOiBhbnksIGNvbHVtbnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICAvLyBTS1MyOEZFQiBjaGVjayBpZiBjb2x1bW5zIGlzIGFuIGFycmF5XG4gIGlmKHR5cGVvZiBjb2x1bW5zID09PSAnc3RyaW5nJyAmJiAhQXJyYXkuaXNBcnJheShjb2x1bW5zKSAgKSB7XG4gICAgY29sdW1ucyA9IFtjb2x1bW5zXTtcbiAgfVxuICBcbiAgZm9yIChjb25zdCBjb2x1bW4gb2YgY29sdW1ucykge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXROZXN0ZWRWYWx1ZShvYmosIGNvbHVtbik7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIFxuICByZXR1cm4gdmFsdWVzLmpvaW4oJyAnKTtcbn1cbi8vIFNLUzI3RkVCIGdldCB2YWx1ZSBmcm9tIGRhdGEgc3BlY2lmaWMgY29sdW1uXG5wdWJsaWMgZ2V0VmFsdWVzKGVsZW1lbnQ6IGFueSwgY29sdW1uczogYW55KTogYW55IHtcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgLy8gU0tTMjhGRUIgY2hlY2sgaWYgY29sdW1ucyBpcyBhbiBhcnJheVxuICBpZih0eXBlb2YgY29sdW1ucyA9PT0gJ3N0cmluZycgJiYgIUFycmF5LmlzQXJyYXkoY29sdW1ucykgICkge1xuICAgIGNvbHVtbnMgPSBbY29sdW1uc107XG4gIH1cbiAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICBsZXQgdGVtcEVsZW1lbnQgPSBlbGVtZW50O1xuICAgIGxldCBmbGRzID0gY29sdW1uPy5zcGxpdCgnLicpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmxkcy5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHNwbGl0RmxkcyA9IGZsZHNbaV0/LnNwbGl0KCdbJyk7XG4gICAgICBpZiAoc3BsaXRGbGRzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICB0ZW1wRWxlbWVudCA9IHRlbXBFbGVtZW50W2ZsZHNbaV1dIHx8ICcnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGV0IGluZGV4ID0gTnVtYmVyKHNwbGl0Rmxkc1sxXT8uc3BsaXQoJ10nKVswXSk7XG4gICAgICAgIHRlbXBFbGVtZW50ID0gdGVtcEVsZW1lbnRbc3BsaXRGbGRzWzBdXT8uW2luZGV4XSB8fCAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0W2NvbHVtbl0gPSB0ZW1wRWxlbWVudDtcbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIFNLUzI3RkVCIGNvbHVtbiB2YWx1ZSBnZXQgZnVudGlvblxuZ2V0S2V5cyhvYmo6IGFueSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9iaik7XG59XG4gIHB1YmxpYyBjbGlja0l0ZW0oZXZlbnQpIHtcbiAgICAvLyBjb25zb2xlLmxvZygnaW5zaWRlIGNsaWNrSXRlbSBvZiAnICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQsIG51bGwsIDIpKTtcbiAgICAvLyBNU00tMjdNQVIyNSBFbnN1cmUgcXVlcy5zdWJUZXh0IGlzIGFsd2F5cyBhbiBvYmplY3QgYnkgcGFyc2luZyBpdCBpZiBpdCdzIGEgc3RyaW5nXG4gICAgaWYodGhpcy5hcGlNZXRhKXtcbiAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgbGV0IGFwaU9iajogYW55ID0gdGhpcy5hcGlNZXRhO1xuICAgIFxuICAgIC8vIGxldCBhcGlPYmo6IEFQSU1ldGEgPSBKU09OLnBhcnNlKHRoaXMuYXBpTWV0YSk7XG4gICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnRbYXBpT2JqLmRlZmF1bHRGaWVsZCB8fCBhcGlPYmouZmllbGRbMF0gfHwgYXBpT2JqLmZpZWxkXTsgLy9TS1MyN0ZFQiBkZWZhdWx0RmllbGQgaXMgdXNlZCBmb3Igc2hvd2luZyBhIHNlYXJjaCBmaWVsZCBpbnB1dCBpZiBmaWVsZCBoYXZlIGFycmF5IG9mIGRhdGFcbiAgICBsZXQgY2hhbmdlID0gbmV3IENoYW5nZVdyYXBwZXIoKTsgLy8gQ2hhbmdlV3JhcHBlciA9IEpTT04ucGFyc2UoJ3t9Jyk7XG4gICAgY2hhbmdlLmZyb21RdWVzdGlvbklkID0gdGhpcy5pZDtcbiAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcbiAgICBjaGFuZ2UuZmllbGQgPSBhcGlPYmouZmllbGQ7XG4gICAgdGhpcy5zZWFyY2hWYWx1ZUNoYW5nZS5lbWl0KHtxdWVzdGlvbiA6IHRoaXMucXVlc3Rpb24sIHZhbHVlOiBjaGFuZ2V9KTtcbiAgfVxuICB9XG4gIC8vUlMgMDNGRUIyMDI1XG4gIC8vIFJlc2V0cyBjb21wb25lbnQgc3RhdGUgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHsgdGhpcy5yZXNldENvbXBvbmVudFN0YXRlKCk7ICB9XG4gIHJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb25UZXh0OnN0cmluZyl7XG4gICAgbGV0IHVwZGF0ZWRUZXh0ID0gcXVlc3Rpb25UZXh0Py5yZXBsYWNlKC88W14+XSo+L2csICcnKTtcbiAgICByZXR1cm4gdXBkYXRlZFRleHQ7XG4gIH1cbiAgaW5wdXRWYWx1ZShldmVudCxxdWVzKXtcbiAgICBpZihxdWVzLnNpbmdsZUZpZWxkQ2hhbmdlKXtcbiAgICAgIGlmKHRoaXMuYXBpTWV0YSl7XG4gICAgICAgIHRoaXMuYXBpTWV0YSA9IHR5cGVvZiB0aGlzLmFwaU1ldGEgPT09ICdvYmplY3QnID8gdGhpcy5hcGlNZXRhIDogSlNPTi5wYXJzZSh0aGlzLmFwaU1ldGEpO1xuICAgICAgICBsZXQgYXBpT2JqOiBhbnkgPSB0aGlzLmFwaU1ldGE7XG4gICAgICBcbiAgICAgICAgLy8gbGV0IGFwaU9iajogQVBJTWV0YSA9IEpTT04ucGFyc2UodGhpcy5hcGlNZXRhKTtcbiAgICAgICAgdGhpcy5maWx0ZXJOYW1lID0gZXZlbnRbYXBpT2JqLmRlZmF1bHRGaWVsZCB8fCBhcGlPYmouZmllbGRbMF0gfHwgYXBpT2JqLmZpZWxkXTsgLy9TS1MyN0ZFQiBkZWZhdWx0RmllbGQgaXMgdXNlZCBmb3Igc2hvd2luZyBhIHNlYXJjaCBmaWVsZCBpbnB1dCBpZiBmaWVsZCBoYXZlIGFycmF5IG9mIGRhdGFcbiAgICAgICAgbGV0IGNoYW5nZSA9IG5ldyBDaGFuZ2VXcmFwcGVyKCk7IC8vIENoYW5nZVdyYXBwZXIgPSBKU09OLnBhcnNlKCd7fScpO1xuICAgICAgICBjaGFuZ2UuZnJvbVF1ZXN0aW9uSWQgPSB0aGlzLmlkO1xuICAgICAgICBjaGFuZ2UudmFsdWVPYmogPSBldmVudDtcbiAgICAgICAgY2hhbmdlLmZpZWxkID0gYXBpT2JqLmZpZWxkO1xuICAgICAgICBjaGFuZ2UucmVmZXJlbmNlRmllbGQgPSB0aGlzLnF1ZXN0aW9uLnJlZmVyZW5jZUZpZWxkO1xuICAgICAgICB0aGlzLnNlYXJjaFZhbHVlQ2hhbmdlLmVtaXQoe3F1ZXN0aW9uIDogcXVlcywgdmFsdWU6IGNoYW5nZX0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuICAgICIsIjwhLS0gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZSAtLT5cbjxkaXYgY2xhc3M9XCJzZWFyY2gtd3JhcHBlclwiPlxuICA8bnh0LWlucHV0IFt0eXBlXT1cIidsaXN0J1wiIFttb2RlXT1cIm1vZGVcIiBbdmFsdWVdPVwiZmlsdGVyTmFtZVwiXG4gICAgW2xhYmVsRm9udF09XCJxdWVzdGlvbi5mb250XCIgW2xhYmVsXT1cInJlbW92ZUNoYXJhY3RlcnMocXVlc3Rpb24/LnF1ZXN0aW9uVGV4dClcIiBbbGFiZWxDb2xvcl09XCJxdWVzdGlvbi5mb250Q29sb3JcIlxuICAgIFtsYWJlbFNpemVdPVwicXVlc3Rpb24uZm9udFNpemVcIiBbaW5wdXRWYWx1ZVNpemVdPVwicXVlc3Rpb24uZm9udFNpemVcIiBbbGFiZWxXZWlnaHRdPVwicXVlc3Rpb24uZm9udFdlaWdodFwiXG4gICAgW2lucHV0V2VpZ2h0XT1cInF1ZXN0aW9uLmZvbnRXZWlnaHRcIiBbc2hvd0xhYmVsXT1cInF1ZXN0aW9uLnN0eWxlPy5zaG93TGFiZWxcIiBpbnB1dEJvcmRlcj1cIm5vbmVcIiBzdmdIZWlnaHQ9XCIyMHB4XCJcbiAgICBzdmdXaWR0aD1cIjIwcHhcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJUZXh0XCIgW3JlcXVpcmVkXT1cInF1ZXN0aW9uLmlzT3B0aW9uYWxcIiBpbnB1dEJnQ29sb3I9XCIjRjVGNUY1XCJcbiAgICBbaW5wdXRJZF09XCJxdWVzdGlvbi50cmFja2luZ0lkXCIgW2Vycm9yTWVzc2FnZXNdPVwieyByZXF1aXJlZDogJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQnIH1cIlxuICAgIFtpbnB1dEljb25MZWZ0U3JjXT1cInF1ZXN0aW9uLmljb25MZWZ0U3JjXCIgKGlucHV0VmFsdWUpPVwiZ2V0U291cmNlRGF0YUxvY2FsKCRldmVudCk7IGlucHV0VmFsdWUoJGV2ZW50LnZhbHVlLCRldmVudC5xdWVzdGlvbilcIiAob25CbHVyKT1cImNsZWFyTGlzdCgpXCJcbiAgICBbc2hvd1N1Z2dlc3Rpb25dPVwic2hvd1N1Z2dlc3Rpb25cIiBhcmlhT3ducz1cInNlbGVjdExpc3RcIiBhcmlhSGFzUG9wdXA9XCJsaXN0Ym94XCIgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgPC9ueHQtaW5wdXQ+XG5cbiAgPGRpdiBpZD1cInNlbGVjdExpc3RcIiBjbGFzcz1cInN1Z2dlc3Rpb24td3JhcHBlclwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPGRpdiAqbmdJZj1cImZpbmFsUmVzdWx0cygpLmxlbmd0aCA+IDAgJiYgc2hvd1N1Z2dlc3Rpb25cIiBjbGFzcz1cInN1Z2dlc3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBmaW5hbFJlc3VsdHMoKVwiIChjbGljayk9XCJjbGlja0l0ZW0oaXRlbSlcIiBjbGFzcz1cInN1Z2dlc3Rpb24taXRlbVwiIHJvbGU9XCJvcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQteCBhbGlnbi1taWRkbGVcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50aHVtYm5haWxcIiBjbGFzcz1cImNlbGwgc2hyaW5rIHRodW1ibmFpbC13cmFwcGVyXCI+XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiaXRlbS50aHVtYm5haWxcIiBhbHQ9XCJUaHVtYm5haWxcIj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjZWxsIGF1dG8gaXRlbS1kZXRhaWxzXCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBrZXkgb2YgZ2V0S2V5cyhnZXRWYWx1ZXMoaXRlbSwgU2VhcmNoSXRlbSkpXCIgY2xhc3M9XCJpdGVtLXZhbHVlXCI+XG4gICAgICAgICAgICAgIHt7IGdldFZhbHVlcyhpdGVtLCBTZWFyY2hJdGVtKVtrZXldIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -14365,7 +14365,7 @@ class SearchBoxComponent {
14365
14365
  apiObj;
14366
14366
  SearchItem;
14367
14367
  filterName; // VD 20Aug default filter value as input
14368
- finalResults = [];
14368
+ finalResults = signal([]);
14369
14369
  searchKeyWord = '';
14370
14370
  newResult;
14371
14371
  showResult = false;
@@ -14404,7 +14404,8 @@ class SearchBoxComponent {
14404
14404
  //RS 03FEB2025
14405
14405
  // Clears search-related data, including results, search term, and suggestions.
14406
14406
  resetComponentState() {
14407
- this.finalResults = [];
14407
+ this.finalResults.set([]);
14408
+ ;
14408
14409
  this.filterName = '';
14409
14410
  this.searchKeyWord = '';
14410
14411
  this.showSuggestion = false;
@@ -14412,20 +14413,23 @@ class SearchBoxComponent {
14412
14413
  }
14413
14414
  clearList() {
14414
14415
  setTimeout(() => {
14415
- this.finalResults = [];
14416
+ this.finalResults.set([]);
14417
+ ;
14416
14418
  }, 1000);
14417
14419
  }
14418
14420
  getSourceDataLocal(event) {
14419
14421
  if (event.value.length > 2) {
14420
14422
  this.showSuggestion = true;
14421
- this.finalResults = [];
14423
+ this.finalResults.set([]);
14424
+ ;
14422
14425
  this.searchKeyWord = event.value;
14423
14426
  this.showResult = false;
14424
14427
  this.getSourceData(event.value);
14425
14428
  }
14426
14429
  else {
14427
14430
  this.showSuggestion = false;
14428
- this.finalResults = [];
14431
+ this.finalResults.set([]);
14432
+ ;
14429
14433
  this.noResult = false;
14430
14434
  }
14431
14435
  }
@@ -14459,12 +14463,13 @@ class SearchBoxComponent {
14459
14463
  }
14460
14464
  }
14461
14465
  this.noResult = results.length === 0;
14462
- this.finalResults = results;
14466
+ this.finalResults.set(results);
14463
14467
  }, (error) => {
14464
14468
  console.error('API error:', error);
14465
14469
  this.isLoading = false;
14466
14470
  this.noResult = true;
14467
- this.finalResults = [];
14471
+ this.finalResults.set([]);
14472
+ ;
14468
14473
  });
14469
14474
  }
14470
14475
  };
@@ -14564,7 +14569,7 @@ class SearchBoxComponent {
14564
14569
  }
14565
14570
  }
14566
14571
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, deps: [{ token: DataService }, { token: I18nService }], target: i0.ɵɵFactoryTarget.Component });
14567
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBoxComponent, isStandalone: true, selector: "lib-search-box", inputs: { placeHolderText: "placeHolderText", question: "question", apiMeta: "apiMeta", id: "id", readOnly: "readOnly", mode: "mode", filterName: "filterName" }, outputs: { searchValueChange: "searchValueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;background:#fff;z-index:2}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "clearInputEmit", "nativeInputRef"] }] });
14572
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchBoxComponent, isStandalone: true, selector: "lib-search-box", inputs: { placeHolderText: "placeHolderText", question: "question", apiMeta: "apiMeta", id: "id", readOnly: "readOnly", mode: "mode", filterName: "filterName" }, outputs: { searchValueChange: "searchValueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults().length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults()\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;top:100%;left:0;background:#fff;z-index:2}.search-wrapper{position:relative}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "clearInputEmit", "nativeInputRef"] }] });
14568
14573
  }
14569
14574
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchBoxComponent, decorators: [{
14570
14575
  type: Component,
@@ -14572,7 +14577,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
14572
14577
  CommonModule,
14573
14578
  FormsModule,
14574
14579
  NxtInput
14575
- ], template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults.length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;background:#fff;z-index:2}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"] }]
14580
+ ], template: "<!-- VD 12Jun24 - readonly change -->\n<div class=\"search-wrapper\">\n <nxt-input [type]=\"'list'\" [mode]=\"mode\" [value]=\"filterName\"\n [labelFont]=\"question.font\" [label]=\"removeCharacters(question?.questionText)\" [labelColor]=\"question.fontColor\"\n [labelSize]=\"question.fontSize\" [inputValueSize]=\"question.fontSize\" [labelWeight]=\"question.fontWeight\"\n [inputWeight]=\"question.fontWeight\" [showLabel]=\"question.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"placeHolderText\" [required]=\"question.isOptional\" inputBgColor=\"#F5F5F5\"\n [inputId]=\"question.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question.iconLeftSrc\" (inputValue)=\"getSourceDataLocal($event); inputValue($event.value,$event.question)\" (onBlur)=\"clearList()\"\n [showSuggestion]=\"showSuggestion\" ariaOwns=\"selectList\" ariaHasPopup=\"listbox\" [isLoading]=\"isLoading\">\n </nxt-input>\n\n <div id=\"selectList\" class=\"suggestion-wrapper\" role=\"listbox\">\n <div *ngIf=\"finalResults().length > 0 && showSuggestion\" class=\"suggestions-container\">\n <div *ngFor=\"let item of finalResults()\" (click)=\"clickItem(item)\" class=\"suggestion-item\" role=\"option\">\n <div class=\"grid-x align-middle\">\n <div *ngIf=\"item.thumbnail\" class=\"cell shrink thumbnail-wrapper\">\n <img [src]=\"item.thumbnail\" alt=\"Thumbnail\">\n </div>\n\n <div class=\"cell auto item-details\">\n <div *ngFor=\"let key of getKeys(getValues(item, SearchItem))\" class=\"item-value\">\n {{ getValues(item, SearchItem)[key] }}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".suggestion-wrapper{position:absolute;top:100%;left:0;background:#fff;z-index:2}.search-wrapper{position:relative}.suggestions-container{max-height:20vh;border:1px solid #d2d4d6;overflow:auto;min-width:100px}.suggestion-item{cursor:pointer}.thumbnail-wrapper{width:60px;margin-right:1.6rem}.thumbnail-wrapper img{width:60px}.item-details{text-align:left;padding:5px 8px 0;display:flex;gap:5px}.item-value{display:flex}\n"] }]
14576
14581
  }], ctorParameters: () => [{ type: DataService }, { type: I18nService }], propDecorators: { placeHolderText: [{
14577
14582
  type: Input
14578
14583
  }], question: [{
@@ -17438,7 +17443,7 @@ const VERSION = {
17438
17443
  "semver": null,
17439
17444
  "suffix": "05a52cb-dirty",
17440
17445
  "semverString": null,
17441
- "version": "2.1.183"
17446
+ "version": "2.1.18"
17442
17447
  };
17443
17448
  /* tslint:enable */
17444
17449