@norwegian/core-components 7.22.0 → 7.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -128,6 +128,9 @@ export class AutocompleteComponent extends NasComponentBase {
|
|
|
128
128
|
getInputId() {
|
|
129
129
|
return this.id ? this.id : `nas-autocomplete-input-${this.componentId}`;
|
|
130
130
|
}
|
|
131
|
+
getItemId(item) {
|
|
132
|
+
return `${item.id}-${this.componentId}`;
|
|
133
|
+
}
|
|
131
134
|
setOpen() {
|
|
132
135
|
this.input.nativeElement.select();
|
|
133
136
|
this.open = true;
|
|
@@ -169,8 +172,13 @@ export class AutocompleteComponent extends NasComponentBase {
|
|
|
169
172
|
case 'Tab':
|
|
170
173
|
case 'Enter':
|
|
171
174
|
if (!event.shiftKey) {
|
|
172
|
-
event.
|
|
173
|
-
|
|
175
|
+
if (event.key === 'Enter') {
|
|
176
|
+
event.preventDefault();
|
|
177
|
+
this.focusOnNext.emit(event);
|
|
178
|
+
}
|
|
179
|
+
else if (this.open) {
|
|
180
|
+
this.focusOnNext.emit(event);
|
|
181
|
+
}
|
|
174
182
|
}
|
|
175
183
|
if (this.focused) {
|
|
176
184
|
this.modelValue = this.focused.title;
|
|
@@ -256,7 +264,7 @@ export class AutocompleteComponent extends NasComponentBase {
|
|
|
256
264
|
return;
|
|
257
265
|
}
|
|
258
266
|
const results = this.results.nativeElement;
|
|
259
|
-
const focusedItem = this.document.
|
|
267
|
+
const focusedItem = this.document.getElementById(this.getItemId(this.focused));
|
|
260
268
|
if (focusedItem) {
|
|
261
269
|
results.scrollTo(0, 0);
|
|
262
270
|
results.scrollTo(0, focusedItem.offsetTop + extraOffset - results.clientHeight);
|
|
@@ -273,11 +281,11 @@ export class AutocompleteComponent extends NasComponentBase {
|
|
|
273
281
|
return this.model ? 'remove--secondary' : 'remove';
|
|
274
282
|
}
|
|
275
283
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
276
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { id: "id", label: "label", labelInside: "labelInside", placeholder: "placeholder", icon: "icon", secondary: "secondary", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { id: "id", label: "label", labelInside: "labelInside", placeholder: "placeholder", icon: "icon", secondary: "secondary", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"getItemId(item)\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: i5.BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
277
285
|
}
|
|
278
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
279
287
|
type: Component,
|
|
280
|
-
args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item
|
|
288
|
+
args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"getItemId(item)\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
|
|
281
289
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
282
290
|
type: Inject,
|
|
283
291
|
args: [DOCUMENT]
|
|
@@ -330,4 +338,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
330
338
|
}], modelChange: [{
|
|
331
339
|
type: Output
|
|
332
340
|
}] } });
|
|
333
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBaUREOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDL0IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxJQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JDLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxLQUFhO1FBQ3JCLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7WUFDN0IsT0FBTztTQUNSO1FBRUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFFeEIsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUMvQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztTQUNuRTtRQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBMERELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBT0QsWUFBc0MsUUFBYTtRQUNqRCxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQUs7UUEzTG5ELGtCQUFhLEdBQTZCLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFckQsVUFBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBOEJYOzs7O1dBSUc7UUFDTSxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUVyQzs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFxSDFCOzs7O1dBSUc7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0M7Ozs7V0FJRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFFdkQsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDekMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBTTNDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixJQUFJLENBQUMsNEJBQTRCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyw0QkFBNEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTywwQkFBMEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLE9BQU87U0FDUjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2hDLE9BQU87U0FDUjtRQUVELElBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFOUIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUUvRCxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7U0FDNUI7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3pDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWpGLElBQUksWUFBWSxLQUFLLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssRUFBRSxFQUFFO1lBQ2hFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztTQUNqQztRQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDbEI7YUFBTTtZQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUM1QixRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDakIsS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1osTUFBTTtZQUNSLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO29CQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM5QjtnQkFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDL0M7Z0JBRUQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNaLE1BQU07WUFDUixLQUFLLFdBQVcsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLElBQUk7Z0JBQ1AsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNmLE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQVU7UUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhCLElBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7U0FDdkQ7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQXVCO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxTQUFTO1FBQ2YsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRWIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7YUFDaEI7WUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9DO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVPLE9BQU87UUFDYixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFYixJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxLQUFhO1FBQ25DLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDaEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDbkUsV0FBVyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsV0FBbUI7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUV2RixJQUFJLFdBQVcsRUFBRTtZQUNmLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxTQUFTLEdBQUcsV0FBVyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNqRjtJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsS0FBWTtRQUNsQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBMEIsQ0FBQztRQUN0RCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDeEYsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUN4RjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3JELENBQUM7K0dBcllVLHFCQUFxQixrQkE0TFosUUFBUTttR0E1TGpCLHFCQUFxQix1NUJDOUJsQywyOEdBbURpRDs7NEZEckJwQyxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0Usa0JBQWtCOzswQkFnTWYsTUFBTTsyQkFBQyxRQUFROzRDQTlLUixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0MsSUFBSTtzQkFBdEIsU0FBUzt1QkFBQyxNQUFNO2dCQUNLLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUztnQkFDRyxZQUFZO3NCQUFsQyxTQUFTO3VCQUFDLFVBQVU7Z0JBT1osRUFBRTtzQkFBVixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUYsS0FBSztzQkFEUixLQUFLO2dCQW9CRixJQUFJO3NCQURQLEtBQUs7Z0JBbUJGLEtBQUs7c0JBRFIsS0FBSztnQkF5QkcsZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPSSxXQUFXO3NCQUFwQixNQUFNO2dCQU9HLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2F1dG9jb21wbGV0ZS5tb2RlbCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZpbHRlcmVkSXRlbXM6IEFycmF5PEF1dG9jb21wbGV0ZU1vZGVsPiA9IHRoaXMuaXRlbXM7XG4gIGZvY3VzZWQ6IEF1dG9jb21wbGV0ZU1vZGVsO1xuICBpbmRleCA9IC0xO1xuXG4gIGdldCBzaG93QmFja2Ryb3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVCYWNrZHJvcCkgJiYgdGhpcy5vcGVuO1xuICB9XG4gIHNldCBzaG93QmFja2Ryb3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzcGFuJykgc3BhbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVzdWx0cycpIHJlc3VsdHM6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xhYmVsRE9NJykgbGFiZWxFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGxhYmVsIG9mIHRoZSBpbnB1dCBpbnNpZGUgdGhlIGlucHV0IGZpZWxkLCBkZWZhdWx0IHZhbHVlIGlzIHRydWVcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsSW5zaWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBpY29uIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBzZWNvbmRhcnkgY29sb3IgdGhlbWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWNvbmRhcnk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHRoaXMuaWQgOiBgbmFzLWF1dG9jb21wbGV0ZS0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgaXRlbXNWYWx1ZTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+O1xuICBwcml2YXRlIG1vZGVsVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSkge1xuICAgIHN1cGVyKCduYXMtYXV0b2NvbXBsZXRlJyk7XG4gICAgdGhpcy5jb21wb25lbnRJZCA9IG5leHRJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbENsZWFyKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbENsZWFyJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbEJhY2tkcm9wKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbEJhY2tkcm9wJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzdWx0c0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLXJlc3VsdHMtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRMYWJlbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWxhYmVsLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0SW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXMtYXV0b2NvbXBsZXRlX19saXN0LWl0ZW0tLWZvY3VzJyk7XG5cbiAgICBpZiAoZm9jdXNlZEl0ZW0pIHtcbiAgICAgIHJlc3VsdHMuc2Nyb2xsVG8oMCwgMCk7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIGZvY3VzZWRJdGVtLm9mZnNldFRvcCArIGV4dHJhT2Zmc2V0IC0gcmVzdWx0cy5jbGllbnRIZWlnaHQpO1xuICAgIH1cbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKHRoaXMubGFiZWwgJiYgdGhpcy5sYWJlbC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgICB0aGlzLnNwYW4ubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXJDb2xvciA9IGlucHV0RWxlbWVudC52YWx1ZSA/ICcjMTUyNzNmJyA6ICcjNmY2ZjZmJztcbiAgICB9XG4gIH1cblxuICBzZXRSZW1vdmVJY29uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMubW9kZWwgPyAncmVtb3ZlLS1zZWNvbmRhcnknIDogJ3JlbW92ZSc7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhbmFzRm9ybUNvbnRyb2xOYW1lOyBlbHNlIHJlYWN0aXZlRm9ybVwiPlxuICA8bGFiZWwgW2lkXT1cImdldExhYmVsSWQoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgW29wZW4gJiYgJ2FjdGl2ZScsIGxhYmVsSW5zaWRlICYmICdsYWJlbC1pbnNpZGUnLCBleGlzdHMoc2Vjb25kYXJ5KSAmJiAnc2Vjb25kYXJ5LWNvbG9yJ10pXCJcbiAgICAjbGFiZWxFbGVtZW50PlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAjc3Bhbj57e2xhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIHJvbGU9XCJjb21ib2JveFwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCIgYXJpYS1hdXRvY29tcGxldGU9XCJub25lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIFtpZF09XCJnZXRJbnB1dElkKClcIiBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImdldFJlc3VsdHNJZCgpXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiXG4gICAgICBbYXR0ci5hcmlhLW93bnNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIiBbKG5nTW9kZWwpXT1cIm1vZGVsXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIChmb2N1cyk9XCJzZXRPcGVuKClcIiAoaW5wdXQpPVwiZmlsdGVyKClcIiAoY2xpY2spPVwic2V0T3BlbigpXCIgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwibW9kZWw7IGVsc2UgaXNFbXB0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCJzZXRSZW1vdmVJY29uKClcIj48L25hcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI2lzRW1wdHk+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCInc21hbGwnXCIgW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNyZWFjdGl2ZUZvcm0+XG4gIDxsYWJlbCBbaWRdPVwiZ2V0TGFiZWxJZCgpXCIgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3dyYXBwZXInLCBbb3BlbiAmJiAnYWN0aXZlJywgbGFiZWxJbnNpZGUgJiYgJ2xhYmVsLWluc2lkZScsIGV4aXN0cyhzZWNvbmRhcnkpICYmICdzZWNvbmRhcnktY29sb3InXSlcIiBbZm9ybUdyb3VwXT1cIm5hc0Zvcm1Hcm91cFwiPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2xhYmVsJylcIiAjc3Bhbj57e2xhYmVsfX08L3NwYW4+XG4gICAgPGlucHV0ICNpbnB1dCB0eXBlPVwidGV4dFwiIHJvbGU9XCJjb21ib2JveFwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFtpZF09XCJnZXRJbnB1dElkKClcIlxuICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW2Zvcm1Db250cm9sTmFtZV09XCJuYXNGb3JtQ29udHJvbE5hbWVcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2lucHV0JylcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgKGZvY3VzKT1cInNldE9wZW4oKVwiIChpbnB1dCk9XCJmaWx0ZXIoKVwiIChjbGljayk9XCJzZXRPcGVuKClcIlxuICAgICAgKGtleWRvd24pPVwib25LZXlEb3duKCRldmVudClcIiAvPlxuICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaWNvbicpXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiByb2xlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiICpuZ0lmPVwibW9kZWw7IGVsc2UgaXNFbXB0eVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsQ2xlYXJcIlxuICAgICAgICAoY2xpY2spPVwiY2xlYXJTZWxlY3RlZCgkZXZlbnQpXCI+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCJzZXRSZW1vdmVJY29uKClcIj48L25hcy1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8bmctdGVtcGxhdGUgI2lzRW1wdHk+XG4gICAgICAgIDxuYXMtaWNvbiBbdHlwZV09XCInc21hbGwnXCIgW2ljb25dPVwiaWNvblwiPjwvbmFzLWljb24+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvc3Bhbj5cbiAgPC9sYWJlbD5cbjwvbmctdGVtcGxhdGU+XG48ZGl2IFtpZF09XCJnZXRSZXN1bHRzSWQoKVwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygncmVzdWx0cy13cmFwcGVyJywgW2V4aXN0cyhzZWNvbmRhcnkpICYmICdzZWNvbmRhcnktY29sb3InXSlcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCI+XG4gIDx1bCAjcmVzdWx0cyByb2xlPVwibGlzdGJveFwiICpuZ0lmPVwib3BlblwiIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJnZXRMYWJlbElkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMnKVwiPlxuICAgIDxsaSByb2xlPVwib3B0aW9uXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtc1wiIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgaXRlbS5pZCA9PT0gZm9jdXNlZD8uaWQgJiYgJ2ZvY3VzJylcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCd0aXRsZScpXCI+e3tpdGVtLnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlYW1ibGUnKVwiPnt7aXRlbS5wcmVhbWJsZX19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuPG5hcy1iYWNrZHJvcCAqbmdJZj1cIiFleGlzdHMoZGlzYWJsZUJhY2tkcm9wKVwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gIFsoc2hvd0JhY2tkcm9wKV09XCJzaG93QmFja2Ryb3BcIj48L25hcy1iYWNrZHJvcD4iXX0=
|
|
341
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFJOUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBRWY7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHFCQUFzQixTQUFRLGdCQUFnQjtJQUt6RCxJQUFJLFlBQVk7UUFDZCxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUN6RCxDQUFDO0lBQ0QsSUFBSSxZQUFZLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0lBaUREOzs7O09BSUc7SUFDSCxJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLElB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LFVBQVU7Z0JBT1osRUFBRTtzQkFBVixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFdBQVc7c0JBQW5CLEtBQUs7Z0JBT0csSUFBSTtzQkFBWixLQUFLO2dCQU9HLFNBQVM7c0JBQWpCLEtBQUs7Z0JBUUYsS0FBSztzQkFEUixLQUFLO2dCQW9CRixJQUFJO3NCQURQLEtBQUs7Z0JBbUJGLEtBQUs7c0JBRFIsS0FBSztnQkF5QkcsZUFBZTtzQkFBdkIsS0FBSztnQkFTRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBU0csWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBT0csY0FBYztzQkFBdEIsS0FBSztnQkFPSSxXQUFXO3NCQUFwQixNQUFNO2dCQU9HLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IE5vcndlZ2lhbiBBaXIgU2h1dHRsZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqL1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOYXNDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVNb2RlbCB9IGZyb20gJy4vbW9kZWxzL2F1dG9jb21wbGV0ZS5tb2RlbCc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogTm9yd2VnaWFuIEFpcnBvcnQgU2VsZWN0IENvbXBvbmVudCB8IEZvcm0gQ29udHJvbHMgfCBOZXcgZGVzaWduXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25hcy1hdXRvY29tcGxldGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGV4dGVuZHMgTmFzQ29tcG9uZW50QmFzZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGZpbHRlcmVkSXRlbXM6IEFycmF5PEF1dG9jb21wbGV0ZU1vZGVsPiA9IHRoaXMuaXRlbXM7XG4gIGZvY3VzZWQ6IEF1dG9jb21wbGV0ZU1vZGVsO1xuICBpbmRleCA9IC0xO1xuXG4gIGdldCBzaG93QmFja2Ryb3AoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmV4aXN0cyh0aGlzLmRpc2FibGVCYWNrZHJvcCkgJiYgdGhpcy5vcGVuO1xuICB9XG4gIHNldCBzaG93QmFja2Ryb3AodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICB9XG4gIH1cblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdzcGFuJykgc3BhbjogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgncmVzdWx0cycpIHJlc3VsdHM6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ2xhYmVsRE9NJykgbGFiZWxFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUaGUgSUQgb2YgdGhlIG5hdGl2ZSBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEEgbGFiZWwgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgdGhlIGxhYmVsIG9mIHRoZSBpbnB1dCBpbnNpZGUgdGhlIGlucHV0IGZpZWxkLCBkZWZhdWx0IHZhbHVlIGlzIHRydWVcbiAgICovXG4gIEBJbnB1dCgpIGxhYmVsSW5zaWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBbiBpY29uIHRoYXQgd2lsbCBhcHBlYXIgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNldHMgYSBzZWNvbmRhcnkgY29sb3IgdGhlbWUuXG4gICAqL1xuICBASW5wdXQoKSBzZWNvbmRhcnk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQW4gYXJyYXkgb2YgaXRlbXMgdGhhdCB3aWxsIGFwcGVhciBpbnNpZGUgdGhlIGRyb3Bkb3duIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgaXRlbXMoKTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5pdGVtc1ZhbHVlO1xuICB9XG4gIHNldCBpdGVtcyhpdGVtczogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+KSB7XG4gICAgaWYgKCFpdGVtcyB8fCBpdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXNWYWx1ZSA9IGl0ZW1zO1xuXG4gICAgdGhpcy5maWx0ZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIENhbiBzZXQgYW5kIGxpc3RlbiB0byB3aGVhdGhlciB0aGUgZHJvcGRvd24gbGlzdCBpcyBvciBzaG91bGQgYmUgb3BlbiBvciBub3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5vcGVuVmFsdWU7XG4gIH1cbiAgc2V0IG9wZW4ob3BlbjogYm9vbGVhbikge1xuICAgIGlmICh0aGlzLm9wZW4gPT09IG9wZW4gfHwgIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm9wZW5WYWx1ZSA9IG9wZW47XG4gICAgdGhpcy5vcGVuQ2hhbmdlLmVtaXQob3Blbik7XG4gIH1cblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBDYW4gc2V0IGFuZCBsaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgbW9kZWwgb2YgdGhlIHRleHQgZmllbGQuXG4gICAqL1xuICBASW5wdXQoKVxuICBnZXQgbW9kZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlbFZhbHVlO1xuICB9XG4gIHNldCBtb2RlbChtb2RlbDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9kZWxWYWx1ZSA9PT0gbW9kZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm1vZGVsVmFsdWUgPSBtb2RlbDtcblxuICAgIGlmIChtb2RlbCAmJiB0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC50aXRsZSA9PT0gbW9kZWwpO1xuICAgIH1cblxuICAgIHRoaXMucGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWwpO1xuXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KG1vZGVsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIERpc2FibGVzIHRoZSBiYWNrZHJvcCBvbiBmb2N1cy5cbiAgICovXG4gIEBJbnB1dCgpIGRpc2FibGVCYWNrZHJvcDogYm9vbGVhbjtcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBTZXRzIGEgZm9ybUNvbnRyb2xOYW1lIGRpcmVjdGl2ZSB0byB0aGUgaW5wdXQuXG4gICAqIEl0IHJlcXVpcmVzIHRoYXQgdGhlIGNvbnN1bWVyIGluY2x1ZGVkIFJlYWN0aXZlRm9ybXNNb2R1bGUgaW4gaXQncyBtb2R1bGUuXG4gICAqIEl0IHJlcXVpZXJzIHRoYXQgdGhlIG5hc0Zvcm1Hcm91cCBpbnB1dCBpcyBmaWxsZWQuXG4gICAqL1xuICBASW5wdXQoKSBuYXNGb3JtQ29udHJvbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQHByb3BlcnR5IElucHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBBZGRzIHRoZSBwYXJlbnQncyBmb3JtIGdyb3VwLlxuICAgKiBJdCByZXF1aXJlcyB0aGF0IHRoZSBjb25zdW1lciBpbmNsdWRlZCBSZWFjdGl2ZUZvcm1zTW9kdWxlIGluIGl0J3MgbW9kdWxlLlxuICAgKiBJdCBpcyByZXF1aWVyZWQgdG8gYmUgZmlsbGVkIGlmIG5hc0Zvcm1Db250cm9sTmFtZSBhZGRlZC5cbiAgICovXG4gIEBJbnB1dCgpIG5hc0Zvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgSW5wdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYW4gYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdG8gdGhlIGJhY2tkcm9wIGJ1dHRvbi5cbiAgICovXG4gIEBJbnB1dCgpIGFyaWFMYWJlbEJhY2tkcm9wOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBJbnB1dFxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogQWRkcyAnYXJpYS1sYWJlbCcgb24gdGhlIGNsZWFyIGJ1dHRvbiBpbnNpZGUgaW5wdXQuXG4gICAqL1xuICBASW5wdXQoKSBhcmlhTGFiZWxDbGVhcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcHJvcGVydHkgT3V0cHV0XG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBJcyBmaXJlZCB3aGVuIHRoZSBuZXh0IGVsZW1lbnQgc2hvdWxkIGJlIGZvY3VzZWQuXG4gICAqL1xuICBAT3V0cHV0KCkgZm9jdXNPbk5leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEBwcm9wZXJ0eSBPdXRwdXRcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIElzIGZpcmVkIHdoZW4gdGhlIHVzZXIgc2VsZWN0cyBhbiBpdGVtIGluIHRoZSBkcm9wZG93biBsaXN0LlxuICAgKi9cbiAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBdXRvY29tcGxldGVNb2RlbD4oKTtcblxuICBAT3V0cHV0KCkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgZ2V0IGlucHV0SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHRoaXMuaWQgOiBgbmFzLWF1dG9jb21wbGV0ZS0ke3RoaXMuY29tcG9uZW50SWR9YDtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblZhbHVlID0gZmFsc2U7XG4gIHByaXZhdGUgaXRlbXNWYWx1ZTogQXJyYXk8QXV0b2NvbXBsZXRlTW9kZWw+O1xuICBwcml2YXRlIG1vZGVsVmFsdWU6IHN0cmluZztcbiAgcHJpdmF0ZSBjb21wb25lbnRJZDogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSkge1xuICAgIHN1cGVyKCduYXMtYXV0b2NvbXBsZXRlJyk7XG4gICAgdGhpcy5jb21wb25lbnRJZCA9IG5leHRJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbENsZWFyKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbENsZWFyJyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmFyaWFMYWJlbEJhY2tkcm9wKSB7XG4gICAgICB0aGlzLndhcm5NaXNzaW5nQWNjZXNzaWJpbHR5SW5wdXQoJ2FyaWFMYWJlbEJhY2tkcm9wJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVzdWx0c0lkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLXJlc3VsdHMtJHt0aGlzLmNvbXBvbmVudElkfWA7XG4gIH1cblxuICBnZXRMYWJlbElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBuYXMtYXV0b2NvbXBsZXRlLWxhYmVsLSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgZ2V0SW5wdXRJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkID8gdGhpcy5pZCA6IGBuYXMtYXV0b2NvbXBsZXRlLWlucHV0LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgXG4gIGdldEl0ZW1JZChpdGVtOiBBdXRvY29tcGxldGVNb2RlbCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2l0ZW0uaWR9LSR7dGhpcy5jb21wb25lbnRJZH1gO1xuICB9XG5cbiAgc2V0T3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0KCk7XG4gICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgfVxuXG4gIGZpbHRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMubW9kZWwgJiYgKCF0aGlzLm5hc0Zvcm1Hcm91cCB8fCAhdGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBjdXJyZW50TW9kZWwgPSB0aGlzLm1vZGVsO1xuXG4gICAgaWYgKHRoaXMubmFzRm9ybUdyb3VwICYmIHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKSB7XG4gICAgICBjb25zdCBjb250cm9sID0gdGhpcy5uYXNGb3JtR3JvdXAuZ2V0KHRoaXMubmFzRm9ybUNvbnRyb2xOYW1lKTtcblxuICAgICAgY3VycmVudE1vZGVsID0gY29udHJvbC52YWx1ZTtcbiAgICAgIHRoaXMubW9kZWwgPSBjb250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuaXRlbXMuZmlsdGVyKHggPT5cbiAgICAgICh4LnRpdGxlICYmIHgudGl0bGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhjdXJyZW50TW9kZWwudG9Mb3dlckNhc2UoKSkpIHx8XG4gICAgICAoeC5wcmVhbWJsZSAmJiB4LnByZWFtYmxlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoY3VycmVudE1vZGVsLnRvTG93ZXJDYXNlKCkpKSk7XG5cbiAgICBpZiAoY3VycmVudE1vZGVsID09PSAnJyB8fCB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPT09ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIHRoaXMuaW5kZXggPSAwO1xuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuZm9jdXNlZCA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmluZGV4XTtcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKCFldmVudC5zaGlmdEtleSkge1xuICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLmZvY3VzT25OZXh0LmVtaXQoZXZlbnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcbiAgICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSB0aGlzLmZvY3VzZWQudGl0bGU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuZm9jdXNlZCk7XG4gICAgICAgICAgdGhpcy5wYXRoUmVhY3RpdmVGb3JtQ29udHJvbCh0aGlzLm1vZGVsVmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5ibHVyKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgIGNhc2UgJ0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzRG93bigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnVXAnOlxuICAgICAgICB0aGlzLmZvY3VzVXAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBjbGVhclNlbGVjdGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy5mb2N1c2VkID0gbnVsbDtcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLml0ZW1zO1xuICAgIHRoaXMubW9kZWwgPSAnJztcbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICAgIHRoaXMuaW5kZXggPSAtMTtcblxuICAgIGlmKCEhdGhpcy5pbnB1dCAmJiAhIXRoaXMuc3Bhbikge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSAnIzZmNmY2Zic7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBzZWxlY3QoaXRlbTogQXV0b2NvbXBsZXRlTW9kZWwpOiB2b2lkIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBpdGVtO1xuICAgIHRoaXMubW9kZWwgPSBpdGVtLnRpdGxlO1xuICAgIHRoaXMuc2VsZWN0ZWRDaGFuZ2UuZW1pdChpdGVtKTtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIHRoaXMuaW5kZXggPSB0aGlzLmZpbHRlcmVkSXRlbXMuZmluZEluZGV4KHggPT4geC5pZCA9PT0gaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5mb2N1c09uTmV4dC5lbWl0KCk7XG4gIH1cblxuICBibHVyKCk6IHZvaWQge1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNEb3duKCk6IHZvaWQge1xuICAgICsrdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMpIHtcbiAgICAgIGlmICghdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuaW5kZXhdKSB7XG4gICAgICAgIHRoaXMuaW5kZXggPSAwO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5kZXggPT09IDApIHtcbiAgICAgIHRoaXMuYXV0b1Njcm9sbCgwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2Nyb2xsKDEzMSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1VwKCk6IHZvaWQge1xuICAgIC0tdGhpcy5pbmRleDtcblxuICAgIGlmICh0aGlzLmluZGV4IDwgMCkge1xuICAgICAgdGhpcy5pbmRleCA9IDA7XG4gICAgICB0aGlzLmJsdXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5maWx0ZXJlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzZWQgPSB0aGlzLmZpbHRlcmVkSXRlbXNbdGhpcy5pbmRleF07XG4gICAgfVxuXG4gICAgdGhpcy5hdXRvU2Nyb2xsKDApO1xuICB9XG5cbiAgcGF0aFJlYWN0aXZlRm9ybUNvbnRyb2wobW9kZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5hc0Zvcm1Hcm91cCAmJiB0aGlzLm5hc0Zvcm1Db250cm9sTmFtZSkge1xuICAgICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLm5hc0Zvcm1Hcm91cC5nZXQodGhpcy5uYXNGb3JtQ29udHJvbE5hbWUpO1xuICAgICAgZm9ybUNvbnRyb2wucGF0Y2hWYWx1ZShtb2RlbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGV4dHJhT2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVzdWx0cykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHRzID0gdGhpcy5yZXN1bHRzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgZm9jdXNlZEl0ZW0gPSB0aGlzLmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0SXRlbUlkKHRoaXMuZm9jdXNlZCkpO1xuXG4gICAgaWYgKGZvY3VzZWRJdGVtKSB7XG4gICAgICByZXN1bHRzLnNjcm9sbFRvKDAsIDApO1xuICAgICAgcmVzdWx0cy5zY3JvbGxUbygwLCBmb2N1c2VkSXRlbS5vZmZzZXRUb3AgKyBleHRyYU9mZnNldCAtIHJlc3VsdHMuY2xpZW50SGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICh0aGlzLmxhYmVsICYmIHRoaXMubGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gaW5wdXRFbGVtZW50LnZhbHVlID8gJyMxNTI3M2YnIDogJyM2ZjZmNmYnO1xuICAgICAgdGhpcy5zcGFuLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm9yZGVyQ29sb3IgPSBpbnB1dEVsZW1lbnQudmFsdWUgPyAnIzE1MjczZicgOiAnIzZmNmY2Zic7XG4gICAgfVxuICB9XG5cbiAgc2V0UmVtb3ZlSWNvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGVsID8gJ3JlbW92ZS0tc2Vjb25kYXJ5JyA6ICdyZW1vdmUnO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIW5hc0Zvcm1Db250cm9sTmFtZTsgZWxzZSByZWFjdGl2ZUZvcm1cIj5cbiAgPGxhYmVsIFtpZF09XCJnZXRMYWJlbElkKClcIiAoaW5wdXQpPVwib25JbnB1dCgkZXZlbnQpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnd3JhcHBlcicsIFtvcGVuICYmICdhY3RpdmUnLCBsYWJlbEluc2lkZSAmJiAnbGFiZWwtaW5zaWRlJywgZXhpc3RzKHNlY29uZGFyeSkgJiYgJ3NlY29uZGFyeS1jb2xvciddKVwiXG4gICAgI2xhYmVsRWxlbWVudD5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiIGFyaWEtYXV0b2NvbXBsZXRlPVwibm9uZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICBbaWRdPVwiZ2V0SW5wdXRJZCgpXCIgW2F0dHIuYXJpYS1jb250cm9sc109XCJnZXRSZXN1bHRzSWQoKVwiIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwib3BlbiA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgW2F0dHIuYXJpYS1vd25zXT1cImdldFJlc3VsdHNJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCIgWyhuZ01vZGVsKV09XCJtb2RlbFwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAoZm9jdXMpPVwic2V0T3BlbigpXCIgKGlucHV0KT1cImZpbHRlcigpXCIgKGNsaWNrKT1cInNldE9wZW4oKVwiIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVhY3RpdmVGb3JtPlxuICA8bGFiZWwgW2lkXT1cImdldExhYmVsSWQoKVwiIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCd3cmFwcGVyJywgW29wZW4gJiYgJ2FjdGl2ZScsIGxhYmVsSW5zaWRlICYmICdsYWJlbC1pbnNpZGUnLCBleGlzdHMoc2Vjb25kYXJ5KSAmJiAnc2Vjb25kYXJ5LWNvbG9yJ10pXCIgW2Zvcm1Hcm91cF09XCJuYXNGb3JtR3JvdXBcIj5cbiAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdsYWJlbCcpXCIgI3NwYW4+e3tsYWJlbH19PC9zcGFuPlxuICAgIDxpbnB1dCAjaW5wdXQgdHlwZT1cInRleHRcIiByb2xlPVwiY29tYm9ib3hcIiBhcmlhLWF1dG9jb21wbGV0ZT1cIm5vbmVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbaWRdPVwiZ2V0SW5wdXRJZCgpXCJcbiAgICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiZ2V0UmVzdWx0c0lkKClcIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIm9wZW4gPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgIFthdHRyLmFyaWEtb3duc109XCJnZXRSZXN1bHRzSWQoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwibmFzRm9ybUNvbnRyb2xOYW1lXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdpbnB1dCcpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIChmb2N1cyk9XCJzZXRPcGVuKClcIiAoaW5wdXQpPVwiZmlsdGVyKClcIiAoY2xpY2spPVwic2V0T3BlbigpXCJcbiAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCIgLz5cbiAgICA8c3BhbiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ2ljb24nKVwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgcm9sZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAqbmdJZj1cIm1vZGVsOyBlbHNlIGlzRW1wdHlcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbENsZWFyXCJcbiAgICAgICAgKGNsaWNrKT1cImNsZWFyU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwic2V0UmVtb3ZlSWNvbigpXCI+PC9uYXMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPG5nLXRlbXBsYXRlICNpc0VtcHR5PlxuICAgICAgICA8bmFzLWljb24gW3R5cGVdPVwiJ3NtYWxsJ1wiIFtpY29uXT1cImljb25cIj48L25hcy1pY29uPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3NwYW4+XG4gIDwvbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuPGRpdiBbaWRdPVwiZ2V0UmVzdWx0c0lkKClcIiBbbmFzQ2xhc3NdPVwiZ2V0Q2xhc3MoJ3Jlc3VsdHMtd3JhcHBlcicsIFtleGlzdHMoc2Vjb25kYXJ5KSAmJiAnc2Vjb25kYXJ5LWNvbG9yJ10pXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJvcGVuID8gJ3RydWUnIDogJ2ZhbHNlJ1wiPlxuICA8dWwgI3Jlc3VsdHMgcm9sZT1cImxpc3Rib3hcIiAqbmdJZj1cIm9wZW5cIiBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiZ2V0TGFiZWxJZCgpXCIgW25hc0NsYXNzXT1cImdldENsYXNzKCdyZXN1bHRzJylcIj5cbiAgICA8bGkgcm9sZT1cIm9wdGlvblwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXNcIiBbaWRdPVwiZ2V0SXRlbUlkKGl0ZW0pXCJcbiAgICAgIFtuYXNDbGFzc109XCJnZXRDbGFzcygnbGlzdC1pdGVtJywgaXRlbS5pZCA9PT0gZm9jdXNlZD8uaWQgJiYgJ2ZvY3VzJylcIj5cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIFtuYXNDbGFzc109XCJnZXRDbGFzcygnaXRlbScsIGl0ZW0uaWQgPT09IGZvY3VzZWQ/LmlkICYmICdmb2N1cycpXCIgKGNsaWNrKT1cInNlbGVjdChpdGVtKVwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIj5cbiAgICAgICAgPHNwYW4gW25hc0NsYXNzXT1cImdldENsYXNzKCd0aXRsZScpXCI+e3tpdGVtLnRpdGxlfX08L3NwYW4+XG4gICAgICAgIDxzcGFuIFtuYXNDbGFzc109XCJnZXRDbGFzcygncHJlYW1ibGUnKVwiPnt7aXRlbS5wcmVhbWJsZX19PC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuPG5hcy1iYWNrZHJvcCAqbmdJZj1cIiFleGlzdHMoZGlzYWJsZUJhY2tkcm9wKVwiIFthcmlhTGFiZWxCYWNrZHJvcF09XCJhcmlhTGFiZWxCYWNrZHJvcFwiXG4gIFsoc2hvd0JhY2tkcm9wKV09XCJzaG93QmFja2Ryb3BcIj48L25hcy1iYWNrZHJvcD4iXX0=
|
|
@@ -12145,6 +12145,9 @@ class AutocompleteComponent extends NasComponentBase {
|
|
|
12145
12145
|
getInputId() {
|
|
12146
12146
|
return this.id ? this.id : `nas-autocomplete-input-${this.componentId}`;
|
|
12147
12147
|
}
|
|
12148
|
+
getItemId(item) {
|
|
12149
|
+
return `${item.id}-${this.componentId}`;
|
|
12150
|
+
}
|
|
12148
12151
|
setOpen() {
|
|
12149
12152
|
this.input.nativeElement.select();
|
|
12150
12153
|
this.open = true;
|
|
@@ -12186,8 +12189,13 @@ class AutocompleteComponent extends NasComponentBase {
|
|
|
12186
12189
|
case 'Tab':
|
|
12187
12190
|
case 'Enter':
|
|
12188
12191
|
if (!event.shiftKey) {
|
|
12189
|
-
event.
|
|
12190
|
-
|
|
12192
|
+
if (event.key === 'Enter') {
|
|
12193
|
+
event.preventDefault();
|
|
12194
|
+
this.focusOnNext.emit(event);
|
|
12195
|
+
}
|
|
12196
|
+
else if (this.open) {
|
|
12197
|
+
this.focusOnNext.emit(event);
|
|
12198
|
+
}
|
|
12191
12199
|
}
|
|
12192
12200
|
if (this.focused) {
|
|
12193
12201
|
this.modelValue = this.focused.title;
|
|
@@ -12273,7 +12281,7 @@ class AutocompleteComponent extends NasComponentBase {
|
|
|
12273
12281
|
return;
|
|
12274
12282
|
}
|
|
12275
12283
|
const results = this.results.nativeElement;
|
|
12276
|
-
const focusedItem = this.document.
|
|
12284
|
+
const focusedItem = this.document.getElementById(this.getItemId(this.focused));
|
|
12277
12285
|
if (focusedItem) {
|
|
12278
12286
|
results.scrollTo(0, 0);
|
|
12279
12287
|
results.scrollTo(0, focusedItem.offsetTop + extraOffset - results.clientHeight);
|
|
@@ -12290,11 +12298,11 @@ class AutocompleteComponent extends NasComponentBase {
|
|
|
12290
12298
|
return this.model ? 'remove--secondary' : 'remove';
|
|
12291
12299
|
}
|
|
12292
12300
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12293
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { id: "id", label: "label", labelInside: "labelInside", placeholder: "placeholder", icon: "icon", secondary: "secondary", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item.id\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
12301
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutocompleteComponent, selector: "nas-autocomplete", inputs: { id: "id", label: "label", labelInside: "labelInside", placeholder: "placeholder", icon: "icon", secondary: "secondary", items: "items", open: "open", model: "model", disableBackdrop: "disableBackdrop", nasFormControlName: "nasFormControlName", nasFormGroup: "nasFormGroup", ariaLabelBackdrop: "ariaLabelBackdrop", ariaLabelClear: "ariaLabelClear" }, outputs: { focusOnNext: "focusOnNext", selectedChange: "selectedChange", openChange: "openChange", modelChange: "modelChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "span", first: true, predicate: ["span"], descendants: true }, { propertyName: "results", first: true, predicate: ["results"], descendants: true }, { propertyName: "labelElement", first: true, predicate: ["labelDOM"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"getItemId(item)\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NasClassDirective, selector: "[nasClass]", inputs: ["nasClass", "attr.class"] }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: IconComponent, selector: "nas-icon", inputs: ["icon", "type", "isIndicator", "lightCircularBackground", "cssClass"] }, { kind: "component", type: BackdropComponent, selector: "nas-backdrop", inputs: ["showBackdrop", "ariaLabelBackdrop"], outputs: ["showBackdropChange"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
12294
12302
|
}
|
|
12295
12303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
12296
12304
|
type: Component,
|
|
12297
|
-
args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"item
|
|
12305
|
+
args: [{ selector: 'nas-autocomplete', template: "<ng-container *ngIf=\"!nasFormControlName; else reactiveForm\">\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\"\n #labelElement>\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-haspopup=\"true\" aria-autocomplete=\"none\" autocomplete=\"off\"\n [id]=\"getInputId()\" [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [nasClass]=\"getClass('input')\" [(ngModel)]=\"model\" [placeholder]=\"placeholder\"\n (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\" (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-container>\n<ng-template #reactiveForm>\n <label [id]=\"getLabelId()\" (input)=\"onInput($event)\" [attr.aria-label]=\"label\" [nasClass]=\"getClass('wrapper', [open && 'active', labelInside && 'label-inside', exists(secondary) && 'secondary-color'])\" [formGroup]=\"nasFormGroup\">\n <span *ngIf=\"label\" [nasClass]=\"getClass('label')\" #span>{{label}}</span>\n <input #input type=\"text\" role=\"combobox\" aria-autocomplete=\"none\" autocomplete=\"off\" [id]=\"getInputId()\"\n [attr.aria-controls]=\"getResultsId()\" [attr.aria-expanded]=\"open ? 'true' : 'false'\"\n [attr.aria-owns]=\"getResultsId()\" [formControlName]=\"nasFormControlName\" [nasClass]=\"getClass('input')\"\n [placeholder]=\"placeholder\" (focus)=\"setOpen()\" (input)=\"filter()\" (click)=\"setOpen()\"\n (keydown)=\"onKeyDown($event)\" />\n <span [nasClass]=\"getClass('icon')\">\n <button type=\"button\" role=\"button\" tabindex=\"-1\" *ngIf=\"model; else isEmpty\" [attr.aria-label]=\"ariaLabelClear\"\n (click)=\"clearSelected($event)\">\n <nas-icon [type]=\"setRemoveIcon()\"></nas-icon>\n </button>\n <ng-template #isEmpty>\n <nas-icon [type]=\"'small'\" [icon]=\"icon\"></nas-icon>\n </ng-template>\n </span>\n </label>\n</ng-template>\n<div [id]=\"getResultsId()\" [nasClass]=\"getClass('results-wrapper', [exists(secondary) && 'secondary-color'])\" [attr.aria-expanded]=\"open ? 'true' : 'false'\">\n <ul #results role=\"listbox\" *ngIf=\"open\" [attr.aria-labelledby]=\"getLabelId()\" [nasClass]=\"getClass('results')\">\n <li role=\"option\" *ngFor=\"let item of filteredItems\" [id]=\"getItemId(item)\"\n [nasClass]=\"getClass('list-item', item.id === focused?.id && 'focus')\">\n <button type=\"button\" [nasClass]=\"getClass('item', item.id === focused?.id && 'focus')\" (click)=\"select(item)\"\n tabindex=\"-1\">\n <span [nasClass]=\"getClass('title')\">{{item.title}}</span>\n <span [nasClass]=\"getClass('preamble')\">{{item.preamble}}</span>\n </button>\n </li>\n </ul>\n</div>\n<nas-backdrop *ngIf=\"!exists(disableBackdrop)\" [ariaLabelBackdrop]=\"ariaLabelBackdrop\"\n [(showBackdrop)]=\"showBackdrop\"></nas-backdrop>", styles: ["@keyframes fade-in{0%{opacity:0}}@keyframes fade-in-down{0%{opacity:0;transform:translateY(-30px)}}@keyframes fade-in-left{0%{opacity:0;transform:translate(-30px)}}@keyframes fade-in-right{0%{opacity:0;transform:translate(30px)}}@keyframes fade-out{to{opacity:0}}@keyframes flip-in{0%{opacity:0;transform:rotateX(-90deg)}40%{opacity:1;transform:rotateX(10deg)}}@keyframes flip-out{to{opacity:0;transform:rotateX(-90deg)}}@keyframes pop-in-from-top{0%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-100,1,1);opacity:0}6.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-30.227,1,1)}13.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,1.76,1,1)}20%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,7.08,1,1)}26.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,3.838,1,1)}33.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.902,1,1);opacity:1}40%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.237,1,1)}46.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.312,1,1)}53.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.141,1,1)}60%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.021,1,1)}66.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.015,1,1)}73.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.013,1,1)}80%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,.005,1,1)}86.67%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1)}93.33%{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}to{transform:matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,-.001,1,1);-webkit-transform:translate3d(0,0,0)}}.nas-autocomplete__label{font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;display:block;position:relative;z-index:3;margin-bottom:6px}.nas-autocomplete__input{height:48px;position:relative;z-index:3;line-height:1;margin:0;border:2px solid #6F6F6F}.nas-autocomplete__icon{position:absolute;z-index:4;right:16px;bottom:12px}.nas-autocomplete__wrapper{position:relative;display:block;z-index:0}.nas-autocomplete__wrapper--active{z-index:3}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label{font-size:14px;line-height:20px;background-color:#fff;padding:9px 16px 0;margin-bottom:0;border:2px solid #6F6F6F;border-bottom:none}.nas-autocomplete__wrapper--label-inside .nas-autocomplete__label~.nas-autocomplete__icon{bottom:21px;right:24px}.nas-autocomplete__wrapper--label-inside input{height:35px;padding:12px 16px;border-top:none}.nas-autocomplete__wrapper--secondary-color .nas-autocomplete__label,.nas-autocomplete__wrapper--secondary-color input{border-color:#15273f}.nas-autocomplete__results{margin-top:-8px;position:absolute;z-index:3;width:100%;top:2px;left:0;max-height:50vh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border:2px solid #15273F;background-color:#fff;transform-origin:center top;transform-style:preserve-3d;-webkit-backface-visibility:hidden;backface-visibility:hidden;animation:results .65s ease both;scrollbar-width:none;-ms-overflow-style:none;border-top:0;border-bottom:0}.nas-autocomplete__results::-webkit-scrollbar{display:none}.nas-autocomplete__backdrop{display:block;position:fixed;z-index:2;top:0;left:0;width:100%;height:100%;color:transparent;background-color:#0b14202b;animation:backdrop .7s ease-out both}.nas-autocomplete__item{display:block;position:relative;z-index:2;width:100%;text-align:left;padding:12px 16px;margin-top:-1px;outline:0;border-bottom:2px solid #E9E7E4}.nas-autocomplete__item--focus,.nas-autocomplete__item:focus{background-color:#ebf4ff;border-bottom-color:#15273f;border-top:2px solid #15273F}.nas-autocomplete__item--focus,.nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__item:focus,.nas-autocomplete__item:focus .nas-autocomplete__title,.nas-autocomplete__item:focus .nas-autocomplete__preamble{color:#15273f}.nas-autocomplete__item:hover{background-color:#f8f8f8}.nas-autocomplete__title{display:inline-block;font-family:NorwegianTextPro,Arial,Helvetica Neue,Helvetica,sans-serif;font-weight:700;line-height:1;color:#15273f;margin-bottom:3px}.nas-autocomplete__preamble{display:block;font-size:14px}.nas-autocomplete__results-wrapper{position:relative;z-index:4;perspective:1000px}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__results{top:1px;border:1px solid #6F6F6F}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{border-top:1px solid #E9E7E4;border-bottom:1px solid #E9E7E4;background-color:#f1f1f1}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover{background-color:#15273f}.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item--focus .nas-autocomplete__preamble,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__title,.nas-autocomplete__results-wrapper--secondary-color .nas-autocomplete__item:hover .nas-autocomplete__preamble{color:#fff}@keyframes results{0%{transform:rotateX(-90deg)}40%{transform:rotateX(20deg)}to{transform:rotateX(0)}}@keyframes backdrop{0%{opacity:0}}\n"] }]
|
|
12298
12306
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
12299
12307
|
type: Inject,
|
|
12300
12308
|
args: [DOCUMENT]
|