@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
43 lines (42 loc) • 1.8 kB
TypeScript
import { ButtonStyle } from './ButtonStyle';
import { Identifiable } from './AdaptableObject';
import { AdaptableIcon } from './AdaptableIcon';
import { BaseContext } from '../../types';
/**
* Defines a Button that appears in numerous places including Adaptable Form
*/
export interface AdaptableButton<CONTEXT_TYPE extends BaseContext> extends Identifiable {
/**
* Label for Button - can be string or function that provides string
*/
label?: string | ((button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string);
/**
* Style for Button - can be object or function that provides a `ButtonStyle` object
*/
buttonStyle?: ButtonStyle | ((button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => ButtonStyle);
/**
* Icon for Button - can be object or function that provides a `AdaptableIcon` object
*/
icon?: AdaptableIcon | ((button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => AdaptableIcon);
/**
* Where the icon appears relative to the label
* @defaultValue 'start'
*/
iconPosition?: 'start' | 'end';
/**
* Tooltip for Button - can be string or function that provides string
*/
tooltip?: string | ((button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string);
/**
* Function that disables / enables the button based on its evaluation result
*/
disabled?: (button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean;
/**
* Function to invoke when button is clicked
*/
onClick?: (button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => void;
/**
* Function which sets whether Button is hidden
*/
hidden?: (button: AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean;
}