Action Columns Technical Reference
Action Column Options
ActionColumnOptions
Options to define Action Columns in AdapTable
ActionColumn<TData>[]
Columns containing interactive Controls used for performing Actions
undefined
Action Column
ActionColumn
Special Column hosting interactive ActionColumnControls (e.g. buttons, commands, links, selects, menus, forms or custom content) on each row
string
Mandatory 'Id'; if no value set for friendlyName, this will also be Column name
ActionColumnControl<TData>[]
Interactive Controls to display in each Column cell (each is identified by type e.g. 'button' or 'command')
string
How Column appears in Column Header, Menus; if no value set, columnId is used
Optional properties to configure the Column (e.g. width, overflow, resizable)
Row Scope
RowScope
Row kinds to skip.
Each flag, when true, skips that kind. A flag left unset includes that kind. When the whole RowScope is omitted, the feature decides: a Format Column includes every kind.
boolean
Exclude regular data rows
boolean
Exclude Group Rows
boolean
Exclude Summary Rows (used in Row Summaries)
boolean
Exclude Grand Total Rows (used in Aggregations)
Action Column Settings
ActionColumnSettings
Set of optional properties that define an Action Column's behaviour
boolean
When true, estimates column width from Control labels/icons at setup time.
Dynamic labels and icons (functions) are not measured — set width explicitly in those cases.
false
number
Minimum width (in pixels) for the column; also used as the column width when autoWidth is false
'none' | 'menu'
How Controls behave when they don't all fit in the cell width.
- 'none' (default): Controls render inline and may be clipped.
- 'menu': overflowing Controls collapse into a "⋯" menu.
'none'
number
Preferred width (in pixels) for Column; takes precedence over autoWidth and minWidth
Action Column Controls
controls is an array of ActionColumnControl — a union keyed on type:
| Type | Object |
|---|---|
button | ButtonControl |
toggle | ToggleControl |
link | LinkControl |
select | SelectControl |
command | CommandControl |
menu | MenuControl |
form | FormControl |
custom | CustomControl |
Shared properties live on BaseControl:
BaseControl
Properties shared by every .
ValueOrFunction<boolean, CTX>
Whether the Control is disabled - static boolean or a function of the context
ValueOrFunction<AdaptableIcon, CTX>
Icon for the Control - static AdaptableIcon or a function of the context
string
Optional stable identifier for the Control (useful for testing / targeting)
ValueOrFunction<string, CTX>
Label for the Control - static string or a function of the context
ValueOrFunction<ButtonStyle, CTX>
Style for the Control - static ButtonStyle or a function of the context
ValueOrFunction<string, CTX>
Tooltip for the Control - static string or a function of the context
Button
ButtonControl
A standard clickable button.
BaseControl<TData, CTX>
string
Label shown while an async onClick is pending.
ConfirmConfig<CTX>
Optional confirmation prompt shown before onClick runs.
(context: CTX) => void | Promise<void>
Handler invoked when the button is clicked. May return a Promise, in which
case the button shows a busy/pending state and is disabled until it resolves.
'button'
Discriminator. Set to 'button'.
confirm is a ConfirmConfig:
ConfirmConfig
Confirmation prompt shown before a destructive / significant Control action runs.
ValueOrFunction<string, CTX>
Body message of the confirmation prompt - static or a function of the context.
ValueOrFunction<string, CTX>
Title of the confirmation prompt - static or a function of the context.
Toggle
A toggle is either bound to a row field or driven by handlers. Both share type: 'toggle' and variant?: 'switch' | 'checkbox' | 'button' (default 'switch'), plus the base control properties.
| Form | Extra properties |
|---|---|
| Field | field: string — the row property to read and write |
| Handlers | value: boolean or a function of the context, and onChange(checked, context) |
Link
LinkControl
A hyperlink (external URL, mailto:, internal drill-through, etc.).
BaseControl<TData, CTX>
ValueOrFunction<string, CTX>
The link target - static string or a function of the context.
'link'
Discriminator. Set to 'link'.
Select
SelectControl
A dropdown that fires onChange when a value is selected (e.g. to set a status).
BaseControl<TData, CTX>
(value: string, context: CTX) => void | Promise<void>
Handler invoked when the selected value changes. May return a Promise.
The options to choose from - a static array or a function of the context.
Reuses so Forms and Action Columns share one vocabulary.
string
Placeholder shown when no value is selected.
'select'
Discriminator. Set to 'select'.
ValueOrFunction<string, CTX>
The currently selected value - static or a function of the context.
options entries are AdaptableFormFieldOption objects:
AdaptableFormFieldOption
One choice in a select or radio form field.
Command
CommandControl
A built-in Row command (opens the relevant Row Form).
BaseControl<TData, CTX>
The built-in command to run: 'create', 'clone', 'edit' or 'delete'.
ConfirmConfig<CTX>
Optional confirmation prompt shown before the command runs.
'command'
Discriminator. Set to 'command'.
command is an ActionCommand:
| Value |
|---|
'create' |
'clone' |
'edit' |
'delete' |
Menu
MenuControl
A menu that contains other Controls. Composable and nestable, enabling both dropdown menus and split buttons (a primary action plus a chevron of extras).
BaseControl<TData, CTX>
ActionColumnControl<TData, CTX>[]
The Controls shown inside the menu. Menus may be nested.
ActionColumnControl<TData, CTX>
The primary, directly-clickable Control when variant is 'split'.
'menu'
Discriminator. Set to 'menu'.
'dropdown' | 'split'
'dropdown' (default) shows a single trigger; 'split' renders primary
as a directly-clickable action alongside a chevron that opens controls.
'dropdown'
Form
FormControl
Opens an in a popover when clicked, pre-populated from the row, reusing the full Adaptable Form engine (fields, validation, layout).
BaseControl<TData, CTX>
AdaptableForm<any>
The Form to display. Its onSubmit receives the entered formData and the
Action Column context, so it can write back to the row.
(context: CTX) => Record<string, any>
Optional function to seed the Form's initial data from the current row.
'form'
Discriminator. Set to 'form'.
form is an AdaptableForm:
AdaptableForm
Expand
Defines the form. fields is a list of fields, rows of fields, or field groups. buttons are the form buttons. layout is rows (the default) or inline.
AdaptableForm
Defines a form which appears dynamically; used by Alerts, Export Custom Destinations and Dashboard Custom Toolbars.
string
Additional information to appear in the Form
Collection of Dynamic Fields and Field Groups to display.
Items can be:
- a single (rendered on its own row in the
default rows layout, or as one cell in the inline layout),
- an array of (rendered side-by-side on the
same row in the rows layout), or
- an (a labelled section that
visually groups related fields).
How the form's fields are arranged on screen.
- rows (default): each field on its own row, label on the left and
input on the right. Suitable for popups / wizards.
- inline: fields are placed side-by-side on a single horizontal line,
with the label rendered immediately before its input. Designed for
compact contexts such as Dashboard Custom Toolbars where vertical
real-estate is scarce.
'rows'
(formData: TData, context: T) => void
Optional form-level submit hook.
Fired when the user presses Enter while focus is inside any field
input AND the form is currently valid. The full formData is passed
through, typed as TData if you've supplied a custom shape.
Use this as an ergonomic shortcut to avoid wiring an explicit "Submit"
button - or in addition to one, so power users can press Enter to
commit. If the form is invalid the hook is not invoked.
string
Title to appear in the Form
Each field is an AdaptableFormField:
AdaptableFormField
Defines a Field that appears in an Adaptable Form
boolean
For single select fields only. When the user clears the combobox,
whether to restore instead of leaving the field empty.
Defaults to true when defaultValue is set, otherwise false.
Set to false when an empty selection is a distinct state from the default.
string | boolean | number | Array<string | number | boolean>
Field Default Value - can be of type string, boolean, number, or forselect fields with multi: true an array of those.
For single select fields, this is also the value restored when the user
clears the combobox (unless is false).
boolean | ((formData:AdaptableFormData, context:BaseContext) => boolean)
Disable the field's input. Either a boolean or a function evaluated
against the current form data. Disabled fields render but the user
cannot edit them.
Field Type - dictates which UI control is rendered
string
Inline help text rendered immediately below the field's input. Useful
for short explanations such as "format: YYYY-MM-DD" or "min 3 chars".
string
Label to display in the Field
number | string
Maximum allowed value. For number and slider: the highest accepted
number. For date, time and datetime: the latest allowed value in
ISO format.
number
Maximum length for text and textarea fields.
number | string
Minimum allowed value. For number and slider: the lowest accepted
number. For date, time and datetime: the earliest allowed value
in ISO format (YYYY-MM-DD / HH:mm / YYYY-MM-DDTHH:mm).
number
Minimum length for text and textarea fields.
boolean
For select fields only. When true the field renders as a
multi-select combobox; the field's value is an array of selectedoption.values rather than a single value.
false
string
Name of the Field
(value: any, context:BaseContext) => void
Optional callback invoked whenever value of this field changes
AdaptableFormFieldOption[] | ((formData:AdaptableFormData, context:BaseContext) =>AdaptableFormFieldOption[] | Promise<AdaptableFormFieldOption[]>)
Items to populate the select and radio fieldTypes.
Either a static array, or a function that derives the options from the
current form data and Adaptable context. The function form may return
a Promise for asynchronously-loaded options - the form will render the
field with no items until the promise resolves.
string
Regular expression that the value of a text field must match.
string
Placeholder text shown inside text, textarea, number, date,time and datetime inputs when empty. For select fields it is
rendered as the empty-state label when no value is selected.
When omitted on a select field with a , the label of
the matching options entry is used as the empty-state label.
(params:AdaptableFormFieldRenderParams) => React.ReactNode
For custom fields only. Renders an arbitrary React node as the
field's input. Receives the current value, a setValue setter
(controlled), the current form data, the Adaptable context and the
resolved disabled state.
Use this as an escape hatch when none of the built-in fieldTypes
fit - e.g. to render a star-rating widget, a tag editor or any
bespoke control.
boolean
If true the field is treated as required. An empty value ('',null, undefined, or unchecked checkbox) will produce a validation
error.
number
Stepping interval for number, slider, time and datetime
fields.
string
Tooltip shown when hovering the field's label.
(value: any, formData:AdaptableFormData, context:BaseContext) => string | null | undefined
Custom field-level validation. Return an error message string to mark
the field invalid, or null/undefined if the value is valid.
Custom validation runs after built-in checks (required, min,max, pattern, etc.) - the first failing check wins.
fieldType is an AdaptableFormFieldType:
| Value |
|---|
'text' |
'textarea' |
'select' |
'radio' |
'date' |
'time' |
'datetime' |
'number' |
'slider' |
'color' |
'checkbox' |
'textOutput' |
'custom' |
Select and radio options are AdaptableFormFieldOption objects:
AdaptableFormFieldOption
One choice in a select or radio form field.
layout is an AdaptableFormLayout:
| Value |
|---|
'rows' |
'inline' |
buttons are AdaptableButton objects:
AdaptableButton
A button on a form, alert or toolbar.
label is the text. onClick runs when it is clicked and receives the button and the form or event context. buttonStyle and icon are optional. disabled and hidden are functions that return whether the button is disabled or hidden.
(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => boolean
Function that disables / enables the button based on its evaluation result
AdaptableIcon| ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) =>AdaptableIcon)
Icon for Button - can be object or function that provides a AdaptableIcon object
string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)
Label for Button - can be string or function that provides string
(button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => void
Function to invoke when button is clicked
string | ((button:AdaptableButton<CONTEXT_TYPE>, context: CONTEXT_TYPE) => string)
Tooltip for Button - can be string or function that provides string
buttonStyle is a ButtonStyle:
ButtonStyle
Appearance of an AdapTable button.
variant is 'text', 'outlined' (the default) or 'raised'. tone is the colour: 'neutral' (the default), 'success', 'error', 'warning', 'info', 'accent' or 'none'. className adds a CSS class.
string
CSS Classname to use for the Button
'success' | 'error' | 'neutral' | 'none' | 'warning' | 'info' | 'accent'
Button's Tone - values: 'success', 'error', 'neutral', 'none', 'warning', 'info', 'accent'
'neutral'
'text' | 'outlined' | 'raised'
How Button appears - values: 'text', 'outlined', 'raised'
'outlined'
Custom
CustomControl
Escape hatch: render bespoke framework content (React / Angular / Vue) in the cell.
BaseControl<TData, CTX>
Framework-specific (Angular / Vue / React) component to render in the cell.
Use this for the Angular and Vue variants of AdapTable.
(context: CTX) => React.ReactNode
React render function returning a node for the cell, with full row context injected.
Use this in the React variant of AdapTable.
Framework-agnostic render function returning an HTML string (mount/destroy phases).
'custom'
Discriminator. Set to 'custom'.
Action Column API
ActionColumnApi
The Action Columns in the grid, looked up together or by column id.
ActionColumn | undefined
Returns Action Column with given Id
Retrieves the Action Columns provided in Action Column Options