angular-sidebar-menu
Version:
The sources for this package are in the [Angular Sidebar Menu](https://github.com/mledour/angular-sidebar-menu) repo. Please file issues and pull requests against that repo.
42 lines (41 loc) • 1.2 kB
TypeScript
import { Role } from './internal/role.service';
export declare type UnAuthorizedVisibility = 'hidden' | 'disabled';
export declare enum Modes {
EXPANDED = "expanded",
EXPANDABLE = "expandable",
MINI = "mini"
}
declare type MenuItemID = number | string;
export interface MenuItemBadge {
label: string;
classes: string;
}
export interface MenuItemBase {
id?: MenuItemID;
label: string;
iconClasses?: string;
badges?: MenuItemBadge[];
roles?: Role[];
}
export interface MenuItemLeafRoute extends MenuItemBase {
route: string;
linkActiveExact?: boolean;
}
export interface MenuItemLeafURL extends MenuItemBase {
url: string;
target?: string;
}
export interface MenuItemHeader {
id?: MenuItemID;
header: string;
}
export interface MenuItemNode extends MenuItemBase {
children: MenuItem[];
}
declare type Without<T, U> = {
[P in Exclude<keyof T, keyof U>]?: never;
};
declare type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
export declare type MenuItem = XOR<MenuItemLeafRoute, XOR<MenuItemLeafURL, XOR<MenuItemHeader, MenuItemNode>>>;
export declare type Menu = MenuItem[];
export {};