UNPKG

@scania/tegel

Version:
1 lines 4.26 kB
import{t,p as e,H as s,c as o,h as d,a as i}from"./index.js";import{d as l}from"./p-Zx1hN-_O.js";const r=["multiselect","verticalDividers","compactDesign"],a=e(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.tdsSelect=o(this,"tdsSelect",6),this.tdsClick=o(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,s,o;if(!this.clickable)return;const d=Array.from(null!==(o=null===(s=null===(e=this.host)||void 0===e?void 0:e.parentElement)||void 0===s?void 0:s.children)&&void 0!==o?o:[]).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=>r.includes(t))).forEach((e=>{if(void 0===this[e])throw 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&&r.forEach((t=>{var e;this[t]=null===(e=this.tableEl)||void 0===e?void 0:e[t]}))}render(){return d(i,{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&&d("td",{key:"6c51cf7b6d7656912de72231b55c66534e0b1f41",class:"tds-table__body-cell tds-table__body-cell--checkbox tds-form-label tds-form-label--table"},d("tds-checkbox",{key:"3f33bb0e7acb689e1034869df00c810dee30a296",onTdsChange:t=>this.handleCheckboxChange(t),checked:this.selected,disabled:this.disabled})),d("slot",{key:"8944284b39ffa3b26e3f83e73a8fd98402bde105"}))}get host(){return this}static get style(){return":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)}"}},[257,"tds-table-body-row",{selected:[516],disabled:[516],clickable:[516],multiselect:[32],mainCheckBoxStatus:[32],verticalDividers:[32],compactDesign:[32],noMinWidth:[32],tableId:[32]},[[16,"internalTdsTablePropChange","internalTdsPropChangeListener"]]]);function c(){"undefined"!=typeof customElements&&["tds-table-body-row","tds-checkbox"].forEach((e=>{switch(e){case"tds-table-body-row":customElements.get(t(e))||customElements.define(t(e),a);break;case"tds-checkbox":customElements.get(t(e))||l()}}))}c();const b=a,h=c;export{b as TdsTableBodyRow,h as defineCustomElement}