AdvancedDataTable

Organism

Enhanced table with row selection (with indeterminate header), expandable rows, and optional sticky header.

Basic (no extras)

Preview
NameRoleStatus
Jane DoeDesignerActive
Carlos MendesEngineerActive
Aisha KhanPMInvited
Liam WalkerEngineerActive
Code
<%- include('modules/ui/AdvancedDataTable', {
  columns: [
    { key: 'name',   header: 'Name' },
    { key: 'role',   header: 'Role' },
    { key: 'status', header: 'Status' }
  ],
  rows: [
    { name: 'Jane Doe',      role: 'Designer', status: 'Active' },
    { name: 'Carlos Mendes', role: 'Engineer', status: 'Active' },
    { name: 'Aisha Khan',    role: 'PM',       status: 'Invited' }
  ]
}) %>

Selectable rows

Preview

2 of 4 rows selected

NameRoleStatus
Jane DoeDesignerActive
Carlos MendesEngineerActive
Aisha KhanPMInvited
Liam WalkerEngineerActive
Code
<%- include('modules/ui/AdvancedDataTable', {
  selectable: true,
  columns: [...],
  rows: [...]
}) %>


Expandable rows

Preview
NameRoleStatus
Jane DoeDesignerActive
Carlos MendesEngineerActive
Aisha KhanPMInvited
Liam WalkerEngineerActive
Code
<%- include('modules/ui/AdvancedDataTable', {
  columns: [...],
  rows: [
    { name: 'Jane Doe', role: 'Designer', status: 'Active',
      _expanded: '
Joined in 2023. Platform working group.
' }, { name: 'Carlos Mendes', role: 'Engineer', status: 'Active' } ] }) %>

Selectable + sticky header

Preview
NameRoleStatus
Jane Doe 1DesignerActive
Carlos Mendes 2EngineerActive
Aisha Khan 3PMInvited
Liam Walker 4EngineerActive
Jane Doe 5DesignerActive
Carlos Mendes 6EngineerActive
Aisha Khan 7PMInvited
Liam Walker 8EngineerActive
Code
<%- include('modules/ui/AdvancedDataTable', {
  selectable: true,
  stickyHeader: true,
  columns: [...],
  rows: [...]
}) %>
Source modules/ui/Table/partials/advanced.ejs