1(self.webpackChunksvk_designsystem=self.webpackChunksvk_designsystem||[]).push([[4761,4888,5050],{78096:function(t){t.exports=function(t,e){for(var i=-1,n=Array(t);++i<t;)n[i]=e(i);return n}},24066:function(t,e,i){var n=i(83488);t.exports=function(t){return"function"==typeof t?t:n}},83488:function(t){t.exports=function(t){return t}},6638:function(t,e,i){var n=i(78096),s=i(24066),a=i(61489),l=4294967295,o=Math.min;t.exports=function(t,e){if((t=a(t))<1||t>9007199254740991)return[];var i=l,r=o(t,l);e=s(e),t-=l;for(var d=n(r,e);++i<t;)e(i);return d}},17400:function(t,e,i){var n=i(99374),s=1/0;t.exports=function(t){return t?(t=n(t))===s||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}},61489:function(t,e,i){var n=i(17400);t.exports=function(t){var e=n(t),i=e%1;return e==e?i?e-i:e:0}},25559:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="",__e=_.escape,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,"")}with(obj)(active.location!==undefined||active.eventType!==undefined&&active.eventType.length||active.date!==undefined||active.attendanceMode!==undefined)&&(__p+='\n\t<ul class="list--none">\n\t\t',(active.location!==undefined||active.eventType!==undefined&&active.eventType.length||active.date!==undefined||active.attendanceMode!==undefined)&&(__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="Rensa alla" type="button" action="input" data-type="reset" class="chip--tertiary active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'),__p+="\n\t\t",active.location!==undefined&&(__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(active.location.name)+'" type="button" action="input" data-type="location" data-id="'+__e(active.location.id)+'" class="button--location active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'),__p+="\n\t\t",active.eventType!==undefined&&active.eventType.length&&(__p+="\n\t\t\t",active.eventType.forEach(function(t){__p+='\n\t\t\t\t<li>\n\t\t\t\t\t<svk-chip label="'+__e(t.name)+'" type="button" action="input" data-type="eventType" data-id="'+__e(t.id)+'" class="active-filter__item"></svk-chip>\n\t\t\t\t</li>\n\t\t\t'}),__p+="\n\t\t"),__p+="\n\t\t",active.date!==undefined&&(__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(active.date.name)+'" type="button" action="input" data-type="date" class="active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'),__p+="\n\t\t",active.attendanceMode!==undefined&&(__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(active.attendanceMode.name)+'" type="button" action="input" data-type="attendanceMode" class="active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'),__p+="\n\t</ul>\n"),__p+="\n";return __p}},5822:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<svk-input-place\n\tclass="input-place--layout-row "\n\tlabel="Plats"\n\tname="text"\n\tplaceholder="Sök på ort, kyrka eller församling"\n\trange-type="dropdown"\n\trange="1,2,3,5,10,15,20,25,50,75,100"\n\trange-value="10"\n></svk-input-place>\n';return __p}},71461:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<svk-collapse open class="js-c-calendar-filter-date">\n\t<h3 class="filter__title" slot="header">\n\t\t<button class="filter__title-icon svk-collapse__button svk-button button--tertiary button--tertiary-inline">\n\t\t\t<svk-icon class="button__icon" size="0.75" name="arrow-right-200"></svk-icon>\n\t\t\t<span class="button__text">Datum</span>\n\t\t</button>\n\t</h3>\n\t<div slot="content" class="filter__content starttime-picker"></div>\n</svk-collapse>\n';return __p}},69251:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="",__e=_.escape,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,"")}with(obj)__p+='<svk-collapse open class="js-c-calendar-filter-eventtype-v2">\n\t<h3 class="filter__title" slot="header">\n\t\t<button class="filter__title-icon svk-collapse__button svk-button button--tertiary button--tertiary-inline">\n\t\t\t<svk-icon size="0.75" name="arrow-right-200"></svk-icon>\n\t\t\t<span class="filter__title-text">Tema <span class="title-text__count"></span></span>\n\t\t</button>\n\t\t<button class="filter__title-clear">Rensa</button>\n\t</h3>\n\t<div class="filter__content filter-eventtype-list-container is-expanded" slot="content">\n\t\t<ul class="filter-eventtype-list list--none">\n\t\t\t',list.map(function(t){__p+='\n\t\t\t\t<li>
1\n\t\t\t\t\t<svk-input-checkbox label="'+__e(t.name)+'" name="'+__e(t.name)+'" value="'+__e(t.id)+'" class="checkbox__input2"></svk-input-checkbox>\n\t\t\t\t</li>\n\t\t\t'}),__p+="\n\t\t</ul>\n\t</div>\n</svk-collapse>\n";return __p}},63709:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div class="calendar-filters grid--size-sidebar"></div>\n<div class="calendar-content grid--size-main">\n\t<div class="calendar__filters">\n\t\t<div class="calendar-location grid-container">\n\t\t\t<div class="c-placeholder">\n\t\t\t\t<div class="placeholder-title"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class="calendar-filter-search"></div>\n\t</div>\n\t<div class="calendar-count"></div>\n\t<div class="calendar-active-filters"></div>\n\t<div class="calendar-events"></div>\n</div>\n';return __p}},98582:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="";with(obj)__p+='<div class="grid-container calendar-list-container calendar-list-container--not-found">\n\t<h2 class="calendar-list-title">\n\t\tVi kunde inte hitta din plats, välj en plats för kalenderhändelser.\n\t</h2>\n</div>\n';return __p}},89251:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="",__e=_.escape,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,"")}with(obj)__p+='<div class="datepicker-container rs_skip">\n\t<div class="datepicker-loader"></div>\n\t<header class="datepicker__header label-100">\n\t\t<button class="header__btn header__btn--prev js-month-btn" '+(null==(__t=showPrevious?"":"disabled")?"":__t)+' data-action="prev" aria-label="Föregående månad">\n\t\t\t<svk-icon name="arrow-left"></svk-icon>\n\t\t</button>\n\t\t<div class="header__title" data-action="current" aria-live="polite">\n\t\t\t'+__e(titleMonth)+" "+__e(titleYear)+'\n\t\t</div>\n\t\t<button class="header__btn header__btn--next js-month-btn" data-action="next" aria-label="Nästa månad">\n\t\t\t<svk-icon name="arrow-right"></svk-icon>\n\t\t</button>\n\t</header>\n\t<table class="calendar__month">\n\t\t<thead class="month__header">\n\t\t\t<tr class="month__row month__row--header">\n\t\t\t\t<th class="month__col label-75">Må</th>\n\t\t\t\t<th class="month__col label-75">Ti</th>\n\t\t\t\t<th class="month__col label-75">On</th>\n\t\t\t\t<th class="month__col label-75">To</th>\n\t\t\t\t<th class="month__col label-75">Fr</th>\n\t\t\t\t<th class="month__col label-75 is-weekend">Lö</th>\n\t\t\t\t<th class="month__col label-75 is-weekend is-weekend--sunday">Sö</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t',weeks.map(function(t){__p+='\n\t\t\t\t<tr class="month__row">\n\t\t\t\t\t',t.days.map(function(t,e){__p+='\n\t\t\t\t\t\t<td class="month__col '+__e(t.class)+'">\n\t\t\t\t\t\t\t<button class="day-btn label-75 js-day-btn" '+(null==(__t=t.isDisabled?'tabindex="-1" disabled':"")?"":__t)+' data-action="'+__e(t.timestamp)+'">\n\t\t\t\t\t\t\t\t'+(null==(__t=t.date)?"":__t)+"\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t"}),__p+="\n\t\t\t\t</tr>\n\t\t\t"}),__p+='\n\t\t</tbody>\n\t</table>\n\t<footer class="datepicker-footer">\n\t\t<button class="label-75 svk-link datepicker-footer-btn js-close">Stäng</button>\n\t</footer>\n</div>\n';return __p}},5695:function(t,e){"use strict";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)}}}
1,59306:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkCalendar:function(){return x}});var n=i(90797),s=i(58264),a=i(33730),l=i(81859),o={},r=i(25559),d=(i(26648),i(95093));var c=class{constructor(t,e={}){this.dom={},this.dom.el=t,this.options=e,this.filter={},this.active={},this.bindEvents()}updateLocation(t){void 0!==t?.name?this.active.location={id:"search",name:t.name}:delete this.active.location,this.render()}update(t){Object.entries(t).forEach(([t,e])=>{"eventType"===t?this.active.eventType=e:"date"===t?d(e).isSame(this.options.today,"day")?delete this.active.date:this.active.date={id:e,name:d(e).format("YYYY-MM-DD")}:"attendanceMode"===t&&("online"!==e?delete this.active.attendanceMode:this.active.attendanceMode={id:"online",name:"Digitalt"})}),this.render()}reset(){this.active={},l.reset()}removeItem(t){let e,i={type:t.getAttribute("data-type")};"eventType"===i.type&&(i.id=t.getAttribute("data-id"),this.active[i.type].splice(this.active[i.type].findIndex(t=>t.id===i.id),1),e=[...this.active[i.type]]),"location"===i.type&&(i.id=void 0,delete this.active.location),"date"===i.type&&(delete this.active.date,i.id=d()),"attendanceMode"===i.type&&(delete this.active.attendanceMode,i.id=void 0),t.parentElement.removeChild(t),l.set({type:i.type,data:e})}handleClick(t){t.target.classList.contains("active-filter__item")&&("reset"===t.target.getAttribute("data-type")?this.reset():this.removeItem(t.target))}handleFilterUpdate(t){this.filter=t,(void 0!==this.filter.location&&void 0!==this.filter.location.name||void 0===this.filter.location&&void 0!==this.active.location)&&this.updateLocation(this.filter.location),void 0===this.filter.date&&void 0===this.filter.attendanceMode&&void 0===this.filter?.eventType||this.update(this.filter)}bindEvents(){l.ready(this.handleFilterUpdate.bind(this)),l.changed(this.handleFilterUpdate.bind(this)),this.dom.el.addEventListener("click",this.handleClick.bind(this))}render(){this.dom.el.innerHTML=r({active:this.active,styles:o}).trim()}},h=i(13623),u=i(5822);i(70826);var p=class{constructor(t){this.dom={},this.dom.el=t,this.filter={},this.cookie=null,this.cookieConsentFunctions=!1,this.renderBase(),this.setupDom(),this.bindEvents()}async getPlacesFromCoordinate(t){let e={apikey:"09ec36d9-df57-49f6-b9b1-51be61370e62",limit:100,offset:0,is:"ChurchAndChapel,ParishHome",orderby:"name",nearby:`${t.longitude},${t.latitude}`,nearbyRadius:t.radius};return this.fetchAllPlaces(e)}setupDom(){}reset(){this.dom.el.querySelector("svk-input-place").reset()}getInitLocation(t){void 0!==t.location?.type&&(this.filter=t.location,this.dom.el.querySelector("svk-input-place").setAttribute("value",this.filter.name),"geo"===t.location.type&&this.dom.el.querySelector("svk-input-place").updateGeo(t.location))}handleFilterInit(t){this.getInitLocation(t)}handleFilterUpdate(t){void 0===t.location&&this.reset()}handleInputPlaceChange(t){void 0!==t.detail?.filter&&l.set({type:"location",data:t.detail.filter})}bindEvents(){l.ready(this.handleFilterInit.bind(this)),l.changed(this.handleFilterUpdate.bind(this)),this.dom.el.querySelector("svk-input-place").addEventListener("update",this.handleInputPlaceChange.bind(this))}renderBase(){this.dom.el.innerHTML=u({useGeoLocation:this.useGeoLocation})}renderHelp(t){this.dom.dropDownResults.innerHTML=templateHelp({text:t})}};i(38221),i(62395);var v=class{constructor(t){this.dom={},this.dom.el=t,this.currentString="",this.render(),this.setupDom(),this.bindEvents()}setupDom(){this.dom.search=this.dom.el.querySelector("input"),this.dom.searchForm=this.dom.el.querySelector("form"),this.dom.clear=this.dom.el.querySelector(".search__clear")}checkHasText(t){!t.length&&this.dom.el.classList.contains("has-text")?(this.hasText=!1,this.dom.el.classList.remove("has-text")):t.length&&!this.dom.el.classList.contains("has-text")&&this.dom.el.classList.add("has-text")}dispatchEvent(){l.set({type:"q",data:this.currentString})}handleSearchChange(t){const e=t.detail.value;this.currentString!==e&&(this.checkHasText(e),this.currentString=e,this.dispatchEvent())}handleFormSubmit(t){t.preventDefault(),document.activeElement.blur()}handleFilterUpdate(t){void 0!==t.q&&t.q!==this.currentString&&(this.currentString=t.q,this.dom.el.querySelector("svk-input-search").setAttribute("value",t.q),this.checkHasText(t.q))}bindEvents(){l.changed(this.handleFilterUpdate.bind(this)),l.ready(this.handleFilterUpdate.bind(this)),this.dom.el.querySelector("svk-input-search").addEventListener("svk-change",this.handleSearchChange.bind(this))}render(){this.dom.el.innerHTML='\n\t\t\t<svk-input-search label="Hitta bland händelser"></svk-input-search>\n\t\t'}};var m=class{constructor(t,e){this.dom={},this.dom.el=t,this.filter="",this.isDigital=!1,this.render(),this.bindEvents()}handleInputChange(t){this.isDigital=t.target.checked,l.set({type:"attendanceMode",data:this.isDigital?"online":""})}check(){this.dom.el.querySelector(".digital__checkbox").checked=!0}
1uncheck(){this.isDigital=!1,this.dom.el.querySelector(".digital__checkbox").checked=!1}handleFilterInit(t){this.isDigital="online"===t.attendanceMode,this.isDigital?this.check():this.uncheck()}handleFilterUpdate(t){this.isDigital="online"===t.attendanceMode,this.isDigital||this.uncheck()}bindEvents(){l.ready(this.handleFilterInit.bind(this)),l.changed(this.handleFilterUpdate.bind(this)),this.dom.el.querySelector(".digital__checkbox").addEventListener("change",this.handleInputChange.bind(this))}render(){this.dom.el.innerHTML='\n\t\t\t<div class="js-c-calendar-filter-digital">\n\t\t\t\t<h3 class="filter__title filter__title--digital">\n\t\t\t\t\t<span class="filter__title-text">Visa endast</span>\n\t\t\t\t</h3>\n\t\t\t\t<svk-input-checkbox class="digital__checkbox" label="Digitala händelser"></svk-input-checkbox>\n\t\t\t</div>\n\t\t'}},b=i(31823),f=i(71461),_=(i(50684),i(95093));var y=class{constructor(t){this.dom={},this.dom.el=t,this.today=_(),this.selected=_(),this.render(),this.datepicker=new b.default(this.dom.el.querySelector(".starttime-picker"),{today:this.today.clone(),selected:this.selected.clone(),type:"normal",style:"simple"}),this.bindEvents()}render(){this.dom.el.innerHTML=f({moment:_,selected:this.selected})}resetDate(){this.datepicker.updateActiveTo(this.today)}handleDateChange(t){this.selected=t,l.set({type:"date",data:_(t)})}handleFilterUpdate(t){void 0!==t.date?this.selected=t.date.clone():this.selected=_(),this.datepicker.updateSelected(this.selected.format("YYYY-MM-DDT00:00:00.000Z"))}bindEvents(){l.ready(this.handleFilterUpdate.bind(this)),l.changed(this.handleFilterUpdate.bind(this)),this.datepicker.on("changeDay",this.handleDateChange.bind(this))}},k=i(69251);i(34888);var g=class{constructor(t,e={}){this.dom={},this.dom.el=t,this.options=e,this.filter=[],this.data=l.eventTypes,this.render(this.data),this.dom.count=this.dom.el.querySelector(".title-text__count"),this.dom.clear=this.dom.el.querySelector(".filter__title-clear"),this.bindEvents()}activateSelectedItems(){this.filter.forEach(t=>{let e=this.dom.el.querySelector(`[value="${t.id}"]`);null!==e&&e.setAttribute("checked","")}),this.filter.length&&this.updateCount()}uncheck(t){const e=this.dom.el.querySelector(`[value='${t}']`),i=this.filter.findIndex(e=>e.id===t);this.filter.splice(i,1),e.removeAttribute("checked")}updateCount(){this.filter.length?(this.dom.count.textContent=`(${this.filter.length})`,this.dom.el.classList.add("has-filter")):(this.dom.count.textContent="",this.dom.el.classList.remove("has-filter"))}getDifference(t,e){return t.filter(t=>!e.some(e=>t.id===e.id))}reset(t=!0){this.dom.el.querySelectorAll("[checked]").forEach(t=>{t.removeAttribute("checked")}),this.filter=[],this.updateCount(),t&&l.set({type:"eventType",data:this.filter})}handleItemToggleClick(t){const e=t.value;t.hasAttribute("checked")?this.filter.splice(this.filter.findIndex(t=>t.id===e),1):this.filter.push({id:e,name:t.name}),this.updateCount(),l.set({type:"eventType",data:[...this.filter]})}handleEventDelegation(t){t.target.closest(".checkbox__input2")&&"input"===t.target.localName?this.handleItemToggleClick(t.target.closest(".checkbox__input2")):t.target.classList.contains("filter__title-clear")&&this.reset()}handleFilterInit(t){this.filter=[...t.eventType],void 0!==!this.filter&&this.filter.length&&(this.activateSelectedItems(),this.updateCount())}handleFilterUpdate(t){if(t.eventType.length){let e=this.getDifference(this.filter,t.eventType);e.length&&(this.uncheck(e[0].id),this.updateCount())}else this.reset(!1);this.filter=[...t.eventType]}bindEvents(){l.ready(this.handleFilterInit.bind(this)),l.changed(this.handleFilterUpdate.bind(this)),this.dom.el.addEventListener("click",this.handleEventDelegation.bind(this))}render(t){this.dom.el.innerHTML=k({list:t})}},w={};var E=class{constructor(t){this.dom={},this.dom.el=t,this.dom.el.classList.add(w.calendarFilters),this.render(),this.setupDom(),this.filterEventType=new g(this.dom.eventType),this.filterDate=new y(this.dom.date),this.filterDigital=new m(this.dom.digital),this.bindEvents()}open(){this.dom.el.classList.add("is-open")}setupDom(){this.dom.eventType=this.dom.el.querySelector(".calendar-filter-eventtype"),this.dom.date=this.dom.el.querySelector(".calendar-filter-date"),this.dom.digital=this.dom.el.querySelector(".calendar-filter-digital")}resetAll(){l.reset()}updateCount(t){this.dom.el.querySelector(".js-close-filter").textContent=`Visa (${t})`}
1handleEventDelegation(t){const e=t.target;e.classList.contains("js-close-filter")&&this.dom.el.classList.remove("is-open"),e.classList.contains("js-reset-all")&&this.resetAll()}bindEvents(){this.dom.el.addEventListener("click",this.handleEventDelegation.bind(this))}render(){this.dom.el.insertAdjacentHTML("beforeend",'\n\t\t\t<h2>Filtrera händelser</h2>\n\t\t\t<svk-skip-to-content anchor="kalender-resultat" class="label-100 skip-to-content--relative">\n\t\t\t\tHoppa över filtrering\n\t\t\t</svk-skip-to-content>\n\t\t\t<div class="filter__container">\n\t\t\t\t<div class="calendar-filter-eventtype filter__item"></div>\n\t\t\t\t<div class="calendar-filter-digital filter__item"></div>\n\t\t\t\t<div class="calendar-filter-date filter__item"></div>\n\t\t\t</div>\n\t\t\t<div class="calendar-filter__footer filter__footer">\n\t\t\t<button class="svk-button button--secondary js-reset-all">Rensa allt</button>\n\t\t\t\t<button class="svk-button js-close-filter">Visa resultat</button>\n\t\t\t</div>\n\t\t')}},D=i(95093);var S=class{constructor(t,e){this.dom={},this.dom.el=t,this.options=e,this.render(),this.dom.count=this.dom.el.querySelector(".calendar-count__count"),this.bindEvents()}update(t){this.dom.count.textContent=t}updateFilterCount(t){let e=0;t.digital&&(e+=1),D(t.date).isSame(this.options.today)||(e+=1),t.eventType.length&&(e+=t.eventType.length),this.dom.el.querySelector(".js-open-filter").textContent=e>0?`Filtrera (${e})`:"Filtrera"}handleOpenFilter(){this.options.calendarFilter.open()}bindEvents(){this.dom.el.querySelector(".js-open-filter").addEventListener("click",this.handleOpenFilter.bind(this))}render(){this.dom.el.innerHTML='\n\t\t\t<div class="calendar-count__content label-100" role="alert" aria-live="assertive" aria-atomic="true" id="calendar-events">\n\t\t\t\tVisar <span class="calendar-count__count"></span> träffar\n\t\t\t</div>\n\t\t\t<button class="svk-button js-open-filter">Filtrera</button>\n\t\t'}},A=i(63709),T=i(98582),L=(i(66567),i(95093));L.locale("sv");class x extends HTMLElement{constructor(){super(),this.dom={},this.dom.el=this,this.dom.container=this.dom.el.querySelector(".calendar-container"),this.instanceId=(0,n.A)(),this.hasLocation=!1,this.initialized=!1,this.filter={},this.filter.eventType=[],this.state=this.initState,this.controller=null,this.requestSequence=0,this.getQueryParameters(),this.renderBase(),this.setupDom(),void 0!==this.filter.eventId?(this.dom.el.style.display="none",this.insertAdjacentHTML("afterend",`\n\t\t\t\t<svk-calendar-event class="svk-layout svk-layout--single" event-id="${this.filter.eventId}"></svk-calendar-event>`)):this.filter.infoscreen?Promise.all([i.e(4692),i.e(229),i.e(460),i.e(9036),i.e(8454),i.e(1036)]).then(i.bind(i,98454)).then(()=>{document.body.insertAdjacentHTML("beforeend","<svk-calendar-fullscreen></svk-calendar-fullscreen>")}):this.init()}init(){this.dom.el.style.display="block",this.dom.el.classList.add("is-loaded"),this.calendarActiveFilters=new c(this.dom.el.querySelector(".calendar-active-filters")),this.calendarEvents=new h.default(this.dom.eventsContainer,this.state,{event:"c-calendar-list",id:this.instanceId}),this.calenderFilterLocation=new p(this.dom.el.querySelector(".calendar-location")),this.calenderFilterSearch=new v(this.dom.el.querySelector(".calendar-filter-search")),this.calendarFilter=new E(this.dom.el.querySelector(".calendar-filters")),this.calendarCount=new S(this.dom.el.querySelector(".calendar-count"),{calendarFilter:this.calendarFilter}),this.bindEvents(),l.init()}get initState(){return{today:L(),selected:L()}}async fetchEvents(t={},e){let i={},n="",s="";"next"===t.type&&(i.continuation=t.continuation),i.access="external",i.expand="place,owner,feasts",void 0!==this.filter.location?.type&&("place"===this.filter.location.type?i.place_id=this.filter.location.id:"owner"===this.filter.location.type?i.owner_id=this.filter.location.id:"geo"===this.filter.location.type&&(i.place_id=this.filter.location.id)),void 0!==this.filter.q&&""!==this.filter.q&&(i.q=`${this.filter.q}`),"online"===this.filter.attendanceMode&&(i.attendanceMode="online"),void 0!==this.filter.eventType&&this.filter.eventType.length&&(i.is=this.filter.eventType.map(t=>
1t.id).join(",")),void 0===this.filter.date?i.from="today":i.from=this.filter.date.format("YYYY-MM-DD[T]00:00:00.000Z"),s={method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","Cache-Control":"no-cache","Ocp-Apim-Subscription-Key":"f6937363a4d94012a78a32442752cf5c"},body:a.As(i),signal:e},n="https://svk-apim-prod.azure-api.net/calendar/v1/event/search/";return(await fetch("https://svk-apim-prod.azure-api.net/calendar/v1/event/search/",s)).json()}isAbortError(t){return"AbortError"===t?.name}setupDom(){this.dom.notFoundContainer=this.dom.el.querySelector(".calendar-list-container--not-found"),this.dom.foundContainer=this.dom.el.querySelector(".calendar-list-container--found"),this.dom.eventsContainer=this.dom.el.querySelector(".calendar-events"),this.dom.filterToggleButton=this.dom.el.querySelector(".js-toggle-filter"),this.dom.filterContainer=this.dom.el.querySelector(".calendar-filter-sub__container")}getQueryParameters(){return this.filter=(0,s.parseQuery)(),void 0!==this.filter.date&&this.filter.date.isSame(L(),"day")&&(this.filter.date=L()),this.filter}setQueryParameters(){let t=(0,s.stringifyQuery)(this.filter);history.replaceState(t,null,`${window.location.origin}${window.location.pathname}${t}`)}isTopInViewport(t){const e=t.getBoundingClientRect();return e.top>=0&&e.top<=window.innerHeight}scrollIntoViewIfNeeded(t,e={behavior:"auto",block:"start"}){this.isTopInViewport(t)||t.scrollIntoView(e)}updateEvents(t){"new"===t.type?(this.controller&&this.controller.abort(),this.controller=new AbortController):this.controller||(this.controller=new AbortController);const e=this.controller.signal,i=++this.requestSequence;"new"===t.type&&(this.calendarEvents.loading(),this.setQueryParameters(),this.updateFilterCount()),this.fetchEvents(t,e).then(n=>{if(i===this.requestSequence&&!e.aborted){if(this.calendarEvents.update({data:n,state:this.state,type:t.type}),this.setQueryParameters(),"new"===t.type&&this.initialized){const t=this.querySelector(".calendar-events");this.scrollIntoViewIfNeeded(t)}this.initialized||(this.initialized=!0)}},t=>{this.isAbortError(t)||this.renderNotFound()})}updateFilterCount(){let t=0;void 0!==this.filter.subGroup&&this.filter.subGroup.length&&(t+=1),void 0!==this.filter.q&&this.filter.q.length&&(t+=1)}handleEventsPagination(t){this.calendarEvents.loading(!0),this.updateEvents({type:"next",url:t.next,continuation:t.continuation})}handlePopState(t){let e;if(t.preventDefault(),void 0!==t.state?.eventId)e=t.state.eventId;else if(void 0!==t.state&&""!==t.state){let i=a.qg(t.state);void 0!==i.eventId&&(e=void 0!==i.eventId?i.eventId:void 0)}this.dom.el.style.display=void 0!==e?"none":"block"}handleEventsOpen(t){t.webid=this.filter.webid,this.dom.el.style.display="none",history.pushState({eventId:t.eventId},null,window.location.origin+window.location.pathname+"?"+a.As(t))}handleFilterInit(t){this.filter=t,"geo"!==this.filter?.location?.type&&this.updateEvents({type:"new"})}handleFilterUpdate(t){this.filter=t,this.updateEvents({type:"new"})}bindEvents(){this.calendarEvents.on("paginate",this.handleEventsPagination.bind(this)),this.calendarEvents.on("openEvent",this.handleEventsOpen.bind(this)),window.addEventListener("popstate",this.handlePopState.bind(this)),l.ready(this.handleFilterInit.bind(this)),l.changed(this.handleFilterUpdate.bind(this))}renderBase(){this.dom.container.innerHTML=A({moment:L,data:this.options,state:this.state})}renderNotFound(){this.dom.el.insertAdjacentHTML("afterbegin",T())}}window.customElements.define("svk-calendar",x)},50684:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkCollapse:function(){return s}});var n=i(90797);class s extends HTMLElement{static observedAttributes=["open"];constructor(){super(),this.open=this.hasAttribute("open")??!1,this.attachShadow({mode:"open"}),this.id=(0,n.A)(),this.render()}connectedCallback(){this.domButton=this.querySelector(".svk-collapse__button"),this.domContent=this.querySelector('[slot="content"]'),this.domContent.id=`${this.id}-content`,this.domButton.setAttribute("aria-controls",`${this.id}-content`),this.domButton.setAttribute("aria-expanded",this.open),this.domButton.addEventListener("click",this.handleClick.bind(this))}handleClick(t){"true"===t.currentTarget.getAttribute("aria-expanded")?(t.currentTarget.setAttribute("aria-expanded",!1),this.removeAttribute("open")):(t.currentTarget.setAttribute("aria-expanded",!0),this.setAttribute("open",""))}attributeChangedCallback(t,e,i){"expanded"===t?(this.expanded="true"===i,this.domButton.setAttribute("aria-expanded",this.expanded)):"open"===t&&void 0!==this.domButton&&(null!==i?this.domButton.setAttribute("aria-expanded",!0):this.domButton.setAttribute("aria-expanded",!1))}render(){let t=document.createElement("template");t.innerHTML='\n\t\t\t<style>\n\t\t\t\t:host {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\n\t\t\t\tslot[name="content"] {\n\t\t\t\t\tdisplay: none;\n\t\t\t\t}\n\n\t\t\t\t.svk-collapse__button {\n\t\t\t\t\tposition: relative;\n\t\t\t\t\tdisplay: flex;\n\t\t\t\t\tgap: var(--space-100);\n\t\t\t\t}\n\n\t\t\t\t:host([open]) slot[name="content"] {\n\t\t\t\t\tdisplay: block;\n\t\t\t\t}\n\t\t\t</style>\n\t\t\t<slot name="header"></slot>\n\t\t\t<slot name="content"></slot>\n\t\t',this.shadowRoot.appendChild(t.content)}}window.customElements.define("svk-collapse",s)}
1,31823:function(t,e,i){"use strict";i.r(e);var n=i(95093),s=i(30228),a=i(5695),l=i(89251),o=i(6638),r=i(48357);n.locale("sv");e.default=class{constructor(t,e={}){this.dom={},this.dom.container=t,this.state={},this.state.today=e.today||n(),this.state.selected=e.selected||n().clone(),this.state.currentView=void 0!==e.selected?e.selected.clone():this.state.today.clone(),this.state.activeFrom=e.old||this.state.today.clone(),this.state.open=!1,this.state.showAvailable=e.showAvailable||!1,this.state.type=e.type||"normal",this.state.style=e.style||"default",this.ee=new s,this.tabindex=document.activeElement,this.init(),this.focusWithin=new a.A(t)}get monthData(){let t=this.state.currentView.clone(),e=t.clone().startOf("month"),i=e.clone().daysInMonth(),s=e.clone().startOf("month"),a=e.clone().endOf("month"),l=s.clone().weekday(),r=Math.ceil((l+i)/7),d={};return d.showPrevious=!t.isSame(this.state.activeFrom,"month"),d.titleMonth=t.format("MMMM"),d.titleYear=t.format("YYYY"),d.weeks=[],o(r,t=>{let i=e.clone().startOf("week"),l={};l.nr=e.week(),l.timestamp=e.format("YYYY-MM-DDT00:00:00.000Z"),l.class=`week week-${e.format("w")}`,l.days=[],o(7,t=>{let e=i.clone(),o={};o.date=e.format("D"),o.monthDay=e.format("M-DD"),o.timestamp=e.format("YYYY-MM-DDT00:00:00.000Z"),o.class="",o.isDisabled=!1,e.isBefore(s,"days")||e.isAfter(a,"days")?(o.class="is-fillup",o.isDisabled=!0):o.class=`date-${o.monthDay}`,e.isBefore(this.state.activeFrom,"days")&&(o.class+=" is-old",o.isDisabled=!0),e.isSame(this.state.today,"day")&&(o.class+=" is-today"),void 0!==this.state.selected&&n(e).isSame(n(this.state.selected),"day")&&(o.class+=" is-current"),l.days.push(o),i.add(1,"day")}),e.add(1,"week"),d.weeks.push(l)}),d}init(){this.renderBase(),this.setupDom(),this.renderMonth(),this.bindEvents()}isOpen(){return this.state.open}destroy(){this.dom.el.innerHTML=""}toggle(){this.state.open?this.close():this.open()}open(){this.state.open=!0,this.focusWithin.init(),r(this.dom.el,{opacity:[1,0]},{duration:150,display:"block"}),this.renderBackDrop()}close(){this.state.open=!1,r(this.dom.el,{opacity:0},{duration:150,display:"none"}),this.dom.container.removeChild(this.dom.container.querySelector(".datepicker-backdrop")),this.focusWithin.destroy(),this.ee.emit("close")}startLoading(){}stopLoading(){}setupDom(){this.dom.el=this.dom.container.querySelector(".c-datepicker")}updateView(t,e){if(e.isSame(t,"month")){if(this.removeCurrentSelectedDay(),"day"===this.state.filter)this.selectCurrentDay()}else this.renderMonth()}removeCurrentSelectedDay(){let t=this.dom.el.querySelectorAll(".is-current");t.length&&Array.from(t).map(t=>{t.classList.remove("is-current")})}selectCurrentDay(){let t=this.dom.el.querySelector(".is-current"),e=this.dom.el.querySelector(".date-"+this.state.selected.clone().format("M-DD"));null!=t&&t.classList.remove("is-current"),null!=e&&e.classList.add("is-current")}selectCurrentMonth(){this.dom.el.querySelectorAll(".week").map(t=>{t.classList.add("is-current")})}changeMonth(t){let e=this.state.currentView.clone();switch(this.state.type="date",this.state.filter="month",t){case"next":this.state.currentView.add(1,"month").startOf("month");break;case"prev":this.state.currentView.subtract(1,"month").startOf("month");break;case"current":this.state.currentView.startOf("month")}this.updateView(e,this.state.currentView),this.focusWithin.reInit(),this.ee.emit("changeMonth",this.state.currentView)}changeDay(t,e=!0){let i=void 0!==this.state.selected?this.state.selected.clone():void 0,s=n(t);this.state.type="date",this.state.filter="day",this.state.selected=s,this.state.currentView=s.clone(),this.updateView(i,s.clone()),this.selectCurrentDay(),e&&this.ee.emit("changeDay",t),this.state.open&&this.close()}updateSelected(t){this.state.selected=n(t),this.state.currentView=n(t),this.renderMonth(),this.selectCurrentDay()}updateActiveTo(t){this.state.activeTo=n(t).clone(),this.state.currentView=n(t).clone(),void 0!==this.state.selected&&this.state.selected.isAfter(this.state.activeTo,"day")&&(this.removeCurrentSelectedDay(),this.changeDay(t))}updateActiveFrom(t){this.state.activeFrom=n(t).clone(),this.state.currentView=n(t).clone(),void 0!==this.state.selected&&this.state.selected.isBefore(this.state.activeFrom,"day")&&(this.removeCurrentSelectedDay(),this.changeDay(t))}updateAvailableDates(t){let e=this.dom.el.querySelectorAll(".is-available");e.length&&e.map(t=>{t.classList.remove("is-available")}),t.length&&t.map(t=>{let e=this.dom.container.querySelector(".date-"+n(t).format("M-DD"));e&&e.classList.add("is-available")})}renderBase(){let t=`datepicker--type-${this.state.type} datepicker--style-${this.state.style}`;this.state.showAvailable&&(t+=" show-available");let e=`<div class="c-datepicker ${t}"></div>`;this.dom.container.innerHTML=e}renderBackDrop(){this.dom.container.insertAdjacentHTML("beforeend",'<div class="datepicker-backdrop"></div>')}renderMonth(){this.dom.el.innerHTML=l(this.monthData)}handleClick(t){t.preventDefault(),t.stopPropagation();let e=t.target,i=e.classList,n=e.getAttribute("data-action");if(i.contains("is-current"))return!1;
1i.contains("js-month-btn")?this.changeMonth(n):i.contains("js-day-btn")?this.changeDay(n):(i.contains("js-close")||i.contains("datepicker-backdrop"))&&this.close()}bindEvents(){this.dom.container.addEventListener("click",this.handleClick.bind(this))}on(t,e){switch(t){case"changeDay":this.ee.on("changeDay",t=>{e(t)});break;case"changeMonth":this.ee.on("changeMonth",t=>{e(t)});break;case"close":this.ee.on("close",t=>{e(t)})}}}},34888:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkInputCheckbox:function(){return n}});class n extends HTMLElement{static observedAttributes=["checked","invalid","disabled"];constructor(){super(),this.label=this.getAttribute("label"),this.required=this.hasAttribute("required"),this.name=this.getAttribute("name"),this.value=this.getAttribute("value"),this.disabled=this.hasAttribute("disabled"),this.description=this.getAttribute("description"),this.size=this.getAttribute("size")??"100",this.validatePattern=this.getAttribute("validate-pattern"),this.error=this.getAttribute("error"),this.checked=!!this.hasAttribute("checked")}connectedCallback(){this.render(),this.bindEvents(),this.checked&&(this.querySelector("input").checked=!0)}attributeChangedCallback(t,e,i){if("checked"===t){this.checked=null!==i&&"false"!==i;const t=this.querySelector("input");t&&(t.checked=this.checked)}if("invalid"===t){const t=this.querySelector("input");t&&t.classList.toggle("is-error",null!==i)}if("disabled"===t){this.disabled=null!==i&&"false"!==i;const t=this.querySelector("input");t&&(t.disabled=this.disabled)}}emit(){this.dispatchEvent(new CustomEvent("svk-change",{bubbles:!0,detail:{checked:this.checked,value:this.value,name:this.name,label:this.label}}))}getLabelSize(){switch(this.size){case"75":return"label-75";case"100":return"label-100";case"200":return"heading-04"}}bindEvents(){this.querySelector("input").addEventListener("change",t=>{t.target.checked?(this.setAttribute("checked",""),this.checked=!0):(this.removeAttribute("checked"),this.checked=!1),this.emit()})}render(){this.innerHTML="";const t=document.createElement("template");t.innerHTML=`\n\t\t\t<label class="input-checkbox__label ${this.getLabelSize()}">\n\t\t\t\t<input\n\t\t\t\t\tclass="input-checkbox__input"\n\t\t\t\t\ttype="checkbox"\n\t\t\t\t\t${this.checked?"checked":""}\n\t\t\t\t\t${this.disabled?"disabled":""}\n\t\t\t\t\t${this.required?'required data-pattern="checkbox"':""}\n\t\t\t\t\tname="${this.name}"\n\t\t\t\t\tvalue="${this.value}"\n\t\t\t\t/>\n\t\t\t\t<span class="input-checkbox__box"></span>\n\t\t\t\t<span>\n\t\t\t\t\t${this.label}\n\t\t\t\t\t${this.required?' <abbr title="Obligatoriskt">*</abbr>':""}\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t\t${this.error?`<span class="input-checkbox__error label-50">${this.error}</span>`:""}\n\t\t\t${this.description?`<span class="input-checkbox__description label-50">${this.description}</span>`:""}\n\t\t`,this.appendChild(t.content.cloneNode(!0))}}window.customElements.define("svk-input-checkbox",n)},62395:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkInputSearch:function(){return s}});var n=i(90797);class s extends HTMLElement{static observedAttributes=["value"];constructor(){super(),this.elementId=(0,n.A)(),this.autocompleted=!1,this.debounceDelay=0,this.emitDebounced=null}connectedCallback(){this.label=null!==this.getAttribute("label")?this.getAttribute("label"):"Sök",this.showLabel=null!==this.getAttribute("label")&&"false"!==this.getAttribute("show-label"),this.name=this.getAttribute("name");const t=this.getAttribute("placeholder");if(this.placeholder=t&&"undefined"!==t&&"null"!==t?t:"",this.submitButton="true"===this.getAttribute("submit-button"),this.debounceDelay=Number.parseInt(this.getAttribute("debounce")??"0",10),(Number.isNaN(this.debounceDelay)||this.debounceDelay<0)&&(this.debounceDelay=0),this.emitDebounced=function(t,e=0){let i=null;const n=Number.isFinite(Number(e))?Number(e):0,s=(...e)=>{n<=0?t(...e):(i&&clearTimeout(i),i=setTimeout(()=>{i=null,t(...e)},n))};return s.cancel=()=>{i&&(clearTimeout(i),i=null)},s}(t=>{this.emit(t)},this.debounceDelay),this.render(),this.elInput=this.querySelector("input"),this.bindEvents(),this.elInput){const t=this.getAttribute("value");this.elInput.value=t??""}null!==this.label&&""!==this.label||(this.label="Sök")}disconnectedCallback(){this.emitDebounced?.cancel&&this.emitDebounced.cancel()}attributeChangedCallback(t,e,i){if("value"===t){if(!this.elInput)return;const t=i??"";this.elInput.value=t,""!==t?this.elInput.classList.add("is-active"):this.elInput.classList.remove("is-active"),t.includes("Min position")?(this.autocompleted=!0,this.classList.add("is-geo-position")):(this.autocompleted=!1,this.classList.remove("is-geo-position"))}}emit(t,e=!1){this.dispatchEvent(new CustomEvent("svk-change",{bubbles:!0,detail:{value:t,reset:e}}))}handleInput(t){if(""!==t.target.value?t.target.classList.add("is-active"):t.target.classList.remove("is-active"),!this.submitButton){const e=t.target.value;this.setAttribute("value",e),this.emitDebounced(e)}}handleKeyUp(t){t.preventDefault(),t.stopPropagation(),this.submitButton&&"Enter"===t.key&&(this.setAttribute("value",t.target.value),this.emit
1(t.target.value))}handleKeyDown(t){this.autocompleted&&this.handleReset(),"Escape"===t.key&&this.handleReset()}handleReset(){this.emitDebounced?.cancel&&this.emitDebounced.cancel(),this.elInput.value="",this.elInput.classList.remove("is-active"),this.elInput.classList.remove("is-geo-position"),this.setAttribute("value",""),this.emit("",!0)}handleButtonClick(){const t=this.elInput.value;this.setAttribute("value",t),this.emitDebounced?.cancel&&this.emitDebounced.cancel(),this.emit(t)}bindEvents(){this.elInput.addEventListener("input",this.handleInput.bind(this)),this.elInput.addEventListener("keyup",this.handleKeyUp.bind(this)),this.elInput.addEventListener("keydown",this.handleKeyDown.bind(this)),this.querySelector(".search__reset").addEventListener("click",this.handleReset.bind(this)),this.querySelector(".search-input__button")&&this.querySelector(".search-input__button").addEventListener("click",this.handleButtonClick.bind(this))}render(){let t=document.createElement("template");t.innerHTML=`\n\t\t\t${null!==this.label?`\n\t\t\t\t<label class="label-100 ${this.showLabel?"":"screen-reader"}" for="${this.elementId}">\n\t\t\t\t\t${this.label}\n\t\t\t\t</label>\n\t\t\t`:""}\n\t\t\t<div class="search__input-container">\n\t\t\t\t${this.submitButton?"":'<svk-icon name="search" class="search__icon"></svk-icon>'}\n\t\t\t\t<input\n\t\t\t\t\tclass="search__input"\n\t\t\t\t\tautocomplete="off"\n\t\t\t\t\t${this.elementId?`id="${this.elementId}"`:""}\n\t\t\t\t\t${this.placeholder?`placeholder="${this.placeholder}"`:""}\n\t\t\t\t\ttype="search"\n\t\t\t\t\tname="${this.name}" />\n\t\t\t\t<button type="button" class="search__reset svk-button button--icon button--tertiary button--size-75" aria-label="Rensa">\n\t\t\t\t\t<svk-icon name="close">\n\t\t\t\t</button>\n\t\t\t\t${this.submitButton?'<button type="submit" class="search-input__button svk-button button--icon button--tertiary button--size-75" aria-label="Sök">\n\t\t\t\t\t\t<svk-icon name="search"></svk-icon>\n\t\t\t\t\t</button>':""}\n\t\t\t</div>\n\t\t`,this.appendChild(t.content)}}window.customElements.define("svk-input-search",s)}}]);
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.