Skip to content

@serenity-is/sleekgrid / GroupItemMetadataProvider

Class: GroupItemMetadataProvider

Defined in: src/data/groupitemmetadataprovider.tsx:62

Grid plugin that provides row metadata and formatters for group headers and group totals rows. Handles expand/collapse UI via click and keyboard (Space, +, -) and delegates metadata through getGroupRowMetadata / getTotalsRowMetadata for use by DataView.

Implements

Constructors

Constructor

new GroupItemMetadataProvider(opt?): GroupItemMetadataProvider

Defined in: src/data/groupitemmetadataprovider.tsx:72

Creates a new provider.

Parameters

opt?

GroupItemMetadataProviderOptions

Partial options merged with GroupItemMetadataProvider.defaults.

Returns

GroupItemMetadataProvider

Properties

getGroupRowMetadata()

getGroupRowMetadata: (item) => ItemMetadata

Defined in: src/data/groupitemmetadataprovider.tsx:320

Returns row metadata for a group header row. The grid/DataView calls this to obtain CSS classes, focusability and the spanned column formatter.

Parameters

item

Group

Group row item.

Returns

ItemMetadata

Metadata describing how the group row should be rendered.


getTotalsRowMetadata()

getTotalsRowMetadata: (item) => ItemMetadata

Defined in: src/data/groupitemmetadataprovider.tsx:349

Returns row metadata for a group totals row.

Parameters

item

IGroupTotals

Totals row item.

Returns

ItemMetadata

Metadata describing how the totals row should be rendered.


grid

protected grid: ISleekGrid

Defined in: src/data/groupitemmetadataprovider.tsx:64

Host grid instance set during GroupItemMetadataProvider.init.


pluginName

readonly pluginName: "GroupItemMetadataProvider" = "GroupItemMetadataProvider"

Defined in: src/data/groupitemmetadataprovider.tsx:171

Plugin name used for lookup via grid.getPluginByName().

Implementation of

GridPlugin.pluginName


defaults

readonly static defaults: GroupItemMetadataProviderOptions

Defined in: src/data/groupitemmetadataprovider.tsx:83

Default option values. Override per instance via constructor or GroupItemMetadataProvider.setOptions.

Methods

destroy()

destroy(): void

Defined in: src/data/groupitemmetadataprovider.tsx:176

Detaches event handlers added during GroupItemMetadataProvider.init.

Returns

void

Implementation of

GridPlugin.destroy


getOptions()

getOptions(): GroupItemMetadataProviderOptions

Defined in: src/data/groupitemmetadataprovider.tsx:187

Returns the current resolved options.

Returns

GroupItemMetadataProviderOptions

Current options object.


groupCellPosition()

groupCellPosition(): object

Defined in: src/data/groupitemmetadataprovider.tsx:274

Computes the cell index and colspan for the spanned group cell, taking summary columns and frozen columns into account.

Returns

object

Object with cell start index and colspan span width ("*" means full row when no totals).

cell

cell: number

colspan

colspan: number | "*"


handleGridClick()

handleGridClick(e): void

Defined in: src/data/groupitemmetadataprovider.tsx:203

Click handler that toggles group collapse when the toggle element is clicked.

Parameters

e

CellMouseEvent

Cell mouse event from the grid's onClick.

Returns

void


handleGridKeyDown()

handleGridKeyDown(e): void

Defined in: src/data/groupitemmetadataprovider.tsx:233

Key handler that toggles group collapse on Space / + / - when a group row is active.

Parameters

e

CellKeyboardEvent

Cell keyboard event from the grid's onKeyDown.

Returns

void


init()

init(grid): void

Defined in: src/data/groupitemmetadataprovider.tsx:164

Initializes the plugin, attaching click and key handlers for expand/collapse.

Parameters

grid

ISleekGrid

Host grid instance.

Returns

void

Implementation of

GridPlugin.init


setOptions()

setOptions(value): void

Defined in: src/data/groupitemmetadataprovider.tsx:195

Merges the given values into the current options.

Parameters

value

GroupItemMetadataProviderOptions

Partial options to apply.

Returns

void


defaultGroupFormat()

static defaultGroupFormat(ctx, opt?): FormatterResult

Defined in: src/data/groupitemmetadataprovider.tsx:106

Default group row formatter. Renders the group title with an optional expand/collapse toggle indented by group.level.

Parameters

ctx

FormatterContext

Formatter context whose item is the Group to render.

opt?

GroupItemMetadataProviderOptions

Options controlling indentation and toggle classes; defaults to GroupItemMetadataProvider.defaults.

Returns

FormatterResult

Rendered group row content as DOM/JSX.


defaultTotalsFormat()

static defaultTotalsFormat(ctx, grid?): FormatterResult

Defined in: src/data/groupitemmetadataprovider.tsx:144

Default totals row formatter. Delegates to the grid's column totals formatter (or the column's own groupTotalsFormat/groupTotalsFormatter).

Parameters

ctx

FormatterContext

Formatter context whose item is the IGroupTotals row.

grid?

ISleekGrid

Optional grid fallback when ctx.grid is unavailable.

Returns

FormatterResult

Rendered totals content, or empty string when no formatter is found.