import { ClaimCriteria } from "@bootkit/angular/security"; /** Base class of all menu items */ export interface MenuItemBase { type: 'section' | 'text' | 'divider'; id?: any; disabled?: boolean; active?: boolean; show?: boolean; claim?: ClaimCriteria; parent?: MenuItem; data?: DataType; } /** Section Menu Item */ export interface SectionMenuItem extends MenuItemBase { type: 'section'; text: string; expanded?: boolean; children?: Array>; } /** Text Menu Item */ export interface TextMenuItem extends MenuItemBase { type: 'text'; text: string; routerLink?: string[]; icon?: string; expanded?: boolean; children?: Array>; } /** Divider Menu Item */ export interface DividerMenuItem extends MenuItemBase { type: 'divider'; } export type MenuItem = TextMenuItem | DividerMenuItem | SectionMenuItem;