1(self.webpackChunksvk_designsystem=self.webpackChunksvk_designsystem||[]).push([[684,1874,2395,4888,8553],{54128:function(t,e,i){var s=i(31800),n=/^\s+/;t.exports=function(t){return t?t.slice(0,s(t)+1).replace(n,""):t}},31800:function(t){var e=/\s/;t.exports=function(t){for(var i=t.length;i--&&e.test(t.charAt(i)););return i}},38221:function(t,e,i){var s=i(23805),n=i(10124),l=i(99374),a=Math.max,r=Math.min;t.exports=function(t,e,i){var o,c,h,d,u,p,b=0,v=!1,m=!1,f=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function _(e){var i=o,s=c;return o=c=void 0,b=e,d=t.apply(s,i)}function k(t){var i=t-p;return void 0===p||i>=e||i<0||m&&t-b>=h}function g(){var t=n();if(k(t))return y(t);u=setTimeout(g,function(t){var i=e-(t-p);return m?r(i,h-(t-b)):i}(t))}function y(t){return u=void 0,f&&o?_(t):(o=c=void 0,d)}function A(){var t=n(),i=k(t);if(o=arguments,c=this,p=t,i){if(void 0===u)return function(t){return b=t,u=setTimeout(g,e),v?_(t):d}(p);if(m)return clearTimeout(u),u=setTimeout(g,e),_(p)}return void 0===u&&(u=setTimeout(g,e)),d}return e=l(e)||0,s(i)&&(v=!!i.leading,h=(m="maxWait"in i)?a(l(i.maxWait)||0,e):h,f="trailing"in i?!!i.trailing:f),A.cancel=function(){void 0!==u&&clearTimeout(u),b=0,o=p=c=u=void 0},A.flush=function(){return void 0===u?d:y(n())},A}},44394:function(t,e,i){var s=i(72552),n=i(40346);t.exports=function(t){return"symbol"==typeof t||n(t)&&"[object Symbol]"==s(t)}},10124:function(t,e,i){var s=i(9325);t.exports=function(){return s.Date.now()}},99374:function(t,e,i){var s=i(54128),n=i(23805),l=i(44394),a=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,c=parseInt;t.exports=function(t){if("number"==typeof t)return t;if(l(t))return NaN;if(n(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=n(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=s(t);var i=r.test(t);return i||o.test(t)?c(t.slice(2),i?2:8):a.test(t)?NaN:+t}},64143: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+='<ul class="list--none">\n\t',(active.places!==undefined&&""!==active.places||active.tags!==undefined&&""!==active.tags||active.types!==undefined&&""!==active.types)&&(__p+='\n\t\t<li>\n\t\t\t<svk-chip label="Rensa alla" value="reset" type="button" action="input" data-type="places" class="chip--tertiary active-filter__reset"></svk-chip>\n\t\t</li>\n\t'),__p+="\n\t",active.places!==undefined&&""!==active.places&&(__p+="\n\t\t",active.places.split(",").forEach(function(t){__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(t)+'" value="'+__e(t)+'" type="button" action="input" data-type="places" class="active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'}),__p+="\n\t"),__p+="\n\t",active.tags!==undefined&&""!==active.tags&&(__p+="\n\t\t",active.tags.split(",").forEach(function(t){__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(t)+'" value="'+__e(t)+'" type="button" action="input" data-type="tags" class="active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'}),__p+="\n\t"),__p+="\n\t",active.types!==undefined&&""!==active.types&&(__p+="\n\t\t",active.types.split(",").forEach(function(t){__p+='\n\t\t\t<li>\n\t\t\t\t<svk-chip label="'+__e(t)+'" value="'+__e(t)+'" type="button" action="input" data-type="types" class="active-filter__item"></svk-chip>\n\t\t\t</li>\n\t\t'}),__p+="\n\t"),__p+="\n</ul>\n";return __p}},73887:function(module){module.exports=function(obj){obj||(obj={});var __t,__p="",__e=_.escape;with(obj)__p+='<svk-collapse open class="js-c-filter">\n\t<h3 class="filter__title" slot="header">\n\t\t<button class="filter__title-button svk-collapse__button svk-button button--tertiary button--tertiary-inline">\n\t\t\t<span class="button__icon">\n\t\t\t\t<svk-icon size="0.75" name="arrow-right-200"></svk-icon>\n\t\t\t</span>\n\t\t\t<span class="button__text">\n\t\t\t\t'+__e(title)+'\n\t\t\t</span>\n\t\t</button>\n\t</h3>\n\t<ul class="filter__list list--none" slot="content"></ul>\n</svk-collapse>\n';return __p}},90797:function(t,e,i){"use strict";function s(){return(+new Date+Math.random()).toString(36).replace(/[^a-z1-9]+/g,"")}i.d(e,{A:function(){return s}})}
1,89298:function(t,e,i){"use strict";i.d(e,["A",0,(t,e)=>i=>{i.target.matches(t)?(i.delegatedElement=i.target,e(i)):i.target.closest(t)&&(i.delegatedElement=i.target.closest(t),e(i))}])},50684:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkCollapse:function(){return n}});var s=i(90797);class n extends HTMLElement{static observedAttributes=["open"];constructor(){super(),this.open=this.hasAttribute("open")??!1,this.attachShadow({mode:"open"}),this.id=(0,s.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",n)},34888:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkInputCheckbox:function(){return s}});class s 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))}}
1window.customElements.define("svk-input-checkbox",s)},81874:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkInputRadio:function(){return s}});class s extends HTMLElement{static observedAttributes=["checked"];get checked(){return this.hasAttribute("checked")}set checked(t){t?this.setAttribute("checked",""):this.removeAttribute("checked")}constructor(){super(),this._input=null,this.label=this.getAttribute("label")??"",this.required=this.getAttribute("required"),this.name=this.getAttribute("name"),this.value=this.getAttribute("value"),this.size=this.getAttribute("size")??"100",this.description=this.getAttribute("description"),this.descriptionSize=this.getAttribute("description-size")??"50",this.handleChange=this.handleChange.bind(this)}connectedCallback(){this.render(),this._input=this.querySelector("input"),this.bindEvents(),this.update()}attributeChangedCallback(t,e,i){this.isConnected&&this._input&&e!==i&&"checked"===t&&(this.checked=null!==i,this.isConnected&&this.update())}emit(){this.dispatchEvent(new CustomEvent("svk-change",{bubbles:!0,detail:{checked:this.checked,value:this.value,name:this.name,label:this.label}}))}update(){this._input&&(this._input.checked=this.checked)}handleChange(t){if(this._input.checked){this.checked=!0;document.querySelectorAll(`svk-input-radio[name="${this.name}"]`).forEach(t=>{t!==this&&t.checked&&(t.checked=!1)}),this.emit()}}bindEvents(){this._input?.addEventListener("change",this.handleChange)}render(){const t=document.createElement("template");t.innerHTML=`\n\t\t\t<label class="input-radio__label label-${this.size}">\n\t\t\t\t<input\n\t\t\t\t\tclass="input-radio__input"\n\t\t\t\t\ttype="radio"\n\t\t\t\t\tname="${this.name}"\n\t\t\t\t\tvalue="${this.value}"\n\t\t\t\t\t${this.checked?"checked":""}\n\t\t\t\t\t${this.required?"required":""}\n\t\t\t\t/>\n\t\t\t\t<span class="input-radio__box"></span>\n\t\t\t\t${this.label}\n\t\t\t</label>\n\t\t\t${this.description?`<span class="input-radio__description label-${this.descriptionSize}">\n\t\t\t\t\t${this.description}\n\t\t\t\t</span>`:""}\n\t\t`,this.replaceChildren(t.content)}}window.customElements.define("svk-input-radio",s)},62395:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkInputSearch:function(){return n}});var s=i(90797);class n extends HTMLElement{static observedAttributes=["value"];constructor(){super(),this.elementId=(0,s.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 s=Number.isFinite(Number(e))?Number(e):0,n=(...e)=>{s<=0?t(...e):(i&&clearTimeout(i),i=setTimeout(()=>{i=null,t(...e)},s))};return n.cancel=()=>{i&&(clearTimeout(i),i=null)},n}(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",n)},88508:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkJobs:function(){return o}});var s=i(33730),n=i(68782),l=i(57700),a=i(75822),r=i(89298);i(38221),i(58922),i(13724),i(62395),i(50684),i(81874);class o extends HTMLElement{constructor(){super(),this.dom={},this.dom.el=this,this.components={},this.filter=this.getFilter(),this.total=0,this.currentRequest=void 0,this.filtersShow="false"!==this.dom.el.getAttribute("data-show-filters"),this.useModal=this.dom.el.classList.contains("jobs--layout-compact"),this.setupDom(),this.filtersShow&&(this.renderMain(),this.renderFilters(),this.initFilters(),this.bindEvents(),this.fetchFilters().then(t=>{this.components.type.update(t.types),this.components.tag.update(t.tags),void 0!==this.components.place&&this.components.place.update(t.places)})),this.initResults(),a.init(this.filter)}setupDom(){this.dom.filter=this.dom.el.querySelector(".jobs__filter")}getFilter(){let t=s.qg(location.search);return void 0!==t.page&&(t.page=parseInt(t.page)),t}initFilters(){this.components.type=new n.default(this.dom.el.querySelector(".filter__type"),{text:"Anställningsformer",type:"types",selected:this.filter.types,onChange:this.handleTypeChange.bind(this)}),this.components.tag=new n.default(this.dom.el.querySelector(".filter__tag"),{text:"Yrkeskategorier",type:"tags",selected:this.filter.tags,onChange:this.handleFieldChange.bind(this)}),null!==this.dom.el.querySelector(".filter__place")&&(this.components.place=new n.default(this.dom.el.querySelector(".filter__place"),{text:"Platser",type:"places",selected:this.filter.places,onChange:this.handlePlaceChange.bind(this)}))}initResults(){this.components.results=new l.default(this.dom.el.querySelector(".jobs__content"),{...this.filter},{useModal:this.useModal,onChange:this.handleResultsSortingChange.bind(this)})}async fetchFilters(){let t="/webapi/api-v2/jobs/filters?apiKey=387ac562-363a-4bd4-8901-e18adf23dcd3";void 0!==this.filter.subcompanyIds&&(t+=`&subcompanyIds=${this.filter.subcompanyIds}`);return(await fetch(t)).json()}handleTypeChange(t){}handleFieldChange(t){}handlePlaceChange(t){}handleKeyUp(t){}handleResultsSortingChange(t){this.filter.sorting=t}handleSortClick(t){a.set({type:"sorting",data:t.target.value})}handleOpenFilter(t){this.dom.el.querySelectorAll("svk-collapse").forEach(t=>{t.setAttribute("open","")}),this.dom.el.querySelector(".jobs__filter").classList.add("is-open")}handleCloseFilter(){this.dom.el.querySelector(".jobs__filter").classList.remove("is-open")}handleResetFilter(){a.reset()}bindEvents(){this.dom.el.querySelectorAll(".filter__sort svk-input-radio input").forEach(t=>{t.addEventListener("click",this.handleSortClick.bind(this))}),this.dom.el.addEventListener("click",(0,r.A)(".js-open-filter",this.handleOpenFilter.b
1ind(this))),this.dom.el.addEventListener("click",(0,r.A)(".js-close-filter",this.handleCloseFilter.bind(this))),this.dom.el.addEventListener("click",(0,r.A)(".js-reset-all",this.handleResetFilter.bind(this)))}renderMain(){this.dom.el.querySelector(".jobs__main").innerHTML='\n\t\t\t<div class="jobs__main-header">\n\t\t\t\t<svk-jobs-search></svk-jobs-search>\n\t\t\t\t<svk-jobs-active-filters></svk-jobs-active-filters>\n\t\t\t</div>\n\t\t\t<div class="jobs__content" id="jobb-resultat">\n\t\t\t\t<div class="jobs__loader"></div>\n\t\t\t</div>\n\t\t'}renderFilters(){this.dom.filter.innerHTML=`\n\t\t\t<h2>\n\t\t\t\tFiltrera lediga jobb\n\t\t\t</h2>\n\t\t\t<svk-skip-to-content anchor="jobb-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="jobs__filter-container">\n\t\t\t\t<div class="js-c-filter">\n\t\t\t\t\t<svk-collapse open>\n\t\t\t\t\t\t<h3 class="filter__title" slot="header">\n\t\t\t\t\t\t\t<button class="filter__title-button svk-collapse__button svk-button button--tertiary">\n\t\t\t\t\t\t\t\t<span class="button__icon">\n\t\t\t\t\t\t\t\t\t<svk-icon size="0.75" name="arrow-right-200"></svk-icon>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<span class="button__text">\n\t\t\t\t\t\t\t\t\tSortera efter\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<div class="filter__content filter__sort" slot="content">\n\t\t\t\t\t\t\t<svk-input-radio label="Publiceringsdatum" name="sort" value="PublishedDate" ${void 0===this.filter.sorting||"PublishedDate"===this.filter.sorting?"checked":""}></svk-input-radio>\n\t\t\t\t\t\t\t<svk-input-radio label="Sista ansökningsdatum" name="sort" value="EndsDate" ${"EndsDate"===this.filter.sorting?"checked":""}></svk-input-radio>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</svk-collapse>\n\t\t\t\t</div>\n\t\t\t\t${void 0===this.filter.subcompanyIds?'<div class="filter__select filter__place"></div>':""}\n\t\t\t\t<div class="filter__select filter__tag"></div>\n\t\t\t\t<div class="filter__select filter__type"></div>\n\t\t\t</div>\n\t\t\t<div class="jobs__filter-footer">\n\t\t\t\t<button class="svk-button button--fill button--secondary js-reset-all">Rensa allt</button>\n\t\t\t\t<button class="svk-button button--fill js-close-filter">Visa resultat</button>\n\t\t\t</div>\n\t\t\t`}}window.customElements.define("svk-jobs",o)},13724:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkJobsActiveFilters:function(){return l}});var s=i(75822),n=i(64143);i(26648);class l extends HTMLElement{constructor(t){super(),this.dom={},this.dom.el=this,this.bindEvents()}updateFilterStore(){s.set({data:this.filter})}reset(){delete this.filter.places,delete this.filter.tags,delete this.filter.types,this.querySelectorAll(".active-filter__item").forEach(t=>{t.parentElement.removeChild(t)}),this.updateFilterStore()}removeItem(t){const e=t.getAttribute("data-type"),i=t.getAttribute("value");let s=this.filter[e].split(",");s.splice(s.findIndex(t=>t===i),1),this.filter[e]=s.join(","),this.updateFilterStore()}handleClick(t){t.target.classList.contains("active-filter__item")?this.removeItem(t.target):t.target.classList.contains("active-filter__reset")&&this.reset()}handleFilterUpdate(t){this.filter=t,void 0!==this.filter.tags&&""!==this.filter.tags||void 0!==this.filter.places&&""!==this.filter.places||void 0!==this.filter.types&&""!==this.filter.types?this.dom.el.innerHTML=n({active:t}):this.dom.el.innerHTML=""}bindEvents(){this.dom.el.addEventListener("click",this.handleClick.bind(this)),s.ready(this.handleFilterUpdate.bind(this)),s.changed(this.handleFilterUpdate.bind(this))}}window.customElements.define("svk-jobs-active-filters",l)},68782:function(t,e,i){"use strict";i.r(e);var s=i(90797),n=i(75822),l=i(73887),a=i(2404);i(34888);e.default=class{constructor(t,e={}){this.dom={},this.dom.container=t,this.options=e,n.ready(t=>{this.selected=this.getSelected(t[e.type]),this.isOpen=!1,this.renderBase(),this.setupDom(),this.bindEvents(),this.isLoaded=!1})}setupDom(){this.dom.el=this.dom.container.querySelector(".js-c-filter"),this.dom.toggle=this.dom.el.querySelector(".js-list-toggle"),this.dom.inputButtonText=this.dom.el.querySelector(".button__text")}getSelected(t){let e=[];return void 0!==t&&t.length&&(e=this.options.selected.split(",")),e}update(t){if(this.isLoaded||(this.isLoaded=!0,this.dom.el.classList.remove("is-loading")),t.length){(0,s.A)();this.dom.el.querySelector(".filter__list").innerHTML=`\n\t\t\t\t${t.map(t=>{(0,s.A)();return`\n\t\t\t\t\t\t<li class="filter__list-item">
1\n\t\t\t\t\t\t\t<svk-input-checkbox\n\t\t\t\t\t\t\t\tclass="js-item-input"\n\t\t\t\t\t\t\t\tlabel="${t}"\n\t\t\t\t\t\t\t\tname="${this.options.text}[]"\n\t\t\t\t\t\t\t\t${this.selected.some(e=>e===t)?"checked":""}\n\t\t\t\t\t\t\t\tdata-title="${t}"\n\t\t\t\t\t\t\t\tvalue="${t}">\n\t\t\t\t\t\t\t</svk-input-checkbox>\n\n\t\t\t\t\t\t</li>\n\t\t\t\t`}).join("")}`}else this.dom.el.classList.add("is-disabled")}getDifference(t,e){return t.filter(t=>!e.some(e=>t===e))}handleChange(t){let e=structuredClone(this.selected);if(t.target.matches("input[type=checkbox]")&&(t.target.checked?this.selected.push(t.target.value):this.selected=this.selected.filter(e=>e!==t.target.value)),!a(e,this.selected)){let t;this.selected.length&&(t=this.selected.join(",")),n.set({type:this.options.type,data:t})}}handleFilterUpdate(t){let e=t[this.options.type];if(void 0===e)this.selected=[],this.dom.el.querySelectorAll("[checked]").forEach(t=>{t.removeAttribute("checked")});else{e=e.split(",");let t=this.getDifference(this.selected,e);this.selected=e,t.forEach(t=>{this.dom.el.querySelector(`[value='${t}']`).removeAttribute("checked")})}}bindEvents(){this.dom.el.addEventListener("change",this.handleChange.bind(this)),n.changed(this.handleFilterUpdate.bind(this))}renderBase(t){this.dom.container.innerHTML=l({list:[],title:this.options.text,toggleText:this.options.text})}}},58922:function(t,e,i){"use strict";i.r(e),i.d(e,{SvkJobsSearch:function(){return n}});var s=i(75822);class n extends HTMLElement{constructor(){super(),this.q="",s.ready(t=>{this.q=t.q,this.render(),this.bindEvents()})}update(){s.set({type:"q",data:this.q})}handleSearchChange(t){this.q=t.detail.value,this.update()}handleFilterReady(t){void 0!==t.q&&""!==t.q&&(this.q=t.q)}bindEvents(){s.ready(this.handleFilterReady.bind(this)),this.querySelector(".filter__search-input").addEventListener("svk-change",this.handleSearchChange.bind(this))}render(){this.innerHTML=`\n\t\t<svk-input-search\n\t\t\tlabel="Sök"\n\t\t\tclass="filter__search-input"\n\t\t\tplaceholder="Sök bland lediga jobb"\n\t\t\tvalue="${void 0!==this.q?this.q:""}">\n\t\t</svk-input-search>\n\t`}}window.customElements.define("svk-jobs-search",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.