UNPKG

@adaptabletools/adaptable-cjs

Version:

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

84 lines (83 loc) 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CalculatedColumnReducer = exports.CalculatedColumnReady = exports.CalculatedColumnDelete = exports.CalculatedColumnEdit = exports.CalculatedColumnAdd = exports.CALCULATED_COLUMN_READY = exports.CALCULATED_COLUMN_DELETE = exports.CALCULATED_COLUMN_EDIT = exports.CALCULATED_COLUMN_ADD = void 0; const tslib_1 = require("tslib"); const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants"); const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper")); /** * @ReduxAction A Calculated Column has been added */ exports.CALCULATED_COLUMN_ADD = 'CALCULATED_COLUMN_ADD'; /** * @ReduxAction A Calculated Column has been edited */ exports.CALCULATED_COLUMN_EDIT = 'CALCULATED_COLUMN_EDIT'; /** * @ReduxAction A Calculated Column has been deleted */ exports.CALCULATED_COLUMN_DELETE = 'CALCULATED_COLUMN_DELETE'; /** * @ReduxAction Calculated Column Module is ready */ exports.CALCULATED_COLUMN_READY = 'CALCULATED_COLUMN_READY'; const CalculatedColumnAdd = (calculatedColumn) => ({ type: exports.CALCULATED_COLUMN_ADD, calculatedColumn, }); exports.CalculatedColumnAdd = CalculatedColumnAdd; const CalculatedColumnEdit = (calculatedColumn) => ({ type: exports.CALCULATED_COLUMN_EDIT, calculatedColumn, }); exports.CalculatedColumnEdit = CalculatedColumnEdit; const CalculatedColumnDelete = (calculatedColumn) => ({ type: exports.CALCULATED_COLUMN_DELETE, calculatedColumn, }); exports.CalculatedColumnDelete = CalculatedColumnDelete; const CalculatedColumnReady = (calculatedColumnState) => ({ type: exports.CALCULATED_COLUMN_READY, calculatedColumnState, }); exports.CalculatedColumnReady = CalculatedColumnReady; const initialState = { CalculatedColumns: GeneralConstants_1.EMPTY_ARRAY, }; const CalculatedColumnReducer = (state = initialState, action) => { let calculatedColumns; switch (action.type) { case exports.CALCULATED_COLUMN_ADD: { const actionCalculatedColumn = action .calculatedColumn; AdaptableHelper_1.default.addAdaptableObjectPrimitives(actionCalculatedColumn); calculatedColumns = [].concat(state.CalculatedColumns); calculatedColumns.push(actionCalculatedColumn); return { ...state, CalculatedColumns: calculatedColumns }; } // !! MUTABLE STATE case exports.CALCULATED_COLUMN_EDIT: { const actionCalculatedColumn = action .calculatedColumn; return { ...state, CalculatedColumns: state.CalculatedColumns.map((abObject) => abObject.Uuid === actionCalculatedColumn.Uuid ? // we need to assign and return the same object // in order to make working with aggrid easier, as the col getter // references this object Object.assign(abObject, actionCalculatedColumn) : abObject), }; } case exports.CALCULATED_COLUMN_DELETE: { const actionCalculatedColumn = action .calculatedColumn; return { ...state, CalculatedColumns: state.CalculatedColumns.filter((abObject) => abObject.Uuid !== actionCalculatedColumn.Uuid), }; } default: return state; } }; exports.CalculatedColumnReducer = CalculatedColumnReducer;