The Dynamic List component displays a scrollable or paginated list of items, supporting dynamic data loading, virtualization for performance, and flexible layout. It is ideal for rendering large datasets efficiently and can be customized with various data source and visual options.
itemSize
Sets the height (in pixels) of each list item. Adjusting this value changes the vertical space each item occupies.
Example:
itemSize: 80 will render each list item with a height of 80px.
autoHeight
When enabled, the list automatically adjusts its height based on the number of visible elements. Useful for embedding lists in flexible layouts.
Example:
autoHeight: true will make the list shrink or grow to fit its content.
numberOfVisibleListElements
Specifies how many list items should be visible when autoHeight is enabled. The component height will be calculated as itemSize * numberOfVisibleListElements.
Example:
numberOfVisibleListElements: 5 with itemSize: 100 will set the list height to 500px.
dataSourceId
Specifies the ID of the data source from which the list fetches its data. This should match a configured data source in your system.
Example:
dataSourceId: "usersDataSource"
dataSourcePath
Defines a JSON path expression to extract the list data from the API response. This is useful when the data is nested within the response object.
Example:
dataSourcePath: "content.items" will extract the array from response.content.items.
getEntityCollectionHttpRequestParametersMap
Configures HTTP request parameters for fetching data from the data source. Allows mapping of query, path, or body parameters as needed by the backend API.
Example:
{
"QUERY": { "active": true },
"PATH": {},
"BODY": {}
}
keyExpression
Defines the field used as a unique key for each list item. This improves rendering performance and ensures correct item tracking.
Example:
keyExpression: "userId" will use the userId field as the unique identifier for each item.
enablePagination
Enables server-side pagination for large datasets. When true, the list loads data in pages rather than all at once.
Example:
enablePagination: true will fetch data page by page as the user scrolls.
pageSize
Sets the number of items to load per page when pagination is enabled.
Example:
pageSize: 25 will load 25 items per page.
[
{ "type": "DynamicTextComponent", "props": { "text": "{{name}}" } }
]
displayName
Sets the display name of the component, shown in the structure panel.
Example:
displayName: "User List"
id
Specifies a unique identifier for the component.
Example:
id: "userList1"
The list expects an array of objects, each representing a list item. If using pagination, the response should be a paginable object with a content array.
Example data:
[
{ "userId": 1, "name": "Alice" },
{ "userId": 2, "name": "Bob" }
]
Or, with pagination:
{
"content": [
{ "userId": 1, "name": "Alice" },
{ "userId": 2, "name": "Bob" }
],
"totalElements": 100,
"totalPages": 10,
"number": 0,
"size": 10
}
This manual provides a structured overview of the Dynamic List component, with each property explained, categorized, and accompanied by usage examples.