Cell Plugins

Define how a table property stores, displays, edits, and groups its values.

A CellPlugin<Key, Data, Config> describes one property type. Key is its unique identifier, Data is the stored cell value, and Config is the property-level configuration.

Plugin definition

FieldDescription
idUnique property type identifier.
metaName, description, and icon displayed in the property-type menu.
defaultDefault name, icon, configuration, width, and data for newly created properties and cells.
fromValueConverts a comparable value into the plugin's cell data.
toValueConverts cell data into a string, number, boolean, or null value for sorting.
toTextValueConverts cell data into text for compact display or export.

Optional capabilities

FieldDescription
toGroupValueSupplies a value for grouping. Falls back to toValue.
sortingDeclares the sorting methods available for the property.
groupingDeclares the grouping methods available for the property.
countingDeclares footer calculations for the property.
compareLegacy row comparator for the property. Prefer sorting.methods for new plugins.
transferConfigConverts an existing property configuration when its type changes.
disableBulkEditExcludes an editor-capable plugin from the bulk-edit bar.

Rendering

FieldDescription
renderCellValueRequired. Renders the cell's read-only value. It receives CellValueProps, including the value, property configuration, row, layout, and disabled state.
renderCellEditorRenders the editing UI and returns either an inline or popover editor. It receives CellEditorProps, including onChange, onCancel, and a scope for a single cell or selected rows. Plugins with this capability are eligible for bulk editing.
renderConfigMenuRenders the property configuration UI.
renderGroupingValueRenders a group label.

Types

TypeDescription
CellValueProps<Data, Config>Props for a cell value renderer.
CellEditorProps<Data, Config>Props for a cell editor, including its update callback and edit scope.
ConfigMenuProps<Config>Props for a property configuration menu.
CellEditorResultThe inline or popover editor returned by renderCellEditor.
InferKey, InferData, InferConfig, InferPluginUtility types for deriving plugin types.