]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/autofocus.directive.ts
import 15.2.0 Octopus source
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / directives / autofocus.directive.ts
index 809d8b76421d63c0210c48d28d6b3ddad93f277a..169571f3d09252c7f2a548e874a5a752f4d8c9d2 100644 (file)
@@ -1,4 +1,4 @@
-import { AfterViewInit, Directive, ElementRef } from '@angular/core';
+import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';
 
 import * as _ from 'lodash';
 
@@ -6,12 +6,23 @@ import * as _ from 'lodash';
   selector: '[autofocus]' // tslint:disable-line
 })
 export class AutofocusDirective implements AfterViewInit {
+  private focus = true;
+
   constructor(private elementRef: ElementRef) {}
 
   ngAfterViewInit() {
     const el: HTMLInputElement = this.elementRef.nativeElement;
-    if (_.isFunction(el.focus)) {
+    if (this.focus && _.isFunction(el.focus)) {
       el.focus();
     }
   }
+
+  @Input()
+  public set autofocus(condition: any) {
+    if (_.isBoolean(condition)) {
+      this.focus = condition;
+    } else if (_.isFunction(condition)) {
+      this.focus = condition();
+    }
+  }
 }