@lxlib/theme
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.1.
59 lines (58 loc) • 2.2 kB
TypeScript
import { OnDestroy } from '@angular/core';
import { ACLService } from '@lxlib/acl';
import { Observable } from 'rxjs';
import { LxlibI18NService } from '../i18n/i18n';
import { Menu } from './interface';
/**
* 菜单服务,[在线文档](https://ng-alain.com/theme/menu)
*/
export declare class MenuService implements OnDestroy {
private i18nSrv;
private aclService;
private _change$;
private i18n$;
private data;
constructor(i18nSrv: LxlibI18NService, aclService: ACLService);
get change(): Observable<Menu[]>;
visit(data: Menu[], callback: (item: Menu, parentMenum: Menu | null, depth?: number) => void): void;
add(items: Menu[]): void;
/**
* 重置菜单,可能I18N、用户权限变动时需要调用刷新
*/
resume(callback?: (item: Menu, parentMenum: Menu | null, depth?: number) => void): void;
/**
* 加载快捷菜单,加载位置规则如下:
* 1、统一在下标0的节点下(即【主导航】节点下方)
* 1、若 children 存在 【shortcutRoot: true】则最优先【推荐】这种方式
* 2、否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口
* 3、否则放在0节点位置
*/
private loadShortcut;
get menus(): Menu[];
/**
* 清空菜单
*/
clear(): void;
getHit(data: Menu[], url: string, recursive?: boolean, cb?: ((i: Menu) => void) | null): Menu | null;
/**
* 根据URL设置菜单 `_open` 属性
* - 若 `recursive: true` 则会自动向上递归查找
* - 菜单数据源包含 `/ware`,则 `/ware/1` 也视为 `/ware` 项
*/
openedByUrl(url: string | null, recursive?: boolean): void;
/**
* 根据url获取菜单列表
* - 若 `recursive: true` 则会自动向上递归查找
* - 菜单数据源包含 `/ware`,则 `/ware/1` 也视为 `/ware` 项
*/
getPathByUrl(url: string, recursive?: boolean): Menu[];
/**
* Get menu based on `key`
*/
getItem(key: string): Menu | null;
/**
* Set menu based on `key`
*/
setItem(key: string, value: Menu): void;
ngOnDestroy(): void;
}