Data Table Node

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 (renaming, formatting, filtering, sorting)
  • Infinite scroll and pagination
  • Row selection / auto-advance
  • Downloading the underlying data (coming soon)
  • Custom cells (coming soon)

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

Properties

Visible

PropdataTableNode.isVisible
Typeboolean
Default{{true}}

Whether or not this node is visible.

Enabled

PropdataTableNode.isEnabled
Typeboolean
Default{{true}}

Whether or not this node is enabled.

Tooltip

PropdataTableNode.tooltip
Typestring
Defaultundefined

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

Top

PropdataTableNode.top
Typestring
Default1

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

Left

PropdataTableNode.left
Typestring
Default1

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

Width

PropdataTableNode.width
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 must be specified using CSS units (e.g. 100px or 100%).

Min Width

PropdataTableNode.minWidth
Typestring
Defaultnone

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

Max Width

PropdataTableNode.maxWidth
Typestring
Defaultnone

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

Height

PropdataTableNode.height
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 must be specified using CSS units (e.g. 100px or 100%).

Min Height

PropdataTableNode.minHeight
Typestring
Defaultnone

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

Max Height

PropdataTableNode.maxHeight
Typestring
Defaultnone

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

Overflow

PropdataTableNode.overflow
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

PropdataTableNode.overflowX
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

PropdataTableNode.overflowY
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

PropdataTableNode.styles
Typestring
Defaultelement.styles { }

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

Data Source

PropdataTableNode.data
TypeArray<UnknownRecord>
Defaultundefined

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}}).

Lock Columns

PropdataTableNode.lockColumns
Typeboolean
Default{{false}}

Whether or not columns are locked.

Auto Columns

PropdataTableNode.autoColumns
Typeboolean
Default{{true}}

Auto generate columns when data changes

Columns

PropdataTableNode.columns
TypeArray<{ header: string, accessor: string, id: string, width: (number | string), minWidth: number, renderAs: string, dateTimeFormat: string, widthUnit: string, minWidthUnit: string, isVisible: boolean, allowSortBy: boolean }>
Default[]

The column configuration for the data table.

Flatten

PropdataTableNode.flatten
Typeboolean
Default{{false}}

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.

Selected Row

PropdataTableNode.selectedRow
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

PropdataTableNode.selectedRowIndex
Typenumber
Default0

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.

Default First

PropdataTableNode.autoselectFirstRow
Typeboolean
Default{{false}}

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

PropdataTableNode.paginationEnabled
Typeboolean
Default{{false}}

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

Fetch Limit

PropdataTableNode.pageSize
Typenumber
Defaultauto

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

Fetch Offset

PropdataTableNode.paginationOffset
Typenumber
Default0

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

Current Page

PropdataTableNode.currentPage
Typenumber
Default1

Current page being displayed

Total Rows

PropdataTableNode.totalRowCount
Typenumber
Default0

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

Event Handlers

On Select Row

HandlerdataTableNode.onSelectRow

Called when the selected row changes. Use this event to trigger downstream changes