UNPKG

@scania/tegel

Version:
1 lines 3.34 kB
import{r as t,c as e,h as s,H as o,g as d}from"./p-2049fab2.js";const i=["multiselect","verticalDividers","compactDesign"],l=class{constructor(s){t(this,s),this.tdsSelect=e(this,"tdsSelect",6),this.tdsClick=e(this,"tdsClick",6),this.selected=!1,this.disabled=!1,this.clickable=!1,this.multiselect=!1,this.mainCheckBoxStatus=!1,this.verticalDividers=!1,this.compactDesign=!1,this.noMinWidth=!1,this.tableId=""}async handleCheckboxChange(t){this.selected=t.detail.checked,this.tdsSelect.emit({tableId:this.tableId,checked:this.selected,selectedRows:await this.tableEl.getSelectedRows()})}handleRowClick(t){if(!this.clickable)return;let e=Array.from(this.host.parentElement.children).indexOf(this.host);this.tdsClick.emit({event:t,tableId:this.tableId,rowIndex:e})}handleKeyDown(t){!this.clickable||"Enter"!==t.key&&" "!==t.key||(t.preventDefault(),this.handleRowClick(t))}internalTdsPropChangeListener(t){this.tableId===t.detail.tableId&&t.detail.changed.filter((t=>i.includes(t))).forEach((e=>{if(void 0===this[e])throw new Error(`Table prop is not supported: ${e}`);this[e]=t.detail[e]}))}connectedCallback(){var t;this.tableEl=this.host.closest("tds-table"),this.tableId=null===(t=this.tableEl)||void 0===t?void 0:t.tableId}componentWillLoad(){this.tableEl&&i.forEach((t=>{this[t]=this.tableEl[t]}))}render(){return s(o,{key:"13b790e1c4586e110853125bb2856166f8090cc3",tabindex:this.clickable?"0":null,class:{"tds-table__row":!0,"tds-table__row--selected":this.selected,"tds-table__compact":this.compactDesign,"tds-table--divider":this.verticalDividers,"tds-table__row--clickable":this.clickable},onClick:t=>this.handleRowClick(t),onKeyDown:t=>this.handleKeyDown(t),role:"row"},this.multiselect&&s("td",{key:"3a966516c5a227907f9530d047e6e1c19eb5362c",class:"tds-table__body-cell tds-table__body-cell--checkbox tds-form-label tds-form-label--table"},s("tds-checkbox",{key:"90811b5dd064a36dfe9363dae55376fb7b4ca78d",onTdsChange:t=>this.handleCheckboxChange(t),checked:this.selected,disabled:this.disabled})),s("slot",{key:"4a16bce9add5ec4b9e4119e5361d556f5ee104f9"}))}get host(){return d(this)}};l.style=":host(.tds-table__row){box-sizing:border-box;display:table-row;border-bottom:1px solid var(--tds-table-divider);background-color:var(--tds-table-body-row-background);transition:background-color 200ms ease;color:var(--tds-table-color)}:host(.tds-table__row) *{box-sizing:border-box}:host(.tds-table__row) .tds-table__body-cell--checkbox{min-width:48px;width:48px;padding:0}:host(.tds-table__row:hover){background-color:var(--tds-table-body-row-background-hover)}:host(.tds-table__row--selected){background-color:var(--tds-table-body-row-background-selected)}:host(.tds-table__row--selected:hover){background-color:var(--tds-table-body-row-background-selected-hover)}:host(.tds-table__row--hidden){display:none}:host(.tds-table__row--expended){width:100%;background-color:pink}:host .tds-form-label--table{width:100%;height:48px;display:flex;justify-content:center;align-items:center;cursor:pointer}:host(.tds-table__compact) .tds-form-label--table{height:32px}:host(.tds-table--divider) .tds-table__body-cell--checkbox{border-right:1px solid var(--tds-table-divider)}:host(.tds-table__row--clickable){cursor:pointer}:host(.tds-table__row--clickable:focus-visible){outline:var(--focus-outline, 2px solid blue)}";export{l as tds_table_body_row}