@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
888 lines (887 loc) • 32.9 kB
JavaScript
import { EMPTY_ARRAY, EMPTY_STRING } from '../../Utilities/Constants/GeneralConstants';
import { CELL_SUMMARY_DEFAULT_OPERATION } from '../../Utilities/Constants/ReduxConstants';
import { MathOperation } from '../../AdaptableState/Common/Enums';
import { cloneObject } from '../../Utilities/Helpers/Helper';
import { getRuleAlertProperties } from '../../Utilities/Helpers/Scheduling/ScheduledAlertHelper';
import { AnnotationsService } from '../../Utilities/Services/AnnotationsService';
export const SET_COLUMNS = 'SET_COLUMNS';
export const SET_SELECTED_CELLS = 'SET_SELECTED_CELLS';
export const SET_SELECTED_ROWS = 'SET_SELECTED_ROWS';
export const SET_SETTINGS_PANEL_ITEMS = 'SET_SETTINGS_PANEL_ITEMS';
export const SET_DASHBOARD_MODULE_BUTTONS = 'SET_DASHBOARD_MODULE_BUTTONS';
export const HIGHLIGHT_CELL_ADD = 'HIGHLIGHT_CELL_ADD';
export const HIGHLIGHT_CELL_DELETE = 'HIGHLIGHT_CELL_DELETE';
export const HIGHLIGHT_CELL_DELETE_ALL = 'HIGHLIGHT_CELL_DELETE_ALL';
export const HIGHLIGHT_COLUMN_ADD = 'HIGHLIGHT_COLUMN_ADD';
export const HIGHLIGHT_COLUMN_DELETE = 'HIGHLIGHT_COLUMN_DELETE';
export const HIGHLIGHT_COLUMN_DELETE_ALL = 'HIGHLIGHT_COLUMN_DELETE_ALL';
export const HIGHLIGHT_ROW_ADD = 'HIGHLIGHT_ROW_ADD';
export const HIGHLIGHT_ROWS_ADD = 'HIGHLIGHT_ROWS_ADD';
export const HIGHLIGHT_ROW_DELETE = 'HIGHLIGHT_ROW_DELETE';
export const HIGHLIGHT_ROWS_DELETE = 'HIGHLIGHT_ROWS_DELETE';
export const HIGHLIGHT_ROW_DELETE_ALL = 'HIGHLIGHT_ROW_DELETE_ALL';
export const ALERT_ADD = 'ALERT_ADD';
export const ALERT_DELETE = 'ALERT_DELETE';
export const ALERT_DELETE_ALL = 'ALERT_DELETE_ALL';
export const ALERT_REMOVE_CELL_HIGHLIGHT = 'ALERT_REMOVE_CELL_HIGHLIGHT';
export const ALERT_REMOVE_ROW_HIGHLIGHT = 'ALERT_REMOVE_ROW_HIGHLIGHT';
export const SYSTEM_STATUS_MESSAGE_INFO_ADD = 'SYSTEM_STATUS_MESSAGE_INFO_ADD';
export const SYSTEM_STATUS_MESSAGE_INFO_DELETE_ALL = 'SYSTEM_STATUS_MESSAGE_INFO_DELETE_ALL';
export const SMARTEDIT_CHECK_CELL_SELECTION = 'SMARTEDIT_CHECK_CELL_SELECTION';
export const SMARTEDIT_FETCH_PREVIEW = 'SMARTEDIT_FETCH_PREVIEW';
export const SMARTEDIT_SET_VALID_SELECTION = 'SMARTEDIT_SET_VALID_SELECTION';
export const SMARTEDIT_SET_PREVIEW = 'SMARTEDIT_SET_PREVIEW';
export const SMART_EDIT_CHANGE_VALUE = 'SMART_EDIT_CHANGE_VALUE';
export const SMART_EDIT_CHANGE_OPERATION = 'SMART_EDIT_CHANGE_OPERATION';
export const BULK_UPDATE_CHECK_CELL_SELECTION = 'BULK_UPDATE_CHECK_CELL_SELECTION';
export const BULK_UPDATE_SET_VALID_SELECTION = 'BULK_UPDATE_SET_VALID_SELECTION';
export const BULK_UPDATE_SET_PREVIEW = 'BULK_UPDATE_SET_PREVIEW';
export const BULK_UPDATE_CHANGE_VALUE = 'BULK_UPDATE_CHANGE_VALUE';
export const CACHED_QUERY_ADD = 'CACHED_QUERY_ADD';
export const CELL_SUMMARY_CHANGE_OPERATION = 'CELL_SUMMARY_CHANGE_OPERATION';
export const SET_CELL_SUMMARY_INFO = 'SET_CELL_SUMMARY_INFO';
export const CREATE_CELL_SUMMARY_INFO = 'CREATE_CELL_SUMMARY_INFO';
export const LICENSE_SHOW_WATERMARK = 'LICENSE_SHOW_WATERMARK';
export const LICENSE_DISABLE_PERSISTENCE = 'LICENSE_DISABLE_PERSISTENCE';
export const DATA_CHANGE_HISTORY_ADD = 'DATA_CHANGE_HISTORY_ADD';
export const DATA_CHANGE_HISTORY_UNDO = 'DATA_CHANGE_HISTORY_UNDO';
export const DATA_CHANGE_HISTORY_CLEAR_ROW = 'DATA_CHANGE_HISTORY_CLEAR_ROW';
export const DATA_CHANGE_HISTORY_ENABLE = 'DATA_CHANGE_HISTORY_ENABLE';
export const DATA_CHANGE_HISTORY_DISABLE = 'DATA_CHANGE_HISTORY_DISABLE';
export const DATA_CHANGE_HISTORY_SUSPEND = 'DATA_CHANGE_HISTORY_SUSPEND';
export const DATA_CHANGE_HISTORY_RESUME = 'DATA_CHANGE_HISTORY_RESUME';
export const SETTINGS_PANEL_SET = 'SETTINGS_PANEL_SET';
export const QUICK_FILTER_BAR_SHOW = 'QUICK_FILTER_BAR_SHOW';
export const QUICK_FILTER_BAR_HIDE = 'QUICK_FILTER_BAR_HIDE';
export const DISABLE_DELETE_CONFIRMATION = 'DISABLE_DELETE_CONFIRMATION';
export const LAYOUT_SHOW_NON_EXTENDED_OBJECTS = 'LAYOUT_SHOW_NON_EXTENDED_OBJECTS';
export const DASHBOARD_REFRESH = 'DASHBOARD_REFRESH';
export const DATA_SET_SELECT = 'DATA_SET_SELECT';
export const CHARTING_SET_CURRENT_CHART_MODELS = 'CHARTING_SET_CURRENT_CHART_MODELS';
export const SET_QUICK_SEARCH_FLOATING_VISIBILITY = 'SET_QUICK_SEARCH_FLOATING_VISIBILITY';
export const SYSTEM_EXPORT_BEGIN = 'SYSTEM_EXPORT_BEGIN';
export const SYSTEM_EXPORT_END = 'SYSTEM_EXPORT_END';
export const CELL_POPUP_SHOW = 'CELL_POPUP_SHOW';
export const CELL_POPUP_HIDE = 'CELL_POPUP_HIDE';
export const CELL_POPUP_EDIT_FOCUSED_ENTITY = 'CELL_POPUP_EDIT_FOCUSED_ENTITY';
export const SUMMARY_ROW_SET = 'SUMMARY_ROW_SET';
export const DATA_IMPORT_COMPLETED = 'DATA_IMPORT_COMPLETED';
export const HighlightCellAdd = (cellHighlightInfo) => ({
type: HIGHLIGHT_CELL_ADD,
cellHighlightInfo: cellHighlightInfo,
});
export const HighlightCellDelete = (primaryKeyValue, columnId) => ({
type: HIGHLIGHT_CELL_DELETE,
primaryKeyValue,
columnId,
});
export const HighlightCellDeleteAll = () => ({
type: HIGHLIGHT_CELL_DELETE_ALL,
});
export const HighlightColumnAdd = (columnHighlightInfo) => ({
type: HIGHLIGHT_COLUMN_ADD,
columnHighlightInfo: columnHighlightInfo,
});
export const HighlightColumnDelete = (columnId) => ({
type: HIGHLIGHT_COLUMN_DELETE,
columnId,
});
export const HighlightColumnDeleteAll = () => ({
type: HIGHLIGHT_COLUMN_DELETE_ALL,
});
export const HighlightRowAdd = (rowHighlightInfo) => ({
type: HIGHLIGHT_ROW_ADD,
rowHighlightInfo: rowHighlightInfo,
});
export const HighlightRowsAdd = (rowsHighlightInfo) => ({
type: HIGHLIGHT_ROWS_ADD,
rowsHighlightInfo: rowsHighlightInfo,
});
export const HighlightRowDelete = (primaryKeyValue) => ({
type: HIGHLIGHT_ROW_DELETE,
primaryKeyValue: primaryKeyValue,
});
export const GridHighlightRowsDelete = (primaryKeyValues) => ({
type: HIGHLIGHT_ROWS_DELETE,
primaryKeyValues: primaryKeyValues,
});
export const GridHighlightRowDeleteAll = () => ({
type: HIGHLIGHT_ROW_DELETE_ALL,
});
export const SetColumns = (Columns) => ({
type: SET_COLUMNS,
columns: Columns,
});
export const SetSelectedCells = (SelectedCellInfo) => ({
type: SET_SELECTED_CELLS,
selectedCellInfo: SelectedCellInfo,
});
export const SetSelectedRows = (SelectedRowInfo) => ({
type: SET_SELECTED_ROWS,
selectedRowInfo: SelectedRowInfo,
});
export const SetSettingsPanelItems = (MenuItems) => ({
type: SET_SETTINGS_PANEL_ITEMS,
menuItems: MenuItems,
});
export const SetDasboardModuleButtons = (MenuItems) => ({
type: SET_DASHBOARD_MODULE_BUTTONS,
menuItems: MenuItems,
});
export const AdaptableAlertAdd = (alert, maxAlerts) => ({
type: ALERT_ADD,
alert: alert,
maxAlerts: maxAlerts,
});
export const AdaptableAlertDelete = (alert) => ({
type: ALERT_DELETE,
alert: alert,
});
export const AdaptableAlertDeleteAll = (alerts) => ({
type: ALERT_DELETE_ALL,
alerts: alerts,
});
export const AdaptableAlertRemoveCellHighlight = (alert) => ({
type: ALERT_REMOVE_CELL_HIGHLIGHT,
alert: alert,
});
export const AdaptableAlertRemoveRowHighlight = (alert) => ({
type: ALERT_REMOVE_ROW_HIGHLIGHT,
alert: alert,
});
export const CreateCellSummaryInfo = () => ({
type: CREATE_CELL_SUMMARY_INFO,
});
export const SetCellSummaryInfo = (CellSummary) => ({
type: SET_CELL_SUMMARY_INFO,
cellSummaryInfo: CellSummary,
});
export const SystemStatusMessageInfoAdd = (SystemStatusMessageInfo, MaxSystemStatusMessagesInStore) => ({
type: SYSTEM_STATUS_MESSAGE_INFO_ADD,
systemStatusMessageInfo: SystemStatusMessageInfo,
maxSystemStatusMessagesInStore: MaxSystemStatusMessagesInStore,
});
export const SystemStatusMessageInfoDeleteAll = () => ({
type: SYSTEM_STATUS_MESSAGE_INFO_DELETE_ALL,
});
export const SmartEditChangeValue = (value) => ({
type: SMART_EDIT_CHANGE_VALUE,
value,
});
export const SmartEditChangeOperation = (smartEditOperation) => ({
type: SMART_EDIT_CHANGE_OPERATION,
smartEditOperation,
});
export const SmartEditCheckCellSelection = () => ({
type: SMARTEDIT_CHECK_CELL_SELECTION,
});
export const SmartEditSetValidSelection = (IsValidSmartEditSelection) => ({
type: SMARTEDIT_SET_VALID_SELECTION,
isValidSmartEditSelection: IsValidSmartEditSelection,
});
export const SmartEditSetPreview = (SmartEditPreviewInfo) => ({
type: SMARTEDIT_SET_PREVIEW,
smartEditPreviewInfo: SmartEditPreviewInfo,
});
export const BulkUpdateCheckCellSelection = () => ({
type: BULK_UPDATE_CHECK_CELL_SELECTION,
});
export const BulkUpdateSetValidSelection = (bulkUpdateValidationResult) => ({
type: BULK_UPDATE_SET_VALID_SELECTION,
bulkUpdateValidationResult,
});
export const BulkUpdateSetPreview = (BulkUpdatePreviewInfo) => ({
type: BULK_UPDATE_SET_PREVIEW,
bulkUpdatePreviewInfo: BulkUpdatePreviewInfo,
});
export const BulkUpdateChangeValue = (bulkUpdateValue) => ({
type: BULK_UPDATE_CHANGE_VALUE,
bulkUpdateValue,
});
export const CachedQueryAdd = (cachedQuery) => ({
type: CACHED_QUERY_ADD,
cachedQuery,
});
export const CellSummaryChangeOperation = (cellSummaryOperation) => ({
type: CELL_SUMMARY_CHANGE_OPERATION,
cellSummaryOperation: cellSummaryOperation,
});
export const LicenseShowWatermark = (text) => ({
type: LICENSE_SHOW_WATERMARK,
text,
});
export const LicenseDisablePersistence = () => ({
type: LICENSE_DISABLE_PERSISTENCE,
});
export const DataChangeHistoryAdd = (changeInfo, uniqueKey, maxDataChanges) => ({
type: DATA_CHANGE_HISTORY_ADD,
changeInfo,
uniqueKey,
maxDataChanges,
});
export const DataChangeHistoryUndo = (changeInfo, uniqueKey) => ({
type: DATA_CHANGE_HISTORY_UNDO,
changeInfo,
uniqueKey,
});
export const DataChangeHistoryClearRow = (changeInfo, uniqueKey) => ({
type: DATA_CHANGE_HISTORY_CLEAR_ROW,
changeInfo,
uniqueKey,
});
export const DataChangeHistoryEnable = () => ({
type: DATA_CHANGE_HISTORY_ENABLE,
});
export const DataChangeHistoryDisable = () => ({
type: DATA_CHANGE_HISTORY_DISABLE,
});
export const DataChangeHistorySuspend = () => ({
type: DATA_CHANGE_HISTORY_SUSPEND,
});
export const DataChangeHistoryResume = () => ({
type: DATA_CHANGE_HISTORY_RESUME,
});
export const SettingsPanelSet = (name, settings) => ({
type: SETTINGS_PANEL_SET,
name,
settings,
});
export const QuickFilterBarShow = () => ({
type: QUICK_FILTER_BAR_SHOW,
});
export const QuickFilterBarHide = () => ({
type: QUICK_FILTER_BAR_HIDE,
});
export const LayoutShowNonExtendedObjects = (showNonExtendedObjects) => ({
type: LAYOUT_SHOW_NON_EXTENDED_OBJECTS,
showNonExtendedObjects: showNonExtendedObjects,
});
export const DashboardRefresh = () => ({
type: DASHBOARD_REFRESH,
});
export const DataSetSelect = (dataSet) => ({
type: DATA_SET_SELECT,
dataSet: dataSet,
});
export const ChartingSetCurrentChartModels = (chartModels) => ({
type: CHARTING_SET_CURRENT_CHART_MODELS,
chartModels,
});
export const ChartingCurrentChartModelsSelector = (state) => {
return state.Charting.currentChartModels;
};
export const DisableDeleteConfirmation = () => ({
type: DISABLE_DELETE_CONFIRMATION,
});
export const SystemExportBegin = (reportName, reportFormat, exportDestination) => ({
type: SYSTEM_EXPORT_BEGIN,
reportName,
reportFormat,
exportDestination,
});
export const SystemExportEnd = () => ({
type: SYSTEM_EXPORT_END,
});
export const QuickSearchFloatingVisibility = (visible) => ({
type: SET_QUICK_SEARCH_FLOATING_VISIBILITY,
visible,
});
export const CellPopupShow = (cellPosition, editMode) => ({
type: CELL_POPUP_SHOW,
editMode,
cellPosition,
});
export const CellPopupEditFocusedEntity = (focusedEntity) => ({
type: CELL_POPUP_EDIT_FOCUSED_ENTITY,
focusedEntity,
});
export const RowSummarySet = (rowSummaries) => ({
type: SUMMARY_ROW_SET,
rowSummaries: rowSummaries,
});
export const CellPopupHide = () => ({
type: CELL_POPUP_HIDE,
});
export const DisableDeleteConfirmationSelector = (state) => {
return state.DisableDeleteConfirmation;
};
export const QuickSearchFloatingVisibilitySelector = (state) => {
return state?.QuickSearch?.floatingVisible;
};
export const CommentsAndNotesSelector = (state) => {
return state?.NotesAndComments?.popupPosition;
};
export const CommentsAndNotesEditModeSelector = (state) => {
return state?.NotesAndComments?.editMode;
};
export const CommentsAndNotesFocusedEntitySelector = (state) => {
return state?.NotesAndComments?.focusedEntity;
};
export const DataImportCompleted = (dataImportedInfo) => ({
type: DATA_IMPORT_COMPLETED,
dataImportedInfo: dataImportedInfo,
});
const initialState = {
Columns: EMPTY_ARRAY,
SelectedCellInfo: null,
SelectedRowInfo: null,
CellHighlightInfo: EMPTY_ARRAY,
ColumnHighlightInfo: EMPTY_ARRAY,
RowHighlightInfo: EMPTY_ARRAY,
SettingsPanelModuleEntries: EMPTY_ARRAY,
AdaptableAlerts: EMPTY_ARRAY,
SystemStatusMessages: EMPTY_ARRAY,
Dashboard: { DashboardModuleButtons: EMPTY_ARRAY, DashboardRevision: 1 },
SmartEdit: {
IsValidSmartEditSelection: false,
SmartEditPreviewInfo: null,
SmartEditValue: 1,
SmartEditOperation: MathOperation.Multiply,
},
BulkUpdate: {
BulkUpdateValidationResult: { IsValid: false, Column: null },
BulkUpdatePreviewInfo: null,
BulkUpdateValue: EMPTY_STRING,
},
CachedQueries: EMPTY_ARRAY,
CellSummary: {
CellSummaryOperation: CELL_SUMMARY_DEFAULT_OPERATION,
CellSummaryInfo: null,
},
License: {
watermark: { show: false, text: null },
disablePersistence: false,
},
DataChangeHistory: {
logs: {},
currentMode: 'INACTIVE',
enableTime: null,
suspendTime: null,
},
SettingsPanel: {},
IsQuickFilterVisible: true,
CurrentDataSet: EMPTY_STRING,
Charting: {
currentChartModels: [],
externalChartingDefinitions: [],
},
Layout: {
showLayoutNonExtendedObjects: false,
},
DisableDeleteConfirmation: false,
Export: {
inProgress: null,
},
};
const removeDataChangeHistoryLog = (state, uniqueKey) => {
const updatedDataChangeHistoryLogs = { ...state.DataChangeHistory.logs };
delete updatedDataChangeHistoryLogs[uniqueKey];
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
logs: updatedDataChangeHistoryLogs,
},
};
};
export const InternalReducer = (state = initialState, action) => {
let alerts;
let systemStatusMessages;
switch (action.type) {
case SET_COLUMNS:
return Object.assign({}, state, {
Columns: [].concat(action.columns),
});
case SET_SELECTED_CELLS:
return Object.assign({}, state, {
SelectedCellInfo: action.selectedCellInfo,
});
case SET_SELECTED_ROWS:
return Object.assign({}, state, {
SelectedRowInfo: action.selectedRowInfo,
});
case SET_SETTINGS_PANEL_ITEMS: {
const actionTyped = action;
const menuItems = actionTyped.menuItems.sort((a, b) => a.label < b.label ? -1 : a.label > b.label ? 1 : 0);
return Object.assign({}, state, { SettingsPanelModuleEntries: menuItems });
}
case SET_DASHBOARD_MODULE_BUTTONS: {
const actionTyped = action;
const menuItems = actionTyped.menuItems.sort((a, b) => a.label < b.label ? -1 : a.label > b.label ? 1 : 0);
return {
...state,
Dashboard: {
...state.Dashboard,
DashboardModuleButtons: menuItems,
},
};
}
case HIGHLIGHT_CELL_ADD: {
const actionTypedAdd = action;
return Object.assign({}, state, {
CellHighlightInfo: [...state.CellHighlightInfo, actionTypedAdd.cellHighlightInfo],
});
}
case HIGHLIGHT_CELL_DELETE: {
const actionTypedDelete = action;
const actionId = `${actionTypedDelete.columnId}-${actionTypedDelete.primaryKeyValue}`;
return Object.assign({}, state, {
CellHighlightInfo: state.CellHighlightInfo.filter((celHighlightInfo) => {
const id = `${celHighlightInfo.columnId}-${celHighlightInfo.primaryKeyValue}`;
return id !== actionId;
}),
});
}
case HIGHLIGHT_CELL_DELETE_ALL: {
return Object.assign({}, state, {
CellHighlightInfo: [],
});
}
case HIGHLIGHT_COLUMN_ADD: {
const actionTypedAdd = action;
return Object.assign({}, state, {
ColumnHighlightInfo: [...state.ColumnHighlightInfo, actionTypedAdd.columnHighlightInfo],
});
}
case HIGHLIGHT_COLUMN_DELETE: {
const actionTypedDelete = action;
const actionId = actionTypedDelete.columnId;
return Object.assign({}, state, {
ColumnHighlightInfo: state.ColumnHighlightInfo.filter((columnHighlightInfo) => {
return columnHighlightInfo.columnId !== actionId;
}),
});
}
case HIGHLIGHT_COLUMN_DELETE_ALL: {
return Object.assign({}, state, {
ColumnHighlightInfo: [],
});
}
case HIGHLIGHT_ROW_ADD: {
const actionTypedAdd = action;
return Object.assign({}, state, {
RowHighlightInfo: [...state.RowHighlightInfo, actionTypedAdd.rowHighlightInfo],
});
}
case HIGHLIGHT_ROWS_ADD: {
const actionTypedAdd = action;
const rowHighlightInfos = actionTypedAdd.rowsHighlightInfo.primaryKeyValues.map((primaryKeyValue) => {
return {
primaryKeyValue,
highlightStyle: actionTypedAdd.rowsHighlightInfo.highlightStyle,
timeout: actionTypedAdd.rowsHighlightInfo.timeout,
};
});
return Object.assign({}, state, {
RowHighlightInfo: [...state.RowHighlightInfo, ...rowHighlightInfos],
});
}
case HIGHLIGHT_ROW_DELETE: {
const actionTypedDelete = action;
const actionId = actionTypedDelete.primaryKeyValue;
return Object.assign({}, state, {
RowHighlightInfo: state.RowHighlightInfo.filter((rowHighlightInfo) => {
return rowHighlightInfo.primaryKeyValue !== actionId;
}),
});
}
case HIGHLIGHT_ROWS_DELETE: {
const actionTypedDelete = action;
return Object.assign({}, state, {
RowHighlightInfo: state.RowHighlightInfo.filter((rowHighlightInfo) => {
return !actionTypedDelete.primaryKeyValues.includes(rowHighlightInfo.primaryKeyValue);
}),
});
}
case HIGHLIGHT_ROW_DELETE_ALL: {
return Object.assign({}, state, {
RowHighlightInfo: [],
});
}
case ALERT_ADD: {
const actionTypedAdd = action;
alerts = [].concat(state.AdaptableAlerts);
if (alerts.length == actionTypedAdd.maxAlerts) {
alerts.splice(0, 1);
}
alerts.push(actionTypedAdd.alert);
return Object.assign({}, state, { AdaptableAlerts: alerts });
}
case ALERT_DELETE: {
const adaptableAlert = action.alert;
return {
...state,
AdaptableAlerts: state.AdaptableAlerts.filter((abObject) => abObject.Uuid !== adaptableAlert.Uuid),
};
}
case ALERT_DELETE_ALL: {
return Object.assign({}, state, { AdaptableAlerts: [] });
}
case ALERT_REMOVE_CELL_HIGHLIGHT: {
const adaptableAlert = action
.alert;
return {
...state,
AdaptableAlerts: state.AdaptableAlerts.map((abObject) => {
if (abObject.Uuid === adaptableAlert.Uuid) {
const newAbObject = {
...abObject,
};
newAbObject.alertDefinition = cloneObject(abObject.alertDefinition);
const ruleAlertProperties = getRuleAlertProperties(newAbObject.alertDefinition);
if (ruleAlertProperties) {
delete ruleAlertProperties.HighlightCell;
}
return newAbObject;
}
return abObject;
}),
};
}
case ALERT_REMOVE_ROW_HIGHLIGHT: {
const adaptableAlert = action
.alert;
return {
...state,
AdaptableAlerts: state.AdaptableAlerts.map((abObject) => {
if (abObject.Uuid === adaptableAlert.Uuid) {
const newAbObject = {
...abObject,
};
newAbObject.alertDefinition = cloneObject(abObject.alertDefinition);
const ruleAlertProperties = getRuleAlertProperties(newAbObject.alertDefinition);
if (ruleAlertProperties) {
delete ruleAlertProperties.HighlightRow;
}
return newAbObject;
}
return abObject;
}),
};
}
case SYSTEM_STATUS_MESSAGE_INFO_ADD: {
const actionTypedAdd = action;
systemStatusMessages = [].concat(state.SystemStatusMessages);
if (systemStatusMessages.length == actionTypedAdd.maxSystemStatusMessagesInStore) {
systemStatusMessages.splice(0, 1);
}
systemStatusMessages.push(actionTypedAdd.systemStatusMessageInfo);
return Object.assign({}, state, {
SystemStatusMessages: systemStatusMessages,
});
}
case SYSTEM_STATUS_MESSAGE_INFO_DELETE_ALL: {
return Object.assign({}, state, { SystemStatusMessages: [] });
}
case SMART_EDIT_CHANGE_VALUE:
return {
...state,
SmartEdit: {
...state.SmartEdit,
SmartEditValue: action.value,
},
};
case SMART_EDIT_CHANGE_OPERATION:
return {
...state,
SmartEdit: {
...state.SmartEdit,
SmartEditOperation: action.smartEditOperation,
},
};
case SMARTEDIT_SET_VALID_SELECTION:
return {
...state,
SmartEdit: {
...state.SmartEdit,
IsValidSmartEditSelection: action
.isValidSmartEditSelection,
},
};
case SMARTEDIT_SET_PREVIEW:
return {
...state,
SmartEdit: {
...state.SmartEdit,
SmartEditPreviewInfo: action.smartEditPreviewInfo,
},
};
case BULK_UPDATE_SET_VALID_SELECTION:
return {
...state,
BulkUpdate: {
...state.BulkUpdate,
BulkUpdateValidationResult: action
.bulkUpdateValidationResult,
},
};
case BULK_UPDATE_SET_PREVIEW:
return {
...state,
BulkUpdate: {
...state.BulkUpdate,
BulkUpdatePreviewInfo: action.bulkUpdatePreviewInfo,
},
};
case BULK_UPDATE_CHANGE_VALUE:
return {
...state,
BulkUpdate: {
...state.BulkUpdate,
BulkUpdateValue: action.bulkUpdateValue,
},
};
case CACHED_QUERY_ADD: {
const actionTypedAdd = action;
let cachedQueries = [].concat(state.CachedQueries);
let queryToAdd = actionTypedAdd.cachedQuery;
if (queryToAdd) {
if (cachedQueries.length == 5) {
cachedQueries.splice(0, 1);
}
cachedQueries.push(actionTypedAdd.cachedQuery);
}
return Object.assign({}, state, { CachedQueries: cachedQueries });
}
case SET_CELL_SUMMARY_INFO:
return {
...state,
CellSummary: {
...state.CellSummary,
CellSummaryInfo: action.cellSummaryInfo,
},
};
case CELL_SUMMARY_CHANGE_OPERATION:
return {
...state,
CellSummary: {
...state.CellSummary,
CellSummaryOperation: action.cellSummaryOperation,
},
};
case LICENSE_SHOW_WATERMARK: {
return {
...state,
License: {
...state.License,
watermark: {
show: true,
text: action.text,
},
},
};
}
case LICENSE_DISABLE_PERSISTENCE: {
return {
...state,
License: {
...state.License,
disablePersistence: true,
},
};
}
case DATA_CHANGE_HISTORY_ADD: {
const actionTypedAdd = action;
const cellDataChangedInfo = actionTypedAdd.changeInfo;
const uniqueKey = actionTypedAdd.uniqueKey;
const updatedDataChangeHistoryLogs = { ...state.DataChangeHistory.logs };
delete updatedDataChangeHistoryLogs[uniqueKey];
updatedDataChangeHistoryLogs[uniqueKey] = cellDataChangedInfo;
const maxDataChanges = actionTypedAdd.maxDataChanges;
if (maxDataChanges != null && maxDataChanges >= 0) {
const keys = Object.keys(updatedDataChangeHistoryLogs);
const overflow = keys.length - maxDataChanges;
for (let i = 0; i < overflow; i++) {
delete updatedDataChangeHistoryLogs[keys[i]];
}
}
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
logs: updatedDataChangeHistoryLogs,
},
};
}
case DATA_CHANGE_HISTORY_UNDO:
case DATA_CHANGE_HISTORY_CLEAR_ROW: {
const { uniqueKey } = action;
return removeDataChangeHistoryLog(state, uniqueKey);
}
case DATA_CHANGE_HISTORY_ENABLE: {
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
currentMode: 'ACTIVE',
enableTime: new Date(),
suspendTime: null,
},
};
}
case DATA_CHANGE_HISTORY_DISABLE: {
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
logs: {},
currentMode: 'INACTIVE',
enableTime: null,
suspendTime: null,
},
};
}
case DATA_CHANGE_HISTORY_SUSPEND: {
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
currentMode: 'SUSPENDED',
suspendTime: new Date(),
},
};
}
case DATA_CHANGE_HISTORY_RESUME: {
return {
...state,
DataChangeHistory: {
...state.DataChangeHistory,
currentMode: 'ACTIVE',
suspendTime: null,
},
};
}
case SETTINGS_PANEL_SET: {
const setSettingsAction = action;
return {
...state,
SettingsPanel: {
...state?.SettingsPanel,
[setSettingsAction.name]: setSettingsAction.settings,
},
};
}
case QUICK_FILTER_BAR_SHOW:
return Object.assign({}, state, { IsQuickFilterVisible: true });
case QUICK_FILTER_BAR_HIDE:
return Object.assign({}, state, { IsQuickFilterVisible: false });
case LAYOUT_SHOW_NON_EXTENDED_OBJECTS: {
const typedAction = action;
return {
...state,
Layout: {
showLayoutNonExtendedObjects: typedAction.showNonExtendedObjects,
},
};
}
case DATA_SET_SELECT:
return Object.assign({}, state, {
CurrentDataSet: action.dataSet.name,
});
case DASHBOARD_REFRESH: {
return {
...state,
Dashboard: {
...state.Dashboard,
DashboardRevision: state.Dashboard.DashboardRevision + 1,
},
};
}
case CHARTING_SET_CURRENT_CHART_MODELS: {
const typedAction = action;
return {
...state,
Charting: {
...state.Charting,
currentChartModels: typedAction.chartModels,
},
};
}
case DISABLE_DELETE_CONFIRMATION: {
return {
...state,
DisableDeleteConfirmation: true,
};
}
case SYSTEM_EXPORT_BEGIN: {
const typedAction = action;
return {
...state,
Export: {
inProgress: {
reportName: typedAction.reportName,
reportFormat: typedAction.reportFormat,
exportDestination: typedAction.exportDestination,
},
},
};
}
case SYSTEM_EXPORT_END: {
return {
...state,
Export: {
inProgress: null,
},
};
}
case SET_QUICK_SEARCH_FLOATING_VISIBILITY: {
const typedAction = action;
return {
...state,
QuickSearch: {
...state.QuickSearch,
floatingVisible: typedAction.visible,
},
};
}
case CELL_POPUP_SHOW: {
const typedAction = action;
let newAddress = typedAction?.cellPosition;
const oldAddress = state?.NotesAndComments?.popupPosition;
if (AnnotationsService.isSameAddress(oldAddress, typedAction.cellPosition)) {
newAddress = oldAddress;
if (typedAction.editMode === state.NotesAndComments.editMode) {
return state;
}
}
return {
...state,
NotesAndComments: {
...state.NotesAndComments,
editMode: typedAction.editMode,
popupPosition: newAddress,
},
};
}
case CELL_POPUP_EDIT_FOCUSED_ENTITY: {
const typedAction = action;
return {
...state,
NotesAndComments: {
...state.NotesAndComments,
focusedEntity: typedAction.focusedEntity,
},
};
}
case CELL_POPUP_HIDE: {
return {
...state,
NotesAndComments: {
editMode: false,
popupPosition: null,
},
};
}
case SUMMARY_ROW_SET: {
const typedAction = action;
return {
...state,
RowSummary: {
rowSummaries: typedAction.rowSummaries,
},
};
}
default:
return state;
}
};