UNPKG

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