1"use strict";(self.webpackChunksvk_designsystem=self.webpackChunksvk_designsystem||[]).push([[832],{89298:function(t,e,s){s.d(e,["A",0,(t,e)=>s=>{s.target.matches(t)?(s.delegatedElement=s.target,e(s)):s.target.closest(t)&&(s.delegatedElement=s.target.closest(t),e(s))}])},60832:function(t,e,s){s.r(e),s.d(e,{SvkBreadcrumbsV2:function(){return n}});var i=s(89298);class n extends HTMLElement{constructor(t){super(),this.truncated=!1,this.dom={},this.dom.list=this.querySelector(".breadcrumbs__list"),this.dom.listItems=this.querySelectorAll(".breadcrumbs__item"),this.listSource=this.dom.list.innerHTML,this.toggleButtonReserve=140,this.handleResize=this.handleResize.bind(this),this._resizeObserver=null,this._raf=0,this._lastContainerWidth=0}connectedCallback(){this.sourceListWidth=this.dom.list.offsetWidth,this.update(),this.bindEvents()}fitToContainer(){const t=this.dom.listItems.length,e=this.querySelector(".breadcrumbs").offsetWidth;let s=this.dom.list.offsetWidth,i=1,n=!1;for(;s+this.toggleButtonReserve>e&&(n=!0,void 0!==this.dom.listItems[i])&&(this.dom.listItems[i].classList.add("is-hidden"),s=this.dom.list.offsetWidth,t-2!==i);)i++;i>1&&void 0!==this.dom.listItems[i]&&this.dom.listItems[0].insertAdjacentHTML("afterEnd",'\n\t\t\t\t<li class="breadcrumbs__item">\n\t\t\t\t\t<button class="item__expand label-50">...</button>\n\t\t\t\t</li>\n\t\t\t');let r=this.querySelector(".breadcrumbs__button");n?null===r&&(this.classList.add("is-truncated"),this.dom.list.insertAdjacentHTML("afterend",'\n\t\t\t\t<button class="breadcrumbs__button svk-button button--tertiary button--icon button--size-75" aria-label="Ãppna brödsmulor">\n\t\t\t\t\t<svk-icon name="arrow-down"></svk-icon>\n\t\t\t\t</button>')):(this.classList.remove("is-truncated"),null!==r&&r.parentElement.removeChild(r))}reset(){this.dom.list.innerHTML=this.listSource,this.dom.listItems=this.querySelectorAll(".breadcrumbs__item")}update(){this.documentSize=window.innerWidth,this.reset(),this.fitToContainer(),this.classList.remove("is-resizing")}closeCollapsedElements(t){this.classList.remove("is-expanded"),this.querySelectorAll(".is-hidden").forEach(t=>t.classList.remove("is-hidden")),this.querySelector(".breadcrumbs__button").setAttribute("aria-label","Ãppna brödsmulor"),this.fitToContainer()}showCollapsedElements(t){null!==t&&null!==t.parentElement&&t.parentElement.parentElement.removeChild(t.parentElement),this.querySelector(".breadcrumbs__button").setAttribute("aria-label","Stäng brödsmulor"),this.classList.add("is-expanded")}handleButtonClick(){this.classList.contains("is-expanded")?this.closeCollapsedElements():this.showCollapsedElements(this.querySelector(".item__expand"))}handleClick(t){t.target.classList.contains("item__expand")&&this.showCollapsedElements(t.target)}handleResize(){const t=this.querySelector(".breadcrumbs")?.offsetWidth??this.offsetWidth;t!==this._lastContainerWidth&&(this._lastContainerWidth=t,this.classList.add("is-resizing"),this._raf&&cancelAnimationFrame(this._raf),this._raf=requestAnimationFrame(()=>{this._raf=0,this.update()}))}bindEvents(){this.addEventListener("click",(0,i.A)(".breadcrumbs__button",this.handleButtonClick.bind(this))),this.addEventListener("click",this.handleClick.bind(this)),"undefined"!=typeof ResizeObserver?(this._resizeObserver=new ResizeObserver(this.handleResize),this._resizeObserver.observe(this),this._resizeObserver.observe(this.dom.list)):(this._handleResize=this.handleResize,window.addEventListener("resize",this._handleResize))}disconnectedCallback(){this._resizeObserver&&(this._resizeObserver.disconnect(),this._resizeObserver=null),this._handleResize&&(window.removeEventListener("resize",this._handleResize),this._handleResize=null),this._raf&&(cancelAnimationFrame(this._raf),this._raf=0)}}window.customElements.define("svk-breadcrumbs-v2",n)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.