///
declare namespace BalProps {
type BalNavContainer = 'default' | 'fluid' | 'compact';
type BalNavMetaButtons = BalNavMetaButton[];
type BalNavOptions = BalNavMetaLinkItem[];
interface BalNavMetaButton extends BalNavLinkItem {
touchPlacement?: 'top' | 'bottom' | 'none';
icon?: string;
popupId?: string;
}
interface BalNavMetaLinkItem extends BalNavLinkItem {
overviewLink?: BalNavLinkItem;
mainLinkItems?: BalNavMenuLinkItem[];
}
interface BalNavMenuLinkItem extends BalNavLinkItem {
render(context?: {
onClick: () => void;
}): any;
overviewLink?: BalNavLinkItem;
sectionLinkItems?: BalNavSectionLinkItem[];
serviceLinkItems?: BalNavServiceLinkItem[];
}
interface BalNavSectionLinkItem extends BalNavLinkItem {
linkItems?: BalNavLinkItem[];
}
interface BalNavServiceLinkItem extends BalNavLinkItem {
color?: 'grey' | 'purple' | 'yellow' | 'red' | 'green';
linkItems?: BalNavLinkItem[];
}
interface BalNavLogoLink {
htmlTitle?: string;
ariaLabel?: string;
href?: string;
target?: BalProps.BalButtonTarget;
clickable?: boolean;
onClick?: (ev: MouseEvent) => void;
}
interface BalNavLinkItem {
id: string;
label: string;
value?: string;
active?: boolean;
htmlTitle?: string;
ariaLabel?: string;
href?: string;
target?: BalProps.BalButtonTarget;
clickable?: boolean;
data?: any;
onClick?: (ev: MouseEvent) => void;
onAccordionClick: (ev: MouseEvent) => void;
}
}
declare namespace BalEvents {
interface BalNavCustomEvent extends CustomEvent {
detail: T;
target: HTMLBalNavElement;
}
interface BalNavClickedItem {
label: string;
value?: string;
href?: string;
data?: any;
target?: BalProps.BalButtonTarget;
}
type BalNavItemClickDetail = BalNavClickedItem;
type BalNavItemClick = BalInputCustomEvent;
}