UNPKG

@scania/tegel

Version:
1 lines 7 kB
import{r as t,h as e,H as o,a as s}from"./p-9xxNGlso.js";import{d as n}from"./p-CLF3diNe.js";const i=class{constructor(e){t(this,e),this.selected=!1,this.active=!1,this.collapsed=!1,this.hasUserComponent=!1}findSlottedAndExecute(t,e){var o;const s=null===(o=this.slotEl)||void 0===o?void 0:o.assignedElements({flatten:!0});if(!(null==s?void 0:s.length))return;const i=s[0];if(i){const o=n(i,t);o&&e(o)}}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(){var t,e;this.slotEl=null!==(e=null===(t=this.host.shadowRoot)||void 0===t?void 0:t.querySelector("slot"))&&void 0!==e?e:null,this.updateSlottedElements(),this.updateHasUserComponent(),this.slotEl&&this.slotEl.addEventListener("slotchange",(()=>{this.updateSlottedElements(),this.updateHasUserComponent()}))}collapseSideMenuEventHandler(t){this.collapsed=t.detail.collapsed,this.updateSlottedElements(),this.updateHasUserComponent()}render(){return e(o,{key:"540c5825a2cf8913891c0b6c06ad7e338c9546bc"},e("div",{key:"2482c645b0d4650f1a389eed12e097a8fc35c03f",class:{component:!0,"component-selected":this.selected,"component-active":this.active,"component-collapsed":this.collapsed,"component-has-user":this.hasUserComponent}},e("slot",{key:"b476beffec5acc60afd8c7e60754c16995f43c32"})))}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:inset 0 0 0 3px var(--tds-white);outline-offset:-2px;z-index:1}:host .component:hover ::slotted(a),:host .component:hover ::slotted(button),:host .component:hover ::slotted(tds-side-menu-user){background-color:var(--tds-sidebar-item-state-hover);position:relative}:host .component:hover ::slotted(a)::before,:host .component:hover ::slotted(button)::before,:host .component:hover ::slotted(tds-side-menu-user)::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--tds-side-menu-item-hover-indicator)}:host .component:hover ::slotted(a:focus-visible),:host .component:hover ::slotted(button:focus-visible),:host .component:hover ::slotted(tds-side-menu-user:focus-visible){background-color:var(--tds-sidebar-item-state-hover);position:relative}:host .component:hover ::slotted(a:focus-visible)::before,:host .component:hover ::slotted(button:focus-visible)::before,:host .component:hover ::slotted(tds-side-menu-user:focus-visible)::before{content:"";position:absolute;top:3px;left:3px;width:4px;height:calc(100% - 6px);background-color:var(--tds-side-menu-item-hover-indicator)}:host .component:active ::slotted(a),:host .component:active ::slotted(button),:host .component:active ::slotted(tds-side-menu-user){background-color:var(--tds-sidemenu-item-state-active);position:relative}:host .component:active ::slotted(a)::before,:host .component:active ::slotted(button)::before,:host .component:active ::slotted(tds-side-menu-user)::before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background-color:var(--tds-side-menu-item-pressed-indicator)}:host .component:active ::slotted(a:focus-visible),:host .component:active ::slotted(button:focus-visible),:host .component:active ::slotted(tds-side-menu-user:focus-visible){background-color:var(--tds-sidemenu-item-state-active);position:relative}:host .component:active ::slotted(a:focus-visible)::before,:host .component:active ::slotted(button:focus-visible)::before,:host .component:active ::slotted(tds-side-menu-user:focus-visible)::before{content:"";position:absolute;top:3px;left:3px;width:4px;height:calc(100% - 6px);background-color:var(--tds-side-menu-item-pressed-indicator)}: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){background-color:var(--tds-sidebar-item-state-selected);position:relative}: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)}:host .component-selected:not(:host .component-active) ::slotted(a:focus-visible),:host .component-selected:not(:host .component-active) ::slotted(button:focus-visible),:host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user:focus-visible){background-color:var(--tds-sidebar-item-state-selected);position:relative}:host .component-selected:not(:host .component-active) ::slotted(a:focus-visible)::before,:host .component-selected:not(:host .component-active) ::slotted(button:focus-visible)::before,:host .component-selected:not(:host .component-active) ::slotted(tds-side-menu-user:focus-visible)::before{content:"";position:absolute;top:3px;left:3px;width:4px;height:calc(100% - 6px);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}