import { ConnectedPosition } from "@angular/cdk/overlay"; import { saIcon } from "./icon-interface"; import { IChip } from "../lib/chips/chips.component"; import { StatusDotConfig } from "./status-dot.interface"; export interface IMenu { width?: string; title?: string; showTray?: boolean; user?: { name?: string; email?: string; altText?: string; }; items?: IMenuItem[]; showSearch?: boolean; showAddIcon?: boolean; searchPlaceholder?: string; tabs?: menueTabs[]; itemGroups?: IMenuGroup[]; customClass?: string; className?: string; loading?: boolean; itemGroupsSkeletonConfig?: any; overlayConfig?: { offsetX?: number; offsetY?: number; }; } export interface menueTabs { label?: string; status?: 'active' | 'inactive' | 'disabled'; itemGroups?: IMenuGroup[]; } export interface IMenuItem { label?: string; isSelected?: boolean; id?: string | number; status?: 'active' | 'inactive' | 'disabled'; statusDot?: StatusDotConfig; chips?: Array; icon?: saIcon; [key: string]: any; showSeparator?: boolean; sepratorPosition?: 'top' | 'bottom'; subMenu?: IMenu; } export interface IMenuGroup { groupTitle?: string; items?: IMenuItem[]; } export type MyOverlayPositions = { [key: string]: ConnectedPosition; };