@scania/tegel
Version:
Tegel Design System
1 lines • 8.88 kB
JavaScript
import{t,p as e,H as d,c as a,h as s,a as o}from"./index.js";import{g as l}from"./p-Cn4f8w1e.js";import{d as i}from"./p-Zx1hN-_O.js";const n=["verticalDividers","compactDesign","noMinWidth","modeVariant","multiselect"],r=e(class extends d{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.internalTdsRowExpanded=a(this,"internalTdsRowExpanded",6),this.tdsChange=a(this,"tdsChange",6),this.tdsSelect=a(this,"tdsSelect",6),this.colSpan=null,this.rowId=l(),this.overflow="auto",this.autoCollapse=!1,this.tdsAriaLabelExpandButton="",this.selected=!1,this.disabled=!1,this.isExpanded=!1,this.tableId="",this.columnsNumber=null,this.verticalDividers=!1,this.compactDesign=!1,this.noMinWidth=!1,this.modeVariant=null,this.multiselect=!1}internalTdsPropChangeListener(t){this.tableId===t.detail.tableId&&t.detail.changed.filter((t=>n.includes(t))).forEach((e=>{if(void 0===this[e])throw Error("Table prop is not supported: "+e);this[e]=t.detail[e]}))}handleRowExpand(t){this.autoCollapse&&t.detail.isExpanded&&t.detail.rowId!==this.rowId&&t.detail.tableId===this.tableId&&this.collapse()}watchExpanded(t){t!==this.isExpanded&&(this.isExpanded=t,this.tdsChange.emit({rowId:this.rowId,isExpanded:this.isExpanded,tableId:this.tableId}))}async expand(){this.isExpanded=!0,this.tdsChange.emit({rowId:this.rowId,isExpanded:this.isExpanded,tableId:this.tableId})}async collapse(){this.isExpanded=!1,this.tdsChange.emit({rowId:this.rowId,isExpanded:this.isExpanded,tableId:this.tableId})}connectedCallback(){var t;void 0!==this.expanded&&(this.isExpanded=this.expanded),this.tableEl=this.host.closest("tds-table"),this.tableId=null===(t=this.tableEl)||void 0===t?void 0:t.tableId}componentWillLoad(){n.forEach((t=>{var e;this[t]=null===(e=this.tableEl)||void 0===e?void 0:e[t]}))}componentWillRender(){var t;if(null!==this.colSpan)this.columnsNumber=this.colSpan;else{const e=null===(t=this.tableEl)||void 0===t?void 0:t.querySelector("tds-table-header");if(e){let t=e.childElementCount;t+=1,this.multiselect&&(t+=1),this.columnsNumber=t}}}sendValue(){this.internalTdsRowExpanded.emit([this.tableId,this.isExpanded]),this.tdsChange.emit({rowId:this.rowId,isExpanded:this.isExpanded,tableId:this.tableId})}onChangeHandler(t){this.isExpanded=!0===t.currentTarget.checked,this.sendValue()}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())})}render(){var t;return s(o,{key:"a9d04614f8d871750cb2fa00b1a337d6f9e28ace",class:{"tds-table__row":!0,"tds-table__row-expand--active":this.isExpanded,"tds-table__compact":this.compactDesign,"tds-table--divider":this.verticalDividers}},s("tr",{key:"3793225d2c27f912c163412d60a20b02bd2371d8",id:"expandable-content-"+this.rowId,class:{"tds-table__row":!0,"tds-table__row--expanded":this.isExpanded,"tds-table__row--selected":this.selected},part:"row"},this.multiselect&&s("td",{key:"e3f677c5a981643bd962322c2af8fa5f211dfedf",class:"tds-table__body-cell tds-table__body-cell--checkbox tds-form-label tds-form-label--table"},s("tds-checkbox",{key:"afc00dda710e7e264c37211b4f616899939d1430",onTdsChange:t=>this.handleCheckboxChange(t),checked:this.selected,disabled:this.disabled})),s("td",{key:"b6ec0d7bd81f5006cd3947b2c3381db72b879e37",class:{"tds-table__cell-expand":!0}},s("label",{key:"4f509a0334697c59ee574a9913ced773923c7e8d",class:"tds-table__expand-control-container"},s("input",{key:"b9dc3b631f37bf872c4e0072a9bca78980d69252",class:"tds-table__expand-input",type:"checkbox",onChange:t=>this.onChangeHandler(t),checked:this.isExpanded,"aria-expanded":this.isExpanded?"true":"false","aria-controls":"expandable-content-"+this.rowId,"aria-label":this.tdsAriaLabelExpandButton}),s("span",{key:"bf6624feb9e7be71c1abf792c8ea9d9009d08ff2",class:"tds-expendable-row-icon"},s("svg",{key:"6cd57f6ab7df0bed1a5253c4cad14c488ca9b086",fill:"none",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},s("path",{key:"1f06b5699c21f9ba200ceb6fe2103510061c86cb","fill-rule":"evenodd","clip-rule":"evenodd",d:"M4.273 9.783a1 1 0 0 1 1.415 0l9.888 9.888a.6.6 0 0 0 .848 0l9.888-9.888a1 1 0 1 1 1.415 1.414l-9.889 9.889a2.6 2.6 0 0 1-3.677 0l-9.888-9.889a1 1 0 0 1 0-1.414Z",fill:"currentColor"}))))),s("slot",{key:"dff5aa77425f0bae12cf17bbdd2e46c4d7e54e68"})),s("tr",{key:"1e087bbf254e7fb07a7673ebef3008be850c33db",class:{"tds-table__row-expand":!0,"tds-table__row-expand--expanded":this.isExpanded},part:"expand-row"},s("td",{key:"bd1c81dcbadd11aca4483f481e06392d0a508a25",class:{"tds-table__cell-expand":!0,"tds-table__cell-expand--overflow-hidden":"hidden"===this.overflow,"tds-table__cell-expand--overflow-visible":"visible"===this.overflow},part:"expand-row-cell",colSpan:null!==(t=this.columnsNumber)&&void 0!==t?t:void 0},s("div",{key:"c99022dc16a229a351bc800989c1b500701b8678",style:{overflow:this.overflow}},s("slot",{key:"2e8dbbb470f6ac21eee98a712a3542774d5445a5",name:"expand-row"})))))}get host(){return this}static get watchers(){return{expanded:[{watchExpanded:0}]}}static get style(){return":host{box-sizing:border-box;display:contents}:host *{box-sizing:border-box}:host .tds-table__row,:host .tds-table__row-extend{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--expanded{border-bottom:none}:host .tds-table__row--selected{background-color:var(--tds-table-body-row-background-selected)}:host .tds-table__row:hover,:host .tds-table__row-extend:hover{background-color:var(--tds-table-body-row-background-hover)}:host .tds-table__row--selected:hover{background-color:var(--tds-table-body-row-background-selected-hover)}:host .tds-table__body-cell--checkbox{min-width:48px;width:48px;padding:0}: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:46px;cursor:pointer;padding:0 16px;position:relative}:host .tds-table__expand-control-container .tds-table__expand-input{all:unset;top:0;left:0;width:100%;height:100%;position:absolute;cursor:pointer}:host .tds-table__expand-control-container .tds-table__expand-input:focus{outline:2px solid var(--tds-focus-outline-color);box-shadow:0 0 0 1px var(--tds-white);outline-offset:1px;z-index:1}:host .tds-table__expand-control-container .tds-expendable-row-icon{height:16px;width:16px;transition:transform 200ms ease;transform:rotate(0)}:host .tds-table__row-expand{display:none;transition:background-color 200ms ease}:host .tds-table__row-expand--expanded{border-bottom:1px solid var(--tds-table-divider)}:host .tds-table__row-expand .tds-table__cell-expand{max-width:1px;overflow:auto;padding:16px 16px 16px 66px;color:var(--tds-table-color)}:host .tds-table__row-expand .tds-table__cell-expand--overflow-visible{overflow:visible}:host .tds-table__row-expand .tds-table__cell-expand--overflow-hidden{overflow:hidden}:host(.tds-table__row-expand--active) .tds-table__row{background-color:var(--tds-table-body-row-background-selected)}:host(.tds-table__row-expand--active) .tds-table__expand-control-container .tds-expendable-row-icon{transform:rotate(180deg)}:host(.tds-table__row-expand--active) .tds-table__row-expand{background-color:var(--tds-table-body-row-background-selected);display:table-row}:host(.tds-table__compact) .tds-table__expand-control-container{height:30px}:host(.tds-table__compact) .tds-table__row-expand .tds-table__cell-expand{padding:8px 16px 8px 66px}:host(.tds-table__compact) .tds-form-label--table{height:32px}:host(.tds-table__row--hidden){display:none}:host(.tds-table--divider) .tds-table__cell-expand{border-right:1px solid var(--tds-table-divider)}:host(.tds-table--divider) .tds-table__body-cell--checkbox{border-right:1px solid var(--tds-table-divider)}"}},[257,"tds-table-body-row-expandable",{colSpan:[2,"col-span"],rowId:[513,"row-id"],expanded:[516],overflow:[513],autoCollapse:[4,"auto-collapse"],tdsAriaLabelExpandButton:[513,"tds-aria-label-expand-button"],selected:[516],disabled:[516],isExpanded:[32],tableId:[32],columnsNumber:[32],verticalDividers:[32],compactDesign:[32],noMinWidth:[32],modeVariant:[32],multiselect:[32],expand:[64],collapse:[64]},[[16,"internalTdsTablePropChange","internalTdsPropChangeListener"],[16,"tdsChange","handleRowExpand"]],{expanded:[{watchExpanded:0}]}]);function c(){"undefined"!=typeof customElements&&["tds-table-body-row-expandable","tds-checkbox"].forEach((e=>{switch(e){case"tds-table-body-row-expandable":customElements.get(t(e))||customElements.define(t(e),r);break;case"tds-checkbox":customElements.get(t(e))||i()}}))}c();const b=r,h=c;export{b as TdsTableBodyRowExpandable,h as defineCustomElement}