]> git.proxmox.com Git - ceph.git/blame - ceph/src/pybind/mgr/dashboard/frontend/src/app/shared/directives/autofocus.directive.ts
import ceph quincy 17.2.6
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / shared / directives / autofocus.directive.ts
CommitLineData
9f95a23c 1import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';
11fdf7f2 2
f67539c2 3import _ from 'lodash';
11fdf7f2
TL
4
5@Directive({
39ae355f 6 selector: '[autofocus]' // eslint-disable-line
11fdf7f2
TL
7})
8export class AutofocusDirective implements AfterViewInit {
9f95a23c
TL
9 private focus = true;
10
11fdf7f2
TL
11 constructor(private elementRef: ElementRef) {}
12
13 ngAfterViewInit() {
14 const el: HTMLInputElement = this.elementRef.nativeElement;
9f95a23c 15 if (this.focus && _.isFunction(el.focus)) {
11fdf7f2
TL
16 el.focus();
17 }
18 }
9f95a23c
TL
19
20 @Input()
21 public set autofocus(condition: any) {
22 if (_.isBoolean(condition)) {
23 this.focus = condition;
24 } else if (_.isFunction(condition)) {
25 this.focus = condition();
26 }
27 }
11fdf7f2 28}