import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, ContentChildren, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RippleModule } from 'primeng/ripple'; import { PrimeTemplate, SharedModule } from 'primeng/api'; import { RouterModule } from '@angular/router'; import { DomHandler } from 'primeng/dom'; class TabMenu { ngAfterContentInit() { this.templates.forEach((item) => { switch (item.getType()) { case 'item': this.itemTemplate = item.template; break; default: this.itemTemplate = item.template; break; } }); } ngAfterViewInit() { this.updateInkBar(); } ngAfterViewChecked() { if (this.tabChanged) { this.updateInkBar(); this.tabChanged = false; } } itemClick(event, item) { if (item.disabled) { event.preventDefault(); return; } if (item.command) { item.command({ originalEvent: event, item: item }); } this.activeItem = item; this.tabChanged = true; } updateInkBar() { let tabHeader = DomHandler.findSingle(this.navbar.nativeElement, 'li.p-highlight'); if (tabHeader) { this.inkbar.nativeElement.style.width = DomHandler.getWidth(tabHeader) + 'px'; this.inkbar.nativeElement.style.left = DomHandler.getOffset(tabHeader).left - DomHandler.getOffset(this.navbar.nativeElement).left + 'px'; } } } TabMenu.decorators = [ { type: Component, args: [{ selector: 'p-tabMenu', template: `
`, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: [".p-tabmenu-nav{-ms-flex-wrap:wrap;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.p-tabmenu-nav,.p-tabmenu-nav a{display:-ms-flexbox;display:flex}.p-tabmenu-nav a{-moz-user-select:none;-ms-flex-align:center;-ms-user-select:none;-webkit-user-select:none;align-items:center;cursor:pointer;overflow:hidden;position:relative;text-decoration:none;user-select:none}.p-tabmenu-nav a:focus{z-index:1}.p-tabmenu-nav .p-menuitem-text{line-height:1}.p-tabmenu-ink-bar{display:none;z-index:1}"] },] } ]; TabMenu.propDecorators = { model: [{ type: Input }], activeItem: [{ type: Input }], popup: [{ type: Input }], style: [{ type: Input }], styleClass: [{ type: Input }], navbar: [{ type: ViewChild, args: ['navbar',] }], inkbar: [{ type: ViewChild, args: ['inkbar',] }], templates: [{ type: ContentChildren, args: [PrimeTemplate,] }] }; class TabMenuModule { } TabMenuModule.decorators = [ { type: NgModule, args: [{ imports: [CommonModule, RouterModule, SharedModule, RippleModule], exports: [TabMenu, RouterModule, SharedModule], declarations: [TabMenu] },] } ]; /** * Generated bundle index. Do not edit. */ export { TabMenu, TabMenuModule }; //# sourceMappingURL=primeng-tabmenu.js.map