@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
68 lines (67 loc) • 2.02 kB
TypeScript
import { AdaptableForm, AdaptableObject } from '../../types';
import { FormContext } from '../AdaptableState/Common/FormContext';
import { DataSetSelectedInfo } from '../Api/Events/DataSetSelected';
/**
* Options to provide Data Sets
*/
export interface DataSetOptions<TData = any> {
/**
* Collection of Data Sets to provide data to AdapTable
*
* @defaultValue []
*/
dataSets?: DataSet<TData>[];
}
/**
* Defines a Data Set object that can provide data to AdapTable
*/
export interface DataSet<TData = any> extends AdaptableObject {
/**
* Name of Data Set
*/
name: string;
/**
* Describes the Data Set
*/
description: string;
/**
* Params for Data Set popup form
*/
form?: AdaptableForm<DataSetFormContext>;
/**
* Additional info for Data Set
*/
info?: Record<string, string | number | boolean | Date>;
/**
* Invoked when this Data Set is selected and it does not define a `form`.
*
* Use for custom loading logic (e.g. server requests). The `DataSetSelected`
* event is still fired for backward compatibility.
*
* @defaultValue undefined
*/
onSelect?: (info: DataSetSelectedInfo) => void | Promise<void>;
/**
* Optional shortcut that loads row data into the Grid when this Data Set is
* selected (only when no `form` is defined). Runs before `onSelect`.
*
* @defaultValue undefined
*/
loadData?: (info: DataSetSelectedInfo) => TData[] | Promise<TData[]>;
/**
* Invoked when the user submits the Data Set form (Enter key or form button).
* When no form `buttons` are defined, an OK button is added automatically.
*
* @defaultValue undefined
*/
onFormSubmit?: (context: DataSetFormContext) => void | Promise<void>;
}
/**
* Used when a DataSet displays a Form
*/
export interface DataSetFormContext extends FormContext {
/**
* The DataSet which triggered the Form
*/
dataSet: DataSet;
}