import { Directive, Input, ElementRef, OnInit, AfterViewInit, NgZone } from '@angular/core'; import { DialogButton } from '@farris/ui-modal'; @Directive({ selector: '[farris-default-focus]' }) export class FarrisDefaultFocusDirective implements OnInit, AfterViewInit { @Input('farris-default-focus') button: DialogButton; constructor(private el: ElementRef, private ngZone: NgZone) { } ngOnInit() { } ngAfterViewInit() { if (this.button.defaultFocus) { this.ngZone.runOutsideAngular(() => { setTimeout(() => { this.el.nativeElement.focus(); }); }); } } }