UNPKG

@adaptabletools/adaptable

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

142 lines (141 loc) 4.25 kB
import { AdaptableMessageType, BaseContext, AdaptableColumnContext } from '../../types'; import { CellDataChangedInfo } from '../AdaptableState/Common/CellDataChangedInfo'; import { MathOperation } from '../AdaptableState/Common/Enums'; import { GridCell } from '../AdaptableState/Selection/GridCell'; /** * Options related to Editing in AdapTable - includes Server Validation, Smart Edit Operations and Cell Editabiility */ export interface EditOptions<TData = any> { /** * Function to validate AdapTable data edits remotely */ validateOnServer?: (serverValidationContext: ServerValidationContext<TData>) => Promise<ServerValidationResult>; /** * Whether to display message after Server Validation runs * * @defaultValue true * @gridInfoItem */ displayServerValidationMessages?: boolean; /** * Function which checks if a given Grid Cell is editable */ isCellEditable?: (cellEditableContext: CellEditableContext<TData>) => boolean; /** * Custom Operations to use in Smart Edit */ smartEditCustomOperations?: SmartEditCustomOperation<TData>[]; /** * Columns that will display a Select dropdown when editing */ showSelectCellEditor?: (currentColumContext: AdaptableColumnContext<TData>) => boolean; /** * List of Column values to display when Editing (i.e. in Edit Lookups, Bulk Update) */ customEditColumnValues?: (context: CustomEditColumnValuesContext<TData>) => CustomEditColumnValueInfo[] | Promise<CustomEditColumnValueInfo[]>; } /** * Context used when getting Distinct Column Values for Editing */ export interface CustomEditColumnValuesContext<TData = any> extends AdaptableColumnContext<TData> { /** * Current distinct values in Column */ defaultValues: Required<CustomEditColumnValueInfo>[]; /** * Search text in Edit - used when fetching values from server */ currentSearchValue: string; /** * Currently edited Grid Cell */ gridCell: GridCell; } /** * Information about items in the Edit Controls */ export interface CustomEditColumnValueInfo { /** * Item's label */ label?: string; /** * Value of Item being shown */ value: any; } /** * Used for Server Validation ie. after an edit in AG Grid which must be checked on Server */ export interface ServerValidationResult { /** * Header to diplay with validation * @defaultValue 'Server Validation Message', */ validationHeader?: string; /** * Message to diplay with validation */ validationMessage?: string; /** * Cell Value to use for after Server Validation */ newCellValue?: any; /** * Type of Message to Display * @defaultValue Info * */ messageType?: AdaptableMessageType; } /** * Custom Operation used in Smart Edit Module */ export type SmartEditCustomOperation<TData = any> = { /** * Name of the Custom Operation (as appears in AdapTable UI) */ name: string; /** * Custom Operation function - returns a number */ operation: (context: SmartEditOperationContext<TData>) => number; }; /** * Operation used by Smart Edit - either System or Custom */ export type SmartEditOperation = SmartEditCustomOperation | MathOperation; /** * Context used in Custom Smart Edit Operations */ export interface SmartEditOperationContext<TData = any> extends BaseContext { /** * Smart Edit value */ smartEditValue: number; /** * Current selected grid cell - contains column, row and cell value information */ currentCell: GridCell<TData>; } /** * Context used when validating data edits on Server */ export interface ServerValidationContext<TData = any> extends BaseContext { /** * Details of Cell Edit */ cellDataChangedInfo: CellDataChangedInfo<TData>; } /** * Context used when checking Cell editability */ export interface CellEditableContext<TData = any> extends BaseContext { /** * Cell being edited */ gridCell: GridCell<TData>; /** * Default editability according to the AG Grid Column Definition (`ColDef.editable`) */ defaultColDefEditableValue: boolean; }