Data table
Examples
Base
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-1">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-1">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-1" />
</div>
</div>
</div>
</nav>
</div>
</div>
Empty
Use
noResultsMessage
config to customize the empty data message<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
noResultsMessage: 'No matches found. Please revise search criteria and try again.',
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: []
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row-empty">
<div>No matches found. Please revise search criteria and try again.</div>
</div>
</div>
</div>
No Border
Use
noBorder
config to remove the borders<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: true,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -no-border">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-2">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-2">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-2" />
</div>
</div>
</div>
</nav>
</div>
</div>
Striped
Use
striped
config to achieve striped styles<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -striped">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-3">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-3">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-3" />
</div>
</div>
</div>
</nav>
</div>
</div>
Hover
Use
hover
config to achieve hover behavior<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: true,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -hover">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-4">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-4">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-4" />
</div>
</div>
</div>
</nav>
</div>
</div>
Bordered
Use
bordered
config to achieve bordered behavior<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: true,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -bordered">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-5">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-5">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-5" />
</div>
</div>
</div>
</nav>
</div>
</div>
Active
Use
active
property to achieve active state of rows<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
active: true,
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -active">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-6">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-6">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-6" />
</div>
</div>
</div>
</nav>
</div>
</div>
Selectable
Use
selectable
config to render rows with selectable checkboxes<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
selectable: true,
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -selectable">
<div class="chi-checkbox">
<input type="checkbox" class="chi-checkbox__input" id="checkbox-ba1">
<label class="chi-checkbox__label" for="checkbox-ba1">
<div class="-sr--only">Label</div>
</label>
</div>
</div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -selectable">
<div class="chi-checkbox">
<input type="checkbox" class="chi-checkbox__input" id="checkbox-ba2">
<label class="chi-checkbox__label" for="checkbox-ba2">
<div class="-sr--only">Label</div>
</label>
</div>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -selected">
<div class="chi-data-table__cell -lh--1 -selectable">
<div class="chi-checkbox">
<input type="checkbox" class="chi-checkbox__input" id="checkbox-ba3">
<label class="chi-checkbox__label" for="checkbox-ba3">
<div class="-sr--only">Label</div>
</label>
</div>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell -lh--1 -selectable">
<div class="chi-checkbox">
<input type="checkbox" class="chi-checkbox__input" id="checkbox-ba4">
<label class="chi-checkbox__label" for="checkbox-ba4">
<div class="-sr--only">Label</div>
</label>
</div>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-7">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-7">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-7" />
</div>
</div>
</div>
</nav>
</div>
</div>
Radio selection
Use
selectable
config to render rows with radio buttons<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
selectable: 'radio',
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -selectable"></div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<fieldset>
<legend class="--sr-only">Select a Row</legend>
<div class="chi-data-table__row">
<div class="chi-data-table__cell -selectable">
<div class="chi-radio">
<input type="radio" class="chi-radio__input" id="radio-ba2" name="radios">
<label class="chi-radio__label" for="radio-ba2"></label>
</div>
</div>
<div class=" chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -selected">
<div class="chi-data-table__cell -lh--1 -selectable">
<div class="chi-radio">
<input type="radio" class="chi-radio__input" id="radio-ba3" name="radios">
<label class="chi-radio__label" for="radio-ba3"></label>
</div>
</div>
<div class=" chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell -lh--1 -selectable">
<div class="chi-radio">
<input type="radio" class="chi-radio__input" id="radio-ba4" name="radios">
<label class="chi-radio__label" for="radio-ba4"></label>
</div>
</div>
<div class=" chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</fieldset>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-7">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-7">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-7" />
</div>
</div>
</div>
</nav>
</div>
</div>
Accordion
Use
nestedContent
property to provide data of row accordion content<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
expanded: true,
id: 'name-1',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m. </div>
</div>
</div>
<div class="chi-data-table__row -expanded">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m. </div>
</div>
</div>
<div class="chi-data-table__row-child -container">
<div>Accordion content</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-9">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-9">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-9" />
</div>
</div>
</div>
</nav>
</div>
</div>
Sorting
Use
sortBy
and sortDataType
properties to make the column sortable<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name', sortable: true, sortDataType: 'string' },
id: { label: 'ID', sortable: true, sortDataType: 'string' },
lastLogin: { label: 'Last Login', sortable: true, sortDatatype: 'date' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<button class="chi-data-table__cell -sorting">
<div>Name</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>ID</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>Last Login</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-10">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-10">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-10" />
</div>
</div>
</div>
</nav>
</div>
</div>
Default Sorting -- Ascending
Use
sortBy
and sortDataType
properties to make the column sortable<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
defaultSort: {
key: 'name',
direction: 'ascending',
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name', sortable: true, sortDataType: 'string' },
id: { label: 'ID', sortable: true, sortDataType: 'string' },
lastLogin: { label: 'Last Login', sortable: true, sortDatatype: 'date' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<button class="chi-data-table__cell -sorting -active">
<div>Name</div>
<i class="chi-icon -xs icon-arrow-up" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>ID</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>Last Login</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-11">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-11">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-11" />
</div>
</div>
</div>
</nav>
</div>
</div>
Default Sorting -- Descending
Use
sortBy
and sortDataType
properties to make the column sortable<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
defaultSort: {
key: 'name',
direction: 'descending',
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name', sortable: true, sortDataType: 'string' },
id: { label: 'ID', sortable: true, sortDataType: 'string' },
lastLogin: { label: 'Last Login', sortable: true, sortDatatype: 'date' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<button class="chi-data-table__cell -sorting -active -descending">
<div>Name</div>
<i class="chi-icon -xs icon-arrow-up" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>ID</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
<button class="chi-data-table__cell -sorting">
<div>Last Login</div>
<i class="chi-icon -xs icon-arrow-sort" aria-hidden="true"></i>
</button>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-12">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-12">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-12" />
</div>
</div>
</div>
</nav>
</div>
</div>
Size -xs
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'xs',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -xs">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-13">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-13">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-13" />
</div>
</div>
</div>
</nav>
</div>
</div>
Size -sm
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'sm',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -sm">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-14">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-14">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-14" />
</div>
</div>
</div>
</nav>
</div>
</div>
Size -md
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -md">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-15">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-15">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-15"/>
</div>
</div>
</div>
</nav>
</div>
</div>
Size -lg
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'lg',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -lg">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-16">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-16">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-16" />
</div>
</div>
</div>
</nav>
</div>
</div>
Size -xl
<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: false,
noBorder: false,
bordered: false,
hover: false,
size: 'xl',
striped: false,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-data-table -xl">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-1</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-2</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row">
<div class="chi-data-table__cell" data-label="Name">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell" data-label="ID">
<div>name-3</div>
</div>
<div class="chi-data-table__cell" data-label="Last Login">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 results</span>
</div>
<div class="chi-pagination__page-size">
<div class="chi-dropdown">
<button class="chi-button -flat -px--1 chi-dropdown__trigger" id="pagesize-17">20</button>
<div class="chi-dropdown__menu -w--xs">
<a class="chi-dropdown__menu-item -active" href="#">20</a>
<a class="chi-dropdown__menu-item" href="#">40</a>
<a class="chi-dropdown__menu-item" href="#">60</a>
<a class="chi-dropdown__menu-item" href="#">80</a>
<a class="chi-dropdown__menu-item" href="#">All</a>
</div>
</div>
<span class="chi-pagination__label">per page</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -flat" aria-label="Page 1">1</button>
<button class="chi-button -flat" aria-label="Page 2">2</button>
<button class="chi-button -flat -active" aria-label="Page 3">3</button>
<button class="chi-button -flat" aria-label="Page 4">4</button>
<button class="chi-button -flat" aria-label="Page 5">5</button>
<div class="chi-button -flat" aria-hidden="true" disabled>...</div>
<button class="chi-button -flat" aria-label="Page 12">12</button>
<button class="chi-button -icon -flat" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end">
<div class="chi-pagination__jumper">
<label class="chi-pagination__label" for="jumper-input-17">Go to page:</label>
<input class="chi-input" type="text" id="jumper-input-17" />
</div>
</div>
</div>
</nav>
</div>
</div>
Base
Title
Use
portal
config to achieve portal styling<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: true,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
id: 'name-1',
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-card -portal -bg--white -bg-md--grey-15">
<div class="chi-card__header -sm">
<div class="chi-card__title">Title</div>
</div>
<div class="chi-card__content -p--0">
<div class="chi-data-table -portal -compact">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row -xl">
<div class="chi-data-table__cell -key -bold">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -striped -xl">
<div class="chi-data-table__cell -key -bold">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row -xl">
<div class="chi-data-table__cell -key -bold">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-3</div>
</div>
<div class="chi-data-table__cell">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination -compact" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 Results</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="First page">
<div class="chi-button__content">
<i class="chi-icon icon-page-first" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-pagination__label">
<strong>2</strong>
<span>of</span>
<strong>3</strong>
</div>
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Last page">
<div class="chi-button__content">
<i class="chi-icon icon-page-last" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end"></div>
</div>
</nav>
</div>
</div>
</div>
</div>
Empty
Title
Use
noResultsMessage
config to customize the empty data message<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
noResultsMessage: 'No matches found. Please revise search criteria and try again.',
style: {
portal: true,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: []
}
}
<div class="chi-card -portal -bg--white -bg-md--grey-15">
<div class="chi-card__header -sm">
<div class="chi-card__title">Title</div>
</div>
<div class="chi-card__content -p--0">
<div class="chi-data-table -portal -compact">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row-empty">
<div>No matches found. Please revise search criteria and try again.</div>
</div>
</div>
</div>
</div>
</div>
Accordion
Title
Use
nestedContent
property to provide data of row accordion content<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: true,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name' },
id: { label: 'ID' },
lastLogin: { label: 'Last Login' },
},
body: [
{
expanded: true,
id: 'name-1',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
nestedContent: {
value: "Accordion content",
},
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-card -portal -bg--white -bg-md--grey-15">
<div class="chi-card__header -sm">
<div class="chi-card__title">Title</div>
</div>
<div class="chi-card__content -p--0">
<div class="chi-data-table -portal -compact">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-plus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -expanded -striped -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-minus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row-child -xl">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell -key -bold">
<div>Child Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>Child name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-plus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-3</div>
</div>
<div class="chi-data-table__cell">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination -compact" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 Results</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="First page">
<div class="chi-button__content">
<i class="chi-icon icon-page-first" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-pagination__label">
<strong>2</strong>
<span>of</span>
<strong>3</strong>
</div>
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Last page">
<div class="chi-button__content">
<i class="chi-icon icon-page-last" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end"></div>
</div>
</nav>
</div>
</div>
</div>
</div>
Accordion Child
Title
Use
nestedContent
property to provide data of row accordion content<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: true,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: false,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name', key: true, bold: true },
id: { label: 'ID', key: true },
lastLogin: { label: 'Last Login' },
},
body: [
{
expanded: true,
id: 'name-1',
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
nestedContent: {
table: {
data: [
{
id: 'name-2-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-2-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
nestedContent: {
table: {
data: [
{
id: 'name-3-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
nestedContent: {
table: {
data: [
{
id: 'name-4-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-4-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
nestedContent: {
table: {
data: [
{
id: 'name-5-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-5-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
nestedContent: {
table: {
data: [
{
id: 'name-6-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-card -portal -bg--white -bg-md--grey-15">
<div class="chi-card__header -sm">
<div class="chi-card__title">Title</div>
</div>
<div class="chi-card__content -p--0">
<div class="chi-data-table -portal -compact">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-plus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -expanded -striped -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-minus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row-child -collapsed -xl">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell -key -bold">
<div>Child Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>Child name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row-child -collapsed -xl">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell -key -bold">
<div>Child Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>Child name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-plus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 3</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-3</div>
</div>
<div class="chi-data-table__cell">
<div>5 Nov 2020 10:15 a.m.</div>
</div>
</div>
</div>
<div class="chi-data-table__footer">
<nav class="chi-pagination -compact" role="navigation" aria-label="Pagination">
<div class="chi-pagination__content">
<div class="chi-pagination__start">
<div class="chi-pagination__results">
<span class="chi-pagination__label">240 Results</span>
</div>
</div>
<div class="chi-pagination__center">
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="First page">
<div class="chi-button__content">
<i class="chi-icon icon-page-first" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Previous page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-left" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-pagination__label">
<strong>2</strong>
<span>of</span>
<strong>3</strong>
</div>
<div class="chi-pagination__button-group chi-button-group">
<button class="chi-button -icon -flat -primary -sm" aria-label="Next page">
<div class="chi-button__content">
<i class="chi-icon icon-chevron-right" aria-hidden="true"></i>
</div>
</button>
<button class="chi-button -icon -flat -primary -sm" aria-label="Last page">
<div class="chi-button__content">
<i class="chi-icon icon-page-last" aria-hidden="true"></i>
</div>
</button>
</div>
</div>
<div class="chi-pagination__end"></div>
</div>
</nav>
</div>
</div>
</div>
</div>
Accordion Grand Child
Title
Use
nestedContent
property to provide data of row accordion content<!-- Vue component -->
<ChiDataTable :config="config" :data="table"></ChiDataTable>
<!-- Config and Data -->
data: {
config: {
columnResize: true,
style: {
portal: true,
noBorder: false,
bordered: false,
hover: false,
size: 'md',
striped: true,
},
pagination: {
activePage: 1,
compact: false,
firstLast: true,
pageJumper: true,
},
resultsPerPage: 3,
},
table: {
head: {
name: { label: 'Name', key: true, bold: true },
id: { label: 'ID', key: true },
lastLogin: { label: 'Last Login' },
},
body: [
{
expanded: true,
id: 'name-1',
nestedContent: {
table: {
data: [
{
expanded: true,
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 1',
'name-1',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-2',
nestedContent: {
table: {
data: [
{
id: 'name-2-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-2-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 2',
'name-2',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-3',
nestedContent: {
table: {
data: [
{
id: 'name-3-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-3-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 3',
'name-3',
'5 Nov 2020 10:15 a.m.',
],
},
{
id: 'name-4',
nestedContent: {
table: {
data: [
{
id: 'name-4-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-4-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 4',
'name-4',
'18 Dec 2020 3:26 p.m.',
],
},
{
id: 'name-5',
nestedContent: {
table: {
data: [
{
id: 'name-5-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-5-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 5',
'name-5',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-6',
nestedContent: {
table: {
data: [
{
id: 'name-6-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
{
id: 'name-6-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
nestedContent: {
table: {
data: [
{
id: 'name-1-0',
data: [
'Child Name 1',
'child-name-1',
'18 Dec 2020 2:38 a.m.',
],
},
{
id: 'name-1-1',
data: [
'Child Name 2',
'child-name-2',
'18 Dec 2020 2:38 a.m.',
],
},
],
},
},
},
],
},
},
data: [
'Name 6',
'name-6',
'5 Nov 2020 10:15 a.m.',
],
},
]
}
}
<div class="chi-card -portal -bg--white -bg-md--grey-15">
<div class="chi-card__header -sm">
<div class="chi-card__title">Title</div>
</div>
<div class="chi-card__content -p--0">
<div class="chi-data-table -portal -compact">
<div class="chi-data-table__head">
<div class="chi-data-table__row">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell">
<div>Name</div>
</div>
<div class="chi-data-table__cell">
<div>ID</div>
</div>
<div class="chi-data-table__cell">
<div>Last Login</div>
</div>
</div>
</div>
<div class="chi-data-table__body">
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-plus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 3:26 p.m.</div>
</div>
</div>
<div class="chi-data-table__row -expanded -striped -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class="chi-button__content">
<i class="chi-icon icon-minus" aria-hidden="true"></i>
</div>
</button>
</div>
<div class="chi-data-table__cell -key -bold">
<div>Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row-child -collapsed -xl">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell -key -bold">
<div>Child Name 1</div>
</div>
<div class="chi-data-table__cell -key">
<div>Child name-1</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row-child -collapsed -xl">
<div class="chi-data-table__cell -expandable"></div>
<div class="chi-data-table__cell -key -bold">
<div>Child Name 2</div>
</div>
<div class="chi-data-table__cell -key">
<div>Child name-2</div>
</div>
<div class="chi-data-table__cell">
<div>18 Dec 2020 2:38 a.m.</div>
</div>
</div>
<div class="chi-data-table__row -collapsed -xl">
<div class="chi-data-table__cell -expandable">
<button class="chi-button -icon -flat -sm" aria-label="Expand row">
<div class