@scania/tegel
Version:
Tegel Design System
1 lines • 3.61 kB
JavaScript
import{r as t,c as e,h as o,H as s,a as d}from"./p-9xxNGlso.js";const i=["multiselect","verticalDividers","compactDesign"],l=class{constructor(o){t(this,o),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){var e;this.selected=t.detail.checked,this.tdsSelect.emit({tableId:this.tableId,checked:this.selected,selectedRows:await(null===(e=this.tableEl)||void 0===e?void 0:e.getSelectedRows())})}handleRowClick(t){var e,o,s;if(!this.clickable)return;const d=Array.from(null!==(s=null===(o=null===(e=this.host)||void 0===e?void 0:e.parentElement)||void 0===o?void 0:o.children)&&void 0!==s?s:[]).indexOf(this.host);this.tdsClick.emit({event:t,tableId:this.tableId,rowIndex:d})}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=>{var e;this[t]=null===(e=this.tableEl)||void 0===e?void 0:e[t]}))}render(){return o(s,{key:"f4e5c9acd820b468b93bbd83100695c56dca306c",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&&o("td",{key:"6c51cf7b6d7656912de72231b55c66534e0b1f41",class:"tds-table__body-cell tds-table__body-cell--checkbox tds-form-label tds-form-label--table"},o("tds-checkbox",{key:"3f33bb0e7acb689e1034869df00c810dee30a296",onTdsChange:t=>this.handleCheckboxChange(t),checked:this.selected,disabled:this.disabled})),o("slot",{key:"8944284b39ffa3b26e3f83e73a8fd98402bde105"}))}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){border-bottom:1px solid var(--tds-table-divider-hover)}: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}