@alauda/ui 6.4.1-beta.5 → 6.4.1-beta.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Directive, EventEmitter, Host, Input, Optional, Output, } from '@angular/core';
2
2
  import { BehaviorSubject, Subject, fromEvent, merge } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
3
+ import { debounceTime, takeUntil } from 'rxjs/operators';
4
4
  import { BaseTooltip, TooltipTrigger, TooltipType } from '../tooltip';
5
5
  import { scrollIntoView } from '../utils';
6
6
  import * as i0 from "@angular/core";
@@ -68,8 +68,8 @@ export class AutoCompleteDirective extends BaseTooltip {
68
68
  }
69
69
  ngAfterViewInit() {
70
70
  const input = this.input;
71
- merge(fromEvent(input, 'click'), fromEvent(input, 'focus'))
72
- .pipe(takeUntil(this.unsubscribe$))
71
+ merge(fromEvent(this.elRef.nativeElement, 'click'), fromEvent(input, 'focus'))
72
+ .pipe(debounceTime(0), takeUntil(this.unsubscribe$))
73
73
  .subscribe(() => this.onFocus());
74
74
  fromEvent(input, 'blur')
75
75
  .pipe(takeUntil(this.unsubscribe$))
@@ -146,6 +146,10 @@ export class AutoCompleteDirective extends BaseTooltip {
146
146
  this.autoFocusFirstSuggestion();
147
147
  }
148
148
  autoFocusFirstSuggestion() {
149
+ const focusedSuggestion = this.autocomplete.suggestions.find(suggestion => suggestion.focused);
150
+ if (focusedSuggestion) {
151
+ return;
152
+ }
149
153
  const selectedSuggestion = this.autocomplete.suggestions.find(suggestion => suggestion.selected);
150
154
  if (selectedSuggestion) {
151
155
  this.resetFocusedSuggestion(selectedSuggestion);
@@ -269,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
269
273
  type: Input,
270
274
  args: ['auiAutocompleteInnerSelector']
271
275
  }] } });
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFjMUMsTUFBTSxPQUFPLHFCQUNYLFNBQVEsV0FBZ0M7SUFpRXhDLFlBQ0UsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLEtBQW1DLEVBQ25DLFFBQW1CLEVBQ25CLEdBQXNCLEVBQ3RCLE1BQWMsRUFHRyxTQUFvQjtRQUVyQyxLQUFLLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRjlDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUEzQ3ZDLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUc5QixzQkFBaUIsR0FBcUIsTUFBTSxDQUFDO1FBS3BDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR2hDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR3pDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS3JCLGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsRUFBRSxDQUFD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NEJBQTRCLENBQUM7b0JBQ3RDLElBQUksRUFBRTt3QkFDSixZQUFZLEVBQUUsS0FBSztxQkFDcEI7aUJBQ0Y7OzBCQTBFSSxRQUFROzswQkFDUixJQUFJOzRDQXJFSCxZQUFZO3NCQURmLEtBQUs7dUJBQUMsaUJBQWlCO2dCQWdCcEIsUUFBUTtzQkFGWCxLQUFLO3VCQUFDLHlCQUF5Qjs7c0JBQy9CLEtBQUs7Z0JBYU4sc0JBQXNCO3NCQURyQixLQUFLO3VCQUFDLHVDQUF1QztnQkFJOUMsaUJBQWlCO3NCQURoQixLQUFLO3VCQUFDLHdCQUF3QjtnQkFNdEIsSUFBSTtzQkFEWixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJcEIsSUFBSTtzQkFEWixNQUFNO3VCQUFDLHFCQUFxQjtnQkFJN0IsUUFBUTtzQkFEUCxNQUFNO3VCQUFDLHlCQUF5Qjs7QUE0T25DLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxxQkFBcUI7SUFSdEU7O1FBVVcsa0JBQWEsR0FBRyxnQkFBZ0IsQ0FBQztLQUMzQzs7d0hBSFksMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFSdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixNQUFNLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQztvQkFDdEMsSUFBSSxFQUFFO3dCQUNKLFlBQVksRUFBRSxLQUFLO3FCQUNwQjtpQkFDRjs4QkFHVSxhQUFhO3NCQURyQixLQUFLO3VCQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VUb29sdGlwLCBUb29sdGlwVHJpZ2dlciwgVG9vbHRpcFR5cGUgfSBmcm9tICcuLi90b29sdGlwJztcbmltcG9ydCB7IHNjcm9sbEludG9WaWV3IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b0NvbXBsZXRlQ29udGV4dCwgU3VnZ2VzdGlvbkZpbHRlckZuIH0gZnJvbSAnLi9hdXRvY29tcGxldGUudHlwZXMnO1xuaW1wb3J0IHsgU3VnZ2VzdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc3VnZ2VzdGlvbi9zdWdnZXN0aW9uLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ2lucHV0W2F1aUF1dG9jb21wbGV0ZV0sdGV4dGFyZWFbYXVpQXV0b2NvbXBsZXRlXScsXG4gIGV4cG9ydEFzOiAnYXVpQXV0b2NvbXBsZXRlJyxcbiAgaW5wdXRzOiBbJ2NsYXNzOmF1aUF1dG9jb21wbGV0ZUNsYXNzJ10sXG4gIGhvc3Q6IHtcbiAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVEaXJlY3RpdmVcbiAgZXh0ZW5kcyBCYXNlVG9vbHRpcDxBdXRvQ29tcGxldGVDb250ZXh0PlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0XG57XG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlJylcbiAgZ2V0IGF1dG9jb21wbGV0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlO1xuICB9XG5cbiAgc2V0IGF1dG9jb21wbGV0ZSh2YWwpIHtcbiAgICBpZiAodmFsID09PSB0aGlzLl9hdXRvY29tcGxldGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFsLmRpcmVjdGl2ZSQkLm5leHQodGhpcyk7XG4gICAgdGhpcy5fYXV0b2NvbXBsZXRlID0gdmFsO1xuICAgIHRoaXMuY29udGVudCA9IHZhbC50ZW1wbGF0ZTtcbiAgfVxuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlRmlsdGVyRm4nKVxuICBASW5wdXQoKVxuICBnZXQgZmlsdGVyRm4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlckZuO1xuICB9XG5cbiAgc2V0IGZpbHRlckZuKHZhbCkge1xuICAgIGlmICh2YWwgIT09IHRoaXMuX2ZpbHRlckZuKSB7XG4gICAgICB0aGlzLl9maWx0ZXJGbiA9IHZhbDtcbiAgICAgIHRoaXMuZmlsdGVyRm4kJC5uZXh0KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdhdWlBdXRvY29tcGxldGVEZWZhdWx0Rmlyc3RTdWdnZXN0aW9uJylcbiAgZGVmYXVsdEZpcnN0U3VnZ2VzdGlvbiA9IHRydWU7XG5cbiAgQElucHV0KCdhdWlBdXRvY29tcGxldGVUcmlnZ2VyJylcbiAgc3VnZ2VzdGlvblRyaWdnZXI6ICdhdXRvJyB8ICdpbnB1dCcgPSAnYXV0byc7XG5cbiAgZGVjbGFyZSBpbm5lclNlbGVjdG9yOiBzdHJpbmc7XG5cbiAgQE91dHB1dCgnYXVpQXV0b2NvbXBsZXRlU2hvdycpXG4gIG92ZXJyaWRlIHNob3cgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgnYXVpQXV0b2NvbXBsZXRlSGlkZScpXG4gIG92ZXJyaWRlIGhpZGUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgnYXVpQXV0b2NvbXBsZXRlU2VsZWN0ZWQnKVxuICBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgX2F1dG9jb21wbGV0ZTogQXV0b2NvbXBsZXRlQ29tcG9uZW50O1xuICBwcml2YXRlIGZvY3VzZWRTdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5wdXRWYWx1ZSQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJGbiQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdWdnZXN0aW9uRmlsdGVyRm4+KFxuICAgIHRoaXMuZmlsdGVyRm4sXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGlucHV0VmFsdWUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmlucHV0VmFsdWUkJC5hc09ic2VydmFibGUoKTtcbiAgZmlsdGVyRm4kOiBPYnNlcnZhYmxlPFN1Z2dlc3Rpb25GaWx0ZXJGbj4gPSB0aGlzLmZpbHRlckZuJCQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgZ2V0IGlucHV0KCk6IEhUTUxJbnB1dEVsZW1lbnQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHJldHVybiB0aGlzLmlubmVyU2VsZWN0b3IgPyBlbC5xdWVyeVNlbGVjdG9yKHRoaXMuaW5uZXJTZWxlY3RvcikgOiBlbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBlbFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PixcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgQE9wdGlvbmFsKClcbiAgICBASG9zdCgpXG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgKSB7XG4gICAgc3VwZXIob3ZlcmxheSwgdmlld0NvbnRhaW5lclJlZiwgZWxSZWYsIHJlbmRlcmVyLCBjZHIsIG5nWm9uZSk7XG4gICAgdGhpcy50eXBlID0gVG9vbHRpcFR5cGUuUGxhaW47XG4gICAgdGhpcy50cmlnZ2VyID0gVG9vbHRpcFRyaWdnZXIuTWFudWFsO1xuICAgIHRoaXMucG9zaXRpb24gPSAnYm90dG9tIHN0YXJ0JztcbiAgICB0aGlzLmhpZGVPbkNsaWNrID0gdHJ1ZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hvdy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTdWdnZXN0aW9uc0NvbnRleHQoKTtcbiAgICB9KTtcbiAgICB0aGlzLmhpZGUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbigpO1xuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlJCQubmV4dCh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0O1xuXG4gICAgbWVyZ2UoZnJvbUV2ZW50KGlucHV0LCAnY2xpY2snKSwgZnJvbUV2ZW50KGlucHV0LCAnZm9jdXMnKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMub25Gb2N1cygpKTtcblxuICAgIGZyb21FdmVudChpbnB1dCwgJ2JsdXInKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkJsdXIoKSk7XG5cbiAgICBmcm9tRXZlbnQoaW5wdXQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShldiA9PiB0aGlzLm9uSW5wdXQoZXYpKTtcblxuICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50PihpbnB1dCwgJ2tleWRvd24nKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoZXYgPT4gdGhpcy5vbktleURvd24oZXYpKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25Gb2N1cygpIHtcbiAgICBpZiAodGhpcy5zdWdnZXN0aW9uVHJpZ2dlciA9PT0gJ2F1dG8nKSB7XG4gICAgICBzdXBlci5vbkZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgdGhpcy5pbnB1dFZhbHVlJCQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gIH1cblxuICBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgdGhpcy5mb2N1c1N1Z2dlc3Rpb25EaXIoJ2Rvd24nKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuZm9jdXNTdWdnZXN0aW9uRGlyKCd1cCcpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RGb2N1c2VkT3B0aW9uKCk7XG4gICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHVwZGF0ZVN1Z2dlc3Rpb25zQ29udGV4dCgpIHtcbiAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAuLi50aGlzLmNvbnRleHQsXG4gICAgICB3aWR0aDogdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JyxcbiAgICB9O1xuICB9XG5cbiAgb25TdWdnZXN0aW9uQ2xpY2sodmFsdWU6IHN0cmluZykge1xuICAgIGxldCBpc0FyckN0cmwgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgY29uc3QgeyBjb250cm9sIH0gPSB0aGlzLm5nQ29udHJvbDtcbiAgICAgIGlzQXJyQ3RybCA9IEFycmF5LmlzQXJyYXkoY29udHJvbC52YWx1ZSk7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUoaXNBcnJDdHJsID8gWy4uLmNvbnRyb2wudmFsdWUsIHZhbHVlXSA6IHZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMuaW5wdXRWYWx1ZSQkLm5leHQoaXNBcnJDdHJsID8gJycgOiB2YWx1ZSk7XG5cbiAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWUpO1xuICAgIHRoaXMuZGlzcG9zZVRvb2x0aXAoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGNyZWF0ZVRvb2x0aXAoKSB7XG4gICAgc3VwZXIuY3JlYXRlVG9vbHRpcCgpO1xuICAgIHRoaXMuYXV0b0ZvY3VzRmlyc3RTdWdnZXN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGF1dG9Gb2N1c0ZpcnN0U3VnZ2VzdGlvbigpIHtcbiAgICBjb25zdCBzZWxlY3RlZFN1Z2dlc3Rpb24gPSB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9ucy5maW5kKFxuICAgICAgc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLnNlbGVjdGVkLFxuICAgICk7XG4gICAgaWYgKHNlbGVjdGVkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRTdWdnZXN0aW9uKHNlbGVjdGVkU3VnZ2VzdGlvbik7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNjcm9sbFRvU3VnZ2VzdGlvbihzZWxlY3RlZFN1Z2dlc3Rpb24pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRlZmF1bHRGaXJzdFN1Z2dlc3Rpb24pIHtcbiAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbiA9IHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25zLmZpbmQoXG4gICAgICAgIHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi52aXNpYmxlICYmICFzdWdnZXN0aW9uLmRpc2FibGVkLFxuICAgICAgKTtcbiAgICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbihmaXJzdEZvY3VzYWJsZVN1Z2dlc3Rpb24pO1xuICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbikge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVG9TdWdnZXN0aW9uKGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbik7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTdWdnZXN0aW9uRGlyKGRpcjogJ2Rvd24nIHwgJ3VwJykge1xuICAgIGlmICghdGhpcy5pc0NyZWF0ZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB2aXNpYmxlU3VnZ2VzdGlvbnMgPSB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9ucy5maWx0ZXIoXG4gICAgICBzdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24udmlzaWJsZSAmJiAhc3VnZ2VzdGlvbi5kaXNhYmxlZCxcbiAgICApO1xuICAgIGlmICh2aXNpYmxlU3VnZ2VzdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0ZXAgPSBkaXIgPT09ICdkb3duJyA/IDEgOiAtMTtcbiAgICBsZXQgaSA9IHZpc2libGVTdWdnZXN0aW9ucy5pbmRleE9mKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pO1xuICAgIGkgPSBpICsgc3RlcDtcbiAgICBpZiAoaSA+PSB2aXNpYmxlU3VnZ2VzdGlvbnMubGVuZ3RoKSB7XG4gICAgICBpID0gMDtcbiAgICB9IGVsc2UgaWYgKGkgPCAwKSB7XG4gICAgICBpID0gdmlzaWJsZVN1Z2dlc3Rpb25zLmxlbmd0aCAtIDE7XG4gICAgfVxuICAgIHRoaXMucmVzZXRGb2N1c2VkU3VnZ2VzdGlvbih2aXNpYmxlU3VnZ2VzdGlvbnNbaV0pO1xuICAgIHRoaXMuc2Nyb2xsVG9TdWdnZXN0aW9uKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldEZvY3VzZWRTdWdnZXN0aW9uKFxuICAgIGZvY3VzZWRTdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50ID0gbnVsbCxcbiAgKSB7XG4gICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24uYmx1cigpO1xuICAgIH1cbiAgICB0aGlzLmZvY3VzZWRTdWdnZXN0aW9uID0gZm9jdXNlZFN1Z2dlc3Rpb247XG4gICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgIHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvU3VnZ2VzdGlvbihzdWdnZXN0aW9uOiBTdWdnZXN0aW9uQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25MaXN0UmVmKSB7XG4gICAgICBzY3JvbGxJbnRvVmlldyhcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbkxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgc3VnZ2VzdGlvbi5lbFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc2VsZWN0Rm9jdXNlZE9wdGlvbigpIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5vblN1Z2dlc3Rpb25DbGljayh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJGbihpbnB1dFZhbHVlOiBzdHJpbmcsIHN1Z2dlc3Rpb246IHN0cmluZykge1xuICAgIHJldHVybiBzdWdnZXN0aW9uPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGlucHV0VmFsdWU/LnRvTG93ZXJDYXNlKCkgPz8gJycpO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlBdXRvY29tcGxldGVdOm5vdChpbnB1dCk6bm90KHRleHRhcmVhKScsXG4gIGV4cG9ydEFzOiAnYXVpQXV0b2NvbXBsZXRlJyxcbiAgaW5wdXRzOiBbJ2NsYXNzOmF1aUF1dG9jb21wbGV0ZUNsYXNzJ10sXG4gIGhvc3Q6IHtcbiAgICBhdXRvY29tcGxldGU6ICdvZmYnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21BdXRvQ29tcGxldGVEaXJlY3RpdmUgZXh0ZW5kcyBBdXRvQ29tcGxldGVEaXJlY3RpdmUge1xuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZUlubmVyU2VsZWN0b3InKVxuICBvdmVycmlkZSBpbm5lclNlbGVjdG9yID0gJ2lucHV0LHRleHRhcmVhJztcbn1cbiJdfQ==
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixJQUFJLEVBQ0osS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBYzFDLE1BQU0sT0FBTyxxQkFDWCxTQUFRLFdBQWdDO0lBaUV4QyxZQUNFLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxLQUFtQyxFQUNuQyxRQUFtQixFQUNuQixHQUFzQixFQUN0QixNQUFjLEVBR0csU0FBb0I7UUFFckMsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUY5QyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBM0N2QywyQkFBc0IsR0FBRyxJQUFJLENBQUM7UUFHOUIsc0JBQWlCLEdBQXFCLE1BQU0sQ0FBQztRQUtwQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUdoQyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd6QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUtyQixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFT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cmxheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlVG9vbHRpcCwgVG9vbHRpcFRyaWdnZXIsIFRvb2x0aXBUeXBlIH0gZnJvbSAnLi4vdG9vbHRpcCc7XG5pbXBvcnQgeyBzY3JvbGxJbnRvVmlldyB9IGZyb20gJy4uL3V0aWxzJztcblxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9Db21wbGV0ZUNvbnRleHQsIFN1Z2dlc3Rpb25GaWx0ZXJGbiB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLnR5cGVzJztcbmltcG9ydCB7IFN1Z2dlc3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3N1Z2dlc3Rpb24vc3VnZ2VzdGlvbi5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFthdWlBdXRvY29tcGxldGVdLHRleHRhcmVhW2F1aUF1dG9jb21wbGV0ZV0nLFxuICBleHBvcnRBczogJ2F1aUF1dG9jb21wbGV0ZScsXG4gIGlucHV0czogWydjbGFzczphdWlBdXRvY29tcGxldGVDbGFzcyddLFxuICBob3N0OiB7XG4gICAgYXV0b2NvbXBsZXRlOiAnb2ZmJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b0NvbXBsZXRlRGlyZWN0aXZlXG4gIGV4dGVuZHMgQmFzZVRvb2x0aXA8QXV0b0NvbXBsZXRlQ29udGV4dD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdFxue1xuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZScpXG4gIGdldCBhdXRvY29tcGxldGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZTtcbiAgfVxuXG4gIHNldCBhdXRvY29tcGxldGUodmFsKSB7XG4gICAgaWYgKHZhbCA9PT0gdGhpcy5fYXV0b2NvbXBsZXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHZhbC5kaXJlY3RpdmUkJC5uZXh0KHRoaXMpO1xuICAgIHRoaXMuX2F1dG9jb21wbGV0ZSA9IHZhbDtcbiAgICB0aGlzLmNvbnRlbnQgPSB2YWwudGVtcGxhdGU7XG4gIH1cblxuICBASW5wdXQoJ2F1aUF1dG9jb21wbGV0ZUZpbHRlckZuJylcbiAgQElucHV0KClcbiAgZ2V0IGZpbHRlckZuKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJGbjtcbiAgfVxuXG4gIHNldCBmaWx0ZXJGbih2YWwpIHtcbiAgICBpZiAodmFsICE9PSB0aGlzLl9maWx0ZXJGbikge1xuICAgICAgdGhpcy5fZmlsdGVyRm4gPSB2YWw7XG4gICAgICB0aGlzLmZpbHRlckZuJCQubmV4dCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlRGVmYXVsdEZpcnN0U3VnZ2VzdGlvbicpXG4gIGRlZmF1bHRGaXJzdFN1Z2dlc3Rpb24gPSB0cnVlO1xuXG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlVHJpZ2dlcicpXG4gIHN1Z2dlc3Rpb25UcmlnZ2VyOiAnYXV0bycgfCAnaW5wdXQnID0gJ2F1dG8nO1xuXG4gIGRlY2xhcmUgaW5uZXJTZWxlY3Rvcjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ2F1aUF1dG9jb21wbGV0ZVNob3cnKVxuICBvdmVycmlkZSBzaG93ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoJ2F1aUF1dG9jb21wbGV0ZUhpZGUnKVxuICBvdmVycmlkZSBoaWRlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoJ2F1aUF1dG9jb21wbGV0ZVNlbGVjdGVkJylcbiAgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBwcml2YXRlIF9hdXRvY29tcGxldGU6IEF1dG9jb21wbGV0ZUNvbXBvbmVudDtcbiAgcHJpdmF0ZSBmb2N1c2VkU3VnZ2VzdGlvbjogU3VnZ2VzdGlvbkNvbXBvbmVudDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGlucHV0VmFsdWUkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyRm4kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U3VnZ2VzdGlvbkZpbHRlckZuPihcbiAgICB0aGlzLmZpbHRlckZuLFxuICApO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBpbnB1dFZhbHVlJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dFZhbHVlJCQuYXNPYnNlcnZhYmxlKCk7XG4gIGZpbHRlckZuJDogT2JzZXJ2YWJsZTxTdWdnZXN0aW9uRmlsdGVyRm4+ID0gdGhpcy5maWx0ZXJGbiQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGdldCBpbnB1dCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICByZXR1cm4gdGhpcy5pbm5lclNlbGVjdG9yID8gZWwucXVlcnlTZWxlY3Rvcih0aGlzLmlubmVyU2VsZWN0b3IpIDogZWw7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBvdmVybGF5OiBPdmVybGF5LFxuICAgIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgZWxSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEhvc3QoKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICkge1xuICAgIHN1cGVyKG92ZXJsYXksIHZpZXdDb250YWluZXJSZWYsIGVsUmVmLCByZW5kZXJlciwgY2RyLCBuZ1pvbmUpO1xuICAgIHRoaXMudHlwZSA9IFRvb2x0aXBUeXBlLlBsYWluO1xuICAgIHRoaXMudHJpZ2dlciA9IFRvb2x0aXBUcmlnZ2VyLk1hbnVhbDtcbiAgICB0aGlzLnBvc2l0aW9uID0gJ2JvdHRvbSBzdGFydCc7XG4gICAgdGhpcy5oaWRlT25DbGljayA9IHRydWU7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNob3cuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU3VnZ2VzdGlvbnNDb250ZXh0KCk7XG4gICAgfSk7XG4gICAgdGhpcy5oaWRlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnJlc2V0Rm9jdXNlZFN1Z2dlc3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRWYWx1ZSQkLm5leHQodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dDtcblxuICAgIG1lcmdlKFxuICAgICAgZnJvbUV2ZW50KHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2NsaWNrJyksXG4gICAgICBmcm9tRXZlbnQoaW5wdXQsICdmb2N1cycpLFxuICAgIClcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgwKSwgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkZvY3VzKCkpO1xuXG4gICAgZnJvbUV2ZW50KGlucHV0LCAnYmx1cicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQmx1cigpKTtcblxuICAgIGZyb21FdmVudChpbnB1dCwgJ2lucHV0JylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ID0+IHRoaXMub25JbnB1dChldikpO1xuXG4gICAgZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGlucHV0LCAna2V5ZG93bicpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZShldiA9PiB0aGlzLm9uS2V5RG93bihldikpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBvdmVycmlkZSBvbkZvY3VzKCkge1xuICAgIGlmICh0aGlzLnN1Z2dlc3Rpb25UcmlnZ2VyID09PSAnYXV0bycpIHtcbiAgICAgIHN1cGVyLm9uRm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZTtcbiAgICB0aGlzLmlucHV0VmFsdWUkJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICB0aGlzLmZvY3VzU3VnZ2VzdGlvbkRpcignZG93bicpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgdGhpcy5mb2N1c1N1Z2dlc3Rpb25EaXIoJ3VwJyk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdEZvY3VzZWRPcHRpb24oKTtcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5kaXNwb3NlVG9vbHRpcCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlU3VnZ2VzdGlvbnNDb250ZXh0KCkge1xuICAgIHRoaXMuY29udGV4dCA9IHtcbiAgICAgIC4uLnRoaXMuY29udGV4dCxcbiAgICAgIHdpZHRoOiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggKyAncHgnLFxuICAgIH07XG4gIH1cblxuICBvblN1Z2dlc3Rpb25DbGljayh2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IGlzQXJyQ3RybCA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICBjb25zdCB7IGNvbnRyb2wgfSA9IHRoaXMubmdDb250cm9sO1xuICAgICAgaXNBcnJDdHJsID0gQXJyYXkuaXNBcnJheShjb250cm9sLnZhbHVlKTtcbiAgICAgIGNvbnRyb2wucGF0Y2hWYWx1ZShpc0FyckN0cmwgPyBbLi4uY29udHJvbC52YWx1ZSwgdmFsdWVdIDogdmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5pbnB1dFZhbHVlJCQubmV4dChpc0FyckN0cmwgPyAnJyA6IHZhbHVlKTtcblxuICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5kaXNwb3NlVG9vbHRpcCgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgY3JlYXRlVG9vbHRpcCgpIHtcbiAgICBzdXBlci5jcmVhdGVUb29sdGlwKCk7XG4gICAgdGhpcy5hdXRvRm9jdXNGaXJzdFN1Z2dlc3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0ZvY3VzRmlyc3RTdWdnZXN0aW9uKCkge1xuICAgIGNvbnN0IGZvY3VzZWRTdWdnZXN0aW9uID0gdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbnMuZmluZChcbiAgICAgIHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi5mb2N1c2VkLFxuICAgICk7XG4gICAgaWYgKGZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlbGVjdGVkU3VnZ2VzdGlvbiA9IHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25zLmZpbmQoXG4gICAgICBzdWdnZXN0aW9uID0+IHN1Z2dlc3Rpb24uc2VsZWN0ZWQsXG4gICAgKTtcbiAgICBpZiAoc2VsZWN0ZWRTdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLnJlc2V0Rm9jdXNlZFN1Z2dlc3Rpb24oc2VsZWN0ZWRTdWdnZXN0aW9uKTtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9TdWdnZXN0aW9uKHNlbGVjdGVkU3VnZ2VzdGlvbik7XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGVmYXVsdEZpcnN0U3VnZ2VzdGlvbikge1xuICAgICAgY29uc3QgZmlyc3RGb2N1c2FibGVTdWdnZXN0aW9uID0gdGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbnMuZmluZChcbiAgICAgICAgc3VnZ2VzdGlvbiA9PiBzdWdnZXN0aW9uLnZpc2libGUgJiYgIXN1Z2dlc3Rpb24uZGlzYWJsZWQsXG4gICAgICApO1xuICAgICAgdGhpcy5yZXNldEZvY3VzZWRTdWdnZXN0aW9uKGZpcnN0Rm9jdXNhYmxlU3VnZ2VzdGlvbik7XG4gICAgICBpZiAoZmlyc3RGb2N1c2FibGVTdWdnZXN0aW9uKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5zY3JvbGxUb1N1Z2dlc3Rpb24oZmlyc3RGb2N1c2FibGVTdWdnZXN0aW9uKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1N1Z2dlc3Rpb25EaXIoZGlyOiAnZG93bicgfCAndXAnKSB7XG4gICAgaWYgKCF0aGlzLmlzQ3JlYXRlZCkge1xuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHZpc2libGVTdWdnZXN0aW9ucyA9IHRoaXMuYXV0b2NvbXBsZXRlLnN1Z2dlc3Rpb25zLmZpbHRlcihcbiAgICAgIHN1Z2dlc3Rpb24gPT4gc3VnZ2VzdGlvbi52aXNpYmxlICYmICFzdWdnZXN0aW9uLmRpc2FibGVkLFxuICAgICk7XG4gICAgaWYgKHZpc2libGVTdWdnZXN0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RlcCA9IGRpciA9PT0gJ2Rvd24nID8gMSA6IC0xO1xuICAgIGxldCBpID0gdmlzaWJsZVN1Z2dlc3Rpb25zLmluZGV4T2YodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbik7XG4gICAgaSA9IGkgKyBzdGVwO1xuICAgIGlmIChpID49IHZpc2libGVTdWdnZXN0aW9ucy5sZW5ndGgpIHtcbiAgICAgIGkgPSAwO1xuICAgIH0gZWxzZSBpZiAoaSA8IDApIHtcbiAgICAgIGkgPSB2aXNpYmxlU3VnZ2VzdGlvbnMubGVuZ3RoIC0gMTtcbiAgICB9XG4gICAgdGhpcy5yZXNldEZvY3VzZWRTdWdnZXN0aW9uKHZpc2libGVTdWdnZXN0aW9uc1tpXSk7XG4gICAgdGhpcy5zY3JvbGxUb1N1Z2dlc3Rpb24odGhpcy5mb2N1c2VkU3VnZ2VzdGlvbik7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9jdXNlZFN1Z2dlc3Rpb24oXG4gICAgZm9jdXNlZFN1Z2dlc3Rpb246IFN1Z2dlc3Rpb25Db21wb25lbnQgPSBudWxsLFxuICApIHtcbiAgICBpZiAodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5mb2N1c2VkU3VnZ2VzdGlvbi5ibHVyKCk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24gPSBmb2N1c2VkU3VnZ2VzdGlvbjtcbiAgICBpZiAodGhpcy5mb2N1c2VkU3VnZ2VzdGlvbikge1xuICAgICAgdGhpcy5mb2N1c2VkU3VnZ2VzdGlvbi5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsVG9TdWdnZXN0aW9uKHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb25Db21wb25lbnQpIHtcbiAgICBpZiAodGhpcy5hdXRvY29tcGxldGUuc3VnZ2VzdGlvbkxpc3RSZWYpIHtcbiAgICAgIHNjcm9sbEludG9WaWV3KFxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZS5zdWdnZXN0aW9uTGlzdFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBzdWdnZXN0aW9uLmVsUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZWxlY3RGb2N1c2VkT3B0aW9uKCkge1xuICAgIGlmICh0aGlzLmZvY3VzZWRTdWdnZXN0aW9uKSB7XG4gICAgICB0aGlzLm9uU3VnZ2VzdGlvbkNsaWNrKHRoaXMuZm9jdXNlZFN1Z2dlc3Rpb24udmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckZuKGlucHV0VmFsdWU6IHN0cmluZywgc3VnZ2VzdGlvbjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN1Z2dlc3Rpb24/LnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoaW5wdXRWYWx1ZT8udG9Mb3dlckNhc2UoKSA/PyAnJyk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1aUF1dG9jb21wbGV0ZV06bm90KGlucHV0KTpub3QodGV4dGFyZWEpJyxcbiAgZXhwb3J0QXM6ICdhdWlBdXRvY29tcGxldGUnLFxuICBpbnB1dHM6IFsnY2xhc3M6YXVpQXV0b2NvbXBsZXRlQ2xhc3MnXSxcbiAgaG9zdDoge1xuICAgIGF1dG9jb21wbGV0ZTogJ29mZicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEN1c3RvbUF1dG9Db21wbGV0ZURpcmVjdGl2ZSBleHRlbmRzIEF1dG9Db21wbGV0ZURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgnYXVpQXV0b2NvbXBsZXRlSW5uZXJTZWxlY3RvcicpXG4gIG92ZXJyaWRlIGlubmVyU2VsZWN0b3IgPSAnaW5wdXQsdGV4dGFyZWEnO1xufVxuIl19
@@ -1850,8 +1850,8 @@ class AutoCompleteDirective extends BaseTooltip {
1850
1850
  }
1851
1851
  ngAfterViewInit() {
1852
1852
  const input = this.input;
1853
- merge(fromEvent(input, 'click'), fromEvent(input, 'focus'))
1854
- .pipe(takeUntil(this.unsubscribe$))
1853
+ merge(fromEvent(this.elRef.nativeElement, 'click'), fromEvent(input, 'focus'))
1854
+ .pipe(debounceTime(0), takeUntil(this.unsubscribe$))
1855
1855
  .subscribe(() => this.onFocus());
1856
1856
  fromEvent(input, 'blur')
1857
1857
  .pipe(takeUntil(this.unsubscribe$))
@@ -1925,6 +1925,10 @@ class AutoCompleteDirective extends BaseTooltip {
1925
1925
  this.autoFocusFirstSuggestion();
1926
1926
  }
1927
1927
  autoFocusFirstSuggestion() {
1928
+ const focusedSuggestion = this.autocomplete.suggestions.find(suggestion => suggestion.focused);
1929
+ if (focusedSuggestion) {
1930
+ return;
1931
+ }
1928
1932
  const selectedSuggestion = this.autocomplete.suggestions.find(suggestion => suggestion.selected);
1929
1933
  if (selectedSuggestion) {
1930
1934
  this.resetFocusedSuggestion(selectedSuggestion);