1"use strict";(self.webpackChunksvk_designsystem=self.webpackChunksvk_designsystem||[]).push([[3226],{90797:function(t,e,s){function n(){return(+new Date+Math.random()).toString(36).replace(/[^a-z1-9]+/g,"")}s.d(e,{A:function(){return n}})},5695:function(t,e){e.A=class{constructor(t){this.dom={},this.dom.el=t,this.handleKeyDown=this.handleKeyDown.bind(this)}setupDom(){this.dom.activeElement=document.activeElement,this.dom.tabbableElements=this.dom.el.querySelectorAll('a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex="0"]'),this.dom.firstTabbableElement=this.dom.tabbableElements[0],this.dom.lastTabbableElement=this.dom.tabbableElements[this.dom.tabbableElements.length-1]}init(){this.setupDom(),void 0!==this.dom.firstTabbableElement&&this.dom.firstTabbableElement.focus(),this.bindEvents()}reInit(){this.setupDom(),void 0!==this.dom.firstTabbableElement&&this.dom.firstTabbableElement.focus()}destroy(){this.dom.activeElement.focus(),this.dom.el.removeEventListener("keydown",this.handleKeyDown,!1)}handleKeyDown(t){let e=t.which||t.keyCode;t.preventDefault=t.preventDefault||function(){t.returnValue=!1},9===e&&(t.target!==this.dom.lastTabbableElement||t.shiftKey?t.target===this.dom.firstTabbableElement&&t.shiftKey&&(t.preventDefault(),this.dom.lastTabbableElement.focus()):(t.preventDefault(),this.dom.firstTabbableElement.focus()))}bindEvents(){this.dom.el.addEventListener("keydown",this.handleKeyDown,!1)}}},93226:function(t,e,s){s.r(e),s.d(e,{SvkCarouselFullscreen:function(){return o}});var n=s(14744),i=s(51236),l=s(5695),a=s(90797);class o extends HTMLElement{constructor(){super(),this.id=(0,a.A)(),this.content=this.innerHTML,this.handleKeyUp=this.handleKeyUp.bind(this)}connectedCallback(){this.items=this.querySelectorAll("svk-carousel-item"),this.itemsCount=this.items.length,this.items.forEach((t,e)=>{t.setAttribute("index",e+1),t.setAttribute("total",this.items.length),t.setAttribute("type","fullscreen"),t.classList.add("swiper-slide")}),document.body.classList.add("is-disable-scroll"),this.render(),this.focusWithin=new l.A(this),this.focusWithin.init(),this.bindEvents()}disconnectedCallback(){this.focusWithin.destroy(),document.body.classList.remove("is-disable-scroll"),document.removeEventListener("keyup",this.handleKeyUp)}updateHeader(t){this.querySelector(".meta__index").textContent=t.activeIndex+1;let e=this.items[t.activeIndex].getAttribute("photographer");
1null!==e&&""!==e&&(this.querySelector(".meta__photographer").textContent=`Foto: ${e}`)}handleClose(){this.parentElement.removeChild(this)}handleKeyUp(t){"Escape"===t.key&&this.handleClose()}bindEvents(){null!==this.querySelector(".js-close")&&this.querySelector(".js-close").addEventListener("click",this.handleClose.bind(this)),document.addEventListener("keyup",this.handleKeyUp);let t=this.querySelector(".button__next"),e=this.querySelector(".button__prev");const s=new i.A(`.swiper-${this.id}`,{modules:[n.A],navigation:{nextEl:t,prevEl:e},allowSlideNext:!0,allowSlidePrev:!0,init:!1});s.on("init",t=>{this.updateHeader(t)}),s.on("slideChange",t=>{this.updateHeader(t)}),s.init()}render(){let t=this.innerHTML;this.innerHTML=`\n\t\t\t<header>\n\t\t\t\t<div class="carousel-fullscreen__meta"><span class="label-100">Bild <span class="meta__index"></span> av ${this.itemsCount}</span> <span class="meta__photographer"></span></div>\n\t\t\t\t<button class="svk-button button--tertiary carousel-fullscreen__button-close js-close">\n\t\t\t\t\tStäng <svk-icon name="close"></svk-icon>\n\t\t\t\t</button>\n\t\t\t</header>\n\t\t\t<div class="carousel-fullscreen__container">\n\t\t\t\t<div class="swiper swiper-${this.id}">\n\t\t\t\t\t<div class="swiper-wrapper">\n\t\t\t\t\t\t${t}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="carousel-fullscreen__nav">\n\t\t\t\t<button class="svk-button button--secondary button--icon button__prev rs_skip" aria-label="Föregående">\n\t\t\t\t\t<svk-icon name="arrow-left"></svk-icon>\n\t\t\t\t</button>\n\t\t\t\t<button class="svk-button button--secondary button--icon button__next rs_skip" aria-label="Nästa">\n\t\t\t\t\t<svk-icon name="arrow-right"></svk-icon>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t`}}window.customElements.define("svk-carousel-fullscreen",o)}}]);
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.