UNPKG

@delon/theme

Version:

ng-alain theme system library.

115 lines (114 loc) 3.8 kB
import { OnDestroy } from '@angular/core'; import { Observable } from 'rxjs'; import { Menu } from './interface'; import * as i0 from "@angular/core"; /** * 菜单服务,[在线文档](https://ng-alain.com/theme/menu) */ export declare class MenuService implements OnDestroy { private readonly i18nSrv; private readonly aclService; private _change$; private i18n$?; private data; /** * 是否完全受控菜单打开状态,默认:`false` */ openStrictly: boolean; constructor(); get change(): Observable<Menu[]>; get menus(): Menu[]; /** * Returns a default menu link * * 返回一个默认跳转的菜单链接 */ getDefaultRedirect(opt?: { redirectUrl?: string; }): string | null | undefined; visit<T extends Menu = Menu>(data: T[], callback: (item: T, parentMenum: T | null, depth?: number) => void): void; visit(data: Menu[], callback: (item: Menu, parentMenum: Menu | null, depth?: number) => void): void; add(items: Menu[]): void; private fixItem; /** * 重置菜单,可能I18N、用户权限变动时需要调用刷新 */ resume<T extends Menu = Menu>(callback?: (item: T, parentMenum: T | null, depth?: number) => void): void; resume(callback?: (item: Menu, parentMenum: Menu | null, depth?: number) => void): void; /** * 加载快捷菜单,加载位置规则如下: * 1、统一在下标0的节点下(即【主导航】节点下方) * 1、若 children 存在 【shortcutRoot: true】则最优先【推荐】这种方式 * 2、否则查找带有【dashboard】字样链接,若存在则在此菜单的下方创建快捷入口 * 3、否则放在0节点位置 */ private loadShortcut; /** * 清空菜单 */ clear(): void; /** * Use `url` or `key` to find menus * * 利用 `url` 或 `key` 查找菜单 */ find(options: { key?: string | null; url?: string | null; recursive?: boolean | null; /** * When the callback returns a Boolean type, it means the custom validation result * * 当回调返回一个布尔类型时,表示自定义校验结果 */ cb?: ((i: Menu) => boolean | null) | null; /** * Use the current menu data by default * * 默认使用当前菜单数据 */ data?: Menu[] | null; /** * Whether to ignore hide items, default: `false` * * 是否忽略隐藏的项,默认:`false` */ ignoreHide?: boolean; /** * Whether to return the last one, default: `false` * * 是否返回最后一个,默认:`false` */ last?: boolean; }): Menu | null; /** * 根据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 | Menu, value: Menu, options?: { emit?: boolean; }): void; /** * Open menu based on `key` or menu object */ open(keyOrItem: string | Menu | null, options?: { emit?: boolean; }): void; openAll(status?: boolean): void; toggleOpen(keyOrItem: string | Menu | null, options?: { allStatus?: boolean; emit?: boolean; }): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<MenuService, never>; static ɵprov: i0.ɵɵInjectableDeclaration<MenuService>; }