AG Grid Modules

Summary

  • AG Grid provides functionality via Modules
  • These are available either as a Bundle, or individually selected
  • Some AG Grid Modules are mandatory in AdapTale, while others are required for certain features to work

AG Grid provides its functionality through a series of AG Grid Modules.

Since AG Grid 33 this has been available in 2 forms:

  • as a bundle (everything in AG Grid Enterprise is available)
  • as specific modules (in order to reduce download size)

Caution

AG Grid modules must be registered regardless whether you use ESM (standard) or CommonJS formats

AllEnterpriseModule Bundle

AG Grid provide an AllEnterpriseModule bundle which contains all of the modules available in Community and Enterprise versions.

This is the easiest option as it guarantees that everything required by AG Grid (and AdapTable) is present.

Note

Using this bundle essentially replicates the behaviour of AG Grid packages prior to version 33

Selecting Modules

Alternatively, you can register only the modules you want to use in your application.

This allows you to reduce the bundle size of your application (but requires more considered thought).

Hint

AG Grid provides a useful Module Selector to see what is required for your use case from an AG Grid perspective

AdapTable leverages AG Grid Modules for much of its functionality - both core and feature-specific.

As a result, it is useful to divide the AG Grid Modules into 3 groups:

  • mandatory - without these AG Grid Modules, AdapTable simply won't work, so they must be supplied
  • required for some features - AG Grid Modules which are needed on a per-feature basis
  • to be avoided - using these AG Grid Modules can cause issues, so should be avoided

Mandatory Modules

There are some Modules which must be registered for AdapTable to work.

Caution

Without these modules, AdapTable will either not start or will display significant errors at start-up

You must provide the relevant Module, and associated API, for the AG Grid RowModel you are using.

Client-Side Row Model

For the (default_ Client Side Row Model you need to provide:

  • ClientSideRowModelModule
  • ClientSideRowModelApiModule

Server-Side Row Model

If you are using the Server-Side Row Model, you need to provide

  • ServerSideRowModelModule
  • ServerSideRowModelApiModule

Additionally there are a number of AG Grid API Modules that AdapTable uses to tie everything together:

All Row Models

There are some Modules that need to be provided irrespective of the Row Model being used.

Note

All of these are mandatory and must be provided for a seamless and error-free user experience

  • CellStyleModule
  • ColumnMenuModule
  • ContextMenuModule
  • CustomFilterModule
  • ExternalFilterModule
  • GridStateModule
  • GroupFilterModule
  • RowGroupingModule
  • RowStyleModule
  • CellApiModule
  • ColumnApiModule
  • EventApiModule
  • RenderApiModule
  • RowApiModule
  • ScrollApiModule

Per-Feature Modules

Additional AG Grid Modules must be registered to enable using their specific features in AdapTable.

Caution

Without these modules, certain functionalities in AdapTable will be limited or unavailable

Here is the full list of AG Grid Modules which AdapTable requires (on a per-feature basis):

AG Grid ModuleWhere Used
CellSelectionModuleSummarising and Selecting Grid Data
ColumnAutoSizeModuleLayout Auto-Sizing
CsvExportModuleCSV Export Report Format
ExcelExportModuleExcel and VisualExcel Report Formats
FindModuleQuick Search
IntegratedChartsModuleIf using AG Grid's Charts functionality
MasterDetailModuleBy the Master Detail Plugin
PinnedRowModuleRow Summaries
PivotModulePivoting
QuickFilterModuleRunning Quick Search as Filter
RichSelectModuleIf using Select Editors
RowSelectionModuleNeeded for Selecting via Grid Api
SideBarModuleAdaptable ToolPanel
SparklinesModuleSparkline Styled Column
StatusBarModuleAdaptable Status Bar
TextEditorModuleUsed for editing (all columns)
TooltipModuleCalculated Column & Percent Bar option
TreeDataModuleIf using the Tree Grid

To Be Avoided Modules

AG Grid provides a SetFilterModule - which it uses in its filtering.

However AdapTable provides its filtering independently.

As a result, importing this module causes issues as AG Grid sets it as the default filter type, overriding AdapTable's filter implementation.

Caution

For this reason, we strongly recommend not importing or registering the SetFilterModule

Hint

A workaround if you absolutely must have this Module is to set suppressSetFilterByDefault prop in GridOptions to true

Appendix: All AG Grid Modules

This is the full list of AG Grid Modules (listed in the same order as AG Grid does)

We indicate whether it is required, or used by AdapTable, and if so, where:

AG Grid ModulePurposeAdapTable Behaviour
ColumnAutoSizeModuleColumn Auto-SizingAuto Sizing Layouts
ColumnHoverModuleColumn Hoveringn/a
PinnedRowModulePinning RowsRow Summaries
RowAutoHeightModuleAuto Row Heightn/a
RowStyleModuleStyling RowsMandatory
PaginationModuleRow Paginationn/a
RowDragModuleRow Draggingn/a
RowNumbersModuleNumbering Rowsn/a
CellSpanModuleSpanninng Cellsn/a
CellStyleModuleStylingg CellsMandatory
HighlightChangesModuleHighlighting Changesn/a
TooltipModuleTooltipsIn Calculated Columns & Percent Bars
FindModuleFindQuick Search
TextFilterModuleText FilterIgnored by AdapTable
NumberFilterModuleNumber FilterIgnored by AdapTable
DateFilterModuleDate FilterIgnored by AdapTable
SetFilterModuleSet FilterIgnored by AdapTable - do not provide
MultiFilterModuleMulti FilterIgnored by AdapTable
CustomFilterModuleCustom FilterMandatory
AdvancedFilterModuleAdvanced FilterIgnored by AdapTable
ExternalFilterModuleExternal FilterMandatory
QuickFilterModuleQuick FilterQuick Search (Filter Results)
RowSelectionModuleRow SelectionNeeded for Row Select Api methods
CellSelectionModuleCell SelectionNeeded for Cell Select Api methods
TextEditorModuleText EditorUsed for editing (all columns)
LargeTextEditorModuleLarge Text Editorn/a
SelectEditorModuleSelect Editorn/a
RichSelectEditorModuleRich Select EditorUsed for Adaptable Select Cell Edits
NumberEditorModuleNumber Editorn/a
DateEditorModuleDate Editorn/a
CheckboxEditorModuleCheckbox Editorn/a
CheckboxEditorModuleCustom Cell Editorn/a
CheckboxEditorModuleUndo / Redo Editsn/a
BatchEditorModuleBatch Editsn/a
LocaleModuleLocalisationn/a
RowGroupingModuleRow GroupingMandatory
RowGroupingPanelModuleRow Grouping Paneln/a
GroupFilterModuleRow GroupingMandatory
PivotModulePivotingPivot Layouts
TreeDataModuleTree DataTree Grids
MasterDetailModuleMaster DetailMaster Detail plugin
SideBarModuleSide BarAdapTable Tool Panel
ColumnsToolPanelModuleColumns Tool Paneln/a
FiltersToolPanelModuleFilters Tool Paneln/a
New FiltersToolPanelModuleNew Filters Tool Paneln/a
ColumnMenuModuleColumn MenuMandatory
ContextMenuModuleContext MenuMandatory
StatusBarModuleStatus BarAdapTable Status Panels
CsvExportModuleCSV ExportCSV Export Report Format
ExcelExportModuleExcel ExportExcel Export Report Format
ClipboardModuleClipboardn/a
DragAndDropModuleDrag & Dropn/a
ValueCacheModuleValue Cachen/a
AlignedGridsModuleAligned Gridsn/a
GridStateModuleGrid StateMandatory
ColumnApiModuleColumn APIMandatory
RowApiModuleRow APIMandatory
CellApiModuleCell APIMandatory
ScrollApiModuleScrolling APIMandatory
RenderApiModuleRendering APIMandatory
EventApiModuleEvent APIMandatory
ClientSideRowModelApiModuleClient-Side Row Model APIMandatory (if using Client-Side Row Model)
ServerSideRowModelApiModuleServer-Side Row Model APIMandatory (if using Server-Side Row Model)