import { AfterViewInit, ChangeDetectorRef, DoCheck, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; import { PoMenuBaseComponent } from './po-menu-base.component'; import { PoMenuHeaderTemplateDirective } from './po-menu-header-template/po-menu-header-template.directive'; import { PoMenuItem } from './po-menu-item.interface'; /** * @docsExtends PoMenuBaseComponent * * @description * * Aparece completo em telas com largura maior que 1200px, caso contrário o menu é escondido e chamado por meio de um botão. * * O menu também pode ser colapsado. Essa opção é habilitada quando todos os itens de primeiro nível possuírem ícones e textos curtos. * Se colapsado, somente os itens de primeiro nível serão exibidos e, caso o item selecionado possua sub-níveis, * então o menu alternará novamente para o estado aberto. * * Existe a possibilidade de customizar a logomarca, que é exibida na parte superior do componente. * * E para adicionar um conteúdo personalizado entre a logomarca e o campo de filtro, * basta adicionar este conteúdo com a diretiva [**p-menu-header-template**](/documentation/po-menu-header-template). * * Caso utilizar o filtro de menus, é possível realizar buscas em serviço, apenas informando a URL do serviço ou a instância de * um serviço customizado implementando a interface `PoMenuFilter`. * * Para o menu funcionar corretamente é necessário importar o `RouterModule` e `Routes` do módulo principal de * sua aplicação: * * ``` * import { RouterModule, Routes } from '@angular/router'; * * ... * * @NgModule({ * imports: [ * RouterModule, * Routes, * ... * PoModule, * ... * ], * declarations: [ * AppComponent * ], * providers: [], * bootstrap: [AppComponent] * }) * export class AppModule { } * ``` * * Além disso é necessário criar um módulo configurando as rotas da aplicação. * * ``` * import { NgModule } from '@angular/core'; * * import { RouterModule, Routes } from '@angular/router'; * * import { HelloWorldComponent } from './hello-world/hello-world.component'; * * const routes: Routes = [ * {path: 'hello-world', component: HelloWorldComponent} * ]; * * @NgModule({ * imports: [RouterModule.forRoot(routes, {useHash: true})], * exports: [RouterModule] * }) * export class AppRoutingModule {} * ``` * * @example * * * * * * * * * * * * * * * * * * */ export declare class PoMenuComponent extends PoMenuBaseComponent implements AfterViewInit, OnDestroy, OnInit, DoCheck, OnChanges { changeDetector: ChangeDetectorRef; private readonly element; private readonly renderer; private readonly router; private readonly menuItemsService; menuHeaderTemplate: PoMenuHeaderTemplateDirective; activeMenuItem: PoMenuItem; collapsedMobile: boolean; filterLoading: boolean; groupedMenuItem: PoMenuItem; id: string; linkActive: string; mobileOpened: boolean; noData: boolean; timeoutFilter: any; afterViewInitWasCalled: boolean; private filteringItems; private menuInitialized; private menuPrevious; private resizeListener; private itemSubscription; private routeSubscription; constructor(); private get isActiveItemMenuSubMenu(); get enableCollapse(): boolean; get enableCollapseButton(): boolean; get hasFooter(): boolean; get isCollapsed(): boolean; ngDoCheck(): void; ngOnDestroy(): void; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewInit(): void; activateMenuByUrl(urlPath: string, menus: Array): any; checkActiveMenuByUrl(urlPath: string): void; /** * * * Método para colapsar (retrair) o menu. */ collapse(): void; debounceFilter(filter: string): void; /** * * * Método para expandir (aumentar) o menu. */ expand(): void; subscribeToMenuItem(): void; subscribeToRoute(): void; /** * * Método que colapsa e expande o menu alternadamente. * * > Os métodos apenas vão colapsar/expandir o menu se: * - Todos os itens de menu tiverem valor nas propriedades `icon` e `shortLabel`. */ toggle(): void; toggleMenuMobile(): void; onMouseEnter(): void; onMouseLeave(): void; protected checkingRouterChildrenFragments(): string; protected validateCollapseClass(collapsedMobile?: boolean): void; private activateCollapseSubMenuItem; private activateMenuItem; private areSubMenus; private clearGroupMenuIfFirstLevel; private clickMenuItem; private convertToMenuItemFiltered; private createResizeListener; private executeMenuAction; private filterItems; private filterLocalItems; private filterProcess; private filterOnService; private findItems; private findParent; private findRootParent; private getActiveMenuParent; private groupMenuItem; private isRootMenuEqualGroupedMenu; private openParentMenu; private showNoData; private stringify; private toggleGroupedMenuItem; private toggleMenuCollapse; private toggleResize; private validateToggleMenu; private updateMenu; private setCollapsed; }