{"version":3,"sources":["master.js","helpers/utility.helper.js","lib/aspnet-validation.js","01-atoms/overlay/novicell.overlay.js","02-molecules/filter-section/filter-section.js","02-molecules/top-banner/top-banner.js","03-organisms/contact-wizard/contact-wizard.js","03-organisms/list/list.js","grid-editors/accordion/accordion.js","grid-editors/brand-slider/brand-slider.js","grid-editors/embed-media/embed-media.js","grid-editors/key-numbers/key-numbers.js","grid-editors/slideshow/slideshow.js","grid-editors/some-share/facebookShareLinks.js","03-organisms/navigation/site-navigation/site-navigation.js"],"names":["novicell","projectName","resize","keyNumbers","init","onScroll","document","addEventListener","cookieInfo","slideshow","list","wizard","brandSlider","filterSection","embedMedia","accordion","helper","buttonsWithLink","aspnetValidation","setTimeout","svg4everybody","e","window","onscroll","debounce","onresize","Element","prototype","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","this","call","parentElement","parentNode","nodeType","querySelectorAll","length","i","classList","add","findAncestor","cls","contains","toggleClass","className","toggle","classes","split","existingIndex","indexOf","splice","push","join","hasClass","isVisible","element","rect","getBoundingClientRect","html","documentElement","top","left","bottom","innerHeight","clientHeight","right","innerWidth","clientWidth","ValidationService","bootstrap","overlay","overlayElem","overlayContainer","overlayContent","backdrop","content","self","options","isVideo","constructOverlay","btnClose","createElement","id","target","destroy","querySelector","appendChild","hasOwnProperty","class","setupOverlay","innerHTML","setupOverlayContainer","type","keyCode","onLoaded","create","opts","onCreate","selector","console","warn","currElement","error","videoId","src","autoplay","iframe","setAttribute","outerHTML","removeChild","removeEventListener","remove","onDestroy","filterDropdDownActiveClass","handleEsc","closeAll","classHolder","getElementsByClassName","y","data","filterDropdownTriggers","event","newTarget","topbanners","Vue","name","autoPlayMilliSeconds","inViewport","addClassForSlideHeight","sliderElement","flkty","videosInSlider","slidesCount","mounted","$refs","slideshowList","children","videoNodesInSlider","Array","slice","observeVideoSliderInViewport","initSlider","resizeSlider","methods","IntersectionObserver","sliderIsInViewPort","threshold","observe","$el","entries","_this","forEach","entry","isIntersecting","videoEl","videoSrc","getAttribute","selectCell","playVideo","currentSlide","currentVideo","stopVideosInThisSlider","currentTime","play","pause","pageDots","Flickity","wrapAround","autoPlay","pauseAutoPlayOnHover","prevNextButtons","on","ready","selectedCell","select","listWrappers","directive","bind","binding","vnode","arg","map","index","toUpperCase","substring","context","value","currentList","wizardData","foldOut","countryOptions","contactsNotAvailable","showReadyAnimation","regionControlActive","chosenOptions","animalSegment","region","country","employees","computed","currentContactStatus","status","countryControlActive","attributePhone","phone","replace","attributeEmail","email","toggleWizard","setAnimalSegment","findContact","setRegion","chosenRegion","RegionTitle","Countries","possibleEmployees","Employees","filter","emp","correctCountry","LocationList","includes","correctAnimalSegment","AnimalSegments","seg","Name","resetFoundContact","listItems","filteredListItems","pageSize","pageStep","hideShowMore","usePaging","filters","ellipsis","colorThemeClass","ListTheme","showMore","addSelectedFilters","filterItem","filterGroup","currentGroup","filterItems","_filteredListItem","k","currentFilter","item","selectedGroup","FilterGroups","find","group","Id","FilterItems","containsObject","obj","some","getDataFilters","dataFilterString","getFilterItemsFromGroup","groupName","accordionTriggers","accordionImages","itemOpenClass","imageOverlaySelector","accordionImageOverlay","openAccordionItem","parent","currentTarget","closeItem","openItems","currentItem","closeAllItemsInAccordion","openImageInOverlay","imageClicked","slideshowElm","cellAlign","contain","groupCells","playButtons","preventDefault","videoType","iframeContainer","currentButton","dataset","createIframe","currentkeyNumber","countUp","CountUp","useEasing","useGrouping","separator","start","slideshows","_loop","cellSelector","arrowShape","resetVideoIframes","iframes","getElementsByTagName","facebookShareLinks","facebookShareLink","shareOnFacebook","u","location","href","t","title","open","encodeURIComponent","globalHeader","getElementById","hasBackground","onlyBgOutsideTopBanner","burgerActive","showDropDown","showMobileDropDownLevel2","showMobileDropDownLevel3","languagePicker","languagePickerList","languagePickerActiveClass","searchIsOpen","searchInput","pageHeader","handleScroll","hideAllDropDowns","searchInputField","languagePickerClickTrigger","languagePickerCloseOverlayHandler","languagePickerHandleEsc","languagePickerHandleClick","languagePickerCloseLanguagePicker","handleClick","targetElement","pageHeaderRect","globalHeaderRect","height","toggleBurgerActive","hideAllMobileDropDownsLevel2","hideAllMobileDropDownsLevel3","foldOutMobileNavOnOpen","body","stopProp","stopPropagation","_this2","Object","keys","key","set","mobileFindTriggerAndClick","triggerParent","triggerLevel","trigger","click","activePage","selected","activePageLevel","triggerParent3","triggerParent2","_this3","_this4","toggleNavigation","elId","matchMedia","stopImmediatePropagation","show","toggleMobileSubLevel3","toggleMobileSubLevel2","searchButtonClick","closeSearchOverlay","openSearchOverlay","searchHandleClick","focus","blur"],"mappings":"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","file":"master.min.js","sourcesContent":["'use strict';\r\n/*\r\n* Novicell master\r\n* Use this file to call functions in other files, on document ready, window.resize etc.\r\n*/\r\n\r\nvar novicell = novicell || {};\r\nvar projectName = projectName || {};\r\n\r\n// Document ready\r\ndocument.addEventListener('DOMContentLoaded', function(){\r\n novicell.cookieInfo.init();\r\n novicell.slideshow.init(); \r\n novicell.list.init();\r\n novicell.wizard.init();\r\n novicell.brandSlider.init();\r\n novicell.filterSection.init();\r\n novicell.keyNumbers.init();\r\n novicell.embedMedia.init();\r\n novicell.accordion.init();\r\n\r\n /* Helpers */\r\n novicell.helper.buttonsWithLink();\r\n\r\n /* Lib */\r\n novicell.aspnetValidation.init();\r\n \r\n //SetTimeout to fix latency with loaded elements in e.g. Vue components\r\n setTimeout(() => {\r\n svg4everybody(); // Fix SVG spritemap in IE/Edge\r\n });\r\n});\r\n\r\ndocument.addEventListener('scroll', function (e) {\r\n novicell.keyNumbers.init();\r\n});\r\n\r\n// Docs for debounce https://github.com/component/debounce\r\nwindow.onscroll = novicell.debounce(onScroll, 100);\r\n\r\nwindow.onresize = novicell.debounce(resize, 200);\r\n\r\nfunction resize() {\r\n novicell.keyNumbers.init();\r\n}\r\nfunction onScroll() {\r\n novicell.keyNumbers.init();\r\n}\r\n\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches = Element.prototype.msMatchesSelector || \r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n \r\n do {\r\n if (Element.prototype.matches.call(el, s)) {\r\n return el;\r\n }\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.helper = novicell.helper || new function () {\r\n\r\n this.buttonsWithLink = function () {\r\n var buttonsWithLink = document.querySelectorAll('a > .button');\r\n if (!buttonsWithLink || buttonsWithLink.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < buttonsWithLink.length; i++) {\r\n const currentLink = buttonsWithLink[i];\r\n const parent = currentLink.parentNode;\r\n\r\n parent.classList.add('button-with-link');\r\n }\r\n };\r\n\r\n this.findAncestor = function (el, cls) {\r\n if (el == null) {\r\n return;\r\n }\r\n while ((el = el.parentElement) && !el.classList.contains(cls)) {\r\n return el;\r\n }\r\n };\r\n\r\n this.toggleClass = function (el, className) {\r\n if (el.classList) {\r\n el.classList.toggle(className);\r\n } else {\r\n var classes = el.className.split(' ');\r\n var existingIndex = classes.indexOf(className);\r\n \r\n if (existingIndex >= 0) {\r\n classes.splice(existingIndex, 1);\r\n } else {\r\n classes.push(className);\r\n }\r\n \r\n el.className = classes.join(' ');\r\n }\r\n };\r\n\r\n this.hasClass = function (el, className) {\r\n if (el.classList.contains(className)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n this.isVisible = function (element) {\r\n var rect = element.getBoundingClientRect();\r\n var html = document.documentElement;\r\n\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <= (window.innerHeight || html.clientHeight) &&\r\n rect.right <= (window.innerWidth || html.clientWidth)\r\n );\r\n };\r\n\r\n};","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.aspnetValidation = novicell.aspnetValidation || new function () {\r\n this.init = function() {\r\n \r\n let v = new aspnetValidation.ValidationService();\r\n v.bootstrap();\r\n };\r\n};\r\n","'use strict';\r\n/**\r\n * @name Novicell overlay\r\n * @desc Simple script that opens an overlay / modal with some content form either a selector or an URL\r\n * @author Danni Larsen (DLA), Michael Sølvsteen (MSL), Signe Helbo Poulsen (SHP)\r\n * @example novicell.overlay.create({ 'selector': SELECTOR, 'url': URL, 'class':'CLASSNAME', 'onCreate': FUNCTIONNAME, 'onLoaded': FUNCTIONNAME, 'onDestroy': FUNCTIONNAME });\r\n * @requires none\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.overlay = novicell.overlay || new function () {\r\n var self = this;\r\n var options = {};\r\n var overlayElem;\r\n var overlayContainer;\r\n var overlayContent;\r\n var backdrop;\r\n var content;\r\n var onCreate;\r\n var onLoaded;\r\n var onDestroy;\r\n var isVideo = false;\r\n\r\n this.create = function (opts) {\r\n var self = this;\r\n // Set global options\r\n options = opts;\r\n\r\n // Call onCreate callback\r\n if (typeof options.onCreate === 'function') {\r\n options.onCreate();\r\n }\r\n\r\n // Remove existing overlays\r\n self.destroy();\r\n\r\n // Check if content comes from a HTML element\r\n if (options.hasOwnProperty('selector') && options.selector !== null) {\r\n var element = document.querySelector(options.selector);\r\n \r\n if (element) {\r\n content = element.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n else if (options.hasOwnProperty('element') && options.element !== null) {\r\n var currElement = options.element;\r\n \r\n if (currElement) {\r\n content = currElement.innerHTML;\r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: element does not exist. Please provide a valid selector for use in document.querySelector.');\r\n return;\r\n }\r\n }\r\n // Or if content comes from an URL\r\n else if (options.hasOwnProperty('videoId')) {\r\n if (options.videoId !== null) {\r\n var src = '';\r\n isVideo = true;\r\n\r\n if(options.type == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + options.videoId + '?autoplay=' + options.autoplay;\r\n }\r\n else if(options.type == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + options.videoId + '?autoplay=' + options.autoplay + '&rel=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n content = iframe.outerHTML;\r\n \r\n constructOverlay();\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n // If nothing is working, send error to los consolé\r\n else {\r\n console.error('novicell.overlay: no content to display! Please set a selector or a url to load.');\r\n return;\r\n }\r\n };\r\n\r\n this.destroy = function () {\r\n if(document.querySelector('#js-novi-overlay')) {\r\n // Remove elements\r\n overlayElem.parentElement.removeChild(overlayElem);\r\n backdrop.parentElement.removeChild(backdrop);\r\n\r\n // Stop listening for close overlay events\r\n document.removeEventListener('keyup', self.destroy);\r\n\r\n // Remove class on body\r\n document.documentElement.classList.remove('no-scroll', 'novi-overlay--open');\r\n\r\n // Reset video variable\r\n isVideo = false;\r\n\r\n // Call onDestroy callback\r\n if (typeof options.onDestroy === 'function') {\r\n options.onDestroy();\r\n }\r\n }\r\n };\r\n\r\n function constructOverlay() {\r\n // Create backdrop\r\n setupBackdrop();\r\n\r\n // Create the overlay\r\n setupOverlay();\r\n\r\n // Create content for overlay\r\n setupOverlayContainer();\r\n\r\n // Create close button\r\n setupCloseButton();\r\n\r\n // Add class to body-element\r\n document.documentElement.classList.add('no-scroll');\r\n\r\n // Call onLoaded callback\r\n if (typeof options.onLoaded === 'function') {\r\n options.onLoaded();\r\n }\r\n }\r\n\r\n function setupBackdrop() {\r\n // Create the backdrop\r\n backdrop = document.createElement('div');\r\n backdrop.classList.add('novi-backdrop');\r\n backdrop.id = 'js-novi-backdrop';\r\n\r\n backdrop.addEventListener('click', function(e){\r\n if(e.target.classList.contains('novi-overlay') || e.target.classList.contains('novi-overlay__container')) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add backdrop to overlay element\r\n document.querySelector('body').appendChild(backdrop);\r\n }\r\n\r\n /*\r\n * Helper functions for HTML elements\r\n */\r\n function setupOverlay() {\r\n // Create the overlay\r\n overlayElem = document.createElement('div');\r\n overlayElem.classList.add('novi-overlay');\r\n overlayElem.id = 'js-novi-overlay';\r\n\r\n // Set class for the overlay, if set in options\r\n if (options.hasOwnProperty('class')) {\r\n overlayElem.classList.add(options.class);\r\n }\r\n\r\n // Add overlay to overlay element\r\n // document.querySelector('body').appendChild(overlayElem);\r\n backdrop.appendChild(overlayElem);\r\n }\r\n\r\n function setupOverlayContainer() {\r\n // Create content for overlay\r\n overlayContainer = document.createElement('div');\r\n overlayContainer.classList.add('novi-overlay__container');\r\n\r\n // Create scroll element\r\n overlayContent = document.createElement('div');\r\n overlayContent.classList.add('novi-overlay__content');\r\n\r\n if(isVideo) {\r\n overlayContent.classList.add('novi-overlay__content--video');\r\n }\r\n\r\n // Set content\r\n overlayContent.innerHTML = content;\r\n overlayContainer.appendChild(overlayContent);\r\n\r\n // Add overlayContainer to overlay element\r\n overlayElem.appendChild(overlayContainer);\r\n }\r\n\r\n function setupCloseButton() {\r\n // Create the button\r\n var btnClose = document.createElement('button');\r\n btnClose.classList.add('novi-overlay-close', 'button--close');\r\n btnClose.type = 'button';\r\n btnClose.id = 'js-novi-overlay-close';\r\n\r\n // Add eventlistener for button click\r\n btnClose.addEventListener('click', self.destroy);\r\n\r\n // Add eventlistener for esc key\r\n document.addEventListener('keydown', function (e) {\r\n if (e.keyCode === 27) {\r\n self.destroy();\r\n }\r\n });\r\n\r\n // Add close button to overlay element\r\n overlayContent.appendChild(btnClose);\r\n }\r\n\r\n /*\r\n * Helper functions for getting content\r\n */\r\n function get(url) {\r\n // Return a new promise.\r\n return new Promise(function (resolve, reject) {\r\n // Do the usual XHR stuff\r\n var req = new XMLHttpRequest();\r\n req.open('GET', url);\r\n\r\n req.onload = function () {\r\n if (req.status >= 200 && req.status < 400) {\r\n // Success!!\r\n resolve(req.response);\r\n } else {\r\n // Error!!\r\n reject(Error(req.statusText));\r\n }\r\n };\r\n\r\n // Handle network errors\r\n req.onerror = function () {\r\n reject(Error(\"Network Error\"));\r\n };\r\n\r\n // Make the request\r\n req.send();\r\n });\r\n }\r\n\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.filterSection = novicell.filterSection || new function () {\r\n const filterDropdDownActiveClass = 'filter-section-dropdown--active';\r\n\r\n this.init = function (data) {\r\n var filterDropdownTriggers = document.querySelectorAll('.js-filter-section-dropdown-trigger');\r\n\r\n if (!filterDropdownTriggers) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < filterDropdownTriggers.length; i++) {\r\n let currentTrigger = filterDropdownTriggers[i];\r\n\r\n currentTrigger.addEventListener('click', function () {\r\n var element = event.target.parentElement;\r\n\r\n if (novicell.helper.hasClass(element, filterDropdDownActiveClass)) {\r\n closeAll();\r\n } else {\r\n closeAll();\r\n element.classList.add(filterDropdDownActiveClass);\r\n clickedOutside(element);\r\n document.addEventListener('keydown', handleEsc, true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n function clickedOutside(element) {\r\n\r\n // add click event to document\r\n document.addEventListener('click', function (event) {\r\n // check if item is open\r\n if (novicell.helper.hasClass(element, filterDropdDownActiveClass)) {\r\n let newTarget = element.contains(event.target);\r\n if (!newTarget) {\r\n closeAll();\r\n }\r\n }\r\n });\r\n }\r\n\r\n function handleEsc(e) {\r\n if (e.keyCode === 27) {\r\n closeAll();\r\n }\r\n }\r\n\r\n function closeAll(element) {\r\n\r\n // find all and remove active\r\n let classHolder = document.getElementsByClassName('filter-section-dropdown');\r\n\r\n for (let y = 0; y < classHolder.length; y++) {\r\n let currentElement = classHolder[y];\r\n currentElement.classList.remove(filterDropdDownActiveClass);\r\n }\r\n\r\n document.removeEventListener('keydown', handleEsc, true);\r\n }\r\n}();\r\n","'use strict';\r\nconst topbanners = document.getElementsByClassName('js-top-banner__slideshow');\r\n\r\nfor (var i = 0; i < topbanners.length; i++) {\r\n new Vue({\r\n el: topbanners[i],\r\n name: 'top-banner',\r\n data: {\r\n autoPlayMilliSeconds:7000,\r\n inViewport: false,\r\n addClassForSlideHeight: false,\r\n sliderElement:null,\r\n flkty: null,\r\n videosInSlider: [],\r\n slidesCount: 0\r\n },\r\n mounted() {\r\n this.sliderElement = this.$refs.slideshowList;\r\n if(!this.sliderElement){return;}\r\n \r\n this.slidesCount = this.sliderElement.children.length;\r\n const videoNodesInSlider = this.sliderElement.getElementsByClassName('top-banner__video');\r\n this.videosInSlider = Array.prototype.slice.call(videoNodesInSlider);\r\n this.observeVideoSliderInViewport();\r\n this.initSlider();\r\n this.resizeSlider();\r\n },\r\n methods: {\r\n observeVideoSliderInViewport(){\r\n const options = { threshold: 0 };\r\n const backgroundObserver = new IntersectionObserver(this.sliderIsInViewPort, options);\r\n backgroundObserver.observe(this.$el);\r\n },\r\n sliderIsInViewPort(entries){\r\n entries.forEach((entry) => {\r\n if (entry.isIntersecting) {\r\n this.inViewport = true;\r\n this.videosInSlider.forEach(\r\n (videoEl)=>{\r\n const videoSrc = videoEl.getAttribute('data-html');\r\n videoEl.innerHTML = videoSrc;\r\n }\r\n );\r\n this.flkty.selectCell( 0, false, true ); // to trigger start of video on first slide\r\n }\r\n else {\r\n this.inViewport = false;\r\n this.videosInSlider.forEach(\r\n (videoEl)=>{\r\n videoEl.innerHTML = '';\r\n }\r\n );\r\n }\r\n });\r\n },\r\n playVideo(currentSlide){\r\n if(this.inViewport && currentSlide.classList.contains('top-banner__item--has-video')) {\r\n const currentVideo = currentSlide.getElementsByClassName('top-banner__video')[0] || null;\r\n if(!currentVideo){\r\n this.stopVideosInThisSlider();\r\n return;\r\n }\r\n if(this.slidesCount > 1){\r\n this.stopVideosInThisSlider();\r\n currentVideo.currentTime = 0;\r\n }\r\n currentVideo.play();\r\n }\r\n },\r\n stopVideosInThisSlider() {\r\n const videosInSlider = this.sliderElement.getElementsByClassName('top-banner__video');\r\n for(let i = 0; i < videosInSlider.length; i++) {\r\n videosInSlider[i].pause();\r\n }\r\n },\r\n initSlider(){\r\n const self = this;\r\n const pageDots = this.slidesCount > 1;\r\n this.flkty = new Flickity( this.sliderElement, {\r\n wrapAround: true,\r\n autoPlay: this.slidesCount > 1 ? this.autoPlayMilliSeconds : false,\r\n pauseAutoPlayOnHover: false,\r\n prevNextButtons: false,\r\n pageDots: pageDots,\r\n on: {\r\n ready: function(e) {\r\n self.addClassForSlideHeight=true;\r\n if(this && this.selectedCell){\r\n self.playVideo(this.selectedCell.element);\r\n }\r\n },\r\n select: function(e) {\r\n if(this && this.selectedCell){\r\n self.playVideo(this.selectedCell.element);\r\n }\r\n }\r\n }\r\n });\r\n },\r\n resizeSlider(){\r\n const self = this;\r\n window.addEventListener('resize',function(){\r\n self.addClassForSlideHeight=false;\r\n this.setTimeout(function(){\r\n self.addClassForSlideHeight=true;\r\n });\r\n });\r\n }\r\n }\r\n });\r\n}\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.wizard = novicell.wizard || new function () {\r\n this.init = function (data) {\r\n const listWrappers = document.querySelectorAll('.contact-wizard');\r\n if (!listWrappers) {\r\n return;\r\n }\r\n Vue.directive('init', {\r\n bind: function (el, binding, vnode) {\r\n // convert kebab-case to camelCase\r\n let arg = binding.arg.split('-').map((arg, index) => {\r\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\r\n }).join('');\r\n\r\n vnode.context[arg] = binding.value;\r\n }\r\n });\r\n for (var i = 0; i < listWrappers.length; i++) {\r\n let currentList = listWrappers[i];\r\n\r\n new Vue({\r\n el: currentList,\r\n name: 'contactWizard',\r\n data: {\r\n wizardData: {},\r\n foldOut: false,\r\n countryOptions: [],\r\n contactsNotAvailable: false,\r\n showReadyAnimation: false,\r\n regionControlActive: true,\r\n chosenOptions: {\r\n animalSegment: '',\r\n region: '',\r\n country: '',\r\n employees: []\r\n }\r\n },\r\n computed: {\r\n currentContactStatus: function () {\r\n /* statuses are: ['optionsNotSelected','noContactsAvailable','contacsFound'] */\r\n let status = 0;\r\n if(this.contactsNotAvailable) {\r\n status = 1;\r\n }else if(this.chosenOptions.employees.length) {\r\n status = 2;\r\n }\r\n\r\n return status;\r\n },\r\n // regionControlActive: function () {\r\n // return this.chosenOptions.animalSegment !== '';\r\n // },\r\n countryControlActive: function () {\r\n return this.chosenOptions.region !== '';\r\n }\r\n \r\n \r\n },\r\n methods: {\r\n attributePhone: function (phone) {\r\n return phone.replace(/\\s+/g, '');\r\n },\r\n attributeEmail: function (email) {\r\n return email.replace(/\\s+/g, '');\r\n },\r\n toggleWizard: function () {\r\n this.foldOut = !this.foldOut;\r\n },\r\n setAnimalSegment: function (type) {\r\n if(this.chosenOptions.animalSegment === type) {\r\n this.chosenOptions.animalSegment = '';\r\n }else {\r\n this.chosenOptions.animalSegment = type;\r\n }\r\n this.findContact();\r\n },\r\n setRegion: function (chosenRegion) {\r\n if(chosenRegion.RegionTitle !==this.chosenOptions.region){\r\n this.chosenOptions.region = chosenRegion.RegionTitle;\r\n this.countryOptions = chosenRegion.Countries;\r\n this.chosenOptions.country = '';\r\n this.findContact();\r\n }\r\n },\r\n findContact: function () {\r\n this.showReadyAnimation = false;\r\n if(this.chosenOptions.region !== '' && this.chosenOptions.country !== '') {\r\n var possibleEmployees = this.wizardData.Employees.filter((emp)=>{\r\n let useEmp = false;\r\n const correctCountry = emp.LocationList.includes(this.chosenOptions.country);\r\n let correctAnimalSegment = true;\r\n if(correctCountry) {\r\n if(this.chosenOptions.animalSegment !== '') {\r\n const checkAnimalSegments = emp.AnimalSegments.filter((seg)=>{\r\n return seg.Name === this.chosenOptions.animalSegment;\r\n });\r\n correctAnimalSegment = checkAnimalSegments.length > 0;\r\n }\r\n }\r\n return correctCountry && correctAnimalSegment;\r\n });\r\n\r\n\r\n if(!possibleEmployees.length){\r\n this.resetFoundContact();\r\n this.contactsNotAvailable = true;\r\n }else{\r\n this.chosenOptions.employees = possibleEmployees.slice(0, 3);\r\n this.contactsNotAvailable = false;\r\n setTimeout(()=> {\r\n this.showReadyAnimation = true; //won't work without delay\r\n },100);\r\n }\r\n }else {\r\n this.resetFoundContact();\r\n this.contactsNotAvailable = false;\r\n }\r\n \r\n },\r\n resetFoundContact() {\r\n this.chosenOptions.employees = [];\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.list = novicell.list || new function () {\r\n this.init = function (data) {\r\n const listWrappers = document.querySelectorAll('.list-wrapper');\r\n\r\n if (!listWrappers) {\r\n return;\r\n }\r\n\r\n Vue.directive('init', {\r\n bind: function (el, binding, vnode) {\r\n // convert kebab-case to camelCase\r\n let arg = binding.arg.split('-').map((arg, index) => {\r\n return (index > 0) ? arg[0].toUpperCase() + arg.substring(1) : arg;\r\n }).join('');\r\n\r\n vnode.context[arg] = binding.value;\r\n }\r\n });\r\n\r\n for (var i = 0; i < listWrappers.length; i++) {\r\n let currentList = listWrappers[i];\r\n\r\n new Vue({\r\n el: currentList,\r\n data: {\r\n listItems: [],\r\n filteredListItems: [],\r\n pageSize: currentList.getAttribute('data-page-size') * 1, //How many items to show\r\n pageStep: currentList.getAttribute('data-page-step') * 1, //How much page size increases pr. stephideShowMore: false, //Hide the show more button\r\n hideShowMore: false, //Hide the show more button\r\n usePaging: currentList.getAttribute('data-use-paging') == 'True',\r\n filters: {}\r\n },\r\n filters: {\r\n ellipsis: function (value) {\r\n\r\n if (value[value.length - 1] === '.') {\r\n value = value.substring(0, value.length - 1);\r\n }\r\n\r\n if (value.length < 100) {\r\n return value;\r\n } else {\r\n return value.substring(0, 100) + '…';\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.filteredListItems = this.listItems;\r\n if(!this.usePaging){\r\n this.pageSize = this.filteredListItems.length;\r\n }else {\r\n \r\n }\r\n \r\n if(this.pageSize >= this.filteredListItems.length){\r\n this.hideShowMore = true;\r\n }\r\n },\r\n computed: {\r\n colorThemeClass: function () {\r\n return this.ListTheme === 'Natural green' ? 'theme-5' : 'theme-4';\r\n }\r\n },\r\n methods: {\r\n showMore: function(){\r\n this.pageSize += this.pageStep;\r\n if(this.pageSize >= this.filteredListItems.length){\r\n this.hideShowMore = true;\r\n }\r\n },\r\n addSelectedFilters: function (filterItem, filterGroup) {\r\n var currentGroup = this.filters[filterGroup];\r\n\r\n if (!currentGroup || !currentGroup.length) {\r\n currentGroup = [];\r\n }\r\n\r\n var index = currentGroup.indexOf(filterItem);\r\n if (index > -1) {\r\n currentGroup.splice(index, 1);\r\n } else {\r\n currentGroup.push(filterItem);\r\n }\r\n\r\n this.filters[filterGroup] = currentGroup;\r\n this.filterItems();\r\n },\r\n filterItems: function () {\r\n var _filteredListItem = this.listItems;\r\n for (var k in this.filters) {\r\n if (this.filters.hasOwnProperty(k)) {\r\n var currentFilter = this.filters[k];\r\n\r\n if (currentFilter.length) {\r\n _filteredListItem = _filteredListItem.filter(function (item) {\r\n var selectedGroup = item.FilterGroups.find(function (group) {\r\n return group.Id == k;\r\n });\r\n\r\n if (selectedGroup) {\r\n return selectedGroup.FilterItems.find(function (filterItem) {\r\n return currentFilter.indexOf(filterItem.Id) > -1;\r\n });\r\n }\r\n });\r\n }\r\n\r\n }\r\n }\r\n\r\n this.filteredListItems = _filteredListItem;\r\n },\r\n containsObject: function (obj, list) {\r\n return list.some(function (item) {\r\n return obj.Name === item.Name;\r\n });\r\n },\r\n // Returns comma seperated string with all filters for an item\r\n getDataFilters: function (item) {\r\n let dataFilterString = '';\r\n\r\n if (!item.FilterItems || !item.FilterItems.length) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < item.FilterItems.length; i++) {\r\n let currentFilter = item.FilterItems[i];\r\n dataFilterString = dataFilterString + currentFilter.Id;\r\n\r\n //Add comma after each filter, exept the last one\r\n if (i + 1 != item.FilterItems.length) {\r\n dataFilterString += ',';\r\n }\r\n }\r\n return dataFilterString;\r\n },\r\n getFilterItemsFromGroup: function (groupName) {\r\n let filterItems = [];\r\n\r\n return filterItems;\r\n }\r\n }\r\n });\r\n }\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.accordion = novicell.accordion || new function () {\r\n const accordionTriggers = document.querySelectorAll('.js-accordion-item-trigger');\r\n const accordionImages = document.querySelectorAll('.js-accordion-item-image');\r\n const itemOpenClass = 'accordion-item--open';\r\n const imageOverlaySelector = '.js-accordion-image-overlay-content';\r\n const accordionImageOverlay = document.querySelector(imageOverlaySelector);\r\n\r\n this.init = function () {\r\n if (!accordionTriggers && accordionTriggers.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < accordionTriggers.length; i++) {\r\n let currentTrigger = accordionTriggers[i];\r\n\r\n currentTrigger.addEventListener('click', function(event) {\r\n openAccordionItem(event);\r\n });\r\n }\r\n\r\n if(!accordionImages && accordionImages.length <= 0) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < accordionImages.length; i++) {\r\n let currentImage = accordionImages[i];\r\n\r\n currentImage.addEventListener('click', function() {\r\n openImageInOverlay();\r\n });\r\n }\r\n };\r\n\r\n function openAccordionItem(e) {\r\n let triggerItem = e.currentTarget;\r\n let parent = triggerItem.parentNode;\r\n\r\n if(novicell.helper.hasClass(parent, itemOpenClass)) {\r\n closeItem(parent);\r\n\r\n } else {\r\n closeAllItemsInAccordion(parent.parentNode);\r\n openItem(parent);\r\n }\r\n }\r\n\r\n function closeAllItemsInAccordion(accordion) {\r\n let openItems = accordion.querySelectorAll('.js-accordion-item.accordion-item--open');\r\n\r\n for (let i = 0; i < openItems.length; i++) {\r\n let currentItem = openItems[i];\r\n\r\n closeItem(currentItem);\r\n }\r\n }\r\n\r\n function openItem(item) {\r\n item.classList.add(itemOpenClass);\r\n }\r\n\r\n function closeItem(item) {\r\n item.classList.remove(itemOpenClass);\r\n }\r\n\r\n function openImageInOverlay() {\r\n let imageClicked = event.currentTarget.querySelector('img');\r\n let overlayImage = accordionImageOverlay.querySelector('img');\r\n\r\n overlayImage.setAttribute('data-src', imageClicked.getAttribute('src'));\r\n\r\n novicell.overlay.create({\r\n 'class': 'accordion-image-overlay',\r\n 'selector': imageOverlaySelector\r\n });\r\n }\r\n};\r\n","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.brandSlider = novicell.brandSlider || new function () {\r\n this.init = function(data) {\r\n const brandSlider = document.querySelectorAll('.brand-slider');\r\n\r\n if(!brandSlider) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < brandSlider.length; i++) {\r\n const slideshowElm = brandSlider[i];\r\n const flkty = new Flickity( slideshowElm, {\r\n // options\r\n cellAlign: 'left',\r\n contain: true,\r\n wrapAround: false,\r\n pageDots: false,\r\n groupCells: 1\r\n });\r\n \r\n }\r\n\r\n };\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.embedMedia = novicell.embedMedia || new function () {\r\n var playButtons = document.querySelectorAll('.js-video-overlay-trigger');\r\n this.init = function() {\r\n for (var index = 0; index < playButtons.length; index++) {\r\n var button = playButtons[index];\r\n button.addEventListener(\"click\", function(e){\r\n e.preventDefault();\r\n var currentButton = e.currentTarget;\r\n var videoId = currentButton.dataset.videoId;\r\n var videoType = currentButton.dataset.videoType;\r\n setVideoContent(currentButton, videoId, videoType);\r\n });\r\n }\r\n };\r\n \r\n function setVideoContent (button, videoId, videoType) {\r\n var parent = findAncestor(button, 'embed-media');\r\n var iframeContainer = parent.querySelector('.embed-media__iframe-container');\r\n createIframe(videoId, videoType, iframeContainer, parent);\r\n }\r\n\r\n function createIframe (videoId, videoType, iframeContainer, parent) {\r\n if (videoId !== null) {\r\n var src = '';\r\n if(videoType == 'vimeo') {\r\n src = 'https://player.vimeo.com/video/' + videoId + '?autoplay=1';\r\n }\r\n else if(videoType == 'youtube') {\r\n src = 'https://www.youtube.com/embed/' + videoId + '?autoplay=1&rel=0';\r\n }\r\n else {\r\n return;\r\n }\r\n\r\n var iframe = document.createElement('iframe');\r\n iframe.setAttribute('src', src);\r\n iframe.setAttribute('frameborder', 0);\r\n iframe.setAttribute('allowfullscreen', '');\r\n iframe.setAttribute('width', '100%');\r\n iframe.setAttribute('height', '100%');\r\n\r\n iframeContainer.innerHTML = iframe.outerHTML;\r\n\r\n parent.classList.add('embed-media--active');\r\n\r\n } else {\r\n console.warn('novicell.overlay: video-id is empty. Please provide a video-id for use in video embed code (we support only Vimeo and YouTube).');\r\n return;\r\n }\r\n }\r\n function findAncestor (el, cls) {\r\n while ((el = el.parentElement) && !el.classList.contains(cls));\r\n return el;\r\n }\r\n}();","'use strict';\r\n\r\nvar novicell = novicell || {};\r\n\r\nnovicell.keyNumbers = novicell.keyNumbers || new function () {\r\n this.init = function () {\r\n const keyNumbers = document.querySelectorAll('.js-key-numbers');\r\n\r\n // return if no keynumbers\r\n if (!keyNumbers || keyNumbers.length <= 0) {\r\n return;\r\n }\r\n\r\n // loop all keynumbers\r\n for (let i = 0; i < keyNumbers.length; i++) {\r\n let currentkeyNumber = keyNumbers[i];\r\n // animate if is visible and not already animated\r\n if (novicell.helper.isVisible(currentkeyNumber) && !currentkeyNumber.classList.contains('js-key-numbers--animated')) {\r\n const value = currentkeyNumber.getAttribute('data-number');\r\n const options = {\r\n useEasing: true,\r\n useGrouping: true,\r\n separator: '.',\r\n };\r\n let countUp = new CountUp(currentkeyNumber, 0, value, 0, 2.5, options);\r\n\r\n if (!countUp.error) {\r\n countUp.start();\r\n } else {\r\n console.error(countUp.error);\r\n }\r\n currentkeyNumber.classList.add('js-key-numbers--animated'); \r\n }\r\n }\r\n };\r\n}();\r\n","'use strict';\r\n\r\n/**\r\n * @author Henrik Reinbach Madsen\r\n * @requires flickity.js https://github.com/metafizzy/flickity\r\n */\r\n\r\nvar novicell = novicell || {};\r\n\r\n\r\nnovicell.slideshow = novicell.slideshow || new function () {\r\n const slideshows = document.querySelectorAll('.js-slideshow');\r\n\r\n this.init = function () {\r\n if (!slideshows) {\r\n return;\r\n }\r\n for (let i = 0; i < slideshows.length; i++) {\r\n const slideshowElm = slideshows[i];\r\n const self = this;\r\n const flkty = new Flickity(slideshowElm, {\r\n // options\r\n cellAlign: 'left',\r\n cellSelector: '.slideshow-slide',\r\n contain: true,\r\n wrapAround: true,\r\n pageDots: false,\r\n arrowShape: 'M71.3,100 21.3,50 71.3,0 78.7,7.5 36.2,50 78.7,92.5 z',\r\n on: {\r\n select: function(e) {\r\n self.resetVideoIframes(slideshowElm);\r\n }\r\n }\r\n });\r\n\r\n }\r\n };\r\n\r\n this.resetVideoIframes = function (slideshowElm) {\r\n const iframes = slideshowElm.getElementsByTagName('iframe');\r\n for (var i = 0; i < iframes.length; i++) {\r\n iframes[i].parentElement.parentElement.classList.remove('embed-media--active');\r\n iframes[i].remove();\r\n }\r\n };\r\n}();\r\n","'use strict';\r\n\r\nconst facebookShareLinks = document.getElementsByClassName('js-some-share__link-button--facebook');\r\n\r\nfor (let i = 0 ; i < facebookShareLinks.length ; i++) {\r\n const facebookShareLink = facebookShareLinks[i];\r\n new Vue({\r\n el: facebookShareLink,\r\n name: 'Facebook Share Link',\r\n methods: {\r\n shareOnFacebook() {\r\n const u=location.href;\r\n const t=document.title;\r\n window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');\r\n return false;\r\n }\r\n }\r\n });\r\n}\r\n\r\n","'use strict';\r\nvar novicell = novicell || {};\r\nconst globalHeader = document.getElementById('js-site-navigation');\r\n\r\nif (globalHeader) {\r\n new Vue({\r\n el: globalHeader,\r\n name: 'globalHeader',\r\n data: {\r\n hasBackground: false,\r\n onlyBgOutsideTopBanner: false,\r\n burgerActive: false,\r\n showDropDown:{},\r\n showMobileDropDownLevel2:{},\r\n showMobileDropDownLevel3:{},\r\n languagePicker:null,\r\n languagePickerList:null,\r\n languagePickerActiveClass: 'language-picker--active',\r\n searchIsOpen: false,\r\n searchInput: null\r\n },\r\n mounted() {\r\n const pageHeader = document.getElementsByClassName('top-banner');\r\n \r\n if (!pageHeader.length) {\r\n this.hasBackground = true;\r\n } else {\r\n this.onlyBgOutsideTopBanner = true;\r\n this.handleScroll(pageHeader[0]);\r\n }\r\n document.addEventListener('scroll', () => {\r\n this.handleScroll(pageHeader[0]);\r\n });\r\n\r\n document.addEventListener('touchend', () => {\r\n this.hideAllDropDowns();\r\n });\r\n this.languagePicker = this.$refs.languagePicker;\r\n this.languagePickerList = this.$refs.languagePickerList;\r\n this.searchInput = this.$refs.searchInputField;\r\n },\r\n methods: {\r\n languagePickerClickTrigger(e){\r\n e.preventDefault();\r\n\r\n this.languagePickerCloseOverlayHandler();\r\n this.languagePicker.classList.add(this.languagePickerActiveClass);\r\n },\r\n languagePickerCloseOverlayHandler() {\r\n document.addEventListener('keydown', this.languagePickerHandleEsc, true);\r\n document.addEventListener('click', this.languagePickerHandleClick, true);\r\n },\r\n languagePickerCloseLanguagePicker() {\r\n document.removeEventListener('click', this.handleClick, true);\r\n },\r\n languagePickerHandleClick(e) {\r\n var targetElement = e.target;\r\n do {\r\n if (targetElement == this.languagePickerList) {\r\n // This is a click inside. Do nothing, just return.\r\n return;\r\n }\r\n targetElement = targetElement.parentNode;\r\n } while (targetElement);\r\n \r\n // This is a click outside.\r\n this.languagePickerCloseLanguagePicker();\r\n },\r\n handleScroll(pageHeader) {\r\n if (this.onlyBgOutsideTopBanner) {\r\n const pageHeaderRect = pageHeader.getBoundingClientRect();\r\n const globalHeaderRect = this.$el.getBoundingClientRect();\r\n this.hasBackground = (pageHeaderRect.top - globalHeaderRect.height) + pageHeaderRect.height <= 0;\r\n }\r\n },\r\n toggleBurgerActive() {\r\n this.burgerActive = !this.burgerActive;\r\n if(this.burgerActive) {\r\n this.hideAllMobileDropDownsLevel2();\r\n this.hideAllMobileDropDownsLevel3();\r\n this.foldOutMobileNavOnOpen();\r\n }\r\n novicell.helper.toggleClass(document.body, 'no-scroll');\r\n },\r\n stopProp(e){\r\n e.stopPropagation();\r\n },\r\n hideAllDropDowns(){\r\n Object.keys(this.showDropDown).forEach((key) =>{\r\n Vue.set(this.showDropDown, key, false);\r\n });\r\n },\r\n mobileFindTriggerAndClick(triggerParent){\r\n const triggerLevel = triggerParent.children;\r\n const triggerLevelArray = Array.prototype.slice.call(triggerLevel);\r\n const trigger = triggerLevelArray.filter(el => el.classList.contains('site-navigation-list__sub-navigation-toggle'))[0];\r\n if(trigger) {\r\n trigger.click();\r\n }\r\n },\r\n foldOutMobileNavOnOpen(){\r\n const activePage = this.$refs.selected;\r\n if(activePage){\r\n let activePageLevel = 4;\r\n if(activePage.classList.contains('sub-navigation__item--level-2')) {\r\n activePageLevel = 2;\r\n }\r\n if(activePage.classList.contains('sub-navigation__item--level-3')) {\r\n activePageLevel = 3;\r\n }\r\n // const activePageLevel = activePage.classList.contains('sub-navigation__item--level-2 ') ? 2 : 3;\r\n if(activePageLevel === 2) {\r\n const triggerParent = activePage.parentElement.parentElement.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent);\r\n }else if(activePageLevel === 3) {\r\n const triggerParent3 = activePage.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent3);\r\n const triggerParent2 = activePage.closest('.site-navigation-list__item');\r\n this.mobileFindTriggerAndClick(triggerParent2);\r\n }\r\n else if(activePageLevel === 4) {\r\n const triggerParent3 = activePage.parentElement.parentElement.parentElement.parentElement;\r\n this.mobileFindTriggerAndClick(triggerParent3);\r\n const triggerParent2 = activePage.closest('.site-navigation-list__item');\r\n this.mobileFindTriggerAndClick(triggerParent2);\r\n }\r\n }\r\n },\r\n hideAllMobileDropDownsLevel2(){\r\n Object.keys(this.showMobileDropDownLevel2).forEach((key) =>{\r\n Vue.set(this.showMobileDropDownLevel2, key, false);\r\n });\r\n },\r\n hideAllMobileDropDownsLevel3(){\r\n Object.keys(this.showMobileDropDownLevel3).forEach((key) =>{\r\n Vue.set(this.showMobileDropDownLevel3, key, false);\r\n });\r\n },\r\n toggleNavigation(e,elId) {\r\n var mediaQuery = window.matchMedia(\"(min-width: 1200px)\");\r\n if (mediaQuery.matches) { // If media query matches\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n let show = false;\r\n if(!this.showDropDown[elId]) {\r\n show = true;\r\n }\r\n this.hideAllDropDowns();\r\n Vue.set(this.showDropDown, elId, show);\r\n }\r\n },\r\n toggleMobileSubLevel3(elId) {\r\n let show = false;\r\n if(!this.showMobileDropDownLevel3[elId]) {\r\n show = true;\r\n }\r\n // this.hideAllMobileDropDownsLevel3();\r\n Vue.set(this.showMobileDropDownLevel3, elId, show);\r\n },\r\n toggleMobileSubLevel2(elId) {\r\n let show = false;\r\n if(!this.showMobileDropDownLevel2[elId]) {\r\n show = true;\r\n }\r\n // this.hideAllMobileDropDownsLevel2();\r\n Vue.set(this.showMobileDropDownLevel2, elId, show);\r\n },\r\n searchButtonClick(e,elId){\r\n if (!this.searchIsOpen) {\r\n this.openSearchOverlay();\r\n } else {\r\n this.closeSearchOverlay();\r\n }\r\n this.toggleNavigation(e,elId);\r\n },\r\n openSearchOverlay() {\r\n // document.addEventListener('keydown', handleEsc, true);\r\n document.addEventListener('click', this.searchHandleClick, true);\r\n document.body.classList.add('search-overlay-open');\r\n this.searchInput.focus();\r\n \r\n this.searchIsOpen = true;\r\n },\r\n closeSearchOverlay() {\r\n document.body.classList.remove('search-overlay-open');\r\n this.searchInput.blur();\r\n this.searchInput.value = '';\r\n // document.removeEventListener('keydown', handleEsc, true);\r\n document.removeEventListener('click', this.searchHandleClick, true);\r\n \r\n this.searchIsOpen = false;\r\n },\r\n searchHandleClick(e) {\r\n var targetElement = e.target;\r\n \r\n if (targetElement.closest('.js-search-overlay') || targetElement.closest('.js-search-overlay-trigger')) {\r\n return;\r\n }\r\n \r\n // This is a click outside.\r\n this.closeSearchOverlay();\r\n }\r\n }\r\n });\r\n}\r\n"]}