import { Component, HostBinding, ViewChild, Input, OnInit, ElementRef, AfterViewInit } from '@angular/core';
|
|
@Component({
|
selector: 'header-search',
|
template: `
|
<nz-input nzPlaceHolder='{{ "top-search-ph" | translate}}' [(ngModel)]="q"
|
(nzFocus)="qFocus()" (nzBlur)="qBlur()">
|
<ng-template #prefix>
|
<i class="anticon anticon-search"></i>
|
</ng-template>
|
</nz-input>
|
`
|
})
|
export class HeaderSearchComponent implements AfterViewInit {
|
|
q: string;
|
|
qIpt: HTMLInputElement;
|
|
@HostBinding('class.header-search__focus')
|
focus = false;
|
|
@HostBinding('class.header-search__toggled')
|
searchToggled = false;
|
|
@Input()
|
set toggleChange(value: boolean) {
|
if (typeof value === 'undefined') return;
|
console.log('toggleChange', value);
|
this.searchToggled = true;
|
this.focus = true;
|
setTimeout(() => this.qIpt.focus(), 300);
|
}
|
|
constructor(private el: ElementRef) {}
|
|
ngAfterViewInit() {
|
this.qIpt = (this.el.nativeElement as HTMLElement).querySelector('.ant-input') as HTMLInputElement;
|
}
|
|
qFocus() {
|
this.focus = true;
|
}
|
|
qBlur() {
|
this.focus = false;
|
this.searchToggled = false;
|
}
|
}
|