UNPKG

@scania/tegel

Version:
1 lines 4.16 kB
import{r as t,h as e,H as o,g as s}from"./p-2049fab2.js";import{d as n}from"./p-52bf0fdf.js";const i=class{constructor(e){t(this,e),this.selected=!1,this.active=!1,this.collapsed=!1,this.hasUserComponent=!1}findSlottedAndExecute(t,e){const o=this.slotEl.assignedElements({flatten:!0})[0];if(o){const s=n(o,t);s&&e(s)}}updateSlottedElements(){this.slotEl&&this.findSlottedAndExecute((t=>"tds-icon"===t.tagName.toLowerCase()||"svg"===t.tagName.toLowerCase()),(t=>{t.classList.add("__tds-side-menu-item-icon"),this.collapsed?t.classList.add("__tds-side-menu-item-icon-collapsed"):t.classList.remove("__tds-side-menu-item-icon-collapsed")}))}updateHasUserComponent(){if(this.slotEl){const t=t=>"tds-side-menu-user"===t.tagName.toLowerCase();this.hasUserComponent=!1,this.findSlottedAndExecute(t,(()=>{this.hasUserComponent=!0}))}}connectedCallback(){var t;this.sideMenuEl=this.host.closest("tds-side-menu"),this.collapsed=null===(t=this.sideMenuEl)||void 0===t?void 0:t.collapsed}componentDidLoad(){this.slotEl=this.host.shadowRoot.querySelector("slot"),this.updateSlottedElements(),this.updateHasUserComponent(),this.slotEl.addEventListener("slotchange",(()=>{this.updateSlottedElements(),this.updateHasUserComponent()}))}collapseSideMenuEventHandler(t){this.collapsed=t.detail.collapsed,this.updateSlottedElements(),this.updateHasUserComponent()}render(){return e(o,{key:"714394a875c4fc72f95f9a4a1d1fd928b6e4cb01"},e("div",{key:"b9686737469cbdae97f940c4e20364f45ae4e568",class:{component:!0,"component-selected":this.selected,"component-active":this.active,"component-collapsed":this.collapsed,"component-has-user":this.hasUserComponent}},e("slot",{key:"cde3ca8b26d12e652d11ef11c9ac1dc6852f5860"})))}get host(){return s(this)}};i.style=':host{display:block}:host .component ::slotted(a),:host .component ::slotted(button){all:unset;box-sizing:border-box;height:68px;width:100%;display:flex;align-items:center;gap:10px;padding:0 22px;border:none;background-color:var(--tds-sidebar-side-menu-background-cover);font:var(--tds-headline-07);letter-spacing:var(--tds-headline-07-ls);color:var(--tds-sidebar-side-menu-single-item-color);cursor:pointer}:host .component ::slotted(tds-side-menu-user),:host .component-has-user ::slotted(button){all:unset;box-sizing:border-box;height:68px;width:100%;display:flex;align-items:center;gap:16px;padding:0 22px 0 16px;border:none;background-color:var(--tds-sidebar-side-menu-background-cover);font:var(--tds-headline-07);letter-spacing:var(--tds-headline-07-ls);color:var(--tds-sidebar-side-menu-single-item-color);cursor:pointer}:host .component tds-icon{color:red !important}:host .component ::slotted(a:focus-visible),:host .component ::slotted(button:focus-visible){outline:2px solid var(--tds-focus-outline-color);box-shadow:0 0 0 1px var(--tds-white);outline-offset:1px;z-index:1}:host .component:hover ::slotted(a),:host .component:hover ::slotted(button){background-color:var(--tds-sidebar-item-state-hover)}:host .component:active ::slotted(a),:host .component:active ::slotted(button){background-color:var(--tds-sidemenu-item-state-active)}:host .component-collapsed ::slotted(a),:host .component-collapsed ::slotted(button){padding:0;display:flex;justify-content:center;align-items:center;position:relative}:host .component-selected:not(:host .component-active) ::slotted(a),:host .component-selected:not(:host .component-active) ::slotted(button),:host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user){position:relative;background-color:var(--tds-sidebar-item-state-selected)}:host .component-selected:not(:host .component-active) ::slotted(a)::before,:host .component-selected:not(:host .component-active) ::slotted(button)::before,:host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user)::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--tds-sidebar-side-menu-single-subitem-selected-border-color)}@media (min-width: 992px){:host .component.component-collapsed ::slotted(a),:host .component.component-collapsed ::slotted(button){color:rgba(90, 90, 90, 0);overflow:hidden}}';export{i as tds_side_menu_item}