UNPKG

@adaptabletools/adaptable

Version:

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

106 lines (105 loc) 3.94 kB
import { EMPTY_ARRAY } from '../../Utilities/Constants/GeneralConstants'; import AdaptableHelper from '../../Utilities/Helpers/AdaptableHelper'; import { changeIsSuspendInList, suspendAllInList, unsuspendAllInList } from './utils'; export const STYLED_COLUMN_ADD = 'STYLED_COLUMN_ADD'; export const STYLED_COLUMN_EDIT = 'STYLED_COLUMN_EDIT'; export const STYLED_COLUMN_DELETE = 'STYLED_COLUMN_DELETE'; export const STYLED_COLUMN_DELETE_ALL = 'STYLED_COLUMN_DELETE_ALL'; export const STYLED_COLUMN_READY = 'STYLED_COLUMN_READY'; export const STYLED_COLUMN_SUSPEND = 'STYLED_COLUMN_SUSPEND'; export const STYLED_COLUMN_UNSUSPEND = 'STYLED_COLUMN_UNSUSPEND'; export const STYLED_COLUMN_SUSPEND_ALL = 'STYLED_COLUMN_SUSPEND_ALL'; export const STYLED_COLUMN_UNSUSPEND_ALL = 'STYLED_COLUMN_UNSUSPEND_ALL'; export const StyledColumnAdd = (styledColumn) => ({ type: STYLED_COLUMN_ADD, StyledColumn: styledColumn, }); export const StyledColumnEdit = (styledColumn) => ({ type: STYLED_COLUMN_EDIT, StyledColumn: styledColumn, }); export const StyledColumnDelete = (styledColumn) => ({ type: STYLED_COLUMN_DELETE, StyledColumn: styledColumn, }); export const StyledColumnDeleteAll = () => ({ type: STYLED_COLUMN_DELETE_ALL, }); export const StyledColumnSuspend = (styledColumn) => ({ type: STYLED_COLUMN_SUSPEND, StyledColumn: styledColumn, }); export const StyledColumnUnSuspend = (styledColumn) => ({ type: STYLED_COLUMN_UNSUSPEND, StyledColumn: styledColumn, }); export const StyledColumnSuspendAll = () => ({ type: STYLED_COLUMN_SUSPEND_ALL, }); export const StyledColumnUnSuspendAll = () => ({ type: STYLED_COLUMN_UNSUSPEND_ALL, }); export const StyledColumnReady = (styledColumnState) => ({ type: STYLED_COLUMN_READY, StyledColumnState: styledColumnState, }); const initialState = { StyledColumns: EMPTY_ARRAY, }; export const StyledColumnReducer = (state = initialState, action) => { let styledColumns; switch (action.type) { case STYLED_COLUMN_ADD: { const actionStyledColumn = action.StyledColumn; AdaptableHelper.addAdaptableObjectPrimitives(actionStyledColumn); styledColumns = [].concat(state.StyledColumns); styledColumns.push(actionStyledColumn); return { ...state, StyledColumns: styledColumns }; } case STYLED_COLUMN_EDIT: const actionStyledColumn = action.StyledColumn; return { ...state, StyledColumns: state.StyledColumns.map((abObject) => abObject.Uuid === actionStyledColumn.Uuid ? actionStyledColumn : abObject), }; case STYLED_COLUMN_DELETE: { const actionStyledColumn = action.StyledColumn; return { ...state, StyledColumns: state.StyledColumns.filter((abObject) => abObject.Uuid !== actionStyledColumn.Uuid), }; } case STYLED_COLUMN_DELETE_ALL: { return { ...state, StyledColumns: [], }; } case STYLED_COLUMN_SUSPEND: { return { ...state, StyledColumns: changeIsSuspendInList(action.StyledColumn, state.StyledColumns, true), }; } case STYLED_COLUMN_UNSUSPEND: { return { ...state, StyledColumns: changeIsSuspendInList(action.StyledColumn, state.StyledColumns, false), }; } case STYLED_COLUMN_SUSPEND_ALL: { return { ...state, StyledColumns: suspendAllInList(state.StyledColumns), }; } case STYLED_COLUMN_UNSUSPEND_ALL: { return { ...state, StyledColumns: unsuspendAllInList(state.StyledColumns), }; } default: return state; } };