CxJS

List

import { List } from 'cx/widgets'; Copied

The List widget displays a collection of items and offers navigation and selection. It supports keyboard navigation, single or multiple selection, grouping, and sorting.

<div controller={PageController}>
  <List
    records={m.records}
    selection={{ type: KeySelection, bind: m.selection, keyField: "id" }}
    mod="bordered"
    style="width: 300px"
    emptyText="No items found."
    recordAlias={m.$record}
  >
    <div class="font-medium" text={m.$record.text} />
    <div class="text-sm text-gray-500" text={m.$record.description} />
  </List>
</div>
  • Item 1
    Description for item 1
  • Item 2
    Description for item 2
  • Item 3
    Description for item 3
  • Item 4
    Description for item 4
  • Item 5
    Description for item 5

Configuration

Core Properties

PropertyTypeDefaultDescription
recordsarrayArray of records to display
recordAliasstring"$record"Alias used to expose record data in templates
indexAliasstring"$index"Alias used to expose record index
emptyTextstringText displayed when the list is empty
selectionconfigSelection configuration. See Selections

Sorting

PropertyTypeDescription
sortFieldstringBinding to store the field name used for sorting
sortDirectionstringBinding to store sort direction ("ASC" or "DESC")
sortersarrayArray of { field, direction } objects for complex sorting
sortOptionsobjectOptions for Intl.Collator sorting

Appearance

PropertyTypeDescription
itemStylestring/objectCSS style applied to all list items
itemClassstring/objectCSS class applied to all list items
groupingconfigGrouping configuration for organizing items

Behavior

PropertyTypeDefaultDescription
scrollSelectionIntoViewbooleanfalseAuto-scroll selected item into view
itemDisabledbooleanDisable specific items
selectModebooleanfalseSelection without cursor navigation
selectOnTabbooleanfalseTab key selects item under cursor