ng-devui
Version:
DevUI components based on Angular
104 lines (103 loc) • 3.06 kB
TypeScript
import { TemplateRef } from '@angular/core';
type AccordionMenuItemLinkType = 'routerLink' | 'hrefLink' | string;
export interface AccordionBase {
title: string;
disabled?: boolean;
[prop: string]: any;
}
interface IAccordionActiveable {
active?: boolean;
}
interface IAccordionFoldable<T> {
open?: boolean;
loading?: boolean;
children?: Array<T>;
}
interface IAccordionLinkable {
link?: string;
target?: boolean;
linkType?: AccordionMenuItemLinkType;
}
export interface AccordionBaseItem extends AccordionBase, IAccordionActiveable {
}
export interface AccordionBaseMenu<T> extends AccordionBase, IAccordionFoldable<T> {
}
export interface AccordionLinkableItem extends AccordionBase, IAccordionActiveable, IAccordionLinkable {
}
export interface AccordionMenuItem extends AccordionBase, IAccordionActiveable, IAccordionFoldable<AccordionMenuItem>, IAccordionLinkable {
}
export type AccordionMenuType = Array<AccordionMenuItem>;
export interface AccordionMenuToggleEvent {
item: any;
open: boolean;
parent: any;
event: MouseEvent;
}
export interface AccordionItemClickEvent {
item: any;
prevActiveItem?: any;
parent: any;
event: MouseEvent;
}
interface AccordionMenuKeyGroup {
titleKey?: string;
activeKey?: string;
disabledKey?: string;
openKey?: string;
loadingKey?: string;
childrenKey?: string;
linkKey?: string;
linkTargetKey?: string;
linkTypeKey?: string;
}
type AccordionTemplateRefArray = 'itemTemplate' | 'menuItemTemplate' | 'noContentTemplate' | 'loadingTemplate' | 'innerListTemplate';
type AccordionTemplateRefGroup = {
[p in AccordionTemplateRefArray]: TemplateRef<any>;
};
interface AccordionConfigOptions {
restrictOneOpen?: boolean;
autoOpenActiveMenu?: boolean;
showNoContent?: boolean;
linkDefaultTarget?: string;
i18nCommonText?: any;
i18nText?: any;
linkType: 'routerLink' | 'hrefLink' | 'dependOnLinkTypeKey' | '' | string;
}
export interface AccordionOptions extends AccordionConfigOptions, AccordionMenuKeyGroup, AccordionTemplateRefGroup {
}
/** @deprecated merge into `AccordionMenuItem`*/
export interface AccordionSubMenuItem {
title: string;
active?: boolean;
disabled?: boolean;
[prop: string]: any;
}
/** @deprecated use `AccordionLinkableItem` instead*/
export interface AccordionSubMenuItemHrefLink {
title: string;
link: string;
target?: string;
active?: boolean;
disabled?: boolean;
[prop: string]: any;
}
/** @deprecated use `AccordionLinkableItem` instead*/
export interface AccordionSubMenuItemRouterLink {
title: string;
link: string;
target?: string;
active?: boolean;
disabled?: boolean;
[prop: string]: any;
}
/** @deprecated use `AccordionLinkableItem` instead*/
export interface AccordionSubMenuItemDynamicLink {
title: string;
link: string;
linkType: 'routerLink' | 'hrefLink' | string;
target?: string;
active?: boolean;
disabled?: boolean;
[prop: string]: any;
}
export {};