Skip to main content

Table

Presents and manage data in tabular format with comprehensive features like sorting, filtering, and export options.

Properties

PropertyTypeDescription
Name (name)stringUnique identifier for the table component
Label (label)stringText displayed in table header
Data (code)string (Record<string, unknown>[])Data to be displayed in the table
Table Type (isDataTable)booleantrue: Data table (pagination, sorting, filtering, server-side paging enabled)
false: Basic table
Column List (columnDefinitions)TableColumnDefinitionTemplate[]Table column definition list
Row Selection (isRowSelectionEnabled)booleantrue: Enable single/multiple row selection
false: Disabled
Row Selection (isMultipleRowSelectionDisabled)booleantrue: Single row selection
false: Multiple row selection
Unique Row Key (rowKey)stringUnique key for rows used during row selection
Edit Method (editingMode)stringMethod for editing table cells
Server Pagination (isServerSidePaginationEnabled)booleanEnable server-side pagination for data tables
Server Rows Per Page (rowsPerPage)stringNumber of rows per page when server pagination is enabled
Server Total Count (rowsCount)stringTotal number of rows when server pagination is enabled
Server Filtering (isServerSideFilteringEnabled)booleanEnable server-side filtering for data tables
Server Sorting (isServerSideSortingEnabled)booleanEnable server-side sorting for data tables
CSV Download (isCsvDownloadable)booleanEnable CSV download of table data
Height Setting (isHeightFixed)booleanEnable fixed height for table
Height (contentHeight)stringFixed height value for table
Hide Component (isHidden)booleanHide table in deployed pages

Name (name)

Sets the unique identifier for the table component. Please refer to the component naming rules

Label (label)

Sets the text displayed in the table header.

Data (code)

Sets the data to be displayed in the table.
Can be set through:

  1. Direct data input

    • Enter array data directly into the data property
    • Example:
    [
    { name: 'Crush', song: 'With You', album: 'From Midnight To Sunrise', releaseYear: 2019, genre: 'R&B' },
    { name: 'Sunwoo JungA', song: 'Run Away', album: 'Serenade', releaseYear: 2019, genre: 'R&B' },
    {
    name: 'Kim Dong Ryul',
    song: 'Should I Say I Love You Again',
    album: 'Return',
    releaseYear: 2001,
    genre: 'Ballad',
    },
    { name: 'Yerin Baek', song: 'Square', album: 'Every letter I sent you', releaseYear: 2019, genre: 'R&B' },
    { name: 'IU', song: 'Lilac', album: 'LILAC', releaseYear: 2021, genre: 'Ballad' },
    ];
  2. Workflow execution results

    • If a registered workflow returns an array, its data can be used
    • Example: If workflow named playlist1 returns above data, use playlist1.data
    [
    { name: 'Crush', song: 'With You', album: 'From Midnight To Sunrise', releaseYear: 2019, genre: 'R&B' },
    { name: 'Sunwoo JungA', song: 'Run Away', album: 'Serenade', releaseYear: 2019, genre: 'R&B' },
    {
    name: 'Kim Dong Ryul',
    song: 'Should I Say I Love You Again',
    album: 'Return',
    releaseYear: 2001,
    genre: 'Ballad',
    },
    { name: 'Yerin Baek', song: 'Square', album: 'Every letter I sent you', releaseYear: 2019, genre: 'R&B' },
    { name: 'IU', song: 'Lilac', album: 'LILAC', releaseYear: 2021, genre: 'Ballad' },
    ];

Table Type (isDataTable)

Sets the table type and feature set.
Options:

  • true: Enables advanced features (pagination, sorting, filtering, server-side paging)
  • false: Provides basic table functionality

Pagination

Enables pagination by default when data table is selected. Executes pagination client-side. Displays rows per page, current page, and total pages at the bottom.

You can check rows per page, current page, and total pages at the bottom. Provides navigation between pages using next page, previous page, last page and first page buttons.

Sets default rows per page to 100. Supports adjustment to 10, 20, 50, or 100.

Filtering

Filters columns to display only desired data. You can set filters by clicking the menu icon in the column header.

  1. Select the column to filter. Available filter operators vary by component type.
  2. Select the filter operator. Available operators are shown in the table below:
OperatorDescription
ContainsFilters rows containing the input value
EqualsFilters rows with exact matches to the input value
Is EmptyFilters for empty strings or empty arrays
Is Not EmptyFilters for non-empty strings or arrays
Is TrueFilters for rows where value is true
Is FalseFilters for rows where value is false
Greater ThanFilters for values greater than input
Greater Than or EqualFilters for values greater than or equal to input
Less ThanFilters for values less than input
Less Than or EqualFilters for values less than or equal to input
Has ValueFilters for rows with non-null values
No ValueFilters for rows with null values
  1. Filtering is applied when you enter the filter value.

Sorting

Enables sorting by column. Applies no sorting by default.

Click the sort icon that appears when hovering over a column header to toggle between ascending/descending/no sort. Only one column can be sorted at a time, and sorting is based on the values of each component.

Column List (columnDefinitions)

Manages table columns. Provides functionality to add/delete/hide/reorder/reset columns. Opens column settings window when clicking on the column list.

Column Adding

Adds a new column using the + button in the top right. Added columns are placed at the far right of the table.

Column Deleting

Deletes a column using the delete icon on the right. Deleted columns cannot be recovered.

Column Hiding

Hides a column using the hide icon on the right. Data from hidden columns is retained.

Column Ordering

Changes column order by dragging columns.

Column Resetting

Resets columns using the reset button in the top right. Columns are reconstructed based on current table data, and previous settings cannot be recovered.

A confirmation popup will appear to proceed with the reset.

Additional Features

Configures table data saving and server-side features (paging/filtering/sorting).

Save (eventListeners)

Provides functionality to modify and save table data.

When data is modified, changes are recorded in the updatedRows state. When the save button is clicked:

  • The configured event listener executes to process the updatedRows data
  • updatedRows is reset after saving is complete

Adds event listeners using the + button in the top right and specify the workflow to execute when saving.

Supports multiple event listeners if needed.

After configuration, when data is modified and saved, the specified workflows will execute.

Server Side Features

Enables server-side features (pagination/filtering/sorting) for data tables.

Supports independent or combined usage of these features.

Server Side Pagination (isServerSidePaginationEnabled)

Loads data from the server in page units. When enabled, adds the page state and disables client-side pagination. For more details, please refer to the States documentation.

Rows Per Page (rowsPerPage)

Sets the number of rows to fetch per page from the server. You can use workflow results or enter values directly.

Total Count (rowsCount)

Sets the total number of records on the server. You can use workflow results or enter values directly.

Server Side Filtering (isServerSideFilteringEnabled)

Performs data filtering on the server. When enabled, adds the filters state and disables client-side filtering. For more details, please refer to the States documentation.

Server Side Sorting (isServerSideSortingEnabled)

Performs data sorting on the server. When enabled, adds the sort state and disables client-side sorting. For more details, please refer to the States documentation.

Row Selection Mode (isRowSelectionEnabled, isMultipleRowSelectionDisabled)

Configure row selection functionality. Enables single selection for clicking rows, while implementing multiple selection uses checkboxes to select multiple rows. Selected rows are managed through states like selectedRows.

Row Key (rowKey)

Sets a unique key to identify rows. Choose a field with unique values to prevent duplicate selections. If not set, selectedRows will only work within the current page.

Edit Method (editingMode)

Sets how table cells can be edited:

  • Immediate (always): Editable fields are always shown
  • Single Click (singleClick): Cells enter edit mode when clicked

CSV Download (isCsvDownloadable)

Controls CSV export functionality.
When enabled, adds CSV download button to table header.

Height Setting (isHeightFixed)

Controls height behavior of the component.
When set to 'auto', height adjusts automatically to content.

Height (px) (contentHeight)

Sets the component's vertical height.
Can be set through workflow results, direct input.

Hide Component (isHidden)

Controls visibility of the component.
When set to true:

  • Hidden in deployed view
  • Visible with reduced opacity in edit mode

Column Settings

Click on each column in the column list to access detailed settings.

Column Source

Sets the data source to display in the column. This value becomes the base data for each cell and is displayed differently depending on the column type.

Provides access to cell values using item in column settings code or templates, and enables access to entire row data using row.

Outside the table, cell data is accessed using the column ID as a key.

Column ID

Sets a unique identifier for the column. If left blank, the column source becomes the ID.

Requires:

  • Must be unique within the table
  • Used as a key when accessing data externally
  • Data may be lost if duplicated

Column Name

Sets the display name in column header.

Column Type

Sets the component type to display in the column. Provides additional settings for each type.

Supported Component Types

  • Button: Clickable button
  • Checkbox: Checkbox input
  • Date: Date format data
  • Image: Image display
  • Link: Clickable link
  • Multi Select: Multiple selection dropdown
  • Select: Single selection dropdown
  • Number: Numeric format data
  • Text: Plain text
  • Create Modal Form: Generate modal form based on table data

For detailed settings of each type, refer to Component Type Settings.

Component Alignment

Sets horizontal alignment of cell content.
Options:

  • Left
  • Center
  • Right

Column Width Setting

Sets column width behavior.
Options:

  • Auto: Adjusts based on content
  • Manual: Uses specified width value

Column Pinning

Pin columns to the left side of the table:

  • Multiple columns can be pinned simultaneously
  • Pinned columns always stay on the left

Column Hide

Hide specific columns from view.

Type: Button

Label

Sets the text displayed on the button. Can be set through direct input or workflow results.

Action Target

Configure the action triggered on button click:

  1. Page Navigation
  • Select target page
  • Pass values to page variables
  • Pass table data as variables
  1. Workflow Execution
  • Select workflow to execute
  • Pass values to workflow variables
  • Pass table data as variables
  1. Modal Control
  • Select target modal
  • Choose open/close action
  • Pass table data to modal

Confirm Modal

Sets whether to display a confirmation modal on button click. Modal title and content can be set through direct input or workflow results.

Disabled

Sets the button's enabled/disabled state. Can be dynamically controlled through workflow results or conditions.

Color

Sets the button color. Choose between neutral and primary.

Style

Sets the button style. Choose from outlined, filled, soft, or plain.

Type: Checkbox

Edit Status

Sets whether the checkbox is editable. When editable, based on table edit mode:

  • Read Only: Table cell data modification not allowed
  • Editable: Table cell data modification allowed

Default Value

Sets the initial state of the checkbox.

Type: Date

Edit Status

Sets whether the date field is editable. When editable, based on table edit mode:

  • Read Only: Table cell data modification not allowed
  • Editable: Table cell data modification allowed

Date

Sets the initial date value. Can be set through workflow results, direct input, or calendar selection.

Time Display

Configures whether to include hours/minutes/seconds/timezone input.

Type: Image

Sets the image URL.

Alt Text

Sets alternative text displayed when the image cannot be shown.

Hide Content

Sets whether to display or hide the image.

Height Setting

Configure whether to use fixed height for the image.

Height (px)

Sets the pixel value when using fixed height.

Image Adjustment

Sets how the image is displayed when using fixed height:

  • fill: Image fills the content box by matching component width and height. Aspect ratio may change.
  • contain: Image maintains aspect ratio while fitting within content box. May leave empty space.
  • cover: Image fills content box while maintaining aspect ratio. Parts of image may be cropped.

Padding

Sets padding around the image.

Label

Sets the text label for the link.

Enter a URL to navigate to or a file link to download when clicked.

File Name

For file download links, entering a filename will download the file with that name.

Hide Content

When set to true, hides the link in the table.

Type: Multi Select

Edit Status

Configures the editing state of the multi-select. When set to Editable, the editing behavior follows the table's editing mode:

  • Read Only: Table cell data modification not allowed
  • Editable: Table cell data modification allowed

Options

Set the code for multi-select options.

Type: Number

Edit Status

Configures the editing state of the number field. When set to Editable, the editing behavior follows the table's editing mode:

  • Read Only: Table cell data modification not allowed
  • Editable: Table cell data modification allowed

Default Value

Sets a default value for the number field.

Format

Chooses how to display numbers. Options include normal, percentage, and currency formats.

Decimal Places

Specifies the maximum number of decimal places. You can enter between 0 and 20 decimal places.

Decimal Places Filled

When enabled, if the entered value has fewer decimal places than specified, the remaining places will be filled with zeros.

Display Comma

When selected, displays commas for every thousand place value.

Validation

Validates the number values. Displays error messages. Shows default error message when no custom error message is set.

Placeholder

Sets a placeholder for the number.

Alignment

Aligns the numbers according to the selected direction.

Type: Text

Edit Status

Configures the editing state of the text field. When set to Editable, the editing behavior follows the table's editing mode:

  • Read Only: Table cell data modification not allowed
  • Editable: Table cell data modification allowed

Default Value

Enters a label for the column and sets a default value for the text field.

Style

Chooses the text style.

Color

Selects the text color.
Opens color picker UI when clicking the color droplet button on the left. Accepts HEX color codes in the left text field.
Enters opacity values in the right text field.

Validation

Validates the text values. Displays error messages. Shows default error message when no custom error message is set.

Placeholder

Sets a placeholder for the text.

Alignment

Aligns the text according to the selected direction.

States

The table manages the following states:

Data States

PropertiesTypeDescription
originalDataTableData | undefinedOriginal table data
dataTableData | undefinedCurrently displayed table data
createdRowsRecord<string, unknown>[][]Newly created row data
updatedRowsRecord<string, unknown>[][]Modified row data
deletedRowsRecord<string, unknown>[][]Deleted row data
updatedRowKeysstring[]List of modified row keys

Selection States

PropertiesTypeDescription
selectedRowRecord<string, unknown>[] | undefinedCurrently selected row data
selectedRowIndexnumber | undefinedIndex of currently selected row
selectedRowKeystring | undefinedKey of currently selected row
selectedRowsRecord<string, unknown>[][]List of all selected row data
selectedRowIndiciesnumber[]List of all selected row indices
selectedRowKeysstring[]List of all selected row keys
selectedOriginalRowRecord<string, unknown>[] | undefinedSelected row from original data
selectedOriginalRowsRecord<string, unknown>[] | undefinedSelected rows from original data

Pagination States

PropertiesTypeDescription
pageTablePageStateCurrent page state
rowsCountnumber | undefinedTotal number of rows
rowsPerPagenumber | undefinedRows per page

Filtering and Sorting States

PropertiesTypeDescription
filtersTableFilterState[]List of current filter states
sortTableSortState | undefinedCurrent sort state

Other States

PropertiesTypeDescription
isCsvDownloadablebooleanWhether CSV download is enabled
isDataTablebooleanWhether it's a data table
isErrorbooleanWhether error occurred
isLoadingbooleanWhether loading
editingModeTableEditingModeCurrent table editing mode
columnDefinitionsTableColumnDefinition[]List of table column definitions
rowKeysunknown | undefinedList of row keys
isMultipleRowSelectionDisabledbooleanWhether multiple row selection is disabled
isRowSelectionEnabledbooleanWhether row selection is enabled
isServerSideFilteringEnabledbooleanWhether server-side filtering is enabled
isServerSidePaginationEnabledbooleanWhether server-side pagination is enabled
isServerSideSortingEnabledbooleanWhether server-side sorting is enabled
eventListenersEventListener[]List of event listeners

Type Definitions

interface TablePageState {
// Rows per page
rowsPerPage: number | undefined;
// Current page index
index: number | undefined;
// Starting position for page data query
offset: number | undefined;
// Maximum number of records per query
limit: number | undefined;
// Total number of records
rowsCount?: number;
}

export type TableFilter =
| { operator: 'none' }
| { operator: 'isNull' }
| { operator: 'isNotNull' }
| { operator: 'isTrue' }
| { operator: 'isFalse' }
| { operator: 'isEmpty' }
| { operator: 'isNotEmpty' }
| { operator: 'eq'; value: string }
| { operator: 'includes'; value: string }
| { operator: 'gt'; value: string }
| { operator: 'gte'; value: string }
| { operator: 'lt'; value: string }
| { operator: 'lte'; value: string };

export type TableFilterOperator = TableFilter['operator'];

interface TableFilterState {
// ID of column to filter
id: string;
// Type of filter
operator: TableFilterOperator;
// Filter input value
value?: string;
}

interface TableSortState {
// ID of column to sort
id: string;
// Sort direction
direction: 'ASC' | 'DESC';
}

type TableEditingMode = 'always' | 'singleClick' | 'doubleClick';