workplacex-cli
Version:
Create database applications with Angular 11, ASP.NET Core 5.0 and MS-SQL for Linux and Windows.
71 lines (57 loc) • 2.38 kB
text/typescript
import { Component, ElementRef, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';
import { CommandJson, DataService, Json } from '../data.service';
({
selector: '[data-BulmaNavbar]',
templateUrl: './bulma-navbar.component.html'
})
export class BulmaNavbarComponent implements OnInit {
constructor(private dataService: DataService) { }
()
json!: Json
('burger')
burger: ElementRef | undefined;
('burgerTarget')
burgerTarget: ElementRef | undefined;
('dropDown')
dropDownList:QueryList<ElementRef> | undefined;
ngOnInit(): void {
}
clickHome() {
this.json.IsShowSpinner = true;
this.dataService.update(<CommandJson> { CommandEnum: 15, ComponentId: this.json.Id });
return false;
}
clickBurger() {
(<HTMLElement>this.burger?.nativeElement).classList.toggle("is-active");
(<HTMLElement>this.burgerTarget?.nativeElement).classList.toggle("is-active");
}
click(navbarItem: any) {
navbarItem.IsShowSpinner = true;
this.dataService.update(<CommandJson> { CommandEnum: 18, ComponentId: this.json.Id, BulmaNavbarItemId: navbarItem.Id });
return false;
}
ngOnChanges() {
// Called when after every dataService.update(); See also: @Input() json!: Json
if (this.dropDownList != undefined) {
let dropDownListLocal = this.dropDownList.toArray();
// Close drop down
dropDownListLocal.forEach(item => (<HTMLElement>item.nativeElement).classList.remove("is-hoverable"));
setTimeout(() => {
// Restore css class
dropDownListLocal.forEach(item => (<HTMLElement>item.nativeElement).classList.add("is-hoverable"));
}, 100);
}
// Close burger
if (this.burger != undefined && this.burgerTarget != undefined) {
(<HTMLElement>this.burger.nativeElement).classList.remove("is-active");
(<HTMLElement>this.burgerTarget.nativeElement).classList.remove("is-active");
}
}
filterTextChange(navbarItem: any) {
navbarItem.IsShowSpinner = true;
this.dataService.update(<CommandJson> { CommandEnum: 18, ComponentId: this.json.Id, BulmaNavbarItemId: navbarItem.Id, BulmaFilterText: navbarItem.FilterText });
}
trackBy(index: any, item: any) {
return index; // or item.id
}
}