export type DropdownAction<T> = {
label?: string
iconName?: GlobalIconName
+ description?: string
+ title?: string
handler?: (a: T) => any
linkBuilder?: (a: T) => (string | number)[]
isDisplayed?: (a: T) => boolean
+ isHeader?: boolean
}
export type DropdownButtonSize = 'normal' | 'small'
@Input() entry: T
@Input() placement = 'bottom-left auto'
+ @Input() container: null | 'body'
@Input() buttonSize: DropdownButtonSize = 'normal'
@Input() buttonDirection: DropdownDirection = 'horizontal'
@Input() label: string
@Input() theme: DropdownTheme = 'grey'
- getActions () {
- if (this.actions.length !== 0 && Array.isArray(this.actions[0])) return this.actions
+ getActions (): DropdownAction<T>[][] {
+ if (this.actions.length !== 0 && Array.isArray(this.actions[0])) return this.actions as DropdownAction<T>[][]
- return [ this.actions ]
+ return [ this.actions as DropdownAction<T>[] ]
}
areActionsDisplayed (actions: Array<DropdownAction<T> | DropdownAction<T>[]>, entry: T): boolean {