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:
ClientSideRowModelModuleClientSideRowModelApiModule
Server-Side Row Model
If you are using the Server-Side Row Model, you need to provide
ServerSideRowModelModuleServerSideRowModelApiModule
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
CellStyleModuleColumnMenuModuleContextMenuModuleCustomFilterModuleExternalFilterModuleGridStateModuleGroupFilterModuleRowGroupingModuleRowStyleModuleCellApiModuleColumnApiModuleEventApiModuleRenderApiModuleRowApiModuleScrollApiModule
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 Module | Where Used |
|---|---|
CellSelectionModule | Summarising and Selecting Grid Data |
ColumnAutoSizeModule | Layout Auto-Sizing |
CsvExportModule | CSV Export Report Format |
ExcelExportModule | Excel and VisualExcel Report Formats |
FindModule | Quick Search |
IntegratedChartsModule | If using AG Grid's Charts functionality |
MasterDetailModule | By the Master Detail Plugin |
PinnedRowModule | Row Summaries |
PivotModule | Pivoting |
QuickFilterModule | Running Quick Search as Filter |
RichSelectModule | If using Select Editors |
RowSelectionModule | Needed for Selecting via Grid Api |
SideBarModule | Adaptable ToolPanel |
SparklinesModule | Sparkline Styled Column |
StatusBarModule | Adaptable Status Bar |
TextEditorModule | Used for editing (all columns) |
TooltipModule | Calculated Column & Percent Bar option |
TreeDataModule | If 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 Module | Purpose | AdapTable Behaviour |
|---|---|---|
ColumnAutoSizeModule | Column Auto-Sizing | Auto Sizing Layouts |
ColumnHoverModule | Column Hovering | n/a |
PinnedRowModule | Pinning Rows | Row Summaries |
RowAutoHeightModule | Auto Row Height | n/a |
RowStyleModule | Styling Rows | Mandatory |
PaginationModule | Row Pagination | n/a |
RowDragModule | Row Dragging | n/a |
RowNumbersModule | Numbering Rows | n/a |
CellSpanModule | Spanninng Cells | n/a |
CellStyleModule | Stylingg Cells | Mandatory |
HighlightChangesModule | Highlighting Changes | n/a |
TooltipModule | Tooltips | In Calculated Columns & Percent Bars |
FindModule | Find | Quick Search |
TextFilterModule | Text Filter | Ignored by AdapTable |
NumberFilterModule | Number Filter | Ignored by AdapTable |
DateFilterModule | Date Filter | Ignored by AdapTable |
SetFilterModule | Set Filter | Ignored by AdapTable - do not provide |
MultiFilterModule | Multi Filter | Ignored by AdapTable |
CustomFilterModule | Custom Filter | Mandatory |
AdvancedFilterModule | Advanced Filter | Ignored by AdapTable |
ExternalFilterModule | External Filter | Mandatory |
QuickFilterModule | Quick Filter | Quick Search (Filter Results) |
RowSelectionModule | Row Selection | Needed for Row Select Api methods |
CellSelectionModule | Cell Selection | Needed for Cell Select Api methods |
TextEditorModule | Text Editor | Used for editing (all columns) |
LargeTextEditorModule | Large Text Editor | n/a |
SelectEditorModule | Select Editor | n/a |
RichSelectEditorModule | Rich Select Editor | Used for Adaptable Select Cell Edits |
NumberEditorModule | Number Editor | n/a |
DateEditorModule | Date Editor | n/a |
CheckboxEditorModule | Checkbox Editor | n/a |
CheckboxEditorModule | Custom Cell Editor | n/a |
CheckboxEditorModule | Undo / Redo Edits | n/a |
BatchEditorModule | Batch Edits | n/a |
LocaleModule | Localisation | n/a |
RowGroupingModule | Row Grouping | Mandatory |
RowGroupingPanelModule | Row Grouping Panel | n/a |
GroupFilterModule | Row Grouping | Mandatory |
PivotModule | Pivoting | Pivot Layouts |
TreeDataModule | Tree Data | Tree Grids |
MasterDetailModule | Master Detail | Master Detail plugin |
SideBarModule | Side Bar | AdapTable Tool Panel |
ColumnsToolPanelModule | Columns Tool Panel | n/a |
FiltersToolPanelModule | Filters Tool Panel | n/a |
New FiltersToolPanelModule | New Filters Tool Panel | n/a |
ColumnMenuModule | Column Menu | Mandatory |
ContextMenuModule | Context Menu | Mandatory |
StatusBarModule | Status Bar | AdapTable Status Panels |
CsvExportModule | CSV Export | CSV Export Report Format |
ExcelExportModule | Excel Export | Excel Export Report Format |
ClipboardModule | Clipboard | n/a |
DragAndDropModule | Drag & Drop | n/a |
ValueCacheModule | Value Cache | n/a |
AlignedGridsModule | Aligned Grids | n/a |
GridStateModule | Grid State | Mandatory |
ColumnApiModule | Column API | Mandatory |
RowApiModule | Row API | Mandatory |
CellApiModule | Cell API | Mandatory |
ScrollApiModule | Scrolling API | Mandatory |
RenderApiModule | Rendering API | Mandatory |
EventApiModule | Event API | Mandatory |
ClientSideRowModelApiModule | Client-Side Row Model API | Mandatory (if using Client-Side Row Model) |
ServerSideRowModelApiModule | Server-Side Row Model API | Mandatory (if using Server-Side Row Model) |