> For the complete documentation index, see [llms.txt](https://docs.dikesoft.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.dikesoft.com/reference/interfaces/editing.md).

# Editing

## RowEditionActions

```typescript
interface RowEditionActions {
  edit: boolean,
  delete: boolean,
  save: boolean,
  cancel: boolean
}
```

## CrossFieldValidationSettings\<T>

```typescript
interface CrossFieldValidationSettings<T extends object> {
  customValidator?: (columnDef: DikeGridColumnDef<T>) => ValidatorFn,
  customAsyncValidator?: (columnDef: DikeGridColumnDef<T>) => AsyncValidatorFn,
  updateOn?: 'change' | 'blur' | 'submit',
  errorMessages: CustomErrorMessage
}
```

## EditionFieldSettings

```typescript
interface EditionFieldSettings {
  required?: boolean,
  validators?: ValidatorFn[],
  asyncValidators?: AsyncValidatorFn[],
  updateOn?: 'change' | 'blur' | 'submit',
  options?: DikeBinarySelectionModel[] | DikeNumericSelectionModel[] | DikeTextSelectionModel[],
  errorMessages?: CustomErrorMessage
}
```

## DikeGridEditionSettings\<T>

```typescript
interface DikeGridEditionSettings<T extends object> {
  maxRowsInEdition?: number,
  rowEditionDblClick?: boolean,
  rowEditionEnterkey?: boolean,
  rowEditionEscKey?: boolean,
  splitDeleteOperation?: boolean,
  deleteOperationRowSubsetSize?: number,
  splitUndoOperation?: boolean,
  undoOperationRowSubsetSize?: number,
  crossFieldValidation?: CrossFieldValidationSettings<T>
  waitForMultipleRowDeletions?: boolean,
  waitForMultipleRowUpdates?: boolean,
  waitForMultipleRowCancellations?: boolean,
  waitForMultipleRowRestorations?: boolean
}
```
