UNPKG

@engie-group/fluid-design-system-angular

Version:

Fluid Design System Angular

37 lines (29 loc) 947 B
import {ChangeDetectorRef, Directive, DoCheck, Host, inject, Self} from '@angular/core'; import {ListItemComponent} from '../../list-item/list-item.component'; import {SidebarComponent} from '../sidebar.component'; @Directive({ selector: '[njSidebarItem]', standalone: true }) export class SidebarItemDirective implements DoCheck { private isCurrentlyFolded: boolean; @Host() private sidebar = inject(SidebarComponent); @Self() private listItem = inject(ListItemComponent); private cdr = inject(ChangeDetectorRef); constructor() { this.listItem.hasRightBorder = true; this.updateListItemFoldedState(); } ngDoCheck() { if (this.isCurrentlyFolded !== this.sidebar.isFolded) { this.updateListItemFoldedState(); } } private updateListItemFoldedState() { this.isCurrentlyFolded = this.sidebar.isFolded; this.listItem.isIconOnly = this.isCurrentlyFolded; this.cdr.markForCheck(); } }