Reference
Nodes
Components
Data Table

Data Table Component

Data tables are powerful ways to display tabular data, like what you find in a CSV or SQL database.

Override the data property with the row-formatted data source (an array of objects with consistent keys). Often, this data is the result of a function (e.g. {{pgQuery1.data}}).

Data tables come batteries-included with support for:

  • Column controls (sizing, filtering, sorting, ordering, pinning)
  • Infinite scroll and pagination
  • Row selection / auto-advance
  • Downloading the underlying data
  • Cell formatting
  • Row actions
  • Custom cells (coming soon)

All data tables are virtualized and therefore remain performant when scrolling through large numbers of rows.

Properties

Visible

PropisVisible
Typeboolean
Defaulttrue

Whether or not this node is visible.

Enabled

PropisEnabled
Typeboolean
Defaulttrue

Whether or not this node is enabled.

Tooltip

Proptooltip
Typestring
Defaultundefined

The tooltip text to display when hovered or focused over this node.

Top

Proptop
Typenumber
Default1

The position of the node from the top side of the grid (grid-row-start).

Left

Propleft
Typenumber
Default1

The position of the node from the left side of the grid (grid-column-start).

Width

Propwidth
Typestring
Default640px

The width of the node. When this node is in a grid layout, this should be done using unitless grid column units (specifying 4 will become grid-column-end: span 4). When this node is in a stack layout, the width can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.

Min Width

PropminWidth
Typestring
Defaultundefined

The minimum width of the node. When this node is in a grid layout, this property is ignored.

Max Width

PropmaxWidth
Typestring
Defaultundefined

The maximum width of the node. When this node is in a grid layout, this property is ignored.

Height

Propheight
Typestring
Default480px

The height of the node. When this node is in a grid layout, this should be done using unitless grid row units (specifying 4 will become grid-row-end: span 4). When this node is in a stack layout, the height can be specified using CSS units (e.g. 100px or 100%), or be left unitless to be treated as flex-grow for the node.

Min Height

PropminHeight
Typestring
Defaultundefined

The minimum height of the node. When this node is in a grid layout, this property is ignored.

Max Height

PropmaxHeight
Typestring
Defaultundefined

The minimum height of the node. When this node is in a grid layout, this property is ignored.

Overflow

Propoverflow
TypeOverflow ('auto' | 'visible' | 'hidden' | 'scroll')
Defaultauto

The strategy used to handle overflow in the horizontal and vertical axes for content that is larger than its container.

Overflow X

PropoverflowX
TypeOverflow ('auto' | 'visible' | 'hidden' | 'scroll')
Defaultauto

The strategy used to handle overflow in the horizontal axis for content that is larger than its container.

Overflow Y

PropoverflowY
TypeOverflow ('auto' | 'visible' | 'hidden' | 'scroll')
Defaultauto

The strategy used to handle overflow in the vertical axis for content that is larger than its container.

Custom Styles

Propstyles
Typestring
Default::component { }

Custom CSS styles to be applied to the node. Use element.styles to refer to the current node.

Object Fit

PropobjectFit
TypeObjectFit ('none' | 'contain' | 'cover' | 'fill' | 'scale-down')
Defaultcover

The strategy used to set how the content of a replaced element should be resized to fit its container.

Data Source

Propdata
Typeunknown
Default[ { email: '[email protected]', joined: '2021-01-03', verified: true, }, { email: '[email protected]', joined: '2021-03-02', verified: false, }, ]

The table data in row-wise format. An array of objects with consistent keys, this is often the result of a function (e.g. {{pgQuery1.data}}).

Auto Columns

PropautoColumns
Typeboolean
Defaulttrue

When true, columns will automatically be added when data changes. When false, columns must be manually specified.

Columns

Propcolumns
Typearray
Default[]

The column configuration for the data table.

Column Configuration

Propcolumns[]
Typeobject
Defaultundefined

Options for each column

Column Header

Propcolumns[].header
Typestring
Defaultundefined

The text to show at the top of the column

Key

Propcolumns[].accessor
Typestring
Defaultundefined

The property in the data to read for this column

ID

Propcolumns[].id
Typestring
Defaultundefined

A unique ID for this column

Width

Propcolumns[].width
Typenumber
Defaultundefined

The desired width for the column

Minimum Width

Propcolumns[].minWidth
Typenumber
Defaultundefined

The minimum width for the column

Width Unit

Propcolumns[].widthUnit
Typestring
Defaultundefined

The unit of the width value

Min Width Unit

Propcolumns[].minWidthUnit
Typestring
Defaultundefined

The unit of the min-width value

Render As

Propcolumns[].renderAs
TypeColumnRenderingMethod ('default' | 'date' | 'time' | 'datetime' | 'boolean' | 'json' | 'raw' | 'button' | 'link' | 'text' | 'number' | 'image')
Defaultundefined

The format to use when rendering the column

Datetime format

Propcolumns[].dateTimeFormat
Typestring
Defaultundefined

A format string for datetimes in this column, (formatting reference) (opens in a new tab)

Is Visible

Propcolumns[].isVisible
Typeboolean
Defaultundefined

Should the column be shown in the table

Pinned Direction

Propcolumns[].pinnedDirection
TypePinnedDirection ('none' | 'left' | 'right')
Defaultundefined

The direction in which the column is pinned

Allow Sorting

Propcolumns[].allowSortBy
Typeboolean
Defaultundefined

Should the column be sortable

Link Text

Propcolumns[].linkText
Typestring
Defaultundefined

The text to display on the link

Target

Propcolumns[].linkTarget
TypeLinkTargetMethod ('_self' | '_blank' | '_parent' | '_top')
Defaultundefined

Specify the context in which the linked resource will open.

Button Text

Propcolumns[].buttonText
Typestring
Defaultundefined

The text to display on the button

On Click

Propcolumns[].onButtonClick
Type({ function: { ref: string } } | null)
Defaultundefined

What function will be called when the button is clicked

Text Color

Propcolumns[].buttonTextColor
Typestring
Defaultundefined

The text color of the button's label.

Background Color

Propcolumns[].buttonBackgroundColor
Typestring
Defaultundefined

The background color of the button.

Order Key

Propcolumns[].orderKey
Typestring
Defaultundefined

The key specifying the fractional index of this column

Precision

Propcolumns[].precision
Typenumber
Defaultundefined

The precision to display the number at in terms of number of significant figures after the decimal point.

Rounding

Propcolumns[].rounding
TypeRounding ('floor' | 'ceil' | 'round' | 'trunc')
Defaultundefined

The rounding behavior of the number value.

Prefix

Propcolumns[].prefix
Typestring
Defaultundefined

The text to display before the number.

Suffix

Propcolumns[].suffix
Typestring
Defaultundefined

The text to display after the number. Useful for units.

Image Style

Propcolumns[].imageStyle
TypeImageStyle ('square' | 'circle')
Defaultundefined

The presentation style of the image.

Flatten

Propflatten
Typeboolean
Defaultfalse

Whether or not to flatten the data source's keys. For example, if the data table receives a deeply nested row object like [{ "foo": { "bar": "baz", "qux": "quux" }], it will flatten these keys to two columns named foo.bar and foo.qux.

Allow Export

PropallowExport
Typeboolean
Defaultfalse

Whether or not to allow the user to download the underlying table data. This will not prevent sophisticated users or adversaries from accessing the data table directly, and therefore should not be used for purposes of securing the underlying data from prying eyes.

Export Format

PropexportFormat
TypeDataTableDownloadFormat ('CSV' | 'JSON')
DefaultJSON

The format of the document you receive when exporting table data.

Selected Row

PropselectedRow
Typeunknown
Defaultundefined

The currently selected row of the data table. This property contains the row object itself, and so can be used to access keys on the underlying object.

Selected Row Index

PropselectedRowIndex
Typenumber
Defaultundefined

The currently selected row's index within the data table. This property will reflect the numeric index within the data source that is selected. 0-indexed — the first row is 0, second row is 1, etc.

Select First Row

PropautoselectFirstRow
Typeboolean
Defaultfalse

Whether or not to auto-select the first row of the data table upon initialization. Useful for auto-advancing through items in the data table, such as when building approval workflows.

Pagination

ProppaginationEnabled
Typeboolean
Defaultfalse

Exposes the pagination controls for the user to bind to function calls

Page Size

ProppageSize
Typenumber
Defaultundefined

Number of rows per page, used to set parameters on paginated query

Current Offset

ProppaginationOffset
Typenumber
Default0

Offset to begin data query from, used to set parameters on paginated query

Current Page

PropcurrentPage
Typenumber
Default1

Current page being displayed

Total Rows

ProptotalRowCount
Typenumber
Defaultundefined

Number of entries in the data set, used to set bounds on pagination

Show Header

PropshowHeader
Typeboolean
Defaulttrue

Whether the header of the data table is visible.

Header Height

PropheaderHeight
Typestring
Default36px

The height of the header of the data table, in pixels.

Show Footer

PropshowFooter
Typeboolean
Defaulttrue

Whether the footer of the data table is visible.

Footer Height

PropfooterHeight
Typestring
Default36px

The height of the footer of the data table, in pixels.

Show Stripes

PropshowStripes
Typeboolean
Defaultfalse

Whether the background of the data table body is striped.

Show Border

PropshowBorder
Typeboolean
Defaulttrue

Whether the outside border of the data table is visible.

Border Radius

PropborderRadius
Typestring
Default6px

The radius of the rounding of the corners of the data table. Set to 0 to have no rounded corners.

Table Border Color

ProptableBorderColor
Typestring
Defaulttable.border

The color of the outside border of the data table.

Header Background Color

PropheaderBackgroundColor
Typestring
Defaultbackground.chrome

The background color of the data table's header.

Header Text Color

PropheaderTextColor
Typestring
Defaulttext.primary

The text color of the data table's header.

Header Border Color

PropheaderBorderColor
Typestring
Defaulttable.border

The border color of the data table's header.

Row Background Color

ProprowBackgroundColor
Typestring
Defaulttable.background

The background color of the rows of the data table.

Alternate Row Background Color

PropalternateRowBackgroundColor
Typestring
Defaulttable.alternate

The background color of the alternate rows of the data table when stripes are enabled. If no color is specified and stripes are enabled, the alternate row color will be determined automatically.

Row Text Color

ProprowTextColor
Typestring
Defaulttext.primary

The text color of the rows of the data table.

Row Border Color

ProprowBorderColor
Typestring
Defaulttable.border

The border color of the rows of the data table.

Row Hover Background Color

ProprowHoverBackgroundColor
Typestring
Defaulttable.alternate

The background color of a row when the user hovers over it.

Selected Row Background Color

ProprowSelectedBackgroundColor
Typestring
Defaulttable.border

The background color of a selected row.

Selected Row Text Color

ProprowSelectedTextColor
Typestring
Defaulttext.primary

The text color of a selected row.

Footer Background Color

PropfooterBackgroundColor
Typestring
Defaultbackground.chrome

The background color of the data table's footer.

Footer Text Color

PropfooterTextColor
Typestring
Defaulttext.primary

The text color of the data table's footer.

Footer Border Color

PropfooterBorderColor
Typestring
Defaulttable.border

The border color of the data table's footer.

Row Height

ProprowHeight
Typestring
Default36px

The height of each row in the data table, in pixels.

Event Handlers

On Wheel

HandlerdataTableNode.onWheel

Called when the user scrolls the node. Use this event to trigger downstream actions when this node is scrolled.

On Hover

HandlerdataTableNode.onHover

Called when the user hovers on the node. Use this event to trigger downstream actions when this node is hovered.

On Leave

HandlerdataTableNode.onLeave

Called when the user is not hovering over the node. Use this event to trigger downstream actions when this node is no longer hovered.

On Select Row

HandlerdataTableNode.onSelectRow

Called when selecting a row. Use this event to trigger downstream changes

On Refresh

HandlerdataTableNode.onRefresh

Called when the refresh button is clicked. Use this event to trigger downstream changes