{"version":3,"sources":["novicell.input-mask.js","03-organisms/navigation/sub-navigation/sub-navigation.js","novicell.persistent-field.js","novicell.validation.js","helpers/utility.helper.js","02-molecules/filter-section/filter-section.js","02-molecules/language-picker/language-picker.js","02-molecules/search-overlay/search-overlay.js","03-organisms/jobsearch/jobsearch.js","03-organisms/list/list.js","03-organisms/newsletter/newsletter.js","03-organisms/vimeo-iframe/vimeo-iframe.js","grid-editors/brand-slider/brand-slider.js","grid-editors/key-numbers/key-numbers.js","grid-editors/slideshow/slideshow.js","03-organisms/navigation/site-navigation/site-navigation.js","master.js"],"names":["novicell","inputMasking","this","init","masks","selector","mask","pattern","i","length","input","document","querySelector","setAttribute","masking","vanillaTextMask","maskInput","inputElement","guide","clickToggle","elem","preventDefault","toggle","currentTarget","toggleParent","parentNode","subNav","helper","toggleClass","persistentField","key","sessionStorage","value","_ref","match","name","_slicedToArray","opt","checked","selected","e","type","Number","save","_ref3","target","setItem","body","addEventListener","test","removeItem","validate","fieldClass","errorClass","messageValueMissing","messageValueMissingSelect","messageValueMissingSelectMulti","messageTypeMismatchEmail","messageTypeMismatchURL","messageTooShort","messageTooLong","messagePatternMismatch","messageBadInput","messageStepMismatch","messageRangeOverflow","messageRangeUnderflow","messageGeneric","disableSubmit","onSubmit","beforeShowError","classList","add","afterShowError","beforeRemoveError","afterRemoveError","findAncestor","el","cls","parentElement","contains","className","classes","split","existingIndex","indexOf","splice","push","join","hasClass","isVisible","element","rect","getBoundingClientRect","html","documentElement","top","left","bottom","window","innerHeight","clientHeight","right","innerWidth","clientWidth","getHeight","wanted_height","el_style","getComputedStyle","el_display","display","el_position","position","el_visibility","visibility","el_max_height","maxHeight","replace","offsetHeight","style","slideToggle","getAttribute","transition","overflowY","setTimeout","filterSection","self","filterDropdDownActiveClass","data","filterDropdownTriggers","querySelectorAll","event","remove","closeAll","clickedElement","isClickInside","classHolder","currentTrigger","isChecked","dropdownElement","closest","filterOptionSelect","activeClass","openText","innerText","closeText","dataset","mobileFilterToggle","getElementsByClassName","y","languagePicker","btns","toggleLanguagePicker","nextElementSibling","search","searchOverlayTrigger","getElementById","Vue","searchTerm","searchEndpoint","result","methods","_this","lang","$el","siteNodeId","isNaN","url","axios","get","then","response","error","console","closeSearchOverlay","$refs","searchOverlayInput","blur","created","focus","jobSearch","directive","bind","binding","vnode","arg","map","index","toUpperCase","substring","context","inserted","f","evt","removeEventListener","baseUrl","page","isLoading","selectedBrand","selectedCountry","selectedRegion","selectedCategory","hasNextPage","filterBrands","filterCategories","filterCountries","filterRegions","regions","jobs","numberOfJobs","initialLoad","itemsToShowInitially","selectedCategoryTitle","selectedCountryTitle","selectedBrandTitle","selectedRegionTitle","scrollSpaceBelow","language","requestUrl","filters","brands","displayName","getTranslation","translationKey","categories","countries","j","Object","assign","unshift","brand","categoryName","country","regionName","setFilterDisplayTitles","setResult","translateJobCategory","translateJobBrand","translateJobRegion","translateJobCountry","appendJobs","_this2","getSearchUrl","filterChanged","jobCategoriesDisplayTitles","k","displayCategories","address","toLowerCase","nextPage","countryFilterChanged","category","region","translations","params","searchterm","esc","encodeURIComponent","query","keys","showAllInitial","handleScroll","domRect","currentSpaceBelow","scrollDown","spaceBelow","list","listWrappers","currentList","listItems","filteredListItems","mounted","addSelectedFilters","filterItem","filterGroup","currentGroup","filterItems","_filteredListItem","hasOwnProperty","currentFilter","filter","item","selectedGroup","FilterGroups","find","group","Id","FilterItems","containsObject","obj","some","Name","getDataFilters","dataFilterString","getFilterItemsFromGroup","groupName","newsletter","form","attachEvent","processForm","URLSearchParams","location","gigyaNewsletterUrl","srcElement","requestBody","subscriptionId","has","gigyaToken","emarsysToken","headerData","headers","Authorization","Content-Type","bodyData","JSON","stringify","post","status","cssText","catch","iframeEmbed","elm","formattedUrl","getVimeoId","vimeoid","src","exec","brandSlider","slideshowElm","Flickity","cellAlign","contain","wrapAround","pageDots","imagesLoaded","groupCells","arrowShape","keyNumbers","currentkeyNumber","countUp","CountUp","useEasing","useGrouping","separator","start","slideshow","slideshows","videoOverlayTriggers","log","overlay","create","videoId","class","autoplay","siteNavigation","siteNavigationToggle","siteNavigationList","subNavigation","subNavToggles","projectName","svg4everybody"],"mappings":"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","file":"master.min.js","sourcesContent":["'use strict';\n\n/**\n * @name Novicell Input Mask\n * @desc A script that inits vanilla-text-mask.js with default Novicell settings\n * @author Bjørn Nyborg (BNY)\n * @example \n * @requires https://github.com/text-mask/text-mask/tree/master/vanilla\n */\n\n\nvar novicell = novicell || {};\n\nnovicell.inputMasking = novicell.inputMasking || new function () {\n\n this.init = function () {\n\n const masks = [\n {\n \"selector\": \".js-mask--phone\",\n \"mask\": [/\\d/, /\\d/, ' ', /\\d/, /\\d/, ' ', /\\d/, /\\d/, ' ', /\\d/, /\\d/],\n \"pattern\": \"\"\n },\n {\n \"selector\": \".js-mask--cpr\",\n \"mask\": [/\\d/, /\\d/, ' ',/\\d/, /\\d/, ' ', /\\d/, /\\d/,' ', '-', ' ', /\\d/, /\\d/, /\\d/, /\\d/],\n \"pattern\": \"\"\n },\n {\n \"selector\": \".js-mask--bank\",\n \"mask\": [/\\d/, /\\d/, /\\d/, /\\d/, ' ','-',' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, /\\d/],\n \"pattern\": \"\"\n },\n {\n \"selector\": \".js-mask--date1\",\n \"mask\": [/[0-3]/, /\\d/, '/', /[0-1]/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\n \"pattern\": \"\"\n }\n ];\n\n for (let i = 0; i < masks.length; i++) {\n\n let input = document.querySelector(masks[i].selector);\n let mask = masks[i].mask;\n let pattern = masks[i].pattern;\n\n \n if(input && mask){\n\n //Patterns is work in progress\n if(pattern){\n input.setAttribute(\"pattern\", pattern);\n }\n\n masks[i].masking = vanillaTextMask.maskInput({\n inputElement: input,\n mask: mask,\n guide: false\n });\n }\n }\n \n // Calling `vanillaTextMask.maskInput` adds event listeners to the input element. \n // If you need to remove those event listeners, you can call: maskedInputController.destroy()\n };\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.subNavigation = novicell.subNavigation || new function () {\n\n this.init = function (siteNavigationList) {\n var subNavToggles = siteNavigationList.querySelectorAll('.js-sub-navigation-toggle');\n\n if (!subNavToggles) {\n return;\n }\n\n for (var i = 0; i < subNavToggles.length; i++) {\n var currentToggle = subNavToggles[i];\n\n currentToggle.addEventListener('click', clickToggle, false);\n }\n };\n\n};\n\nfunction clickToggle(elem) {\n elem.preventDefault();\n var toggle = elem.currentTarget;\n var toggleParent = toggle.parentNode;\n\n if (!toggleParent) {\n return;\n }\n\n var subNav = toggleParent.querySelector('.js-sub-navigation');\n\n novicell.helper.toggleClass(toggle, 'site-navigation-list__sub-navigation-toggle--open');\n novicell.helper.toggleClass(subNav, 'sub-navigation--open');\n}\n","'use strict';\n\n/**\n * @name Novicell Persistent Field\n * @desc A script that inits persistent field\n * @author Bjørn Nyborg (BNY)\n * @example \n * @requires none\n * @credits https://codepen.io/bfred-it/pen/zNNxOz\n */\n\n\nvar novicell = novicell || {};\n\nnovicell.persistentField = novicell.persistentField || new function () {\n\n this.init = function () {\n\n for (const key in sessionStorage) {\n const value = sessionStorage[key];\n const [, name] = key.match(/^form-(.+)/) || [];\n if (name) {\n try {\n const opt = document.querySelector(`[name=\"${name}\"][value=\"${value}\"],[name=\"${name}\"] [value=\"${value}\"]`);\n if (opt) { // select option, radio, and checkbox with a value\n opt.checked = opt.selected = true;\n continue;\n }\n } catch(e) {}\n const input = document.querySelector(`[name=\"${name}\"]`);\n if (input) { // text-based, checkbox\n if (input.type === 'checkbox') {\n input.checked = Number(value);\n } else {\n input.value = value;\n }\n }\n }\n }\n\n function save ({target: i}) {\n sessionStorage.setItem('form-' + i.name, i.type === 'checkbox' ? Number(i.checked) : i.value);\n }\n\n document.body.addEventListener('input', save);\n document.body.addEventListener('change', save);\n document.body.addEventListener('submit', () => {\n for (var key in sessionStorage) {\n if (/^form-(.+)/.test(key)) {\n sessionStorage.removeItem(key);\n }\n }\n });\n };\n};","'use strict';\n\n/**\n * @name Novicell Validate\n * @desc A script that inits validate.js with default Novicell settings\n * @author Bjørn Nyborg (BNY)\n * @example
\n * @requires https://github.com/cferdinandi/validate\n */\n\n\nvar novicell = novicell || {}; \n\nnovicell.validate = novicell.validate || new function () {\n\n this.init = function () {\n validate.init({\n // Classes and Selectors\n selector: '[data-validate]',\n fieldClass: 'error',\n errorClass: 'error-message',\n\n // Messages\n messageValueMissing: 'Dette felt er påkrævet',\n messageValueMissingSelect: 'Vælg venligst en værdi',\n messageValueMissingSelectMulti: 'Vælg venligst mindst én værdi',\n messageTypeMismatchEmail: 'Indtast en gyldig email-adresse.',\n messageTypeMismatchURL: 'Indtast en gyldig URL',\n messageTooShort: 'Indtast venligst {minLength} karakterer eller mere. Du har indtastet {length} karakterer.',\n messageTooLong: 'Indtast venligst {maxLength} eller færre karakterer. Du har indtastet {length} karakterer.',\n messagePatternMismatch: 'Du har indtastet data i et forkert format',\n messageBadInput: 'Indtast venligst et tal',\n messageStepMismatch: 'Vælg venligst en gyldig værdi',\n messageRangeOverflow: 'Du må ikke angive mere end {max}.',\n messageRangeUnderflow: 'Du må ikke angive mindre end {min}.',\n messageGeneric: 'Den indtastede værdi er ugyldig',\n\n // Form Submission\n disableSubmit: false,\n onSubmit: function () {},\n\n // Callbacks\n beforeShowError: function (e) {\n e.classList.add(\"validated\");\n },\n afterShowError: function () {\n },\n beforeRemoveError: function () { },\n afterRemoveError: function () { },\n\n });\n };\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.helper = novicell.helper || new function () {\n\n this.findAncestor = function (el, cls) {\n if (el == null) {\n return null;\n }\n while ((el = el.parentElement) && !el.classList.contains(cls)) {\n return el;\n }\n };\n\n this.toggleClass = function (el, className) {\n if (el.classList) {\n el.classList.toggle(className);\n } else {\n var classes = el.className.split(' ');\n var existingIndex = classes.indexOf(className);\n\n if (existingIndex >= 0) {\n classes.splice(existingIndex, 1);\n } else {\n classes.push(className);\n }\n\n el.className = classes.join(' ');\n }\n };\n\n this.hasClass = function (el, className) {\n if (el.classList.contains(className)) {\n return true;\n } else {\n return false;\n }\n };\n\n this.isVisible = function (element) {\n var rect = element.getBoundingClientRect();\n var html = document.documentElement;\n\n return (\n rect.top >= 0 &&\n rect.left >= 0 &&\n rect.bottom <= (window.innerHeight || html.clientHeight) &&\n rect.right <= (window.innerWidth || html.clientWidth)\n );\n };\n\n /**\n * Get's the height of an element\n */\n this.getHeight = function (el) {\n var el_style = window.getComputedStyle(el),\n el_display = el_style.display,\n el_position = el_style.position,\n el_visibility = el_style.visibility,\n el_max_height = el_style.maxHeight.replace('px', '').replace('%', ''),\n\n wanted_height = 0;\n\n\n // if its not hidden we just return normal height\n if (el_display !== 'none' && el_max_height !== '0') {\n return el.offsetHeight;\n }\n\n // the element is hidden so:\n // making the el block so we can meassure its height but still be hidden\n el.style.position = 'absolute';\n el.style.visibility = 'hidden';\n el.style.display = 'block';\n\n wanted_height = el.offsetHeight;\n\n // reverting to the original values\n el.style.display = el_display;\n el.style.position = el_position;\n el.style.visibility = el_visibility;\n\n return wanted_height;\n };\n\n /**\n * Mimics the jQuery version of slidetoggle\n * by toggling max-height\n * source: https://www.jsnippet.net/snippet/258/pure-javascript-slidetoggle\n */\n this.slideToggle = function (el) {\n var el_max_height = 0;\n\n if (el.getAttribute('data-max-height')) {\n // we've already used this before, so everything is setup\n if (el.style.maxHeight.replace('px', '').replace('%', '') === '0') {\n el.style.maxHeight = el.getAttribute('data-max-height');\n } else {\n el.style.maxHeight = '0';\n }\n } else {\n // set a fallback transition, if not is set.\n if (!el.style.transition) {\n el.style.transition = 'max-height 0.5s ease-in-out';\n }\n el_max_height = novicell.helper.getHeight(el) + 'px';\n el.style.overflowY = 'hidden';\n el.style.maxHeight = '0';\n el.setAttribute('data-max-height', el_max_height);\n el.style.display = 'block';\n\n // we use setTimeout to modify maxHeight later than display (to we have the transition effect)\n setTimeout(function () {\n el.style.maxHeight = el_max_height;\n }, 10);\n }\n };\n\n\n};\n","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.filterSection = novicell.filterSection || new function () {\n const self = this;\n const filterDropdDownActiveClass = 'filter-section-dropdown--active';\n\n this.init = function(data) {\n var filterDropdownTriggers = document.querySelectorAll('.js-filter-section-dropdown-trigger');\n\n if (!filterDropdownTriggers) {\n return;\n }\n\n for ( var i = 0; i < filterDropdownTriggers.length; i++) {\n let currentTrigger = filterDropdownTriggers[i];\n\n currentTrigger.addEventListener('click', function(event) {\n var element = event.target.parentElement;\n \n if(!novicell.helper.hasClass(element, filterDropdDownActiveClass)) {\n self.closeAll();\n element.classList.add(filterDropdDownActiveClass);\n }\n else {\n element.classList.remove(filterDropdDownActiveClass);\n }\n\n });\n }\n clickedOutside();\n filterOptionSelect();\n mobileFilterToggle();\n };\n\n function clickedOutside() {\n document.addEventListener('click', function (event) {\n var clickedElement = document.querySelector('.filter-section-dropdown--active');\n if( clickedElement && clickedElement != null){\n var isClickInside = clickedElement.contains(event.target);\n if (!isClickInside) {\n self.closeAll(); \n }\n }\n }, false);\n }\n\n function filterOptionSelect() {\n // find all options\n var classHolder = document.querySelectorAll('.filter-section-dropdown__choice');\n for ( var i = 0; i < classHolder.length; i++) {\n let currentTrigger = classHolder[i];\n\n currentTrigger.addEventListener('click', function() {\n var isChecked = event.target.checked;\n if(!isChecked){\n var dropdownElement = event.target.closest(filterDropdDownActiveClass);\n dropdownElement.classList.remove(filterDropdDownActiveClass);\n }\n });\n }\n }\n\n this.closeAll = function(element) {\n\n // find all and remove active\n let classHolder = document.getElementsByClassName('filter-section-dropdown');\n\n for (let y = 0; y < classHolder.length; y++) {\n let currentElement = classHolder[y];\n currentElement.classList.remove(filterDropdDownActiveClass);\n }\n };\n\n function mobileFilterToggle() {\n // find all options\n var classHolder = document.querySelector('.jobsearch-information__mobile-filter-button');\n var filterSection = document.querySelector('.filter-section');\n var activeClass = 'filter-section--active';\n\n if( classHolder && classHolder != null){\n var openText = classHolder.innerText;\n var closeText = classHolder.dataset.closeText;\n classHolder.addEventListener('click', function() {\n if(filterSection.classList.contains(activeClass)){\n filterSection.classList.remove(activeClass);\n classHolder.innerText = openText;\n } else{\n filterSection.classList.add(activeClass);\n classHolder.innerText = closeText;\n }\n });\n }\n }\n \n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.languagePicker = novicell.languagePicker || new function () {\n\n var btns = document.querySelectorAll('.js-language-picker__button');\n\t\n this.init = function () {\n for (let i = 0; i < btns.length; i++) {\n const btn = btns[i];\n \n btn.addEventListener('click', toggleLanguagePicker);\n }\n };\n\n function toggleLanguagePicker (e) {\n e.preventDefault();\n e.target.classList.toggle('language-picker__button--active');\n e.target.nextElementSibling.classList.toggle('language-picker-list--active');\n }\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.search = novicell.search || new function () {\n this.init = function() {\n var el, body, searchOverlayTrigger;\n el = document.getElementById('js-search-overlay');\n body = document.querySelector('#site');\n searchOverlayTrigger = document.getElementById('js-search-overlay-trigger');\n \n new Vue({\n el: el,\n data: {\n searchTerm: '',\n searchEndpoint: '/api/search?lang={lang}&siteNodeId={siteNodeId}&term={term}',\n result: []\n },\n methods: {\n search: function() {\n // Validation\n if(this.searchTerm.length > 1) {\n const lang = this.$el.getAttribute('data-lang');\n const siteNodeId = this.$el.getAttribute('data-site-node-id');\n\n if(lang.length == 2 && !isNaN(siteNodeId)) {\n const url = this.searchEndpoint.replace('{lang}', lang)\n .replace('{siteNodeId}', siteNodeId)\n .replace('{term}', this.searchTerm);\n axios.get(url).then(\n response => {\n this.result = response.data;\n },\n error => {\n console.error(error);\n }\n );\n }\n }\n \n },\n closeSearchOverlay: function() {\n novicell.helper.toggleClass(body, 'search-overlay-open');\n novicell.helper.toggleClass(body, 'no-scroll');\n this.$refs.searchOverlayInput.blur();\n this.searchTerm = '';\n this.result = [];\n }\n },\n created: function() {\n var self = this;\n searchOverlayTrigger.addEventListener(\"click\", function(e) {\n e.preventDefault(); \n novicell.helper.toggleClass(body, 'search-overlay-open');\n novicell.helper.toggleClass(body, 'no-scroll');\n self.$refs.searchOverlayInput.focus();\n }, false);\n }\n });\n };\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.jobSearch = novicell.jobSearch || new function () {\n this.init = function (data) {\n\n var elem = document.querySelector('#jobsearch-list');\n if (!elem) {\n return;\n }\n\n Vue.directive('init', {\n bind: function (el, binding, vnode) {\n // convert kebab-case to camelCase\n let arg = binding.arg.split('-').map((arg, index) => {\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\n }).join('');\n\n vnode.context[arg] = binding.value;\n }\n });\n\n Vue.directive('scroll', {\n inserted: function (el, binding) {\n var f = function (evt) {\n if (binding.value(evt, el)) {\n window.removeEventListener('scroll', f);\n }\n };\n window.addEventListener('scroll', f);\n }\n });\n\n var app = new Vue({\n el: elem,\n data: {\n baseUrl: '/umbraco/api/jobsapi/search',\n page: 1,\n isLoading: true,\n selectedBrand: '',\n selectedCountry: '',\n selectedRegion: '',\n selectedCategory: '',\n searchTerm: '',\n hasNextPage: false,\n filterBrands: [],\n filterCategories: [],\n filterCountries: [],\n filterRegions: [],\n regions: [],\n jobs: [],\n numberOfJobs: 0,\n initialLoad: true,\n itemsToShowInitially: 5,\n selectedCategoryTitle: '',\n selectedCountryTitle: '',\n selectedBrandTitle: '',\n selectedRegionTitle: '',\n scrollSpaceBelow: -10000\n },\n methods: {\n init: function () {\n this.language = elem.getAttribute('data-language');\n var requestUrl = this.baseUrl + '?returnFilters=true&language=' + this.language;\n axios.get(requestUrl)\n .then(response => {\n var data = response.data;\n\n // Setup filters\n this.filterBrands = data.filters.brands;\n for (var i = 0; i < this.filterBrands.length; i++) {\n this.filterBrands[i].displayName = this.getTranslation(this.filterBrands[i].translationKey);\n }\n\n this.filterCategories = data.filters.categories;\n this.filterCountries = data.filters.countries;\n for (var j = 0; j < this.filterCountries.length; j++) {\n this.filterCountries[j].displayName = this.getTranslation(this.filterCountries[j].translationKey);\n }\n\n this.filterRegions = data.filters.regions;\n this.regions = Object.assign([], data.filters.regions);\n\n // Add an \"All\" option to each array\n this.filterBrands.unshift({\n 'brand': 'allBrands',\n 'displayName': this.getTranslation('Filters.AllBrands')\n });\n this.filterCategories.unshift({\n 'categoryName': 'allCategories',\n 'displayName': this.getTranslation('Filters.AllCategories')\n });\n this.filterCountries.unshift({\n 'country': 'allCountries',\n 'displayName': this.getTranslation('Filters.AllCountries')\n });\n this.filterRegions.unshift({\n 'regionName': 'allRegions',\n 'displayName': this.getTranslation('Filters.AllRegions')\n });\n\n this.selectedCategory = 'allCategories';\n this.selectedBrand = 'allBrands';\n this.selectedCountry = 'allCountries';\n this.selectedRegion = 'allRegions';\n\n this.setFilterDisplayTitles();\n\n // Set result\n this.setResult(data, false);\n\n });\n this.isLoading = false;\n },\n setFilterDisplayTitles: function () {\n if (this.selectedCategory) {\n this.selectedCategoryTitle = this.translateJobCategory(this.selectedCategory);\n }\n if (this.selectedBrand) {\n this.selectedBrandTitle = this.translateJobBrand(this.selectedBrand);\n }\n if (this.selectedRegion) {\n this.selectedRegionTitle = this.translateJobRegion(this.selectedRegion);\n }\n if (this.selectedCountry) {\n this.selectedCountryTitle = this.translateJobCountry(this.selectedCountry);\n }\n },\n search: function (appendJobs) {\n this.isLoading = true;\n this.initialLoad = false;\n var requestUrl = this.getSearchUrl();\n\n var jobsearchLoader = document.getElementById('jobsearch-loader');\n jobsearchLoader.classList.add('jobsearch-result__show-more-loader--active');\n\n axios.get(requestUrl)\n .then(response => {\n var data = response.data;\n\n // Set result\n this.setResult(data, appendJobs);\n });\n },\n filterChanged: function () {\n novicell.filterSection.closeAll();\n\n this.page = 1;\n this.search(false);\n\n // Set titles\n this.setFilterDisplayTitles();\n },\n setResult: function (data, appendJobs) {\n // Translate job category and country\n for (var i = 0; i < data.jobs.length; i++) {\n var jobCategoriesDisplayTitles = [];\n for (var k = 0; k < data.jobs[i].categories.length; k++) {\n jobCategoriesDisplayTitles.push(this.translateJobCategory(data.jobs[i].categories[k]));\n }\n data.jobs[i].displayCategories = jobCategoriesDisplayTitles.join(', ');\n if (data.jobs[i].address) {\n data.jobs[i].address.country = this.translateJobCountry(data.jobs[i].address.country.toLowerCase());\n\n }\n data.jobs[i].brand = this.translateJobBrand(data.jobs[i].brand);\n }\n\n // Setup jobs\n if (appendJobs) {\n for (var j = 0; j < data.jobs.length; j++) {\n this.jobs.push(data.jobs[j]);\n }\n } else {\n this.jobs = data.jobs;\n }\n\n // Paging\n this.hasNextPage = data.hasNextPage;\n this.numberOfJobs = data.numberOfJobs;\n\n var jobsearchLoader = document.getElementById('jobsearch-loader');\n jobsearchLoader.classList.remove('jobsearch-result__show-more-loader--active');\n\n this.isLoading = false;\n },\n nextPage: function () {\n this.page = this.page + 1;\n this.search(true);\n },\n countryFilterChanged: function () {\n this.filterRegions = [];\n if (this.selectedCountry === '') {\n this.filterRegions = Object.assign([], this.regions);\n } else {\n for (var i = 0; i < this.regions.length; i++) {\n if (this.regions[i].country === this.selectedCountry) {\n this.filterRegions.push(this.regions[i]);\n }\n }\n }\n this.filterRegions.unshift({\n 'regionName': 'allRegions',\n 'displayName': this.getTranslation('Filters.AllRegions')\n });\n this.selectedRegion = 'allRegions';\n\n this.filterChanged();\n },\n translateJobCategory: function (category) {\n for (var j = 0; j < this.filterCategories.length; j++) {\n if (this.filterCategories[j].categoryName === category) {\n return this.filterCategories[j].displayName;\n }\n }\n return category;\n },\n translateJobCountry: function (country) {\n for (var i = 0; i < this.filterCountries.length; i++) {\n if (this.filterCountries[i].country === country) {\n return this.getTranslation(this.filterCountries[i].displayName);\n }\n }\n return country;\n },\n translateJobBrand: function (brand) {\n for (var i = 0; i < this.filterBrands.length; i++) {\n if (this.filterBrands[i].brand === brand) {\n return this.getTranslation(this.filterBrands[i].displayName);\n }\n }\n return brand;\n },\n translateJobRegion: function (region) {\n for (var i = 0; i < this.filterRegions.length; i++) {\n if (this.filterRegions[i].regionName === region) {\n return this.filterRegions[i].displayName;\n }\n }\n return region;\n },\n getTranslation: function (key) {\n for (var i = 0; i < window.translations.length; i++) {\n if (window.translations[i].key === key) {\n return window.translations[i].value;\n }\n }\n return key;\n },\n getSearchUrl: function () {\n var params = {};\n if (this.selectedRegion && this.selectedRegion != 'allRegions') {\n params.region = this.selectedRegion;\n }\n if (this.selectedCategory && this.selectedCategory != 'allCategories') {\n params.category = this.selectedCategory;\n }\n if (this.selectedBrand && this.selectedBrand != 'allBrands') {\n params.brand = this.selectedBrand;\n }\n if (this.selectedCountry && this.selectedCountry != 'allCountries') {\n params.country = this.selectedCountry;\n }\n if (this.searchTerm) {\n params.searchterm = this.searchTerm;\n }\n if (this.page) {\n params.page = this.page;\n }\n if (this.language) {\n params.language = this.language;\n }\n\n var esc = encodeURIComponent;\n var query = Object.keys(params)\n .map(k => esc(k) + '=' + esc(params[k]))\n .join('&');\n\n return this.baseUrl + \"?\" + query;\n },\n showAllInitial: function () {\n this.initialLoad = false;\n },\n handleScroll: function () {\n if(this.hasNextPage && !this.isLoading && !this.initialLoad){\n var jobsResult = document.getElementById('jobsearch-result');\n\n var domRect = jobsResult.getBoundingClientRect();\n var currentSpaceBelow = window.innerHeight - domRect.bottom;\n \n var scrollDown = this.spaceBelow < currentSpaceBelow;\n this.spaceBelow = currentSpaceBelow;\n \n if(scrollDown && this.spaceBelow > -200) {\n this.nextPage();\n }\n }\n }\n },\n created: function () {\n this.init();\n }\n });\n };\n}();\n","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.list = novicell.list || new function () {\n this.init = function(data) {\n const listWrappers = document.querySelectorAll('.list-wrapper');\n\n \n if(!listWrappers) {\n return;\n }\n \n Vue.directive('init', {\n bind: function(el, binding, vnode) {\n // convert kebab-case to camelCase\n let arg = binding.arg.split('-').map((arg, index) => {\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\n }).join('');\n\n vnode.context[arg] = binding.value;\n }\n });\n\n for (var i = 0; i < listWrappers.length; i++) {\n let currentList = listWrappers[i];\n\n new Vue({\n el: currentList,\n data: {\n listItems: [],\n filteredListItems: [],\n filters : {}\n },\n mounted: function () {\n this.filteredListItems = this.listItems;\n },\n methods: {\n addSelectedFilters: function (filterItem, filterGroup) {\n var currentGroup = this.filters[filterGroup];\n\n if (!currentGroup || !currentGroup.length) {\n currentGroup = [];\n }\n\n var index = currentGroup.indexOf(filterItem);\n if (index > -1) {\n currentGroup.splice(index, 1);\n } else {\n currentGroup.push(filterItem);\n }\n\n this.filters[filterGroup] = currentGroup;\n this.filterItems();\n },\n filterItems: function() {\n var _filteredListItem = this.listItems;\n for (var k in this.filters) {\n if (this.filters.hasOwnProperty(k)) {\n var currentFilter = this.filters[k];\n\n if( currentFilter.length ) {\n _filteredListItem = _filteredListItem.filter(function(item) {\n var selectedGroup = item.FilterGroups.find(function(group) {\n return group.Id == k;\n });\n \n if (selectedGroup) {\n return selectedGroup.FilterItems.find(function(filterItem) {\n return currentFilter.indexOf(filterItem.Id) > -1;\n });\n }\n });\n }\n \n }\n }\n\n this.filteredListItems = _filteredListItem;\n },\n containsObject: function (obj, list) {\n return list.some(function(item) {\n return obj.Name === item.Name;\n });\n },\n // Returns comma seperated string with all filters for an item\n getDataFilters: function (item) {\n let dataFilterString = '';\n\n if(!item.FilterItems || !item.FilterItems.length) {\n return;\n }\n\n for (let i = 0; i < item.FilterItems.length; i++) {\n let currentFilter = item.FilterItems[i];\n dataFilterString = dataFilterString + currentFilter.Id;\n \n //Add comma after each filter, exept the last one\n if(i + 1 != item.FilterItems.length) {\n dataFilterString += ',';\n }\n }\n return dataFilterString;\n },\n getFilterItemsFromGroup: function (groupName) {\n let filterItems = [];\n\n return filterItems;\n }\n }\n });\n }\n };\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.newsletter = novicell.newsletter || new function () {\n this.init = function () {\n var form = document.getElementById('newsletter-confirm');\n if( form ){\n if (form.attachEvent) {\n form.attachEvent(\"submit\", this.processForm);\n } else {\n form.addEventListener(\"submit\", this.processForm);\n }\n }\n };\n this.processForm = function(e){\n if (e.preventDefault) {\n e.preventDefault();\n }\n \n var params = new URLSearchParams(location.search);\n var gigyaNewsletterUrl = e.srcElement.dataset.gigyaNewsletterUrl;\n var bearerToken = '31514a5d-4bea-4518-b664-01a5b071ad94';\n var requestBody = {\n 'subscriptionId': params.get('subscriptionId')\n };\n\n if (params.has('gigyaToken')) {\n requestBody.gigyaToken = params.get('gigyaToken');\n }\n if (params.has('emarsysToken')) {\n requestBody.emarsysToken = params.get('emarsysToken');\n }\n let headerData = {\n headers: {\n 'Authorization': `Bearer ${bearerToken}`,\n 'Content-Type': 'application/json'\n }\n };\n var bodyData = JSON.stringify(requestBody);\n axios.post(gigyaNewsletterUrl, bodyData, headerData).then(function (result) {\n if (result.status === 202 || result.status === 200) {\n document.getElementById(\"response-status__success\").style.cssText =\n \"display:block;text-align:center;margin:50px 0;\";\n document.getElementById(\"response-status__error\").style.cssText = \"display:none\";\n document.getElementById(\"newsletter-btn\").style.cssText = \"display:none\";\n } else {\n document.getElementById(\"response-status__success\").style.cssText = \"display:none\";\n document.getElementById(\"response-status__error\").style.cssText =\n \"display:block;text-align:center;margin:50px 0;\";\n }\n })\n .catch(function (error) {\n document.getElementById(\"response-status__error\").style.cssText =\n \"display:block;text-align:center;margin:50px 0;\";\n document.getElementById(\"response-status__success\").style.cssText = \"display:none\";\n });\n };\n}();\n","'use strict';\nvar novicell = novicell || {};\nnovicell.iframeEmbed = novicell.iframeEmbed || new function () {\n this.init = function () {\n let elm = document.querySelectorAll('.vimeo-iframe');\n if(!elm) {\n return;\n }\n function getVimeoId(url) {\n // Look for a string with 'vimeo', then whatever, then a\n // forward slash and a group of digits.\n var match = /vimeo.*\\/(\\d+)/i.exec(url);\n // If the match isn't null (i.e. it matched)\n if (match) {\n // The grouped/matched digits from the regex\n return match[1];\n }\n }\n for (var i = 0; i < elm.length; i++) {\n var id = \"\";\n id = getVimeoId(elm[i].dataset.vimeoid);\n var formattedUrl = \"https://player.vimeo.com/video/\" + id + \"?dnt=1\";\n elm[i].src = formattedUrl;\n }\n };\n}();\n","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.brandSlider = novicell.brandSlider || new function () {\n this.init = function(data) {\n const brandSlider = document.querySelectorAll('.brand-slider');\n\n if(!brandSlider) {\n return;\n }\n\n for (let i = 0; i < brandSlider.length; i++) {\n const slideshowElm = brandSlider[i];\n const flkty = new Flickity( slideshowElm, {\n // options\n cellAlign: 'left',\n contain: true,\n wrapAround: true,\n pageDots: false,\n imagesLoaded: true,\n groupCells: 1,\n arrowShape: 'M71.3,100 21.3,50 71.3,0 78.7,7.5 36.2,50 78.7,92.5 z'\n });\n }\n\n };\n}();","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.keyNumbers = novicell.keyNumbers || new function () {\n this.init = function () {\n const keyNumbers = document.querySelectorAll('.js-key-numbers');\n\n // return if no keynumbers\n if (!keyNumbers || keyNumbers.length <= 0) {\n return;\n }\n\n // loop all keynumbers\n for (let i = 0; i < keyNumbers.length; i++) {\n let currentkeyNumber = keyNumbers[i];\n // animate if is visible and not already animated\n if (novicell.helper.isVisible(currentkeyNumber) && !currentkeyNumber.classList.contains('js-key-numbers--animated')) {\n const value = currentkeyNumber.getAttribute('data-number');\n const options = {\n useEasing: true,\n useGrouping: true,\n separator: '.',\n };\n let countUp = new CountUp(currentkeyNumber, 0, value, 0, 2.5, options);\n\n if (!countUp.error) {\n countUp.start();\n } else {\n console.error(countUp.error);\n }\n currentkeyNumber.classList.add('js-key-numbers--animated'); \n }\n }\n };\n}();\n","'use strict';\n\n/**\n * @author Henrik Reinbach Madsen\n * @requires flickity.js https://github.com/metafizzy/flickity\n */\n\nvar novicell = novicell || {};\n\n\nnovicell.slideshow = novicell.slideshow || new function () {\n const slideshows = document.querySelectorAll('.js-slideshow');\n\n this.init = function () {\n if (!slideshows) {\n return;\n }\n for (let i = 0; i < slideshows.length; i++) {\n const slideshowElm = slideshows[i];\n const flkty = new Flickity(slideshowElm, {\n // options\n cellAlign: 'left',\n contain: true,\n wrapAround: true,\n pageDots: false,\n arrowShape: 'M71.3,100 21.3,50 71.3,0 78.7,7.5 36.2,50 78.7,92.5 z'\n });\n\n }\n // Video overlay\n var videoOverlayTriggers = document.querySelectorAll('.js-video-overlay-trigger');\n\n for (var i = 0; i < videoOverlayTriggers.length; i++) {\n videoOverlayTriggers[i].addEventListener('click', function (e) {\n e.preventDefault();\n\n console.log(this);\n\n var currentTrigger = this;\n\n novicell.overlay.create({\n 'videoId': currentTrigger.getAttribute('data-video-id'),\n 'type': currentTrigger.getAttribute('data-type'),\n 'class': 'video-overlay',\n 'autoplay': 1\n });\n });\n }\n };\n}();\n","'use strict';\n\nvar novicell = novicell || {};\n\nnovicell.siteNavigation = novicell.siteNavigation || new function () {\n this.init = function () {\n var siteNavigationToggle = document.getElementById('js-site-navigation-toggle');\n var siteNavigationList = document.getElementById('js-site-navigation-list');\n \n if (!siteNavigationToggle || !siteNavigationList) {\n return;\n }\n\n novicell.subNavigation.init(siteNavigationList);\n\n siteNavigationToggle.addEventListener('click', function(e) {\n e.preventDefault();\n\n novicell.helper.toggleClass(siteNavigationToggle, 'site-navigation-burger--active');\n novicell.helper.toggleClass(siteNavigationList, 'site-navigation-list--open');\n novicell.helper.toggleClass(document.body, 'no-scroll'); \n });\n };\n};\n","'use strict';\n/*\n* Novicell master\n* Use this file to call functions in other files, on document ready, window.resize etc.\n*/\n\nvar novicell = novicell || {};\nvar projectName = projectName || {};\n\n// Document ready\ndocument.addEventListener('DOMContentLoaded', function(){\n //novicell.validate.init(); // Init Validation\n novicell.inputMasking.init(); //Init input masking\n novicell.persistentField.init(); //Init persistentField\n novicell.siteNavigation.init();\n novicell.slideshow.init();\n novicell.search.init();\n novicell.list.init();\n novicell.jobSearch.init();\n novicell.brandSlider.init();\n novicell.filterSection.init();\n novicell.keyNumbers.init();\n novicell.languagePicker.init();\n novicell.newsletter.init();\n novicell.iframeEmbed.init();\n\n // async fixes issue with vue.js\n setTimeout(() => {\n svg4everybody(); // Fix SVG spritemap in IE/Edge\n });\n\n});\n\ndocument.addEventListener('scroll', function (e) {\n novicell.keyNumbers.init();\n});\n"]}