1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2025-06-05 22:09:38 +02:00

feat(components): 💩 Aggiunto wrapper data table

Necessita miglioramenti
This commit is contained in:
Maicol Battistini
2021-08-26 20:09:28 +02:00
parent c0054373dc
commit f65d0735b7
9 changed files with 121 additions and 1 deletions

View File

@@ -0,0 +1,59 @@
import '@material/mwc-linear-progress';
import '@material/mwc-list/mwc-list-item';
import '@material/mwc-select';
import Component from '../Component';
import Mdi from '../Mdi';
export default class DataTable extends Component {
view(vnode) {
return <div className="mdc-data-table" {...vnode.attrs}>
<div className="mdc-data-table__table-container">
<table className="mdc-data-table__table" aria-label={vnode.attrs['aria-label']}>
{vnode.children}
</table>
{vnode.attrs.paginated ? <div className="mdc-data-table__pagination">
<div className="mdc-data-table__pagination-trailing">
<div className="mdc-data-table__pagination-rows-per-page">
<div className="mdc-data-table__pagination-rows-per-page-label">
Righe per pagina
</div>
<mwc-select className="mdc-data-table__pagination-rows-per-page-select">
<mwc-list-item value="10">10</mwc-list-item>
<mwc-list-item value="25">25</mwc-list-item>
<mwc-list-item value="50">50</mwc-list-item>
<mwc-list-item value="75">75</mwc-list-item>
<mwc-list-item value="100">100</mwc-list-item>
</mwc-select>
</div>
<div className="mdc-data-table__pagination-navigation">
<div className="mdc-data-table__pagination-total">
110 di 100
</div>
<mwc-icon-button className="mdc-data-table__pagination-button" data-page="first" disabled>
<Mdi icon="page_first"/>
</mwc-icon-button>
<mwc-icon-button className="mdc-data-table__pagination-button" data-page="prev" disabled>
<Mdi icon="chevron_left"/>
</mwc-icon-button>
<mwc-icon-button className="mdc-data-table__pagination-button" data-page="next">
<Mdi icon="chevron_right"/>
</mwc-icon-button>
<mwc-icon-button className="mdc-data-table__pagination-button" data-page="last">
<Mdi icon="chevron_last"/>
</mwc-icon-button>
</div>
</div>
</div> : ''}
<div className="mdc-data-table__progress-indicator">
<div className="mdc-data-table__scrim"/>
<mwc-linear-progress className="mdc-data-table__linear-progress" indeterminate/>
</div>
</div>
</div>;
// TODO: Inserire traduzioni
}
}

View File

@@ -0,0 +1,7 @@
import Component from '../Component';
export default class TableBody extends Component {
view(vnode) {
return <tbody {...vnode.attrs}>{vnode.children}</tbody>;
}
}

View File

@@ -0,0 +1,13 @@
import classnames from 'classnames';
import Component from '../Component';
/**
* Attributes:
* - type: numeric, checkbox
*/
export default class TableCell extends Component {
view(vnode) {
this.attrs.className = classnames('mdc-data-table__cell', vnode.attrs.className, `mdc-data-table__cell--${vnode.attrs.type}`);
return <td {...this.attrs}>{vnode.children}</td>;
}
}

View File

View File

@@ -0,0 +1,7 @@
import Component from '../Component';
export default class TableHead extends Component {
view(vnode) {
return <thead {...vnode.attrs}>{vnode.children}</thead>;
}
}

View File

@@ -0,0 +1,15 @@
import classnames from 'classnames';
import Component from '../Component';
/**
* Attributes:
* - type: numeric, checkbox
*/
export default class TableHeadCell extends Component {
view(vnode) {
this.attrs.className = classnames('mdc-data-table__header-cell', vnode.attrs.className, {
[`mdc-data-table__header-cell--${vnode.attrs.type}`]: vnode.attrs.type
});
return <th {...this.attrs} role="columnheader" scope="col">{vnode.children}</th>;
}
}

View File

@@ -0,0 +1,9 @@
import classnames from 'classnames';
import Component from '../Component';
export default class TableHeadRow extends Component {
view(vnode) {
this.attrs.className = classnames('mdc-data-table__header-row', vnode.attrs.className);
return <tr {...this.attrs}>{vnode.children}</tr>;
}
}

View File

@@ -0,0 +1,9 @@
import classnames from 'classnames';
import Component from '../Component';
export default class TableRow extends Component {
view(vnode) {
this.attrs.className = classnames('mdc-data-table__row', vnode.attrs.className);
return <tr {...this.attrs}>{vnode.children}</tr>;
}
}