@scania/tegel
Version:
Tegel Design System
1 lines • 4.16 kB
JavaScript
import{r as t,c as e,h as a,H as s,g as d}from"./p-2049fab2.js";const o=["multiselect","expandableRows","verticalDividers","compactDesign","noMinWidth"],i=class{constructor(a){t(this,a),this.tdsSelectAll=e(this,"tdsSelectAll",6),this.allSelected=!1,this.selected=void 0,this.disabled=!1,this.indeterminate=!1,this.multiselect=!1,this.expandableRows=!1,this.mainCheckboxSelected=!1,this.mainExpendSelected=!1,this.verticalDividers=!1,this.compactDesign=!1,this.noMinWidth=!1,this.whiteBackground=!1,this.enableToolbarDesign=!1,this.tableId=""}internalTdsPropChangeListener(t){this.tableId===t.detail.tableId&&t.detail.changed.filter((t=>o.includes(t))).forEach((e=>{if(void 0===this[e])throw new Error(`Table prop is not supported: ${e}`);this[e]=t.detail[e]}))}internalTdsRowExpandedListener(t){this.tableId===t.detail[0]&&setTimeout((()=>{this.bodyExpandClicked()}),100)}bodyExpandClicked(){const t=this.host.parentElement.querySelector("tds-table-body").getElementsByClassName("tds-table__row-extend--active").length,e=this.host.parentElement.querySelector("tds-table-body").getElementsByTagName("tds-table-body-row-expendable").length;this.mainExpendSelected=e===t}connectedCallback(){this.tableEl=this.host.closest("tds-table"),this.tableId=this.tableEl.tableId}componentWillLoad(){o.forEach((t=>{this[t]=this.tableEl[t]}))}componentWillRender(){this.enableToolbarDesign=this.host.closest("tds-table").getElementsByTagName("tds-table-toolbar").length>=1}async handleCheckboxChange(t){this.allSelected=t.detail.checked,this.tdsSelectAll.emit({tableId:this.tableId,checked:t.detail.checked,selectedRows:await this.tableEl.getSelectedRows()})}render(){return a(s,{key:"968ef371db492d005ac3156d8b4a15de0966d117",class:{"tds-table--compact":this.compactDesign,"tds-table--divider":this.verticalDividers,"tds-table--toolbar-available":this.enableToolbarDesign}},a("tr",{key:"cc9fdb8e36b29c4dccf01961060df330fb50c6f2"},this.multiselect&&a("th",{key:"e306755b170ef4edc6d3c2f32941dfbb51eefaf6",class:"tds-table__header-cell tds-table__header-cell--checkbox"},a("div",{key:"2903d76304e4f3428aa63ba7e0aa65e48d21f232",class:"tds-form-label tds-form-label--table"},a("tds-checkbox",{key:"d9acae7cae023f412395663c607b3293ce40a2e2",checked:this.allSelected||this.selected,disabled:this.disabled,indeterminate:this.indeterminate,onTdsChange:t=>this.handleCheckboxChange(t)}))),this.expandableRows&&a("th",{key:"cea8e7da2c5a4a728ea55ead114f790674fc1a0c",class:"tds-table__header-cell tds-table__header-cell--checkbox"}),a("slot",{key:"5ad238c2ceaabc721970c28ea9d58ecedac8152d"})))}get host(){return d(this)}};i.style=":host{box-sizing:border-box;display:table-header-group}:host *{box-sizing:border-box}:host .tds-table__header-cell--checkbox{font:var(--tds-headline-07);letter-spacing:var(--tds-headline-07-ls);display:table-cell;text-align:left;color:var(--tds-table-color);background-color:var(--tds-table-header-background);border-bottom:1px solid var(--tds-table-divider);height:48px;box-sizing:border-box;overflow:hidden;transition:background-color 200ms ease;min-width:unset;width:48px;padding:0;border-top-left-radius:4px}:host .tds-form-label--table{width:100%;height:48px;display:flex;justify-content:center;align-items:center;cursor:pointer}:host .tds-table__expand-control-container{display:flex;justify-content:center;align-items:center;height:48px;cursor:pointer}:host .tds-table__expand-control-container .tds-table__expand-input{display:none}:host .tds-table__expand-control-container .tds-expandable-row-icon{height:20px;width:20px;transition:transform 200ms ease;transform:rotate(0)}:host .tds-table__expand-control-container .tds-expandable-row-icon--opened{transform:rotate(180deg)}:host ::slotted(tds-header-cell:hover){background-color:var(--tds-table-header-background-hover)}:host(.tds-table--compact) .tds-table__header-cell--checkbox{height:32px}:host(.tds-table--compact) .tds-form-label--table{height:32px}:host(.tds-table--divider) .tds-table__header-cell--checkbox{border-right:1px solid var(--tds-table-divider)}:host(.tds-table--toolbar-available) .tds-table__header-cell--checkbox{border-top-left-radius:0}";export{i as tds_table_header}