Skip to content
W WRNexusJS
data component

DataTable

Reusable data table component.

@wrnexus/ui 0.2.676 props0 slots0 events

Usage

Components are auto-discovered. Use the component directly in any .wrn view:

<DataTable
  caption="Data table"
  columns="[]"
  rows="[]"
  emptyMessage="No data available."
  striped="false"
/>

Legacy mount name: data-component="DataTable".

Props and attributes

PropTypeRequirementDefault
captionstringOptional"Data table"
columnsstringOptional[]
rowsstringOptional[]
emptyMessagestringOptional"No data available."
stripedbooleanOptionalfalse
classstringOptional""

Slots

This component does not declare a slot.

Events

This component does not declare a custom event.

Source contract

Installed source: components/DataTable.wrn

component DataTable {
  props {
    caption = "Data table"
    columns = []
    rows = []
    emptyMessage = "No data available."
    striped = false
    class = ""
  }
  view {
        <div class="wire-table-wrap {class}" tabindex="0" role="region" aria-label="{caption}">
        <table class="wire-table {striped ? 'wire-table--striped' : ''}">
        <caption class="wire-visually-hidden">{caption}</caption>
        <thead>
        <tr>{#each columns as column}<th scope="col">{column.label}</th>{/each}</tr>
        </thead>
        <tbody>{#each rows as row}<tr>{#each columns as column}<td>{row[column.key]}</td>{/each}</tr>{:empty}<tr>
        <td colspan="{columns.length}">{emptyMessage}</td>
        </tr>{/each}</tbody>
        </table>
        </div>
    }
}