coreui-angular-ex
Version:
CoreUI Components Library for Angular
45 lines (38 loc) • 1.21 kB
text/typescript
import { AfterContentInit, Directive, ElementRef, HostBinding, Input, Renderer2 } from '@angular/core';
export class HeaderTogglerDirective implements AfterContentInit {
headerToggler = true;
/**
* Default role for header-toggler. [docs]
* @type string
* @default 'button'
*/
type = 'button';
/**
* Default aria-label attr for header-toggler. [docs]
* @type string
* @default 'Toggle navigation'
*/
ariaLabel = 'Toggle navigation';
private hasContent!: boolean;
constructor(
private renderer: Renderer2,
private hostElement: ElementRef
) { }
addDefaultIcon(): void {
const span = this.renderer.createElement('span');
this.renderer.addClass(span, 'header-toggler-icon');
this.renderer.appendChild(this.hostElement.nativeElement, span);
}
ngAfterContentInit(): void {
this.hasContent = this.hostElement.nativeElement.childNodes.length > 0;
if (!this.hasContent) {
this.addDefaultIcon();
}
}
}