UNPKG

@adaptabletools/adaptable

Version:

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

46 lines (45 loc) 1.87 kB
export class RowFormService { constructor(adaptableApi) { this.adaptableApi = adaptableApi; if (adaptableApi.optionsApi.getRowFormOptions().autoHandle) { adaptableApi.eventApi.on('RowFormSubmitted', (eventInfo) => this.autoHandleRowFormButtons(eventInfo)); } } autoHandleRowFormButtons(rowFormSubmittedInfo) { const { adaptableApi } = rowFormSubmittedInfo; if (rowFormSubmittedInfo.type === 'rowEdited') { const { rowNode, formData } = rowFormSubmittedInfo; const newRowData = { ...rowNode.data, ...formData, }; adaptableApi.gridApi.updateGridData([newRowData]); } if (rowFormSubmittedInfo.type === 'rowDeleted') { const { rowNode } = rowFormSubmittedInfo; const deletedRowData = rowNode.data; adaptableApi.gridApi.deleteGridData([deletedRowData]); } if (rowFormSubmittedInfo.type === 'rowCreated') { const { formData } = rowFormSubmittedInfo; let newRowData = formData; const setPrimaryKeyValueFunction = adaptableApi.optionsApi.getRowFormOptions().setPrimaryKeyValue; if (setPrimaryKeyValueFunction) { const context = { rowData: formData, ...adaptableApi.internalApi.buildBaseContext(), }; const pkValue = setPrimaryKeyValueFunction(context); const primaryKeyColumn = this.adaptableApi.columnApi.getPrimaryKeyColumn(); newRowData[primaryKeyColumn.columnId] = pkValue; } const config = { addIndex: 0, }; adaptableApi.gridApi.addGridData([newRowData], config); } } destroy() { // nothing yet } }