@leanix/components 0.3.24 → 0.3.27

Sign up to get free protection for your applications and to get access to all the features.
@@ -226,7 +226,7 @@ SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
226
226
  multi: true,
227
227
  useExisting: forwardRef(() => SingleSelectComponent)
228
228
  }
229
- ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "explicitSelectedOption", first: true, predicate: SelectedOptionDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "dropdownComponent", first: true, predicate: BasicDropdownComponent, descendants: true }], viewQueries: [{ propertyName: "implicitSelectedOption", first: true, predicate: ["selectedOption"], descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "queryInput", first: true, predicate: ["queryInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear\" class=\"far fa-times\" (click)=\"!disabled && removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i1.AsyncPipe } });
229
+ ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "explicitSelectedOption", first: true, predicate: SelectedOptionDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "dropdownComponent", first: true, predicate: BasicDropdownComponent, descendants: true }], viewQueries: [{ propertyName: "implicitSelectedOption", first: true, predicate: ["selectedOption"], descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "queryInput", first: true, predicate: ["queryInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear && !disabled\" class=\"far fa-times\" (click)=\"removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit;color:#8594ad}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i1.AsyncPipe } });
230
230
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SingleSelectComponent, decorators: [{
231
231
  type: Component,
232
232
  args: [{ selector: 'lx-single-select', providers: [
@@ -235,7 +235,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
235
235
  multi: true,
236
236
  useExisting: forwardRef(() => SingleSelectComponent)
237
237
  }
238
- ], template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear\" class=\"far fa-times\" (click)=\"!disabled && removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"] }]
238
+ ], template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear && !disabled\" class=\"far fa-times\" (click)=\"removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit;color:#8594ad}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"] }]
239
239
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selection: [{
240
240
  type: Input
241
241
  }], selectionBackground: [{
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
275
275
  type: ViewChild,
276
276
  args: ['queryInput', { static: true }]
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hG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QUs7Z0JBRXFDLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGluY2x1ZGVzLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3QtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdGVkT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RlZC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0xFRlQsIEFSUk9XX1JJR0hULCBCQUNLU1BBQ0UsIEVTQ0FQRSwgVEFCIH0gZnJvbSAnLi4vLi4vaGVscGVycy9rZXktY29kZXMuY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyB9IGZyb20gJy4uLy4uL2hlbHBlcnMva2V5Ym9hcmQtbmF2aWdhdGlvbi5oZWxwZXJzJztcbmltcG9ydCB7IEJhc2VTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFBhZGRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzaWMtZHJvcGRvd24vYmFzaWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVNlbGVjdFNpemUgPSAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ3NlbGVjdDInIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW5nbGVTZWxlY3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVOZXdDdXJzb3JQb3N0aW9uT25LZXlib2FyZE5hdmlnYXRpb24oY3Vyc29yUG9zaXRpb246IG51bWJlciwga2V5Q29kZTogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEFSUk9XX0xFRlQ6XG4gICAgICAgIGN1cnNvclBvc2l0aW9uLS07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBUlJPV19SSUdIVDpcbiAgICAgICAgY3Vyc29yUG9zaXRpb24rKztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3JQb3NpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24oY3Vyc29yUG9zaXRpb246IG51bWJlciwga2V5Q29kZTogbnVtYmVyKTogS2V5Ym9hcmRTZWxlY3RBY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19SSUdIVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQ7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA9PT0gLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLkxBU1Q7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX0xFRlQpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5QUkVWO1xuICAgIH1cbiAgICBpZiAoY3Vyc29yUG9zaXRpb24gPD0gLTEgJiYga2V5Q29kZSA9PT0gQkFDS1NQQUNFKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55O1xuICBASW5wdXQoKSBzZWxlY3Rpb25CYWNrZ3JvdW5kOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJztcbiAgQElucHV0KCkgc2l6ZTogU2luZ2xlU2VsZWN0U2l6ZSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgZHJvcGRvd25XaWR0aFNjYWxlOiAnMXgnIHwgJzEuNXgnIHwgJzJ4JyA9ICcxeCc7XG4gIEBJbnB1dCgpIHBhZGRpbmc/OiBTaW5nbGVTZWxlY3RQYWRkaW5nID0gJ2RlZmF1bHQnO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3REcm9wZG93bkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0RHJvcGRvd24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFNlbGVjdGVkT3B0aW9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRTZWxlY3RlZE9wdGlvbj86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQmFzaWNEcm9wZG93bkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZHJvcGRvd25Db21wb25lbnQ/OiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGVkT3B0aW9uJywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXRTZWxlY3RlZE9wdGlvbiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXREcm9wZG93biE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdFNlbGVjdGVkT3B0aW9uIHx8IHRoaXMuaW1wbGljaXRTZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIGdldCBkcm9wZG93blRtcGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwbGljaXREcm9wZG93biB8fCB0aGlzLmltcGxpY2l0RHJvcGRvd247XG4gIH1cblxuICBASW5wdXQoKSBhbGxvd0NsZWFyID0gdHJ1ZTtcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmtJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgncXVlcnlJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHF1ZXJ5SW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBjdXJzb3JTdHlsZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWxsb3dRdWVyeSkge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdwb2ludGVyJztcbiAgICB9XG4gIH1cblxuICBnZXQgZHJvcGRvd25XaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodGhpcy5kcm9wZG93bldpZHRoU2NhbGUpIHtcbiAgICAgIGNhc2UgJzF4JzpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNhc2UgJzEuNXgnOlxuICAgICAgICByZXR1cm4gJzE1MCUnO1xuICAgICAgY2FzZSAnMngnOlxuICAgICAgICByZXR1cm4gJzIwMCUnO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5xdWVyeUNvbnRyb2wucmVzZXQoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0FuZE9wZW4oKSB7XG4gICAgdGhpcy5xdWVyeUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLm9wZW4ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLm9wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKG9wZW4pID0+IG9wZW4gJiYgISF0aGlzLmRyb3Bkb3duQ29tcG9uZW50KSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuc2VsZWN0aW9uKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRldGVybWluZUhpZ2hsaWdodEluZGV4KHRoaXMuZHJvcGRvd25Db21wb25lbnQhLm9wdGlvbnMsIHNlbGVjdGlvbiwgdGhpcy5kcm9wZG93bkNvbXBvbmVudCEuaXRlbUtleSk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQhLnNlbGVjdChpbmRleCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIGtleWJvYXJkIGV2ZW50IGhhbmRsaW5nXG4gICAgY29uc3Qgc291cmNlRWxlbWVudCA9IHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uIGZvciB0aGUgc2VsZWN0aW9uXG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHNvdXJjZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLm1hcFRvRXZlbnRTZXQoZXZlbnQsIHNvdXJjZUVsZW1lbnQsIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uKSksXG4gICAgICAgIHRhcCgoZXZlbnRTZXQpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBCQUNLU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBUQUIpIHtcbiAgICAgICAgICAgICAgLy8gaWYgcXVlcnlpbmcgaXMgZGlzYWJsZWQsIG9ubHkgdGhlIHRhYiBrZXkgcHJlc3MgZXZlbnQgd2lsbCBiZSBwcm9wYWdhdGVkLCBzbyB0aGF0IHlvdSBjYW4gc3RpbGwgZGVmb2N1cy5cbiAgICAgICAgICAgICAgZXZlbnRTZXQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmFsbG93Q2xlYXJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09ICdudW1iZXInICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IC0xICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IHRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudFNldCkgPT4gZXZlbnRTZXQuZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfUklHSFQsIEFSUk9XX0xFRlQsIEJBQ0tTUEFDRV0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gU2luZ2xlU2VsZWN0Q29tcG9uZW50LmNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgZXZlbnQua2V5Q29kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uOiB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbixcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocG9zaXRpb25TZXQpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24ocG9zaXRpb25TZXQuY3Vyc29yUG9zaXRpb24sIHBvc2l0aW9uU2V0LmV2ZW50LmtleUNvZGUpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20gbW92aW5nIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hpbGUgd2UgYXJlIHN0aWxsIGluIHRoZSBzZWxlY3Rpb24gaXRlbXNcbiAgICAgICAgICAgIHBvc2l0aW9uU2V0LmV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBjb25zdCBrZXlib2FyZEV2ZW50cyA9IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyhzb3VyY2VFbGVtZW50LCB0aGlzLmRlc3Ryb3llZCQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMudmVydGljYWxOYXZpZ2F0aW9uJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuY2xvc2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBrZXlib2FyZEV2ZW50cy5kcm9wZG93bktleWJvYXJkRXZlbnQkLnN1YnNjcmliZSh0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuZW50ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pKTtcbiAgICBrZXlib2FyZEV2ZW50cy5zcGFjZSQucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuYWxsb3dRdWVyeSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMub3Blbk9uQXJyb3dEb3duJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBvcHRpb247XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG9wdGlvbik7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uob3B0aW9uKTtcblxuICAgIHRoaXMucmVzZXRTZWxlY3RTdGF0ZSgpO1xuXG4gICAgLy8gVGhpcyB0aW1lb3V0IG1ha2VzIHN1cmUgdGhhdCB0aGUgZHJvcGRvd24gd2lsbCBiZSBjbG9zZWQgYXQgdGhlIGVuZFxuICAgIC8vIG9mIGFsbCB0aGUgY2FsbGJhY2tzIGluIHRoZSBvcGVuIHN1YnNjcmlwdGlvbnMuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGlvbik7XG5cbiAgICB0aGlzLnJlc2V0U2VsZWN0U3RhdGUoKTtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueSkge31cblxuICB3cml0ZVZhbHVlKG5ld1NlbGVjdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXdTZWxlY3Rpb247XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSkge31cblxuICBmb2N1c2VkVmlhVGFiKCkge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVIaWdobGlnaHRJbmRleChvcHRpb25zOiBhbnlbXSwgc2VsZWN0aW9uOiBhbnksIGl0ZW1LZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXRlbUtleVxuICAgICAgPyBvcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBpc0VxdWFsKGdldChpdGVtS2V5LCBzZWxlY3Rpb24pLCBnZXQoaXRlbUtleSwgb3B0aW9uKSkgfHwgaXNFcXVhbChzZWxlY3Rpb24sIGdldChpdGVtS2V5LCBvcHRpb24pKSlcbiAgICAgIDogb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gaXNFcXVhbChzZWxlY3Rpb24sIG9wdGlvbikpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZHJvcGRvd25PcGVuXCIgY2xhc3M9XCJiYWNrZHJvcFwiIChjbGljayk9XCJoYW5kbGVCYWNrZHJvcENsaWNrKCRldmVudClcIj48L2Rpdj5cbjxkaXZcbiAgW2x4TWFya0ludmFsaWRdPVwibWFya0ludmFsaWRcIlxuICBjbGFzcz1cInNlbGVjdENvbnRhaW5lciB7eyBwYWRkaW5nIH19UGFkZGluZ1wiXG4gIFtjbGFzcy5vcGVuXT1cImRyb3Bkb3duT3BlblwiXG4gIFtjbGFzcy50b3BdPVwiKGRyb3Bkb3duRGlyZWN0aW9uJCB8IGFzeW5jKSA9PT0gJ1RPUCdcIlxuICBbY2xhc3MuYm90dG9tXT1cIihkcm9wZG93bkRpcmVjdGlvbiQgfCBhc3luYykgPT09ICdCT1RUT00nXCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmdyYXlCYWNrZ3JvdW5kXT1cInNlbGVjdGlvbkJhY2tncm91bmQgPT09ICdncmF5J1wiXG4gIFtjbGFzcy5kZWZhdWx0U2l6ZV09XCJzaXplID09PSAnZGVmYXVsdCdcIlxuICBbY2xhc3Muc21hbGxTaXplXT1cInNpemUgPT09ICdzbWFsbCdcIlxuICBbY2xhc3Muc2VsZWN0MlNpemVdPVwic2l6ZSA9PT0gJ3NlbGVjdDInXCJcbiAgW2NsYXNzLmxhcmdlU2l6ZV09XCJzaXplID09PSAnbGFyZ2UnXCJcbiAgW3N0eWxlLmN1cnNvcl09XCJjdXJzb3JTdHlsZVwiXG4gIFtjbGFzcy5mb2N1c2VkXT1cImlzSW5wdXRGb2N1c2VkXCJcbiAgW2NsYXNzLmZvY3VzZWRWaXNpYmxlXT1cImlzSW5wdXRGb2N1c2VkVmlhVGFiXCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudC50YXJnZXQgPT09IHRvZ2dsZSlcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0Q29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGlvbiAmJiAhcXVlcnlJbnB1dD8udmFsdWVcIiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgW2F0dHIudGl0bGVdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiFhbGxvd1F1ZXJ5IHx8ICFxdWVyeUlucHV0Py52YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLmxvd2VyT3BhY2l0eV09XCJhbGxvd1F1ZXJ5ICYmICFxdWVyeUlucHV0Py52YWx1ZSAmJiBkcm9wZG93bk9wZW5cIlxuICAgICAgICBbY2xhc3MubGlnaHRncmF5Q29sb3JdPVwiIWFsbG93UXVlcnkgJiYgZHJvcGRvd25PcGVuXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZm9jdXMoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZE9wdGlvblRtcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0XG4gICAgICAgICNxdWVyeUlucHV0XG4gICAgICAgIGNsYXNzPVwicXVlcnlJbnB1dFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2NsYXNzLmlzSGlkZGVuXT1cIiFhbGxvd1F1ZXJ5XCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAoZm9jdXMpPVwiaXNJbnB1dEZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgKGJsdXIpPVwiaXNJbnB1dEZvY3VzZWQgPSBmYWxzZTsgaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSBmYWxzZTsgYmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAudGFiKT1cImZvY3VzZWRWaWFUYWIoKVwiXG4gICAgICAgIChrZXl1cC5zaGlmdC50YWIpPVwiZm9jdXNlZFZpYVRhYigpXCJcbiAgICAgICAgW3RhYkluZGV4XT1cImRpc2FibGVkID8gLTEgOiB0YWJJbmRleFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWVyeUNvbnRyb2xcIlxuICAgICAgICBbcmVhZE9ubHldPVwiIWFsbG93UXVlcnlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbkNvbnRhaW5lclwiPlxuICAgICAgPGkgKm5nSWY9XCJzZWxlY3Rpb24gJiYgYWxsb3dDbGVhclwiIGNsYXNzPVwiZmFyIGZhLXRpbWVzXCIgKGNsaWNrKT1cIiFkaXNhYmxlZCAmJiByZW1vdmVTZWxlY3Rpb24oKVwiPjwvaT5cbiAgICAgIDxpICN0b2dnbGUgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zQ29udGFpbmVyXCIgW3N0eWxlLndpZHRoXT1cImRyb3Bkb3duV2lkdGhcIiAjb3B0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25PcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25UbXBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRPcHRpb24+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5zZWxlY3RlZE9wdGlvblwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZHJvcGRvd25Db21wb25lbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFFWixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hG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QUs7Z0JBRXFDLFVBQVU7c0JBQXBELFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBnZXQsIGluY2x1ZGVzLCBpc0VxdWFsIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFNlbGVjdERyb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3QtZHJvcGRvd24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNlbGVjdGVkT3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RlZC1vcHRpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEFSUk9XX0xFRlQsIEFSUk9XX1JJR0hULCBCQUNLU1BBQ0UsIEVTQ0FQRSwgVEFCIH0gZnJvbSAnLi4vLi4vaGVscGVycy9rZXktY29kZXMuY29uc3RhbnRzJztcbmltcG9ydCB7IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyB9IGZyb20gJy4uLy4uL2hlbHBlcnMva2V5Ym9hcmQtbmF2aWdhdGlvbi5oZWxwZXJzJztcbmltcG9ydCB7IEJhc2VTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9tb2RlbHMvYmFzZS1zZWxlY3QuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFBhZGRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZSc7XG5pbXBvcnQgeyBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzaWMtZHJvcGRvd24vYmFzaWMtZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZVNlbGVjdFNpemUgPSAnZGVmYXVsdCcgfCAnc21hbGwnIHwgJ3NlbGVjdDInIHwgJ2xhcmdlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydzaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTaW5nbGVTZWxlY3RDb21wb25lbnQpXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcHVibGljIHN0YXRpYyBjYWxjdWxhdGVOZXdDdXJzb3JQb3N0aW9uT25LZXlib2FyZE5hdmlnYXRpb24oY3Vyc29yUG9zaXRpb246IG51bWJlciwga2V5Q29kZTogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChrZXlDb2RlKSB7XG4gICAgICBjYXNlIEFSUk9XX0xFRlQ6XG4gICAgICAgIGN1cnNvclBvc2l0aW9uLS07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBBUlJPV19SSUdIVDpcbiAgICAgICAgY3Vyc29yUG9zaXRpb24rKztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjdXJzb3JQb3NpdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24oY3Vyc29yUG9zaXRpb246IG51bWJlciwga2V5Q29kZTogbnVtYmVyKTogS2V5Ym9hcmRTZWxlY3RBY3Rpb24gfCB1bmRlZmluZWQge1xuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8PSAtMSAmJiBrZXlDb2RlID09PSBBUlJPV19SSUdIVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQ7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA9PT0gLTEgJiYga2V5Q29kZSA9PT0gQVJST1dfTEVGVCkge1xuICAgICAgcmV0dXJuIEtleWJvYXJkU2VsZWN0QWN0aW9uLkxBU1Q7XG4gICAgfVxuICAgIGlmIChjdXJzb3JQb3NpdGlvbiA8IC0xICYmIGtleUNvZGUgPT09IEFSUk9XX0xFRlQpIHtcbiAgICAgIHJldHVybiBLZXlib2FyZFNlbGVjdEFjdGlvbi5QUkVWO1xuICAgIH1cbiAgICBpZiAoY3Vyc29yUG9zaXRpb24gPD0gLTEgJiYga2V5Q29kZSA9PT0gQkFDS1NQQUNFKSB7XG4gICAgICByZXR1cm4gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNlbGVjdGlvbjogYW55O1xuICBASW5wdXQoKSBzZWxlY3Rpb25CYWNrZ3JvdW5kOiAnd2hpdGUnIHwgJ2dyYXknID0gJ3doaXRlJztcbiAgQElucHV0KCkgc2l6ZTogU2luZ2xlU2VsZWN0U2l6ZSA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgZHJvcGRvd25XaWR0aFNjYWxlOiAnMXgnIHwgJzEuNXgnIHwgJzJ4JyA9ICcxeCc7XG4gIEBJbnB1dCgpIHBhZGRpbmc/OiBTaW5nbGVTZWxlY3RQYWRkaW5nID0gJ2RlZmF1bHQnO1xuXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChTZWxlY3REcm9wZG93bkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pIGV4cGxpY2l0RHJvcGRvd24/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKFNlbGVjdGVkT3B0aW9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRTZWxlY3RlZE9wdGlvbj86IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoQmFzaWNEcm9wZG93bkNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgZHJvcGRvd25Db21wb25lbnQ/OiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdGVkT3B0aW9uJywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXRTZWxlY3RlZE9wdGlvbiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ2Ryb3Bkb3duJywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXREcm9wZG93biE6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9uVG1wbCgpIHtcbiAgICByZXR1cm4gdGhpcy5leHBsaWNpdFNlbGVjdGVkT3B0aW9uIHx8IHRoaXMuaW1wbGljaXRTZWxlY3RlZE9wdGlvbjtcbiAgfVxuXG4gIGdldCBkcm9wZG93blRtcGwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwbGljaXREcm9wZG93biB8fCB0aGlzLmltcGxpY2l0RHJvcGRvd247XG4gIH1cblxuICBASW5wdXQoKSBhbGxvd0NsZWFyID0gdHJ1ZTtcbiAgQElucHV0KCkgdGFiSW5kZXg6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgpIG1hcmtJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZCgncXVlcnlJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIHF1ZXJ5SW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBpc0lucHV0Rm9jdXNlZFZpYVRhYiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdldCBjdXJzb3JTdHlsZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICdkZWZhdWx0JztcbiAgICB9IGVsc2UgaWYgKHRoaXMuYWxsb3dRdWVyeSkge1xuICAgICAgcmV0dXJuICd0ZXh0JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdwb2ludGVyJztcbiAgICB9XG4gIH1cblxuICBnZXQgZHJvcGRvd25XaWR0aCgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHN3aXRjaCAodGhpcy5kcm9wZG93bldpZHRoU2NhbGUpIHtcbiAgICAgIGNhc2UgJzF4JzpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIGNhc2UgJzEuNXgnOlxuICAgICAgICByZXR1cm4gJzE1MCUnO1xuICAgICAgY2FzZSAnMngnOlxuICAgICAgICByZXR1cm4gJzIwMCUnO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0SW5wdXQoKSB7XG4gICAgdGhpcy5xdWVyeUNvbnRyb2wucmVzZXQoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBmb2N1c0FuZE9wZW4oKSB7XG4gICAgdGhpcy5xdWVyeUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB0aGlzLm9wZW4ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICB0aGlzLm9wZW5cbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICBmaWx0ZXIoKG9wZW4pID0+IG9wZW4gJiYgISF0aGlzLmRyb3Bkb3duQ29tcG9uZW50KSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuc2VsZWN0aW9uKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHNlbGVjdGlvbikgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmRldGVybWluZUhpZ2hsaWdodEluZGV4KHRoaXMuZHJvcGRvd25Db21wb25lbnQhLm9wdGlvbnMsIHNlbGVjdGlvbiwgdGhpcy5kcm9wZG93bkNvbXBvbmVudCEuaXRlbUtleSk7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25Db21wb25lbnQhLnNlbGVjdChpbmRleCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Rmlyc3RPcHRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGaXJzdE9wdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIC8vIGtleWJvYXJkIGV2ZW50IGhhbmRsaW5nXG4gICAgY29uc3Qgc291cmNlRWxlbWVudCA9IHRoaXMucXVlcnlJbnB1dC5uYXRpdmVFbGVtZW50O1xuICAgIC8vIGhhbmRsZSBrZXlib2FyZCBuYXZpZ2F0aW9uIGZvciB0aGUgc2VsZWN0aW9uXG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KHNvdXJjZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoKGV2ZW50KSA9PiB0aGlzLm1hcFRvRXZlbnRTZXQoZXZlbnQsIHNvdXJjZUVsZW1lbnQsIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uKSksXG4gICAgICAgIHRhcCgoZXZlbnRTZXQpID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBCQUNLU1BBQ0UpIHtcbiAgICAgICAgICAgIGlmIChldmVudFNldC5ldmVudC5rZXlDb2RlICE9PSBUQUIpIHtcbiAgICAgICAgICAgICAgLy8gaWYgcXVlcnlpbmcgaXMgZGlzYWJsZWQsIG9ubHkgdGhlIHRhYiBrZXkgcHJlc3MgZXZlbnQgd2lsbCBiZSBwcm9wYWdhdGVkLCBzbyB0aGF0IHlvdSBjYW4gc3RpbGwgZGVmb2N1cy5cbiAgICAgICAgICAgICAgZXZlbnRTZXQuZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnRTZXQudmlydHVhbEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwICYmXG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5rZXlDb2RlID09PSBCQUNLU1BBQ0UgJiZcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uICYmXG4gICAgICAgICAgICB0aGlzLmFsbG93Q2xlYXJcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3ZlU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPT09ICdudW1iZXInICYmIGV2ZW50U2V0LmlucHV0Q3Vyc29yUG9zaXRpb24gPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgfSBlbHNlIGlmIChldmVudFNldC52aXJ0dWFsQ3Vyc29yUG9zaXRpb24gPT09IC0xICYmIGV2ZW50U2V0LmV2ZW50LmtleUNvZGUgPT09IEFSUk9XX1JJR0hUKSB7XG4gICAgICAgICAgICBldmVudFNldC5ldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25LZXlib2FyZFNlbGVjdEFjdGlvbiQubmV4dChLZXlib2FyZFNlbGVjdEFjdGlvbi5VTlNFTEVDVCk7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbiA9IDA7XG4gICAgICAgICAgICBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID0gdW5kZWZpbmVkOyAvLyBzZXQgdG8gbnVsbCB0byBwcmV2ZW50IGNvbnRpbnVpbmcgaW4gdGhlIHN0cmVhbVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbHRlcigoZXZlbnRTZXQpID0+IHRoaXMuYWxsb3dRdWVyeSAmJiBldmVudFNldC5pbnB1dEN1cnNvclBvc2l0aW9uID09PSAwKSxcbiAgICAgICAgbWFwKChldmVudFNldCkgPT4gZXZlbnRTZXQuZXZlbnQpLFxuICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBpbmNsdWRlcyhldmVudC5rZXlDb2RlLCBbQVJST1dfUklHSFQsIEFSUk9XX0xFRlQsIEJBQ0tTUEFDRV0pKSxcbiAgICAgICAgbWFwKChldmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uID0gU2luZ2xlU2VsZWN0Q29tcG9uZW50LmNhbGN1bGF0ZU5ld0N1cnNvclBvc3Rpb25PbktleWJvYXJkTmF2aWdhdGlvbihcbiAgICAgICAgICAgIHRoaXMudmlydHVhbEN1cnNvclBvc2l0aW9uLFxuICAgICAgICAgICAgZXZlbnQua2V5Q29kZVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uOiB0aGlzLnZpcnR1YWxDdXJzb3JQb3NpdGlvbixcbiAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgocG9zaXRpb25TZXQpID0+IHtcbiAgICAgICAgICBjb25zdCBhY3Rpb24gPSBTaW5nbGVTZWxlY3RDb21wb25lbnQuZ2V0S2V5Ym9hcmRTZWxlY3RBY3Rpb24ocG9zaXRpb25TZXQuY3Vyc29yUG9zaXRpb24sIHBvc2l0aW9uU2V0LmV2ZW50LmtleUNvZGUpO1xuICAgICAgICAgIGlmIChhY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgY3Vyc29yIGZyb20gbW92aW5nIGluIHRoZSBpbnB1dCBmaWVsZCwgd2hpbGUgd2UgYXJlIHN0aWxsIGluIHRoZSBzZWxlY3Rpb24gaXRlbXNcbiAgICAgICAgICAgIHBvc2l0aW9uU2V0LmV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY3Rpb247XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLnNlbGVjdGlvbktleWJvYXJkU2VsZWN0QWN0aW9uJCk7XG5cbiAgICBjb25zdCBrZXlib2FyZEV2ZW50cyA9IGdldEtleWJvYXJkTmF2aWdhdGlvbkV2ZW50cyhzb3VyY2VFbGVtZW50LCB0aGlzLmRlc3Ryb3llZCQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMudmVydGljYWxOYXZpZ2F0aW9uJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuY2xvc2UkLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBFU0NBUEUgJiYgdGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBrZXlib2FyZEV2ZW50cy5kcm9wZG93bktleWJvYXJkRXZlbnQkLnN1YnNjcmliZSh0aGlzLm9wdGlvbnNLZXlib2FyZFNlbGVjdEFjdGlvbiQpO1xuXG4gICAga2V5Ym9hcmRFdmVudHMuZW50ZXIkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pKTtcbiAgICBrZXlib2FyZEV2ZW50cy5zcGFjZSQucGlwZShmaWx0ZXIoKCkgPT4gIXRoaXMuYWxsb3dRdWVyeSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk9wZW4pIHtcbiAgICAgICAgdGhpcy5vcHRpb25zS2V5Ym9hcmRTZWxlY3RBY3Rpb24kLm5leHQoS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSk7XG4gICAgICB9XG4gICAgICB0aGlzLm9wZW4ubmV4dCghdGhpcy5kcm9wZG93bk9wZW4pO1xuICAgIH0pO1xuXG4gICAga2V5Ym9hcmRFdmVudHMub3Blbk9uQXJyb3dEb3duJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vcGVuLm5leHQodHJ1ZSkpO1xuICB9XG5cbiAgc2VsZWN0T3B0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBvcHRpb247XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KG9wdGlvbik7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uob3B0aW9uKTtcblxuICAgIHRoaXMucmVzZXRTZWxlY3RTdGF0ZSgpO1xuXG4gICAgLy8gVGhpcyB0aW1lb3V0IG1ha2VzIHN1cmUgdGhhdCB0aGUgZHJvcGRvd24gd2lsbCBiZSBjbG9zZWQgYXQgdGhlIGVuZFxuICAgIC8vIG9mIGFsbCB0aGUgY2FsbGJhY2tzIGluIHRoZSBvcGVuIHN1YnNjcmlwdGlvbnMuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLm9wZW4ubmV4dChmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICByZW1vdmVTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0aW9uKTtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLnNlbGVjdGlvbik7XG5cbiAgICB0aGlzLnJlc2V0U2VsZWN0U3RhdGUoKTtcbiAgfVxuXG4gIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IGFueSkge31cblxuICB3cml0ZVZhbHVlKG5ld1NlbGVjdGlvbjogYW55KSB7XG4gICAgdGhpcy5zZWxlY3Rpb24gPSBuZXdTZWxlY3Rpb247XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChfZm46IGFueSkge31cblxuICBmb2N1c2VkVmlhVGFiKCkge1xuICAgIHRoaXMuaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRlcm1pbmVIaWdobGlnaHRJbmRleChvcHRpb25zOiBhbnlbXSwgc2VsZWN0aW9uOiBhbnksIGl0ZW1LZXk/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaXRlbUtleVxuICAgICAgPyBvcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBpc0VxdWFsKGdldChpdGVtS2V5LCBzZWxlY3Rpb24pLCBnZXQoaXRlbUtleSwgb3B0aW9uKSkgfHwgaXNFcXVhbChzZWxlY3Rpb24sIGdldChpdGVtS2V5LCBvcHRpb24pKSlcbiAgICAgIDogb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gaXNFcXVhbChzZWxlY3Rpb24sIG9wdGlvbikpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiZHJvcGRvd25PcGVuXCIgY2xhc3M9XCJiYWNrZHJvcFwiIChjbGljayk9XCJoYW5kbGVCYWNrZHJvcENsaWNrKCRldmVudClcIj48L2Rpdj5cbjxkaXZcbiAgW2x4TWFya0ludmFsaWRdPVwibWFya0ludmFsaWRcIlxuICBjbGFzcz1cInNlbGVjdENvbnRhaW5lciB7eyBwYWRkaW5nIH19UGFkZGluZ1wiXG4gIFtjbGFzcy5vcGVuXT1cImRyb3Bkb3duT3BlblwiXG4gIFtjbGFzcy50b3BdPVwiKGRyb3Bkb3duRGlyZWN0aW9uJCB8IGFzeW5jKSA9PT0gJ1RPUCdcIlxuICBbY2xhc3MuYm90dG9tXT1cIihkcm9wZG93bkRpcmVjdGlvbiQgfCBhc3luYykgPT09ICdCT1RUT00nXCJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLmdyYXlCYWNrZ3JvdW5kXT1cInNlbGVjdGlvbkJhY2tncm91bmQgPT09ICdncmF5J1wiXG4gIFtjbGFzcy5kZWZhdWx0U2l6ZV09XCJzaXplID09PSAnZGVmYXVsdCdcIlxuICBbY2xhc3Muc21hbGxTaXplXT1cInNpemUgPT09ICdzbWFsbCdcIlxuICBbY2xhc3Muc2VsZWN0MlNpemVdPVwic2l6ZSA9PT0gJ3NlbGVjdDInXCJcbiAgW2NsYXNzLmxhcmdlU2l6ZV09XCJzaXplID09PSAnbGFyZ2UnXCJcbiAgW3N0eWxlLmN1cnNvcl09XCJjdXJzb3JTdHlsZVwiXG4gIFtjbGFzcy5mb2N1c2VkXT1cImlzSW5wdXRGb2N1c2VkXCJcbiAgW2NsYXNzLmZvY3VzZWRWaXNpYmxlXT1cImlzSW5wdXRGb2N1c2VkVmlhVGFiXCJcbiAgKGNsaWNrKT1cImhhbmRsZUNsaWNrKCRldmVudC50YXJnZXQgPT09IHRvZ2dsZSlcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2VsZWN0aW9uQ29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0Q29udGFpbmVyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGlvbiAmJiAhcXVlcnlJbnB1dD8udmFsdWVcIiBjbGFzcz1cInBsYWNlaG9sZGVyXCIgW2F0dHIudGl0bGVdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiFhbGxvd1F1ZXJ5IHx8ICFxdWVyeUlucHV0Py52YWx1ZVwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0aW9uXCJcbiAgICAgICAgW2NsYXNzLmxvd2VyT3BhY2l0eV09XCJhbGxvd1F1ZXJ5ICYmICFxdWVyeUlucHV0Py52YWx1ZSAmJiBkcm9wZG93bk9wZW5cIlxuICAgICAgICBbY2xhc3MubGlnaHRncmF5Q29sb3JdPVwiIWFsbG93UXVlcnkgJiYgZHJvcGRvd25PcGVuXCJcbiAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgZm9jdXMoKVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3RlZE9wdGlvblRtcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0XG4gICAgICAgICNxdWVyeUlucHV0XG4gICAgICAgIGNsYXNzPVwicXVlcnlJbnB1dFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2NsYXNzLmlzSGlkZGVuXT1cIiFhbGxvd1F1ZXJ5XCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgICAgICAoZm9jdXMpPVwiaXNJbnB1dEZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgKGJsdXIpPVwiaXNJbnB1dEZvY3VzZWQgPSBmYWxzZTsgaXNJbnB1dEZvY3VzZWRWaWFUYWIgPSBmYWxzZTsgYmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgICAoa2V5dXAudGFiKT1cImZvY3VzZWRWaWFUYWIoKVwiXG4gICAgICAgIChrZXl1cC5zaGlmdC50YWIpPVwiZm9jdXNlZFZpYVRhYigpXCJcbiAgICAgICAgW3RhYkluZGV4XT1cImRpc2FibGVkID8gLTEgOiB0YWJJbmRleFwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJxdWVyeUNvbnRyb2xcIlxuICAgICAgICBbcmVhZE9ubHldPVwiIWFsbG93UXVlcnlcIlxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbkNvbnRhaW5lclwiPlxuICAgICAgPGkgKm5nSWY9XCJzZWxlY3Rpb24gJiYgYWxsb3dDbGVhciAmJiAhZGlzYWJsZWRcIiBjbGFzcz1cImZhciBmYS10aW1lc1wiIChjbGljayk9XCJyZW1vdmVTZWxlY3Rpb24oKVwiPjwvaT5cbiAgICAgIDxpICN0b2dnbGUgY2xhc3M9XCJmYXMgZmEtYW5nbGUtZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zQ29udGFpbmVyXCIgW3N0eWxlLndpZHRoXT1cImRyb3Bkb3duV2lkdGhcIiAjb3B0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZHJvcGRvd25PcGVuXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZHJvcGRvd25UbXBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWRPcHRpb24+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIi5zZWxlY3RlZE9wdGlvblwiPjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCIuZHJvcGRvd25Db21wb25lbnRcIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -59,6 +59,7 @@ export class PopoverComponent {
59
59
  this.noMargin = false;
60
60
  this.allowOverflow = false;
61
61
  this.autoFocus = false;
62
+ this.restoreFocus = true;
62
63
  /**
63
64
  * If you have a popover, that should usually be displayed above or below its anchor,
64
65
  * and this anchor is in a scrollable container, you should set this to true.
@@ -167,10 +168,10 @@ export class PopoverComponent {
167
168
  }
168
169
  }
169
170
  PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
170
- PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", autoFocus: "autoFocus", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"], components: [{ type: i1.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
171
+ PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", autoFocus: "autoFocus", restoreFocus: "restoreFocus", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"restoreFocus\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"], components: [{ type: i1.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
171
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PopoverComponent, decorators: [{
172
173
  type: Component,
173
- args: [{ selector: 'lx-popover', template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"] }]
174
+ args: [{ selector: 'lx-popover', template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"restoreFocus\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"] }]
174
175
  }], propDecorators: { trigger: [{
175
176
  type: Input
176
177
  }], horizontalAlign: [{
@@ -183,6 +184,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
183
184
  type: Input
184
185
  }], autoFocus: [{
185
186
  type: Input
187
+ }], restoreFocus: [{
188
+ type: Input
186
189
  }], adaptMarginsForViewportAlignChange: [{
187
190
  type: Input
188
191
  }], opened: [{
@@ -199,4 +202,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
199
202
  type: ContentChild,
200
203
  args: [PopoverContentDirective, { read: TemplateRef, static: true }]
201
204
  }] } });
202
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFFLFVBQVUsRUFBc0QsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQUdyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlERztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFTVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFM0I7Ozs7Ozs7V0FPRztRQUNNLHVDQUFrQyxHQUFHLEtBQUssQ0FBQztRQUUxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWdCcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztLQW1HekI7SUExR0MsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksTUFBTTtR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O3NCQUE5RCxTQUFTO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFOEIsZUFBZTtzQkFBMUYsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2F0UG9wb3ZlciwgU2F0UG9wb3Zlckhvcml6b250YWxBbGlnbiwgU2F0UG9wb3ZlclZlcnRpY2FsQWxpZ24gfSBmcm9tICdAbmNzdGF0ZS9zYXQtcG9wb3Zlcic7XG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcG9wb3Zlci1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvcG9wb3Zlci1ob3Zlci5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEhPVyBUTyBVU0VcbiAqXG4gKiBUaGlzIHBvcG92ZXIgZW5jYXBzdWxhdGVzIHRoaXMgb3BlbiBzb3VyY2UgbGlicmFyeTogaHR0cHM6Ly9naXRodWIuY29tL25jc3RhdGUtc2F0L3BvcG92ZXIsXG4gKiBtYWtlIHN1cmUgdG8gYWxzbyBjaGVjayBvdXQgdGhlIGRvY3Mgb3ZlciB0aGVyZS5cbiAqXG4gKiBBcyBvZiB0b2RheSB0aGV5IGFyZSB0d28gdHJpZ2dlciBzdHJhdGVnaWVzIHRvIGRpc3BsYXkgYSBwb3BvdmVyLlxuICogMS4gU2hvdyBvbiBob3ZlcmluZyB0aGUgYW5jaG9yIGFuZCB3aGlsZSBob3ZlcmluZyB0aGUgcG9wb3ZlciBib2R5LlxuICogMi4gU2hvdyBvbiBjbGljayBhbmQgd2hpbGUgaG92ZXJpbmcgdGhlIHBvcG92ZXIgYm9keS5cbiAqXG4gKiBGb3IgdXNlIGNhc2UgMS4geW91IHdvdWxkIHVzZSB0aGUgbHhQb3BvdmVySG92ZXIgZGlyZWN0aXZlLCB3aGljaCBleHBvcnRzIGFzIGhvdmVyQW5jaG9yLlxuICpcbiAqIEV4YW1wbGU6XG4gKiA8ZGl2IGx4UG9wb3ZlckhvdmVyXG4gKiAgICAgIGhvdmVyQW5jaG9yXG4gKiAgICAgIHNhdFBvcG92ZXJBbmNob3JcbiAqICAgICAgI2FuY2hvcj1cImhvdmVyQW5jaG9yXCI+PC9kaXY+XG4gKiA8bHgtcG9wb3ZlciBbdHJpZ2dlcl09XCJhbmNob3JcIlxuICogICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiYWZ0ZXJcIlxuICogICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImNlbnRlclwiPlxuICogICAgPHA+UG9wb3ZlciBjb250ZW50PC9wPlxuICogPC9seC1wb3BvdmVyPlxuICpcbiAqIEZvciB1c2UgY2FzZSAyLiB5b3Ugd291bGQgdXNlIHRoZSBseFBvcG92ZXJDbGljayBkaXJlY3RpdmUsIHdoaWNoIGV4cG9ydHMgYXMgY2xpY2tBbmNob3IuXG4gKiBOb3RlOiBTaW5jZSB0aGUgb25seSBjb21wb25lbnQgd2hlcmUgd2UgdXNlIHRoZSBseFBvcG92ZXJDbGljayBkaXJlY3RpdmUgKFJlcG9ydENvbXBvbmVudClcbiAqIG5lZWRzIHRvIGZldGNoIHNvbWUgZGF0YSBiZWZvcmUgb3BlbmluZyBpdCwgd2UgZG8gbm90IHJlZ2lzdGVyIGEgY2xpY2sgRXZlbnRMaXN0ZW5lciBpbiB0aGlzIGRpcmVjdGl2ZSxcbiAqIGJ1dCByZXF1aXJlIHRoZSBkZXZlbG9wZXIgdG8gaW1wbGVtZW50IHRoYXQgaW4gdGhlIGNvbXBvbmVudCwgd2hlcmUgdGhlIHBvcG92ZXIgaXMgdXNlZC5cbiAqXG4gKiBFeGFtcGxlOlxuICogPGRpdiBseFBvcG92ZXJDbGlja1xuICogICAgICBjbGlja0FuY2hvclxuICogICAgICBzYXRQb3BvdmVyQW5jaG9yXG4gKiAgICAgICNhbmNob3I9XCJjbGlja0FuY2hvclwiXG4gKiAgICAgIChjbGljayk9XCJwb3BvdmVyLm9wZW4oKVwiPkNsaWNrIE1lITwvZGl2PlxuICogPGx4LXBvcG92ZXIgW3RyaWdnZXJdPVwiYW5jaG9yXCJcbiAqICAgICAgICAgICAgIGhvcml6b250YWxBbGlnbj1cImFmdGVyXCJcbiAqICAgICAgICAgICAgIHZlcnRpY2FsQWxpZ249XCJjZW50ZXJcIlxuICogICAgICAgICAgICAgI3BvcG92ZXI+XG4gKiAgICA8cD5Qb3BvdmVyIGNvbnRlbnQ8L3A+XG4gKiA8L2x4LXBvcG92ZXI+XG4gKlxuICogSWYgdGhpcyBjb21wb25lbnQgaXMgdXNlZCB3aXRoIGFuZ3VsYXJDb21waWxlck9wdGlvbnMgc3RyaWN0VGVtcGxhdGVzPXRydWUsXG4gKiBzYXRQb3BvdmVyQW5jaG9yIG11c3QgYmUgc2V0IHRvIHRoZSByZWZlcmVuY2UgdG8gdGhlIFNhdFBvcG92ZXIgaW5zaWRlIGx4LXBvcG92ZXIuXG4gKlxuICogRXhhbXBsZTpcbiAqICA8ZGl2IFtzYXRQb3BvdmVyQW5jaG9yXT1cInBvcG92ZXIuc2F0UG9wb3ZlclwiPjwvZGl2PlxuICogPGx4LXBvcG92ZXIgI3BvcG92ZXI+XG4gKiAgICA8cD5Qb3BvdmVyIGNvbnRlbnQ8L3A+XG4gKiA8L2x4LXBvcG92ZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXBvcG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJ3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsncG9wb3Zlci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcG92ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSB0cmlnZ2VyITogUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGhvcml6b250YWxBbGlnbiE6IFNhdFBvcG92ZXJIb3Jpem9udGFsQWxpZ247XG4gIEBJbnB1dCgpIHZlcnRpY2FsQWxpZ24hOiBTYXRQb3BvdmVyVmVydGljYWxBbGlnbjtcbiAgQElucHV0KCkgbm9NYXJnaW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWxsb3dPdmVyZmxvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRvRm9jdXMgPSBmYWxzZTtcblxuICAvKipcbiAgICogSWYgeW91IGhhdmUgYSBwb3BvdmVyLCB0aGF0IHNob3VsZCB1c3VhbGx5IGJlIGRpc3BsYXllZCBhYm92ZSBvciBiZWxvdyBpdHMgYW5jaG9yLFxuICAgKiBhbmQgdGhpcyBhbmNob3IgaXMgaW4gYSBzY3JvbGxhYmxlIGNvbnRhaW5lciwgeW91IHNob3VsZCBzZXQgdGhpcyB0byB0cnVlLlxuICAgKiBTYXRQb3BvdmVyIHdpbGwgb3BlbiB0aGlzIHBvcG92ZXIgaW4gdGhlIGRpcmVjdGlvbiB3aGVyZSB0aGVyZSBpcyBlbm91Z2ggc3BhY2UsXG4gICAqIHNvIGl0cyBwb3NpdGlvbiBtaWdodCBkaWZmZXIgZnJvbSB0aGUgaG9yaXpvbnRhbEFsaWduIGFuZCB2ZXJ0aWNhbEFsaWduIHZhbHVlcy5cbiAgICogSW4gdGhpcyBjYXNlIHdlIHJlbHkgb24gdGhlIFNhdFBvcG92ZXI6Ol9jbGFzc0xpc3QgcHJvcGVydHkgdG8gZ2V0IHRoZSBjb21wdXRlZFxuICAgKiBwb3NpdGlvbiBvZiB0aGUgcG9wb3ZlciBhZnRlciBvcGVuaW5nLlxuICAgKi9cbiAgQElucHV0KCkgYWRhcHRNYXJnaW5zRm9yVmlld3BvcnRBbGlnbkNoYW5nZSA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQFZpZXdDaGlsZChTYXRQb3BvdmVyLCB7IHN0YXRpYzogdHJ1ZSB9KSBzYXRQb3BvdmVyITogU2F0UG9wb3ZlcjtcbiAgQFZpZXdDaGlsZCgnaW1wbGljaXRDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgaW1wbGljaXRDb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBAQ29udGVudENoaWxkKFBvcG92ZXJDb250ZW50RGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgZXhwbGljaXRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcblxuICBtYXJnaW5DbGFzc2VzITogc3RyaW5nO1xuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmV4cGxpY2l0Q29udGVudCB8fCB0aGlzLmltcGxpY2l0Q29udGVudDtcbiAgfVxuXG4gIGdldCBpc09wZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzT3BlbjtcbiAgfVxuICBwcml2YXRlIF9pc09wZW4gPSBmYWxzZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2hvcml6b250YWxBbGlnbiddICYmIGNoYW5nZXNbJ3ZlcnRpY2FsQWxpZ24nXSkge1xuICAgICAgdGhpcy5tYXJnaW5DbGFzc2VzID0gdGhpcy5nZXREZWZhdWx0TWFyZ2luQ2xhc3Nlcyh0aGlzLmhvcml6b250YWxBbGlnbiwgdGhpcy52ZXJ0aWNhbEFsaWduKTtcbiAgICB9XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMuc2F0UG9wb3Zlci5vcGVuKCk7XG4gIH1cblxuICBjbG9zZSgpIHtcbiAgICB0aGlzLnNhdFBvcG92ZXIuY2xvc2UoKTtcbiAgfVxuXG4gIG9uT3BlbigpIHtcbiAgICB0aGlzLl9pc09wZW4gPSB0cnVlO1xuICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgfVxuXG4gIG9uQWZ0ZXJPcGVuKCkge1xuICAgIGlmICh0aGlzLmFkYXB0TWFyZ2luc0ZvclZpZXdwb3J0QWxpZ25DaGFuZ2UpIHtcbiAgICAgIHRoaXMubWFyZ2luQ2xhc3NlcyA9IHRoaXMuZ2V0TWFyZ2luQ2xhc3Nlc0ZvckNsYXNzTGlzdCh0aGlzLnNhdFBvcG92ZXIuX2NsYXNzTGlzdCk7XG4gICAgfVxuICB9XG5cbiAgb25DbG9zZSgpIHtcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcbiAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogU2F0UG9wb3Zlcjo6X2NsYXNzTGlzdCB3aWxsIGNvbnRhaW4gYSBtYXAgb2YgYWxpZ25tZW50IENTUyBjbGFzc2VzLCBvbmNlIHRoZSBwb3BvdmVyIHdhcyBvcGVuZWQuXG4gICAqIFRoZXNlIGFsaWdubWVudCBjbGFzc2VzIGNhbiBiZSBkaWZmZXJlbnQgZnJvbSB3aGF0IHlvdSB3b3VsZCBleHBlY3QgZnJvbSB0aGUgaG9yaXpvbnRhbC0gYW5kIHZlcnRpY2FsQWxpZ24gaW5wdXRzLFxuICAgKiBiZWNhdXNlIHRoZXJlIG1pZ2h0IG5vdCBiZSBlbm91Z2ggc3BhY2UgYWJvdmUgdGhlIGFuY2hvciB0byBtZWV0IHRoZSB2ZXJ0aWNhbEFsaWduPSdhYm92ZScgY3JpdGVyaWEsXG4gICAqIHNvIGl0IHdpbGwgYmUgZGlzcGxheWVkIGJlbG93IHRoZSBhbmNob3IgaW5zdGVhZC5cbiAgICovXG4gIHByaXZhdGUgZ2V0TWFyZ2luQ2xhc3Nlc0ZvckNsYXNzTGlzdChzYXRQb3BvdmVyQ2xhc3NMaXN0OiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubm9NYXJnaW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYWJvdmUnXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygndG9wJykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAndG9wJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYmVsb3cnXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygnYm90dG9tJykgPyB0aGlzLm1hcmdpbkNsYXNzZXMgOiAnYm90dG9tJztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYmVmb3JlJ10pIHtcbiAgICAgIHJldHVybiB0aGlzLm1hcmdpbkNsYXNzZXMuaW5jbHVkZXMoJ2xlZnQnKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICdsZWZ0JztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItYWZ0ZXInXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygncmlnaHQnKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICdyaWdodCc7XG4gICAgfVxuXG4gICAgaWYgKHNhdFBvcG92ZXJDbGFzc0xpc3RbJ3NhdC1wb3BvdmVyLWNlbnRlciddKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdE1hcmdpbkNsYXNzZXMoaG9yaXpvbnRhbEFsaWduOiBTYXRQb3BvdmVySG9yaXpvbnRhbEFsaWduLCB2ZXJ0aWNhbEFsaWduOiBTYXRQb3BvdmVyVmVydGljYWxBbGlnbik6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMubm9NYXJnaW4pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoaG9yaXpvbnRhbEFsaWduID09PSAnYWZ0ZXInKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2NlbnRlcicgfHwgdmVydGljYWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gJ3JpZ2h0JztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2Fib3ZlJykge1xuICAgICAgICByZXR1cm4gJ3JpZ2h0IHRvcCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuICdyaWdodCBib3R0b20nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsQWxpZ24gPT09ICdiZWZvcmUnKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2NlbnRlcicgfHwgdmVydGljYWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnZW5kJykge1xuICAgICAgICByZXR1cm4gJ2xlZnQnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHJldHVybiAnbGVmdCB0b3AnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYmVsb3cnKSB7XG4gICAgICAgIHJldHVybiAnbGVmdCBib3R0b20nO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsQWxpZ24gPT09ICdjZW50ZXInIHx8IGhvcml6b250YWxBbGlnbiA9PT0gJ3N0YXJ0JyB8fCBob3Jpem9udGFsQWxpZ24gPT09ICdlbmQnKSB7XG4gICAgICBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2Fib3ZlJykge1xuICAgICAgICByZXR1cm4gJ3RvcCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuICdib3R0b20nO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cbn1cbiIsIjxzYXQtcG9wb3ZlclxuICBbYW5jaG9yXT1cInRyaWdnZXIuYW5jaG9yXCJcbiAgW2hvcml6b250YWxBbGlnbl09XCJob3Jpem9udGFsQWxpZ25cIlxuICBbdmVydGljYWxBbGlnbl09XCJ2ZXJ0aWNhbEFsaWduXCJcbiAgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXG4gIFtsb2NrQWxpZ25tZW50XT1cInRydWVcIlxuICBbYXV0b0ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gIG9wZW5UcmFuc2l0aW9uPVwiMG1zXCJcbiAgY2xvc2VUcmFuc2l0aW9uPVwiMG1zXCJcbiAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gIChhZnRlck9wZW4pPVwib25BZnRlck9wZW4oKVwiXG4gIChjbG9zZWQpPVwib25DbG9zZSgpXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wb3ZlckNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwibWFyZ2luQ2xhc3Nlc1wiXG4gICAgW2NsYXNzLm92ZXJmbG93SGlkZGVuXT1cIiFhbGxvd092ZXJmbG93XCJcbiAgICAobW91c2VlbnRlcik9XCJ0cmlnZ2VyLnNob3dQb3BvdmVyKHRydWUpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJ0cmlnZ2VyLmNsb3NlUG9wb3Zlcih0cnVlKVwiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdHJpZ2dlci5jbG9zZVBvcG92ZXIodHJ1ZSlcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzT3BlblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L3NhdC1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlICNpbXBsaWNpdENvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9wb3BvdmVyLXVpL2NvbXBvbmVudHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3BvcG92ZXItdWkvY29tcG9uZW50cy9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkksT0FBTyxFQUFFLFVBQVUsRUFBc0QsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7OztBQUdyRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlERztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFMN0I7UUFTVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFN0I7Ozs7Ozs7V0FPRztRQUNNLHVDQUFrQyxHQUFHLEtBQUssQ0FBQztRQUUxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQWdCcEMsWUFBTyxHQUFHLEtBQUssQ0FBQztLQW1HekI7SUExR0MsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7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QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNTLGVBQWU7c0JBQTlELFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUU4QixlQUFlO3NCQUExRixZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYXRQb3BvdmVyLCBTYXRQb3BvdmVySG9yaXpvbnRhbEFsaWduLCBTYXRQb3BvdmVyVmVydGljYWxBbGlnbiB9IGZyb20gJ0BuY3N0YXRlL3NhdC1wb3BvdmVyJztcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWNvbnRlbnQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9wb3BvdmVyLWhvdmVyLmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogSE9XIFRPIFVTRVxuICpcbiAqIFRoaXMgcG9wb3ZlciBlbmNhcHN1bGF0ZXMgdGhpcyBvcGVuIHNvdXJjZSBsaWJyYXJ5OiBodHRwczovL2dpdGh1Yi5jb20vbmNzdGF0ZS1zYXQvcG9wb3ZlcixcbiAqIG1ha2Ugc3VyZSB0byBhbHNvIGNoZWNrIG91dCB0aGUgZG9jcyBvdmVyIHRoZXJlLlxuICpcbiAqIEFzIG9mIHRvZGF5IHRoZXkgYXJlIHR3byB0cmlnZ2VyIHN0cmF0ZWdpZXMgdG8gZGlzcGxheSBhIHBvcG92ZXIuXG4gKiAxLiBTaG93IG9uIGhvdmVyaW5nIHRoZSBhbmNob3IgYW5kIHdoaWxlIGhvdmVyaW5nIHRoZSBwb3BvdmVyIGJvZHkuXG4gKiAyLiBTaG93IG9uIGNsaWNrIGFuZCB3aGlsZSBob3ZlcmluZyB0aGUgcG9wb3ZlciBib2R5LlxuICpcbiAqIEZvciB1c2UgY2FzZSAxLiB5b3Ugd291bGQgdXNlIHRoZSBseFBvcG92ZXJIb3ZlciBkaXJlY3RpdmUsIHdoaWNoIGV4cG9ydHMgYXMgaG92ZXJBbmNob3IuXG4gKlxuICogRXhhbXBsZTpcbiAqIDxkaXYgbHhQb3BvdmVySG92ZXJcbiAqICAgICAgaG92ZXJBbmNob3JcbiAqICAgICAgc2F0UG9wb3ZlckFuY2hvclxuICogICAgICAjYW5jaG9yPVwiaG92ZXJBbmNob3JcIj48L2Rpdj5cbiAqIDxseC1wb3BvdmVyIFt0cmlnZ2VyXT1cImFuY2hvclwiXG4gKiAgICAgICAgICAgICBob3Jpem9udGFsQWxpZ249XCJhZnRlclwiXG4gKiAgICAgICAgICAgICB2ZXJ0aWNhbEFsaWduPVwiY2VudGVyXCI+XG4gKiAgICA8cD5Qb3BvdmVyIGNvbnRlbnQ8L3A+XG4gKiA8L2x4LXBvcG92ZXI+XG4gKlxuICogRm9yIHVzZSBjYXNlIDIuIHlvdSB3b3VsZCB1c2UgdGhlIGx4UG9wb3ZlckNsaWNrIGRpcmVjdGl2ZSwgd2hpY2ggZXhwb3J0cyBhcyBjbGlja0FuY2hvci5cbiAqIE5vdGU6IFNpbmNlIHRoZSBvbmx5IGNvbXBvbmVudCB3aGVyZSB3ZSB1c2UgdGhlIGx4UG9wb3ZlckNsaWNrIGRpcmVjdGl2ZSAoUmVwb3J0Q29tcG9uZW50KVxuICogbmVlZHMgdG8gZmV0Y2ggc29tZSBkYXRhIGJlZm9yZSBvcGVuaW5nIGl0LCB3ZSBkbyBub3QgcmVnaXN0ZXIgYSBjbGljayBFdmVudExpc3RlbmVyIGluIHRoaXMgZGlyZWN0aXZlLFxuICogYnV0IHJlcXVpcmUgdGhlIGRldmVsb3BlciB0byBpbXBsZW1lbnQgdGhhdCBpbiB0aGUgY29tcG9uZW50LCB3aGVyZSB0aGUgcG9wb3ZlciBpcyB1c2VkLlxuICpcbiAqIEV4YW1wbGU6XG4gKiA8ZGl2IGx4UG9wb3ZlckNsaWNrXG4gKiAgICAgIGNsaWNrQW5jaG9yXG4gKiAgICAgIHNhdFBvcG92ZXJBbmNob3JcbiAqICAgICAgI2FuY2hvcj1cImNsaWNrQW5jaG9yXCJcbiAqICAgICAgKGNsaWNrKT1cInBvcG92ZXIub3BlbigpXCI+Q2xpY2sgTWUhPC9kaXY+XG4gKiA8bHgtcG9wb3ZlciBbdHJpZ2dlcl09XCJhbmNob3JcIlxuICogICAgICAgICAgICAgaG9yaXpvbnRhbEFsaWduPVwiYWZ0ZXJcIlxuICogICAgICAgICAgICAgdmVydGljYWxBbGlnbj1cImNlbnRlclwiXG4gKiAgICAgICAgICAgICAjcG9wb3Zlcj5cbiAqICAgIDxwPlBvcG92ZXIgY29udGVudDwvcD5cbiAqIDwvbHgtcG9wb3Zlcj5cbiAqXG4gKiBJZiB0aGlzIGNvbXBvbmVudCBpcyB1c2VkIHdpdGggYW5ndWxhckNvbXBpbGVyT3B0aW9ucyBzdHJpY3RUZW1wbGF0ZXM9dHJ1ZSxcbiAqIHNhdFBvcG92ZXJBbmNob3IgbXVzdCBiZSBzZXQgdG8gdGhlIHJlZmVyZW5jZSB0byB0aGUgU2F0UG9wb3ZlciBpbnNpZGUgbHgtcG9wb3Zlci5cbiAqXG4gKiBFeGFtcGxlOlxuICogIDxkaXYgW3NhdFBvcG92ZXJBbmNob3JdPVwicG9wb3Zlci5zYXRQb3BvdmVyXCI+PC9kaXY+XG4gKiA8bHgtcG9wb3ZlciAjcG9wb3Zlcj5cbiAqICAgIDxwPlBvcG92ZXIgY29udGVudDwvcD5cbiAqIDwvbHgtcG9wb3Zlcj5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtcG9wb3ZlcicsXG4gIHRlbXBsYXRlVXJsOiAncG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydwb3BvdmVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUG9wb3ZlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIHRyaWdnZXIhOiBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZTtcbiAgQElucHV0KCkgaG9yaXpvbnRhbEFsaWduITogU2F0UG9wb3Zlckhvcml6b250YWxBbGlnbjtcbiAgQElucHV0KCkgdmVydGljYWxBbGlnbiE6IFNhdFBvcG92ZXJWZXJ0aWNhbEFsaWduO1xuICBASW5wdXQoKSBub01hcmdpbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhbGxvd092ZXJmbG93ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9Gb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSByZXN0b3JlRm9jdXMgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBJZiB5b3UgaGF2ZSBhIHBvcG92ZXIsIHRoYXQgc2hvdWxkIHVzdWFsbHkgYmUgZGlzcGxheWVkIGFib3ZlIG9yIGJlbG93IGl0cyBhbmNob3IsXG4gICAqIGFuZCB0aGlzIGFuY2hvciBpcyBpbiBhIHNjcm9sbGFibGUgY29udGFpbmVyLCB5b3Ugc2hvdWxkIHNldCB0aGlzIHRvIHRydWUuXG4gICAqIFNhdFBvcG92ZXIgd2lsbCBvcGVuIHRoaXMgcG9wb3ZlciBpbiB0aGUgZGlyZWN0aW9uIHdoZXJlIHRoZXJlIGlzIGVub3VnaCBzcGFjZSxcbiAgICogc28gaXRzIHBvc2l0aW9uIG1pZ2h0IGRpZmZlciBmcm9tIHRoZSBob3Jpem9udGFsQWxpZ24gYW5kIHZlcnRpY2FsQWxpZ24gdmFsdWVzLlxuICAgKiBJbiB0aGlzIGNhc2Ugd2UgcmVseSBvbiB0aGUgU2F0UG9wb3Zlcjo6X2NsYXNzTGlzdCBwcm9wZXJ0eSB0byBnZXQgdGhlIGNvbXB1dGVkXG4gICAqIHBvc2l0aW9uIG9mIHRoZSBwb3BvdmVyIGFmdGVyIG9wZW5pbmcuXG4gICAqL1xuICBASW5wdXQoKSBhZGFwdE1hcmdpbnNGb3JWaWV3cG9ydEFsaWduQ2hhbmdlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAVmlld0NoaWxkKFNhdFBvcG92ZXIsIHsgc3RhdGljOiB0cnVlIH0pIHNhdFBvcG92ZXIhOiBTYXRQb3BvdmVyO1xuICBAVmlld0NoaWxkKCdpbXBsaWNpdENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbXBsaWNpdENvbnRlbnQhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoUG9wb3ZlckNvbnRlbnREaXJlY3RpdmUsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBleHBsaWNpdENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIG1hcmdpbkNsYXNzZXMhOiBzdHJpbmc7XG5cbiAgZ2V0IGNvbnRlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZXhwbGljaXRDb250ZW50IHx8IHRoaXMuaW1wbGljaXRDb250ZW50O1xuICB9XG5cbiAgZ2V0IGlzT3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5faXNPcGVuO1xuICB9XG4gIHByaXZhdGUgX2lzT3BlbiA9IGZhbHNlO1xuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snaG9yaXpvbnRhbEFsaWduJ10gJiYgY2hhbmdlc1sndmVydGljYWxBbGlnbiddKSB7XG4gICAgICB0aGlzLm1hcmdpbkNsYXNzZXMgPSB0aGlzLmdldERlZmF1bHRNYXJnaW5DbGFzc2VzKHRoaXMuaG9yaXpvbnRhbEFsaWduLCB0aGlzLnZlcnRpY2FsQWxpZ24pO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgdGhpcy5zYXRQb3BvdmVyLm9wZW4oKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuc2F0UG9wb3Zlci5jbG9zZSgpO1xuICB9XG5cbiAgb25PcGVuKCkge1xuICAgIHRoaXMuX2lzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5vcGVuZWQuZW1pdCgpO1xuICB9XG5cbiAgb25BZnRlck9wZW4oKSB7XG4gICAgaWYgKHRoaXMuYWRhcHRNYXJnaW5zRm9yVmlld3BvcnRBbGlnbkNoYW5nZSkge1xuICAgICAgdGhpcy5tYXJnaW5DbGFzc2VzID0gdGhpcy5nZXRNYXJnaW5DbGFzc2VzRm9yQ2xhc3NMaXN0KHRoaXMuc2F0UG9wb3Zlci5fY2xhc3NMaXN0KTtcbiAgICB9XG4gIH1cblxuICBvbkNsb3NlKCkge1xuICAgIHRoaXMuX2lzT3BlbiA9IGZhbHNlO1xuICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXRQb3BvdmVyOjpfY2xhc3NMaXN0IHdpbGwgY29udGFpbiBhIG1hcCBvZiBhbGlnbm1lbnQgQ1NTIGNsYXNzZXMsIG9uY2UgdGhlIHBvcG92ZXIgd2FzIG9wZW5lZC5cbiAgICogVGhlc2UgYWxpZ25tZW50IGNsYXNzZXMgY2FuIGJlIGRpZmZlcmVudCBmcm9tIHdoYXQgeW91IHdvdWxkIGV4cGVjdCBmcm9tIHRoZSBob3Jpem9udGFsLSBhbmQgdmVydGljYWxBbGlnbiBpbnB1dHMsXG4gICAqIGJlY2F1c2UgdGhlcmUgbWlnaHQgbm90IGJlIGVub3VnaCBzcGFjZSBhYm92ZSB0aGUgYW5jaG9yIHRvIG1lZXQgdGhlIHZlcnRpY2FsQWxpZ249J2Fib3ZlJyBjcml0ZXJpYSxcbiAgICogc28gaXQgd2lsbCBiZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIGFuY2hvciBpbnN0ZWFkLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRNYXJnaW5DbGFzc2VzRm9yQ2xhc3NMaXN0KHNhdFBvcG92ZXJDbGFzc0xpc3Q6IHsgW2NsYXNzTmFtZTogc3RyaW5nXTogYm9vbGVhbiB9KTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5ub01hcmdpbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmIChzYXRQb3BvdmVyQ2xhc3NMaXN0WydzYXQtcG9wb3Zlci1hYm92ZSddKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXJnaW5DbGFzc2VzLmluY2x1ZGVzKCd0b3AnKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICd0b3AnO1xuICAgIH1cblxuICAgIGlmIChzYXRQb3BvdmVyQ2xhc3NMaXN0WydzYXQtcG9wb3Zlci1iZWxvdyddKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXJnaW5DbGFzc2VzLmluY2x1ZGVzKCdib3R0b20nKSA/IHRoaXMubWFyZ2luQ2xhc3NlcyA6ICdib3R0b20nO1xuICAgIH1cblxuICAgIGlmIChzYXRQb3BvdmVyQ2xhc3NMaXN0WydzYXQtcG9wb3Zlci1iZWZvcmUnXSkge1xuICAgICAgcmV0dXJuIHRoaXMubWFyZ2luQ2xhc3Nlcy5pbmNsdWRlcygnbGVmdCcpID8gdGhpcy5tYXJnaW5DbGFzc2VzIDogJ2xlZnQnO1xuICAgIH1cblxuICAgIGlmIChzYXRQb3BvdmVyQ2xhc3NMaXN0WydzYXQtcG9wb3Zlci1hZnRlciddKSB7XG4gICAgICByZXR1cm4gdGhpcy5tYXJnaW5DbGFzc2VzLmluY2x1ZGVzKCdyaWdodCcpID8gdGhpcy5tYXJnaW5DbGFzc2VzIDogJ3JpZ2h0JztcbiAgICB9XG5cbiAgICBpZiAoc2F0UG9wb3ZlckNsYXNzTGlzdFsnc2F0LXBvcG92ZXItY2VudGVyJ10pIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0TWFyZ2luQ2xhc3Nlcyhob3Jpem9udGFsQWxpZ246IFNhdFBvcG92ZXJIb3Jpem9udGFsQWxpZ24sIHZlcnRpY2FsQWxpZ246IFNhdFBvcG92ZXJWZXJ0aWNhbEFsaWduKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5ub01hcmdpbikge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsQWxpZ24gPT09ICdhZnRlcicpIHtcbiAgICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnY2VudGVyJyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnc3RhcnQnIHx8IHZlcnRpY2FsQWxpZ24gPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiAncmlnaHQnO1xuICAgICAgfSBlbHNlIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHJldHVybiAncmlnaHQgdG9wJztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2JlbG93Jykge1xuICAgICAgICByZXR1cm4gJ3JpZ2h0IGJvdHRvbSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhvcml6b250YWxBbGlnbiA9PT0gJ2JlZm9yZScpIHtcbiAgICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnY2VudGVyJyB8fCB2ZXJ0aWNhbEFsaWduID09PSAnc3RhcnQnIHx8IHZlcnRpY2FsQWxpZ24gPT09ICdlbmQnKSB7XG4gICAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdhYm92ZScpIHtcbiAgICAgICAgcmV0dXJuICdsZWZ0IHRvcCc7XG4gICAgICB9IGVsc2UgaWYgKHZlcnRpY2FsQWxpZ24gPT09ICdiZWxvdycpIHtcbiAgICAgICAgcmV0dXJuICdsZWZ0IGJvdHRvbSc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGhvcml6b250YWxBbGlnbiA9PT0gJ2NlbnRlcicgfHwgaG9yaXpvbnRhbEFsaWduID09PSAnc3RhcnQnIHx8IGhvcml6b250YWxBbGlnbiA9PT0gJ2VuZCcpIHtcbiAgICAgIGlmICh2ZXJ0aWNhbEFsaWduID09PSAnYWJvdmUnKSB7XG4gICAgICAgIHJldHVybiAndG9wJztcbiAgICAgIH0gZWxzZSBpZiAodmVydGljYWxBbGlnbiA9PT0gJ2JlbG93Jykge1xuICAgICAgICByZXR1cm4gJ2JvdHRvbSc7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxufVxuIiwiPHNhdC1wb3BvdmVyXG4gIFthbmNob3JdPVwidHJpZ2dlci5hbmNob3JcIlxuICBbaG9yaXpvbnRhbEFsaWduXT1cImhvcml6b250YWxBbGlnblwiXG4gIFt2ZXJ0aWNhbEFsaWduXT1cInZlcnRpY2FsQWxpZ25cIlxuICBbcmVzdG9yZUZvY3VzXT1cInJlc3RvcmVGb2N1c1wiXG4gIFtsb2NrQWxpZ25tZW50XT1cInRydWVcIlxuICBbYXV0b0ZvY3VzXT1cImF1dG9Gb2N1c1wiXG4gIG9wZW5UcmFuc2l0aW9uPVwiMG1zXCJcbiAgY2xvc2VUcmFuc2l0aW9uPVwiMG1zXCJcbiAgKG9wZW5lZCk9XCJvbk9wZW4oKVwiXG4gIChhZnRlck9wZW4pPVwib25BZnRlck9wZW4oKVwiXG4gIChjbG9zZWQpPVwib25DbG9zZSgpXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwicG9wb3ZlckNvbnRhaW5lclwiXG4gICAgW25nQ2xhc3NdPVwibWFyZ2luQ2xhc3Nlc1wiXG4gICAgW2NsYXNzLm92ZXJmbG93SGlkZGVuXT1cIiFhbGxvd092ZXJmbG93XCJcbiAgICAobW91c2VlbnRlcik9XCJ0cmlnZ2VyLnNob3dQb3BvdmVyKHRydWUpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJ0cmlnZ2VyLmNsb3NlUG9wb3Zlcih0cnVlKVwiXG4gICAgKGtleWRvd24uZXNjYXBlKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgdHJpZ2dlci5jbG9zZVBvcG92ZXIodHJ1ZSlcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzT3BlblwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L3NhdC1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlICNpbXBsaWNpdENvbnRlbnQ+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -5271,7 +5271,7 @@ SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
5271
5271
  multi: true,
5272
5272
  useExisting: forwardRef(() => SingleSelectComponent)
5273
5273
  }
5274
- ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "explicitSelectedOption", first: true, predicate: SelectedOptionDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "dropdownComponent", first: true, predicate: BasicDropdownComponent, descendants: true }], viewQueries: [{ propertyName: "implicitSelectedOption", first: true, predicate: ["selectedOption"], descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "queryInput", first: true, predicate: ["queryInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear\" class=\"far fa-times\" (click)=\"!disabled && removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i2.AsyncPipe } });
5274
+ ], queries: [{ propertyName: "explicitDropdown", first: true, predicate: SelectDropdownDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "explicitSelectedOption", first: true, predicate: SelectedOptionDirective, descendants: true, read: TemplateRef, static: true }, { propertyName: "dropdownComponent", first: true, predicate: BasicDropdownComponent, descendants: true }], viewQueries: [{ propertyName: "implicitSelectedOption", first: true, predicate: ["selectedOption"], descendants: true, static: true }, { propertyName: "implicitDropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }, { propertyName: "queryInput", first: true, predicate: ["queryInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear && !disabled\" class=\"far fa-times\" (click)=\"removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit;color:#8594ad}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: MarkInvalidDirective, selector: "[lxMarkInvalid]", inputs: ["lxMarkInvalid"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { 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]" }, { type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "async": i2.AsyncPipe } });
5275
5275
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SingleSelectComponent, decorators: [{
5276
5276
  type: Component,
5277
5277
  args: [{ selector: 'lx-single-select', providers: [
@@ -5280,7 +5280,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
5280
5280
  multi: true,
5281
5281
  useExisting: forwardRef(() => SingleSelectComponent)
5282
5282
  }
5283
- ], template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear\" class=\"far fa-times\" (click)=\"!disabled && removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"] }]
5283
+ ], template: "<div *ngIf=\"dropdownOpen\" class=\"backdrop\" (click)=\"handleBackdropClick($event)\"></div>\n<div\n [lxMarkInvalid]=\"markInvalid\"\n class=\"selectContainer {{ padding }}Padding\"\n [class.open]=\"dropdownOpen\"\n [class.top]=\"(dropdownDirection$ | async) === 'TOP'\"\n [class.bottom]=\"(dropdownDirection$ | async) === 'BOTTOM'\"\n [class.disabled]=\"disabled\"\n [class.grayBackground]=\"selectionBackground === 'gray'\"\n [class.defaultSize]=\"size === 'default'\"\n [class.smallSize]=\"size === 'small'\"\n [class.select2Size]=\"size === 'select2'\"\n [class.largeSize]=\"size === 'large'\"\n [style.cursor]=\"cursorStyle\"\n [class.focused]=\"isInputFocused\"\n [class.focusedVisible]=\"isInputFocusedViaTab\"\n (click)=\"handleClick($event.target === toggle)\"\n>\n <div class=\"selectionContainer\">\n <div class=\"inputContainer\">\n <div *ngIf=\"!selection && !queryInput?.value\" class=\"placeholder\" [attr.title]=\"placeholder\">\n {{ placeholder }}\n </div>\n <div\n *ngIf=\"!allowQuery || !queryInput?.value\"\n class=\"selection\"\n [class.lowerOpacity]=\"allowQuery && !queryInput?.value && dropdownOpen\"\n [class.lightgrayColor]=\"!allowQuery && dropdownOpen\"\n (click)=\"$event.stopPropagation(); focus()\"\n >\n <ng-container *ngTemplateOutlet=\"selectedOptionTmpl\"></ng-container>\n </div>\n <input\n #queryInput\n class=\"queryInput\"\n type=\"text\"\n [class.isHidden]=\"!allowQuery\"\n (keydown.enter)=\"$event.preventDefault()\"\n (focus)=\"isInputFocused = true\"\n (blur)=\"isInputFocused = false; isInputFocusedViaTab = false; blur.emit($event)\"\n (keyup.tab)=\"focusedViaTab()\"\n (keyup.shift.tab)=\"focusedViaTab()\"\n [tabIndex]=\"disabled ? -1 : tabIndex\"\n [formControl]=\"queryControl\"\n [readOnly]=\"!allowQuery\"\n />\n </div>\n <div class=\"iconContainer\">\n <i *ngIf=\"selection && allowClear && !disabled\" class=\"far fa-times\" (click)=\"removeSelection()\"></i>\n <i #toggle class=\"fas fa-angle-down\" aria-hidden=\"true\"></i>\n </div>\n </div>\n <div class=\"optionsContainer\" [style.width]=\"dropdownWidth\" #optionsContainer>\n <ng-container *ngIf=\"dropdownOpen\">\n <ng-container *ngTemplateOutlet=\"dropdownTmpl\"></ng-container>\n </ng-container>\n </div>\n</div>\n\n<ng-template #selectedOption>\n <ng-content select=\".selectedOption\"></ng-content>\n</ng-template>\n<ng-template #dropdown>\n <ng-content select=\".dropdownComponent\"></ng-content>\n</ng-template>\n", styles: [":host ::ng-deep .selectedOption{overflow:hidden;text-overflow:ellipsis}:host.selectContainer--border-0 .selectContainer{border:0!important}:host.selectContainer--no-box-shadow .selectContainer{box-shadow:none}.selectContainer{position:relative;height:auto;padding:0;box-sizing:border-box;background:#fff;border:1px solid #99a5bb;box-shadow:inset 0 1px 1px #00000012;border-radius:3px}.selectContainer.grayBackground{background:#eaedf1;border-color:#eaedf1;box-shadow:none}.selectContainer.open{z-index:1049;background:#fff;border:1px solid #e1e5eb}.selectContainer.open.bottom{box-shadow:0 6px 6px #21252933;border-bottom-color:#fff;border-bottom-left-radius:0;border-bottom-right-radius:0}.selectContainer.open.bottom .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 6px 6px #21252933;top:100%;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top{box-shadow:0 -4px 6px #21252933;border-top:0;border-top-left-radius:0;border-top-right-radius:0}.selectContainer.open.top .optionsContainer{border-bottom:solid 1px #e1e5eb;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;box-shadow:0 -4px 6px #21252933;margin-bottom:0;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;top:none;bottom:100%}.selectContainer:not(.open).focused{outline:0;border:1px solid #5599ff}.selectContainer:not(.open).focusedVisible{outline:1px auto Highlight;outline:1px auto -webkit-focus-ring-color}.selectContainer.disabled{background-color:#eaedf1;cursor:not-allowed!important}.selectContainer.defaultPadding .selectionContainer{padding-left:12px}.selectContainer.narrowPadding .selectionContainer{padding-left:4px}.selectContainer .lightgrayColor{color:#8594ad}.selectionContainer{display:flex}.inputContainer{flex:1;position:relative;white-space:nowrap}.queryInput{width:100%;-webkit-appearance:none;appearance:none;border:0;padding-left:0;background:transparent;position:relative;cursor:inherit}.queryInput::-ms-clear{display:none}.queryInput:focus{outline:0}.queryInput.isHidden{opacity:0}.placeholder{position:absolute;width:100%;text-align:left;color:#8594ad;overflow:hidden;word-break:break-all;white-space:nowrap;text-overflow:ellipsis}.iconContainer{display:flex;align-items:center;text-align:center}.iconContainer .far,.iconContainer .fas{width:10px;cursor:pointer}.disabled .iconContainer .far,.disabled .iconContainer .fas{cursor:inherit;color:#8594ad}.iconContainer .fa-angle-down{margin:0 12px}.iconContainer .fa-times{margin-left:4px}.selection{width:100%;position:absolute;display:flex;align-items:center}.selection.lowerOpacity{opacity:.7}.backdrop{position:fixed;top:0;bottom:0;left:0;right:0;z-index:1048}.optionsContainer{position:absolute;left:-1px;right:-1px;padding:0;border-radius:3px;background:#fff;z-index:1001}.defaultSize .inputContainer,.defaultSize .queryInput,.defaultSize .selection,.defaultSize .iconContainer{height:29px}.defaultSize .inputContainer{line-height:29px}.defaultSize .selectionContainer{min-height:29px}.smallSize .inputContainer,.smallSize .queryInput,.smallSize .selection,.smallSize .iconContainer{height:22px}.smallSize .inputContainer{line-height:22px}.smallSize .selectionContainer{min-height:22px}.select2Size .inputContainer,.select2Size .queryInput,.select2Size .selection,.select2Size .iconContainer{height:26px}.select2Size .inputContainer{line-height:26px}.select2Size .selectionContainer{min-height:26px}.largeSize .inputContainer,.largeSize .queryInput,.largeSize .selection,.largeSize .iconContainer{height:40px}.largeSize .inputContainer{line-height:40px}.largeSize .selectionContainer{min-height:40px}\n"] }]
5284
5284
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selection: [{
5285
5285
  type: Input
5286
5286
  }], selectionBackground: [{
@@ -6201,6 +6201,7 @@ class PopoverComponent {
6201
6201
  this.noMargin = false;
6202
6202
  this.allowOverflow = false;
6203
6203
  this.autoFocus = false;
6204
+ this.restoreFocus = true;
6204
6205
  /**
6205
6206
  * If you have a popover, that should usually be displayed above or below its anchor,
6206
6207
  * and this anchor is in a scrollable container, you should set this to true.
@@ -6309,10 +6310,10 @@ class PopoverComponent {
6309
6310
  }
6310
6311
  }
6311
6312
  PopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6312
- PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", autoFocus: "autoFocus", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"], components: [{ type: i1$6.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
6313
+ PopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: PopoverComponent, selector: "lx-popover", inputs: { trigger: "trigger", horizontalAlign: "horizontalAlign", verticalAlign: "verticalAlign", noMargin: "noMargin", allowOverflow: "allowOverflow", autoFocus: "autoFocus", restoreFocus: "restoreFocus", adaptMarginsForViewportAlignChange: "adaptMarginsForViewportAlignChange" }, outputs: { opened: "opened", closed: "closed" }, queries: [{ propertyName: "explicitContent", first: true, predicate: PopoverContentDirective, descendants: true, read: TemplateRef, static: true }], viewQueries: [{ propertyName: "satPopover", first: true, predicate: SatPopover, descendants: true, static: true }, { propertyName: "implicitContent", first: true, predicate: ["implicitContent"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"restoreFocus\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"], components: [{ type: i1$6.SatPopover, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
6313
6314
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: PopoverComponent, decorators: [{
6314
6315
  type: Component,
6315
- args: [{ selector: 'lx-popover', template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"false\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"] }]
6316
+ args: [{ selector: 'lx-popover', template: "<sat-popover\n [anchor]=\"trigger.anchor\"\n [horizontalAlign]=\"horizontalAlign\"\n [verticalAlign]=\"verticalAlign\"\n [restoreFocus]=\"restoreFocus\"\n [lockAlignment]=\"true\"\n [autoFocus]=\"autoFocus\"\n openTransition=\"0ms\"\n closeTransition=\"0ms\"\n (opened)=\"onOpen()\"\n (afterOpen)=\"onAfterOpen()\"\n (closed)=\"onClose()\"\n>\n <div\n class=\"popoverContainer\"\n [ngClass]=\"marginClasses\"\n [class.overflowHidden]=\"!allowOverflow\"\n (mouseenter)=\"trigger.showPopover(true)\"\n (mouseleave)=\"trigger.closePopover(true)\"\n (keydown.escape)=\"$event.stopPropagation(); trigger.closePopover(true)\"\n >\n <ng-container *ngIf=\"isOpen\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n </div>\n</sat-popover>\n<ng-template #implicitContent>\n <ng-content></ng-content>\n</ng-template>\n", styles: ["@keyframes subtleScaleUpKeyFrames{0%{transform:scale(.95);opacity:0}}.popoverContainer{position:relative;box-shadow:0 8px 12px 2px #00000026;max-width:600px;max-height:80vh;border-radius:3px;background-color:#fff;-webkit-hyphens:auto;hyphens:auto;animation:subtleScaleUpKeyFrames .2s ease}.popoverContainer.overflowHidden{overflow:hidden}.right{margin-left:18px}.left{margin-right:18px}.bottom{margin-top:18px}.top{margin-bottom:18px}\n"] }]
6316
6317
  }], propDecorators: { trigger: [{
6317
6318
  type: Input
6318
6319
  }], horizontalAlign: [{
@@ -6325,6 +6326,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
6325
6326
  type: Input
6326
6327
  }], autoFocus: [{
6327
6328
  type: Input
6329
+ }], restoreFocus: [{
6330
+ type: Input
6328
6331
  }], adaptMarginsForViewportAlignChange: [{
6329
6332
  type: Input
6330
6333
  }], opened: [{