import {NgModule,Component,Input,Output,EventEmitter,ChangeDetectionStrategy, ViewEncapsulation, TemplateRef, ContentChildren, QueryList, AfterContentInit} from '@angular/core'; import {CommonModule} from '@angular/common'; import {MenuItem, PrimeTemplate} from 'mirra-ui/api'; import {RouterModule} from '@angular/router'; @Component({ selector: "p-steps", templateUrl: "./steps.html", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styleUrls: ["./steps.scss"], }) export class Steps implements AfterContentInit { @Input() activeIndex: number = 0; @Input() model: MenuItem[]; @Input() readonly: boolean = true; @Input() style: any; @Input() styleClass: string; contentTemplate: TemplateRef; @ContentChildren(PrimeTemplate) templates: QueryList; ngAfterContentInit() { this.templates.forEach((item) => { switch (item.getType()) { case "contentTemplate": this.contentTemplate = item.template; break; default: this.contentTemplate = item.template; break; } }); } @Output() activeIndexChange: EventEmitter = new EventEmitter(); itemClick(event: Event, item: MenuItem, i: number) { if (this.readonly || item.disabled) { event.preventDefault(); return; } this.activeIndexChange.emit(i); if (!item.url) { event.preventDefault(); } if (item.command) { item.command({ originalEvent: event, item: item, index: i, }); } } } @NgModule({ imports: [CommonModule,RouterModule], exports: [Steps,RouterModule], declarations: [Steps] }) export class StepsModule { }