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;
}