UNPKG

@scania/tegel

Version:
1 lines 8.31 kB
import{t,p as e,H as s,c as a,h as o,a as d}from"./index.js";import{d as l}from"./p-CIt4YhvL.js";const i=["multiselect","expandableRows","compactDesign","noMinWidth","verticalDividers"],r=e(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.tdsSort=a(this,"tdsSort",7),this.internalSortButtonClicked=a(this,"internalSortButtonClicked",6),this.internalTdsTextAlign=a(this,"internalTdsTextAlign",6),this.internalTdsHover=a(this,"internalTdsHover",6),this.sortable=!1,this.textAlign="left",this.disablePadding=!1,this.tdsAriaLabelSortButton="",this.textAlignState="left",this.sortedByMyKey=!1,this.verticalDividers=!1,this.compactDesign=!1,this.noMinWidth=!1,this.multiselect=!1,this.enableToolbarDesign=!1,this.tableId="",this.expandableRows=!1,this.sortButtonClick=()=>{this.sortingDirection="asc"!==this.sortingDirection&&"desc"!==this.sortingDirection?"asc":"asc"===this.sortingDirection?"desc":"asc",this.sortedByMyKey=!0,this.tdsSort.emit({tableId:this.tableId,columnKey:this.cellKey,sortingDirection:this.sortingDirection}),this.internalSortButtonClicked.emit({tableId:this.tableId,key:this.cellKey})},this.headerCellContent=()=>this.sortable?o("button",{class:"tds-table__header-button",onClick:()=>this.sortButtonClick(),style:{justifyContent:this.textAlignState},"aria-label":this.tdsAriaLabelSortButton},o("span",{class:"tds-table__header-button-text"},this.cellValue,o("slot",null)),void 0===this.sortingDirection&&o("tds-icon",{svgTitle:"sorting",class:"tds-table__header-button-icon",name:"sorting",size:"16px"}),this.sortingDirection&&["asc","desc"].includes(this.sortingDirection)&&o("tds-icon",{svgTitle:"arrow down",class:"tds-table__header-button-icon "+("asc"===this.sortingDirection?"tds-table__header-button-icon--rotate":""),name:"arrow_down",size:"16px"})):o("p",{class:{"tds-table__header-text":!0,"tds-table__header-text-no-padding":this.disablePadding},style:{textAlign:this.textAlignState}},this.cellValue,o("slot",null)),this.onHeadCellHover=t=>{this.internalTdsHover.emit({tableId:this.tableId,key:null!=t?t:""})}}internalTdsPropChangeListener(t){this.tableId===t.detail.tableId&&t.detail.changed.filter((t=>i.includes(t))).forEach((e=>{if(void 0===this[e])throw Error("Table prop is not supported: "+e);this[e]=t.detail[e]}))}updateOptionsContent(t){const{tableId:e,key:s}=t.detail;this.tableId===e&&this.cellKey!==s&&(this.sortedByMyKey=!1,setTimeout((()=>{this.sortingDirection=void 0}),200))}connectedCallback(){var t;this.tableEl=this.host.closest("tds-table"),this.tableId=null===(t=this.tableEl)||void 0===t?void 0:t.tableId}componentWillLoad(){i.forEach((t=>{var e;this[t]=null===(e=this.tableEl)||void 0===e?void 0:e[t]}))}componentWillRender(){this.textAlignState=["left","start","right","end","center"].includes(this.textAlign)?this.textAlign:"left",this.internalTdsTextAlign.emit([this.tableId,this.cellKey,this.textAlignState]);const t=this.host.closest("tds-table");t&&(this.enableToolbarDesign=t.getElementsByTagName("tds-table-toolbar").length>=1)}getAriaSort(){return"asc"===this.sortingDirection?"ascending":"desc"===this.sortingDirection?"descending":"none"}render(){return o(d,{key:"be64d88104f52df5d328b61a052eb489bcc01b72",class:{"tds-table__header-cell":!0,"tds-table__header-cell--sortable":this.sortable,"tds-table__header-cell--is-sorted":this.sortedByMyKey,"tds-table__header-cell--custom-width":""!==this.customWidth,"tds-table--compact":this.compactDesign,"tds-table--divider":this.verticalDividers,"tds-table--no-min-width":this.noMinWidth,"tds-table--extra-column":this.multiselect||this.expandableRows,"tds-table--toolbar-available":this.enableToolbarDesign,"tds-table--no-padding":this.disablePadding}},o("th",{key:"5ce91b5905d96bf9be4061a2b7a53c1af18fc390",style:{minWidth:this.customWidth},onMouseOver:()=>this.onHeadCellHover(this.cellKey),onFocus:()=>this.onHeadCellHover(this.cellKey),onMouseLeave:()=>this.onHeadCellHover(""),onBlur:()=>this.onHeadCellHover(""),"aria-sort":this.getAriaSort(),colSpan:this.colSpan,rowSpan:this.rowSpan},this.headerCellContent()))}get host(){return this}static get style(){return":host{display:contents}:host(.tds-table__header-cell) th{box-sizing:border-box;font:var(--tds-headline-07);letter-spacing:var(--tds-headline-07-ls);text-align:left;color:var(--tds-table-color);background-color:var(--tds-table-header-background);border-bottom:1px solid var(--tds-table-header-background-hover);padding:0;height:48px;min-width:192px;box-sizing:border-box;vertical-align:middle;overflow:hidden;transition:background-color 200ms ease}:host(.tds-table__header-cell) th *{box-sizing:border-box}:host(.tds-table__header-cell) th .tds-table__header-text{padding:8px 16px;margin:0}:host(.tds-table__header-cell) th .tds-table__header-text-no-padding{padding:0}:host(.tds-table__header-cell) th:hover{background-color:var(--tds-table-header-background-hover)}:host(.tds-table__header-cell--sortable) th .tds-table__header-button{display:flex;align-items:center;gap:8px;justify-content:start;flex-direction:row;width:100%;height:100%;padding:0 16px;background-color:transparent;border:none;cursor:pointer;transition:background-color 200ms ease}:host(.tds-table__header-cell--sortable) th .tds-table__header-button:focus{outline:2px solid var(--tds-table-header-btn-focus);outline-offset:-2px}:host(.tds-table__header-cell--sortable) th .tds-table__header-button:focus .tds-table__header-button-icon{opacity:1}:host(.tds-table__header-cell--sortable) th .tds-table__header-button .tds-table__header-button-text{font:var(--tds-headline-07);letter-spacing:var(--tds-headline-07-ls);text-align:left;color:var(--tds-table-header-btn-color)}:host(.tds-table__header-cell--sortable) th .tds-table__header-button .tds-table__header-button-icon{flex:0 0 16px;height:16px;width:16px;opacity:0;transform-origin:center;transition:opacity 200ms ease-in, transform 200ms ease;color:var(--tds-table-color)}:host(.tds-table__header-cell--sortable) th .tds-table__header-button:hover .tds-table__header-button-icon{opacity:1}:host(.tds-table__header-cell--is-sorted) th .tds-table__header-button{background-color:var(--tds-table-header-btn-background)}:host(.tds-table__header-cell--is-sorted) th .tds-table__header-button:hover{background-color:var(--tds-table-header-btn-background-hover)}:host(.tds-table__header-cell--is-sorted) th .tds-table__header-button .tds-table__header-button-icon{opacity:1}:host(.tds-table__header-cell--is-sorted) th .tds-table__header-button .tds-table__header-button-icon--rotate{transform:rotate(180deg)}:host(.tds-table--compact) th{height:33px}:host(.tds-table--divider) th{border-right:1px solid var(--tds-table-divider)}:host(.tds-table--divider:last-of-type) th{border-right:none}:host(.tds-table--no-min-width) th{min-width:unset}:host(.tds-table--no-padding) th{height:unset}:host(.tds-table__header-cell:first-of-type) th{border-top-left-radius:4px}:host(.tds-table__header-cell:last-of-type) th{border-top-right-radius:4px}:host(.tds-table--extra-column:first-of-type) th{border-top-left-radius:0}:host(.tds-table--toolbar-available) th{border-radius:0}:host(.tds-table--extra-column.tds-table--toolbar-available) th{border-radius:0}:host(.tds-table__header-cell.tds-table--toolbar-available:first-of-type) th{border-top-left-radius:0}:host(.tds-table__header-cell.tds-table--toolbar-available:last-of-type) th{border-top-right-radius:0}"}},[257,"tds-header-cell",{cellKey:[513,"cell-key"],cellValue:[513,"cell-value"],customWidth:[513,"custom-width"],sortable:[4],textAlign:[513,"text-align"],disablePadding:[516,"disable-padding"],tdsAriaLabelSortButton:[513,"tds-aria-label-sort-button"],colSpan:[2,"col-span"],rowSpan:[2,"row-span"],textAlignState:[32],sortingDirection:[32],sortedByMyKey:[32],verticalDividers:[32],compactDesign:[32],noMinWidth:[32],multiselect:[32],enableToolbarDesign:[32],tableId:[32],expandableRows:[32]},[[16,"internalTdsPropChange","internalTdsPropChangeListener"],[16,"internalSortButtonClicked","updateOptionsContent"]]]);function h(){"undefined"!=typeof customElements&&["tds-header-cell","tds-icon"].forEach((e=>{switch(e){case"tds-header-cell":customElements.get(t(e))||customElements.define(t(e),r);break;case"tds-icon":customElements.get(t(e))||l()}}))}h();const n=r,b=h;export{n as TdsHeaderCell,b as defineCustomElement}