UNPKG

@adaptabletools/adaptable

Version:

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

132 lines (131 loc) 6.64 kB
import { AdaptableModuleBase } from './AdaptableModuleBase'; import * as ModuleConstants from '../Utilities/Constants/ModuleConstants'; import * as FormatColumnRedux from '../Redux/ActionsReducers/FormatColumnRedux'; import * as PopupRedux from '../Redux/ActionsReducers/PopupRedux'; import { FormatColumnWizard } from '../View/FormatColumn/Wizard/FormatColumnWizard'; import { getFormatColumnFormatSummaryTagValues, hasFormatColumnDisplayFormat } from '../View/FormatColumn/Wizard/FormatColumnFormatWizardSection'; import { getFormatColumnSettingsViewItems } from './Utilities/FormatColumn/getFormatColumnSettingsViewItems'; import { MoveFormatColumn } from '../View/FormatColumn/MoveFormatColumn'; import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems'; import { getRuleViewItems } from '../Utilities/getRuleViewItems'; import { getScopeViewItems } from '../Utilities/getScopeViewItems'; import { getFormatColumnRowTargetItems } from './Utilities/FormatColumn/getFormatColumnRowTargetItems'; import { getFormatColumnStyleViewValues, hasFormatColumnStyle, } from '../View/FormatColumn/Wizard/FormatColumnStyleWizardSection'; import { hasFormatColumnCondition } from '../View/FormatColumn/Wizard/FormatColumnRuleWizardSection'; import { renderFormatColumnPreviewSummary } from '../View/FormatColumn/Wizard/FormatColumnPreview'; export class FormatColumnModule extends AdaptableModuleBase { constructor(api) { super(ModuleConstants.FormatColumnModuleId, ModuleConstants.FormatColumnFriendlyName, 'color-palette', 'FormatColumnPopup', 'Create a column style, display format or cell alignment', api); } getModuleAdaptableObjects(config) { return this.api.formatColumnApi.getFormatColumns(config); } getExplicitlyReferencedColumnIds(formatColumn) { const queryExpression = formatColumn.Rule && this.api.expressionApi.getAdaptableQueryExpression(formatColumn.Rule); if (queryExpression) { return this.api.expressionApi.getColumnsFromExpression(queryExpression); } else if (this.api.columnScopeApi.scopeHasColumns(formatColumn.Scope)) { return this.api.columnScopeApi .getColumnsInScope(formatColumn.Scope) .map((adaptableColumn) => adaptableColumn.columnId); } return []; } getReferencedNamedQueryNames(formatColumn) { const queryExpression = formatColumn.Rule && this.api.expressionApi.getAdaptableQueryExpression(formatColumn.Rule); if (!queryExpression) { return []; } return this.api.namedQueryApi.internalApi.getReferencedNamedQueryNames(queryExpression); } createColumnMenuItems(column) { if (!column || !this.isModuleEditable() || column.isSparkline) { return; } let returnColumnMenuItems = []; let createPopupParam = { column: column, action: 'New', source: 'ColumnMenu', }; returnColumnMenuItems.push(this.createMenuItemShowPopup('format-column-add', 'Create Format Column', this.moduleInfo.Popup, this.moduleInfo.Glyph, createPopupParam)); const formatColumnsForColumn = this.api.formatColumnApi.getFormatColumnsForColumnId(column.columnId); if (formatColumnsForColumn.length === 1) { let editPopupParam = { column: column, action: 'Edit', value: formatColumnsForColumn[0], source: 'ColumnMenu', }; const editFormatColumnMenuItem = this.createMenuItemShowPopup('format-column-edit', 'Edit Format Column', this.moduleInfo.Popup, 'edit', editPopupParam); returnColumnMenuItems.push(editFormatColumnMenuItem); } else if (formatColumnsForColumn.length > 1) { const moduleInfo = this.api.internalApi .getModuleService() .getModuleInfoByModule('FormatColumn'); const editFormatColumnMenuItem = this.createMenuItemReduxAction('format-column-edit', 'Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup)); returnColumnMenuItems.push(editFormatColumnMenuItem); } return returnColumnMenuItems; } getTeamSharingAction() { return { ModuleEntities: this.api.formatColumnApi.getFormatColumns(), AddAction: FormatColumnRedux.FormatColumnAdd, EditAction: FormatColumnRedux.FormatColumnEdit, }; } toView(formatColumn) { return { abObject: formatColumn, items: [ { name: 'Name', values: [formatColumn.Name], }, getFormatColumnSettingsViewItems(formatColumn), getScopeViewItems(formatColumn.Scope, this.api), getFormatColumnRowTargetItems(formatColumn), hasFormatColumnCondition(formatColumn) && getRuleViewItems(formatColumn.Rule, this.api), hasFormatColumnStyle(formatColumn) && { name: 'Style', values: getFormatColumnStyleViewValues(formatColumn), }, hasFormatColumnDisplayFormat(formatColumn) && { name: 'Display Format', values: getFormatColumnFormatSummaryTagValues(formatColumn), }, getObjectTagsViewItems(formatColumn, this.api), { name: 'Preview', view: () => renderFormatColumnPreviewSummary(formatColumn, this.api), }, ].filter(Boolean), }; } toViewAll() { return this.getModuleAdaptableObjects({ includeLayoutNotExtendedObjects: this.showLayoutNonExtendedObjects(), }).map((formatColumn) => this.toView(formatColumn)); } getViewProperties() { return { actions: [MoveFormatColumn], getEditAction: FormatColumnRedux.FormatColumnEdit, getDeleteAction: FormatColumnRedux.FormatColumnDelete, getSuspendAction: FormatColumnRedux.FormatColumnSuspend, getUnSuspendAction: FormatColumnRedux.FormatColumnUnSuspend, getSuspendAllAction: FormatColumnRedux.FormatColumnSuspendAll, getUnSuspendAllAction: FormatColumnRedux.FormatColumnUnSuspendAll, getEditWizard() { return FormatColumnWizard; }, }; } containsLayoutExtensions() { return true; } }