1svDocReady(function() { 2 3 const searchButton = document.getElementById("ws-headerlink--search"); 4 const searchContainer = document.getElementById("svid12_53bffb85187eac287ee3c0b"); 5 if (searchButton && searchContainer) { 6 searchButton.setAttribute('aria-expanded', 'false'); 7 searchButton.setAttribute('aria-controls', 'svid10_53bffb85187eac287ee3c0a'); 8 9 searchButton.addEventListener('click', event => { 10 event.preventDefault(); 11 12 var expandedAttr = searchButton.getAttribute('aria-expanded'); 13 if (expandedAttr && expandedAttr === 'true') { 14 searchContainer.className = "sv-searchform-portlet sv-portlet sv-skip-spacer ws-searchform sv-template-portlet"; 15 searchButton.setAttribute('aria-expanded', 'false'); 16 } else { 17 searchContainer.className = 'sv-searchform-portlet sv-portlet sv-skip-spacer sv-template-portlet ws-searchform--active'; 18 searchButton.setAttribute('aria-expanded', 'true'); 19 var searchForm = document.querySelector('#svid10_53bffb85187eac287ee3c0a input[name="query"]'); 20 searchForm.focus(); 21 } 22 23 }); 24 } 25 26 const panicButton = document.getElementById("ws-panic-button"); 27 if (panicButton) { 28 panicButton.addEventListener('click', event => { 29 history.replaceState(null, 'Nyheter', '/nyheter'); 30 }); 31 } 32 33 const pushbar = new Pushbar({ 34 blur:true, 35 overlay:true, 36 }); 37 38 var navCloseButton = document.getElementById("ws-mainnavigation__closebutton"); 39 40 navCloseButton.addEventListener("click", function () { 41 pushbar.close(); 42 }); 43 44 45 var pushbarContainer = document.getElementById("ws-mainnavigation-container"); 46 pushbarContainer.addEventListener("pushbar_opening", function(e) { 47 e.detail.element.setAttribute('aria-expanded', 'true'); 48 e.detail.element.setAttribute('aria-hidden', 'false'); 49 e.detail.element.removeAttribute('style'); 50 51 // Om sökformuläret är öppet, stäng det i samband med att navigationen öppnas. 52 if (searchButton && searchContainer) { 53 searchContainer.className = "sv-searchform-portlet sv-portlet sv-skip-spacer ws-searchform sv-template-portlet"; 54 searchButton.setAttribute('aria-expanded', 'false'); 55 } 56 }); 57 58 pushbarContainer.addEventListener("pushbar_closing", function(e) { 59 e.detail.element.setAttribute('aria-expanded', 'false'); 60 e.detail.element.setAttribute('aria-hidden', 'true'); 61 e.detail.element.setAttribute('style', 'display: none'); 62 }); 63 64 /** Undernavigation/Sidonavigation */ 65 const subNavBtns = document.querySelectorAll('.ws-navigation__list__item-button'); 66 subNavBtns.forEach(subNavBtn => { 67 subNavBtn.addEventListener('click', event => { 68 var correspondingListAttr = event.currentTarget.getAttribute('aria-controls'); 69 var correspondingList = document.getElementById(correspondingListAttr); 70 71 var parentRow = event.currentTarget.parentElement.parentElement; 72 73 var expandedAttr = event.currentTarget.getAttribute('aria-expanded'); 74 if (expandedAttr && expandedAttr === 'true') { 75 76 event.currentTarget.setAttribute('aria-expanded', 'false'); 77 correspondingList.className = correspondingList.className.replace(' ws-navigation__submenu--expanded', ''); 78 correspondingList.setAttribute('aria-expanded', 'false'); 79 correspondingList.setAttribute('aria-hidden', 'true'); 80 parentRow.className = parentRow.className.replace('ws-navigation__item--expanded', ''); 81 82 var underlyingBtns = correspondingList.querySelectorAll('.ws-navigation__list__item-button'); 83 underlyingBtns.forEach(underlyingBtn => { 84 underlyingBtn.setAttribute('aria-expanded', 'false'); 85 var underlyingListAttr = underlyingBtn.getAttribute('aria-controls'); 86 var underlyingList = document.getElementById(underlyingListAttr); 87 underlyingList.className = correspondingList.className.replace(' ws-navigation__submenu--expanded', ''); 88 }); 89 90 } else { 91 92 event.currentTarget.setAttribute('aria-expanded', 'true'); 93 event.currentTarget.setAttribute('aria-label', 'Fäll ihop undermeny'); 94 correspondingList.className = correspondingList.className + ' ws-navigation__submenu--expanded'; 95 correspondingList.setAttribute('aria-expanded', 'true'); 96 correspondingList.setAttribute('aria-hidden', 'false'); 97 parentRow.className = parentRow.className + ' ws-navigation__item--expanded'; 98 } 99 100 }); 101 }); 102 103 104 105 /* 106 Skript för att hantera dekorationsmallen med de kollapsboxar 107 som bygger på envision 108 */ 109 $svjq('.ws-accessibility-hook').remove(); 110 $svjq('.ws-collapsebox').each(function(box) { 111 112 var collapseContainer = $svjq(this).parent().next('.env-collapse'); 113 if (collapseContainer.length) { 114 var containerId = $svjq(this).data('containerid'); 115 collapseContainer.attr('id', containerId); 116 } else { 117 console.error('Couldn\'t find container to associate button with'); 118 } 119 120 }); 121 122 123 // Se till att räknaren för servicemeddelanden är helt rund. 124 var serviceMessageCounter = $svjq('.ws-servicemessages-container__counts'); 125 if (serviceMessageCounter && serviceMessageCounter[0]) { 126 var counterWidth = serviceMessageCounter[0].clientWidth; 127 var counterHeight = serviceMessageCounter[0].clientHeight; 128 129 if (counterWidth > counterHeight) { 130 serviceMessageCounter.css('height', counterWidth); 131 } else if (counterHeight > counterWidth) { 132 serviceMessageCounter.css('width', counterHeight); 133 } 134 } 135 136 137 /** Specialhack för att sätta höjden på iframe för kommunkartan. Chrome tillåter 138 * inte manipulation genom javascript eftersom vi inte har korrekt X-FRAME-OPTIONS-header. 139 * Det här blir tillräckligt bra och gör att redaktörerna slipper sätta höjden manuellt. 140 */ 141 /* 142 $svjq('iframe[src^="https://simrishamn.maps.arcgis.com"]').each(function() { 143 $svjq(this).css('min-height', '98vh'); 144 }); 145 */ 146 $svjq('iframe[src^="https://simrishamn.maps.arcgis.com"]').each(function () {
147 var $iframe = $svjq(this); 148 149 if (!$iframe.hasClass('b3-eventplace__columns__map-iframe')) { 150 $iframe.css('min-height', '98vh'); 151 } 152 }); 153 154 /** Oklart om det här är samma som den föregående eller något annat. För säkerhets skull får 155 den en egen hantering. 156 */ 157 $svjq('iframe[src^="https://storymaps.arcgis.com"]').each(function() { 158 $svjq(this).css('min-height', '98vh'); 159 }); 160 161 162}); 163var Pushbar=function(a){a=void 0===a?{overlay:!0,blur:!1}:a;(this.activeId,this.activeElement,this.overlayElement,a.overlay&&(this.overlayElement=document.createElement("div"),this.overlayElement.classList.add("pushbar_overlay"),document.querySelector("body").appendChild(this.overlayElement)),a.blur)&&(a=document.querySelector(".pushbar_main_content"))&&a.classList.add("pushbar_blur");this.bindEvents()}; 164Pushbar.prototype.emitOpening=function(){var a=new CustomEvent("pushbar_opening",{bubbles:!0,detail:{element:this.activeElement,id:this.activeId}});this.activeElement.dispatchEvent(a)};Pushbar.prototype.emitClosing=function(){var a=new CustomEvent("pushbar_closing",{bubbles:!0,detail:{element:this.activeElement,id:this.activeId}});this.activeElement.dispatchEvent(a)};Pushbar.prototype.handleOpenEvent=function(a){a.preventDefault();a=a.currentTarget.getAttribute("data-pushbar-target");this.open(a)}; 165Pushbar.prototype.handleCloseEvent=function(a){a.preventDefault();this.close()};Pushbar.prototype.handleKeyEvent=function(a){27===a.keyCode&&this.close()}; 166Pushbar.prototype.bindEvents=function(){var a=this,c=document.querySelectorAll("[data-pushbar-target]"),d=document.querySelectorAll("[data-pushbar-close]");
166c.forEach(function(b){return b.addEventListener("click",function(b){return a.handleOpenEvent(b)},!1)});d.forEach(function(b){return b.addEventListener("click",function(b){return a.handleCloseEvent(b)},!1)});this.overlayElement&&this.overlayElement.addEventListener("click",function(b){return a.handleCloseEvent(b)},!1);document.addEventListener("keyup", 167function(b){return a.handleKeyEvent(b)})};Pushbar.prototype.open=function(a){if(this.activeId!==String(a)&&a&&(this.activeId&&this.activeId!==String(a)&&this.close(),this.activeId=a,this.activeElement=document.querySelector('[data-pushbar-id\x3d"'+this.activeId+'"]'),this.activeElement)){this.emitOpening();this.activeElement.classList.add("opened");var c=document.querySelector("html");c.classList.add("pushbar_locked");c.setAttribute("pushbar",a)}}; 168Pushbar.prototype.close=function(){if(this.activeId){this.emitClosing();this.activeElement.classList.remove("opened");var a=document.querySelector("html");a.classList.remove("pushbar_locked");a.removeAttribute("pushbar");this.activeElement=this.activeId=null}}; 169document.addEventListener('DOMContentLoaded', function () { 170 171 const quicklinkcontainer = document.querySelector('.ws-startpage-quicklinks__linkcontainer'); 172 173 if (quicklinkcontainer) { 174 quicklinkcontainer.addEventListener('click', function (event) { 175 const clickedElement = event.target.closest('a'); 176 177 if (clickedElement && quicklinkcontainer.contains(clickedElement)) { 178 179// console.log('Event click:', clickedElement.href); 180 _paq.push(['trackEvent', 'Link click', 'Direktlänkar', clickedElement.href]); 181 } 182 }); 183 } 184 185 const popularlinkscontainer = document.querySelector('.ws-linkblurb-container'); 186 187 if (popularlinkscontainer) { 188 popularlinkscontainer.addEventListener('click', function (event) { 189 const clickedElement = event.target.closest('a'); 190 191 if (clickedElement && popularlinkscontainer.contains(clickedElement)) { 192 193// console.log('Event click:', clickedElement.href); 194 _paq.push(['trackEvent', 'Link click', 'Populära länkar', clickedElement.href]); 195 } 196 }); 197 } 198 199/* 200 document.querySelectorAll('.env-collapse-header').forEach(header => { 201 header.addEventListener('click', function () { 202 requestAnimationFrame(() => { 203 if (header.getAttribute('aria-expanded') === 'true') { 204 let pageTitle = document.querySelector('meta[property="og:title"]').getAttribute('content'); 205 let collapseboxTitle = header.querySelector('.ws-collapsebox__title').textContent; 206 _paq.push(['trackEvent', 'Link click', 'Kollapsbox', pageTitle, collapseboxTitle]); 207 //console.log('Kollapsbox öppnad:', header); 208 } 209 }); 210 }); 211 }); 212*/ 213 214}); 215
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.