// eslint-disable-next-line max-classes-per-file import { LitElement, html, css } from 'lit-element'; import { DecorateMixin } from '../../utils/DecorateMixin.js'; export class PTable extends DecorateMixin(LitElement) { static get properties() { return { mobile: { reflect: true, type: Boolean, }, data: Object, // Sorted, sliced data, based on user interaction _viewData: Object, }; } static get styles() { return [ ...super.styles, css` /** * Structural css */ [role='row'] { display: flex; } [role='cell'], [role='columnheader'] { flex: 1; } [role='columnheader'] { font-weight: bold; } .c-table__cell__header { display: none; } .c-table__head { background-color: var(--header-bg-color); color: var(--header-color); } .c-table[mobile] .c-table__head { display: none; } .c-table[mobile] .c-table__row { flex-direction: column; } .c-table[mobile] .c-table__cell { display: flex; } .c-table[mobile] .c-table__cell__header, .c-table[mobile] .c-table__cell__text { flex: 1; } .c-table[mobile] .c-table__cell__header { display: block; background-color: var(--header-bg-color); color: var(--header-color); } `, ]; } // eslint-disable-next-line class-methods-use-this _descTemplate() { return html` ▼ `; } // eslint-disable-next-line class-methods-use-this _ascTemplate() { return html` ▲ `; } _mainTemplate(headers, sortMap, data, m) { if (!(headers && sortMap && data)) { return html``; } return html`