UNPKG

@adaptabletools/adaptable

Version:

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

200 lines (199 loc) 8.79 kB
import { ApiBase } from '../Implementation/ApiBase'; import isEqual from 'lodash/isEqual'; export class EventInternalApi extends ApiBase { fireGridSortedEvent() { if (this.isAdapTableReady()) { const adaptableSortState = this.getStateApi().getAdaptableSortState(); const gridSortedInfo = { adaptableSortState: adaptableSortState, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('GridSorted', gridSortedInfo); } } fireCellChangedEvent(cellDataChangedInfo) { if (this.isAdapTableReady()) { const cellChangedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), cellDataChange: cellDataChangedInfo, }; this.getEventApi().emit('CellChanged', cellChangedInfo); } } fireRowChangedEvent(rowDataChangedInfo) { if (this.isAdapTableReady()) { const rowChangedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), rowDataChange: rowDataChangedInfo, }; this.getEventApi().emit('RowChanged', rowChangedInfo); } } fireDashboardChangedEvent(trigger, oldDashboardState, newDashboardState) { const isToolbarStateChangedToVisible = (toolbarName) => { const visibleInNewState = this.getDashboardApi().internalApi.isToolbarInActiveTab(toolbarName, newDashboardState); const visibleInOldState = this.getDashboardApi().internalApi.isToolbarInActiveTab(toolbarName, oldDashboardState); if (visibleInNewState && visibleInOldState) { // check for dashboard collapse/expand/hidden changes return ((oldDashboardState.IsCollapsed && !newDashboardState.IsCollapsed) || (oldDashboardState.IsHidden && !newDashboardState.IsHidden)); } return visibleInNewState && !visibleInOldState; }; const isToolbarStateChangedToHidden = (toolbarName) => { const visibleInNewState = this.getDashboardApi().internalApi.isToolbarInActiveTab(toolbarName, newDashboardState); const visibleInOldState = this.getDashboardApi().internalApi.isToolbarInActiveTab(toolbarName, oldDashboardState); if (visibleInNewState && visibleInOldState) { // check for dashboard collapse/expand/hidden changes return ((!oldDashboardState.IsCollapsed && newDashboardState.IsCollapsed) || (!oldDashboardState.IsHidden && newDashboardState.IsHidden)); } return visibleInOldState && !visibleInNewState; }; const dashboardChangedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), actionName: trigger, oldDashboardState, newDashboardState, isToolbarStateChangedToVisible, isToolbarStateChangedToHidden, }; if (!isEqual(oldDashboardState, newDashboardState)) { setTimeout(() => { const eventApi = this.getEventApi(); if (eventApi) { eventApi.emit('DashboardChanged', dashboardChangedInfo); } }); } } fireAlertFiredEvent(alertToFire) { const alertFiredInfo = { alert: alertToFire, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('AlertFired', alertFiredInfo); } fireThemeChangedEvent(theme, trigger) { let themeChangedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), trigger: trigger, theme: theme, }; this.getEventApi().emit('ThemeChanged', themeChangedInfo); } fireLayoutChangedEvent(trigger, oldSate, newState) { if (isEqual(oldSate, newState)) { return; } const layoutChangedInfo = { actionName: trigger, oldLayoutState: oldSate, newLayoutState: newState, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('LayoutChanged', layoutChangedInfo); } fireScheduleTriggeredEvent(schedule) { const scheduleTriggeredInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), schedule: schedule, }; this.getEventApi().emit('ScheduleTriggered', scheduleTriggeredInfo); } fireDataSetSelectedEvent(dataSet) { if (this.isAdapTableReady()) { const dataSetSelectedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), dataSet, }; this.getEventApi().emit('DataSetSelected', dataSetSelectedInfo); } } fireSystemStatusMessageDisplayedEvent(systemStatusMessageInfo) { const systemStatusMessageDisplayedInfo = { systemStatusMessageInfo: systemStatusMessageInfo, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('SystemStatusMessageDisplayed', systemStatusMessageDisplayedInfo); } fireDataImportedEvent(importData, addedRows, updatedRows) { const dataImportedInfo = { importData, addedRows, updatedRows, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('DataImported', dataImportedInfo); return dataImportedInfo; } fireAdaptableStateChangedEvent(action, oldState, newState) { const adaptableStateChangedInfo = { actionName: action.type, ...this.getAdaptableInternalApi().buildBaseContext(), action: action, oldState: oldState, newState: newState, }; this.getEventApi().emit('AdaptableStateChanged', adaptableStateChangedInfo); } fireAdaptableStateReloadedEvent(oldState, newState) { const stateReloadedInfo = { oldState, newState, adaptableStateKey: this.getOptionsApi().getAdaptableStateKey(), ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('AdaptableStateReloaded', stateReloadedInfo); } fireCalculatedColumnChangedEvent(trigger, calculatedColumn) { const calculatedColumnChangedInfo = { actionName: trigger, calculatedColumn: calculatedColumn, calculatedColumnExpressionAST: this.getExpressionApi().getASTForExpression(this.getCalculatedColumnApi().internalApi.getExpressionFromCalculatedColumn(calculatedColumn)), ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('CalculatedColumnChanged', calculatedColumnChangedInfo); } fireColumnFilterAppliedEvent() { if (this.isAdapTableReady()) { const columnFilterAppliedInfo = { columnFilters: this.getColumnFilterApi().getColumnFilters(), ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('ColumnFilterApplied', columnFilterAppliedInfo); } } fireGridFilterAppliedEvent() { if (this.isAdapTableReady()) { const currentGridFilter = this.getGridFilterApi().getCurrentGridFilter(); const gridFilterAppliedInfo = { gridFilter: currentGridFilter, gridFilterExpressionAST: currentGridFilter ? this.getExpressionApi().getASTForExpression(currentGridFilter?.Expression) : null, ...this.getAdaptableInternalApi().buildBaseContext(), }; this.getEventApi().emit('GridFilterApplied', gridFilterAppliedInfo); } } fireRowFormSubmittedEvent(rowFormSubmittedInfo) { this.getEventApi().emit('RowFormSubmitted', rowFormSubmittedInfo); } fireTeamSharingEntityChangedEvent(sharedEntity) { if (this.isAdapTableReady()) { const teamSharingEntityChangedInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), sharedEntity: sharedEntity, }; this.getEventApi().emit('TeamSharingEntityChanged', teamSharingEntityChangedInfo); } } fireFlashingCellDisplayedEvent(flashingCellToShow) { const flashingCellFiredInfo = { ...this.getAdaptableInternalApi().buildBaseContext(), flashingCell: flashingCellToShow, }; const results = this.getEventApi().emitSync('FlashingCellDisplayed', flashingCellFiredInfo); } }