{"version":3,"sources":["Content/js/accordion.js","Content/js/AccordionV2.js","Content/js/cookie.js","Content/js/vendors/carousel-siema.js","Content/js/base/global.js","Content/js/base/siema-extended.js","Content/js/carousel-mobile-only-with-arrows.js","Content/js/carousel-with-thumbnails.js","Content/js/carousel-with-arrows.js","Content/js/carousel-mobile-only.js","Content/js/carousel-search-app.js","Content/js/filters.js","Content/js/header-carousel.js","Content/js/lazyload.js","Content/js/map-single-location.js","Content/js/mega-navigation.js","Content/js/scroll-in-animation.js","Content/js/search-location.js","Content/js/search-results.js","Content/js/service-group-filtering.js","Content/js/scrollspy.js","Content/js/web-chat.js"],"names":["document","addEventListener","event","isAccordion","querySelectorAll","isAccordionTitle","isAccordionContent","Array","prototype","forEach","call","el","i","classList","contains","remove","toggle","clickHandler","panelTabs","panelTab","togglePanel","panel","nextElementSibling","focusable","setAttribute","allPanelTabs","currentPanelTab","currentTarget","dataset","open","collapse","expand","style","maxHeight","add","scrollHeight","removeAttribute","accordions","length","accordion","openOnLoad","detectIE","openPanel","setTimeout","_typeof","o","Symbol","iterator","constructor","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","protoProps","staticProps","t","_toPrimitive","String","r","e","toPrimitive","Number","Siema","options","_this","this","config","mergeSettings","selector","querySelector","Error","resolveSlidesNumber","selectorWidth","offsetWidth","innerElements","slice","children","currentSlide","loop","startIndex","Math","max","min","perPage","transformProperty","webkitOrNot","method","bind","init","value","window","resizeHandler","draggable","pointerDown","drag","startX","endX","startY","letItGo","preventClick","touchstartHandler","touchendHandler","touchmoveHandler","mousedownHandler","mouseupHandler","mouseleaveHandler","mousemoveHandler","removeEventListener","attachEvents","overflow","direction","rtl","buildSliderFrame","onInit","widthItem","originalOffset","itemsToBuild","sliderFrame","createElement","width","concat","enableTransition","cursor","docFragment","createDocumentFragment","element","buildSliderFrameItem","cloneNode","appendChild","innerHTML","slideToCurrent","elm","elementContainer","cssFloat","viewport","innerWidth","innerOffset","offset","center","howManySlides","arguments","undefined","callback","beforeChange","isNewIndexClone","disableTransition","mirrorSlideIndex","mirrorSlideIndexOffset","moveTo","dragDistance","onChange","webkitTransition","easing","transition","duration","index","_this2","getCurrentOffset","requestAnimationFrame","movement","movementDistance","abs","howManySliderToSlide","multipleDrag","ceil","slideToNegativeClone","slideToPositiveClone","threshold","prev","next","ignoreSiema","indexOf","nodeName","stopPropagation","touches","pageX","pageY","updateAfterDrag","clearDrag","preventDefault","translateSliderFrame","currentOffset","dragOffset","getOffset","lowerIndex","lastItem","splice","item","shouldItShift","insert","restoreMarkup","detachEvents","slides","settings","userSttings","attrname","documentElement","transform","focusableElements","keyList","tab","escape","breakpoints","xs","sm","md","lg","xl","ua","navigator","userAgent","msie","parseInt","substring","trident","rv","edge","objectFitImageEls","stickyElements","objectFitImages","lazyloadPicturefillBackground","cssVars","Stickyfill","updatePagination","closest","addOrRemove","setAutoHeight","that","autoHeight","itemHeightList","height","push","apply","timeout","clearTimeout","addPagination","siemaPagination","className","_loop","btn","textContent","goTo","destroyPagination","siemaContainer","paginationToRemove","removeChild","updateThumbnail","round","addThumbnail","slideImages","siemaThumbnail","imgSrc","slide","getAttribute","siemaThumbnailCta","siemaThumbnailImg","insertAdjacentHTML","destroyThumbnail","addArrows","nextArrowCopy","prevArrowCopy","siemaArrows","prevArrow","nextArrow","insertBefore","destroyArrows","arrowsToRemove","updateArrows","firstChild","lastChild","showArrows","printCurrentSlide","containerSiema","siemaSlides","tabIndex","inert","carouselDestroyExtraMarkup","currentElement","carouselMobyleOnlyResetOnBreakPoint","mqCarouselMobyleOnly","matchMedia","addListener","matches","destroy","bp","mobileCarousels","carouselMobyleOnly","numItems","isIe","600","1024","thisCarousel","onComplete","createCarousels","destroyCarousels","siemaCarousels","carouselElements","0","768","1200","dispatchEvent","Event","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","n","toString","name","from","test","iter","isArray","len","arr2","countInArray","array","what","count","filterSectionContainers","filterSectionContainer","filterInputsContainers","filterItems","filters","filterInputsContainer","filterEls","filterEl","resetFilter","checkedFilterEls","checked","map","checkedFilterEl","nodesFilteredGroups","j","filter","_filters","_i","results","filterItem","filterItemFilters","includes","concatArr","_i3","_nodesFilteredGroups","nodesFilteredGroup","nodesFilteredGroupSet","Set","uniqArray","itemRepitation","carousels","items","control","autoplay","autoChange","play","setInterval","click","pagination","clearInterval","lazyImages","lazyImageObserver","IntersectionObserver","entries","observer","entry","isIntersecting","lazyImage","src","srcset","unobserve","observe","_regeneratorRuntime","define","wrap","Generator","a","create","c","Context","makeInvokeMethod","tryCatch","type","arg","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","_invoke","AsyncIterator","invoke","u","h","resolve","__await","then","callInvokeWithMethodAndArg","f","s","done","delegate","maybeInvokeDelegate","y","sent","_sent","dispatchException","abrupt","p","l","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","values","isNaN","hasOwnProperty","asyncIterator","toStringTag","d","getPrototypeOf","v","g","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","charAt","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","searchLocationModules","currentEl","location","lat","parseFloat","lng","zoom","singleMap","initMap","data","_x","_x2","_initMap","_callee","_yield$google$maps$im","Map","_context","google","maps","importLibrary","setMarker","Marker","position","detectScrollNavPosition","navBarEl","pageYOffset","detectAlertBar","alertBar","conditionSubNav","navBp","mqNav","navigationBar","burgerButtons","navPanelCtas","backdropEl","burgerButton","mobileNavigation","close","onkeydown","evt","keyCode","navPanelCta","closeNavPanelCta","parentEl","navigationPanel","cta","ctas","isParenElOpen","subNavItems","navigationContainer","isNavigationOpen","body","pageContainerDirectChildrens","navigationGroup","animatedEls","reduceMotionPreference","observerConfig","root","rootMargin","intersectionObserver","animatedEl","_createForOfIteratorHelper","allowArrayLike","it","F","_e","normalCompletion","didErr","step","_e2","_ref","allSearchModules","Autocomplete","searchModule","searchForm","types","componentRestrictions","country","input","autoComplete","locationForm","latInput","longInput","autoCompleteInput","autocomplete","optionSelected","requiresAddressLookup","onPlaceChanged","setFirstSuggestion","setClickedLocation","checkRequiresAddressLookup","currentLocationCta","geolocation","getCurrentLocation","place","getPlace","geometry","pacItem","firstResult","placeName","placeAddress","geocoder","Geocoder","geocode","address","region","status","GeocoderStatus","OK","submit","success","loadingMsg","errorMsgEl","latlng","coords","latitude","longitude","result","_step","resultsData","address_components","_iterator","addressComponent","short_name","long_name","focus","code","getCurrentPosition","positionError","toggleLoadMore","remainingPageCount","loadMoreBtn","display","allSearchFilters","getElementById","currentPage","queryString","search","request","XMLHttpRequest","onload","JSON","parse","responseText","loadMoreItems","hasTag","Tag","hasMinutes","MinutesToRead","hasLastUpdated","LastUpdated","itemEl","Url","Title","Date","toLocaleDateString","Summary","container","join","onerror","send","searchLocationForm","cardFilterModules","currentCardFilterModule","cardFilterInputs","currentCardFilterInput","filtering","loadMore","mapContainer","selectedLat","selectedLng","locations","title","url","description","mapBtn","cardContainer","btnIcon","btnText","isHidden","switchTypeForm","latitudeInput","longitudeInput","postCodeInput","currentFilter","currentPageSize","module","allItems","itemsToFilter","itemsForPage","blur","clearMarkers","allActiveMarkers","_x3","_x4","_x5","centreLat","centreLng","loc","infoWindowContent","infoWindow","InfoWindow","content","marker","setMap","scrollSpySections","scrollspyNavigation","navLinks","scrollSpy","updateSectionPositions","windowMatchBp","updateNavCurrentPosition","currentNavLink","scrollToSection","sectionPositions","targetId","split","scroll","left","top","behavior","currentScrollSpySection","id","getSectionsPosition","mainNavigation","offsetTop","offsetHeight","getNavItemsPosition","offsetLeft","sections","nav","containerPadding","intersectingSection","intersectingSectionId","newScrollPosition","scrollLeft","scrollBy","notIntersectingSection","section"],"mappings":"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","file":"scriptsBundleMain.js","sourcesContent":["(function () {\r\n\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n //console.log('loaded')\r\n const isAccordion = document.querySelectorAll(\".is-accordion\");\r\n const isAccordionTitle = document.querySelectorAll(\".accordion-title\");\r\n const isAccordionContent = document.querySelectorAll(\".accordion-content\");\r\n\r\n Array.prototype.forEach.call(isAccordionTitle, function (el, i) {\r\n\r\n isAccordionTitle[i].addEventListener(\"click\", () => {\r\n //console.log('clicked')\r\n //isAccordionContent.style.display = \"block\";\r\n if (isAccordionContent[i].classList.contains('hidden')) {\r\n isAccordionContent[i].classList.remove('hidden');\r\n } else {\r\n isAccordionContent[i].classList.toggle('hidden');\r\n }\r\n if (isAccordion[i].classList.contains('is-accordion-active')) {\r\n isAccordion[i].classList.remove('is-accordion-active');\r\n } else {\r\n isAccordion[i].classList.toggle('is-accordion-active');\r\n }\r\n }); //end click\r\n }); //end forEach\r\n }); //end doc load\r\n})(); //calls function\r\n\r\n//trigger a change to js","document.addEventListener(\"DOMContentLoaded\", () => {\r\n const clickHandler = panelTabs => {\r\n Array.prototype.forEach.call(panelTabs, panelTab => {\r\n panelTab.addEventListener('click', event => {\r\n togglePanel(event, panelTabs);\r\n });\r\n\r\n const panel = panelTab.nextElementSibling;\r\n const focusable = panel.querySelectorAll('a, button')\r\n\r\n focusable.forEach(el => {\r\n el.setAttribute('tabIndex', -1)\r\n })\r\n });\r\n }\r\n\r\n const togglePanel = (event, allPanelTabs) => {\r\n const currentPanelTab = event.currentTarget;\r\n if (currentPanelTab.dataset.open === 'true') currentPanelTab.dataset.open = 'false';\r\n\r\n if (currentPanelTab.classList.contains('is-open')) {\r\n collapse(currentPanelTab);\r\n } else {\r\n Array.prototype.forEach.call(allPanelTabs, panelTab => {\r\n if (panelTab.dataset.open === 'true') panelTab.dataset.open = 'false';\r\n collapse(panelTab);\r\n });\r\n\r\n expand(currentPanelTab);\r\n }\r\n }\r\n\r\n const collapse = panelTab => {\r\n const panel = panelTab.nextElementSibling;\r\n\r\n panelTab.classList.remove('is-open');\r\n panelTab.setAttribute('aria-expanded', 'false');\r\n panel.setAttribute('aria-hidden', 'true');\r\n panel.style.maxHeight = null;\r\n\r\n const focusable = panel.querySelectorAll('a, button')\r\n\r\n focusable.forEach(el => {\r\n el.setAttribute('tabIndex', -1)\r\n })\r\n };\r\n\r\n const expand = panelTab => {\r\n const panel = panelTab.nextElementSibling;\r\n\r\n panelTab.classList.add('is-open');\r\n panelTab.setAttribute('aria-expanded', 'true');\r\n panel.setAttribute('aria-hidden', 'false');\r\n panel.style.maxHeight = panel.scrollHeight + 'px';\r\n\r\n const focusable = panel.querySelectorAll('a, button')\r\n\r\n focusable.forEach(el => {\r\n el.removeAttribute('tabIndex')\r\n })\r\n };\r\n\r\n const accordions = document.querySelectorAll('.accordion-block');\r\n\r\n if (accordions.length > 0) {\r\n Array.prototype.forEach.call(accordions, accordion => {\r\n\r\n const openOnLoad = accordion.querySelectorAll('[data-open]');\r\n const panelTabs = accordion.querySelectorAll('.panel-title');\r\n\r\n if (openOnLoad.length > 0) {\r\n if (detectIE()) {\r\n // delay needed for CSS Vars polyfill to do it's magic on IE11 otherwise height is calculated incorrectly\r\n Array.prototype.forEach.call(openOnLoad, openPanel => {\r\n setTimeout(function () {\r\n expand(openPanel)\r\n }, 500);\r\n });\r\n } else {\r\n Array.prototype.forEach.call(openOnLoad, openPanel => {\r\n expand(openPanel)\r\n });\r\n }\r\n }\r\n\r\n if (panelTabs.length > 0) {\r\n clickHandler(panelTabs);\r\n }\r\n });\r\n }\r\n});\r\n","//document.addEventListener('DOMContentLoaded', () => {\r\n\r\n// // helper functions\r\n// const getCookie = cname => {\r\n// const name = cname + \"=\";\r\n// const ca = document.cookie.split(';');\r\n// for (let i = 0; i < ca.length; i++) {\r\n// let c = ca[i];\r\n// while (c.charAt(0) == ' ') c = c.substring(1);\r\n// if (c.indexOf(name) != -1) return c.substring(name.length, c.length);\r\n// }\r\n// return \"\";\r\n// }\r\n\r\n// const setCookie = (cname, cvalue, exdays) => {\r\n// const d = new Date();\r\n// d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));\r\n// const expires = \"expires=\" + d.toUTCString();\r\n// let cookie = cname + \"=\" + cvalue + \"; path=/;\" + expires + \";\";\r\n\r\n// if (window.location.hostname.indexOf('rethink.org') !== -1) {\r\n// cookie += \"domain=rethink.org;\";\r\n// }\r\n\r\n// document.cookie = cookie;\r\n// }\r\n\r\n// const showCookieBanner = () => {\r\n// cookieBanner.setAttribute('aria-hidden', 'false');\r\n// cookieBanner.classList.add('is-open');\r\n// }\r\n\r\n// const hideCookieBanner = () => {\r\n// cookieBanner.setAttribute('aria-hidden', 'true');\r\n// cookieBanner.classList.remove('is-open');\r\n// };\r\n\r\n// const rethinkCookiePolicy = \"Rethink_Cookie_Policy\";\r\n// const cookieDetails = getCookie(rethinkCookiePolicy);\r\n// const cookieBanner = document.querySelector('#cookieBanner');\r\n\r\n\r\n// // cookie banner control\r\n// if (cookieBanner !== null && cookieDetails === \"\") {\r\n// const cookieBannerBtns = cookieBanner.querySelectorAll('button');\r\n\r\n// window.setTimeout(showCookieBanner, 1500);\r\n\r\n// Array.prototype.forEach.call(cookieBannerBtns, cookieBannerBtn => {\r\n// cookieBannerBtn.addEventListener('click', () => {\r\n// var cookieAcceptance = '';\r\n// if (cookieBannerBtn.dataset.id === \"mandatory\") {\r\n// //mandatory = 1\r\n// cookieAcceptance = '1';\r\n// setCookie(rethinkCookiePolicy, \"1\", 365);\r\n// } else {\r\n// //all cookies = 2\r\n// cookieAcceptance = '2';\r\n// setCookie(rethinkCookiePolicy, \"2\", 365);\r\n// }\r\n\r\n// if (window.dataLayer) {\r\n// window.dataLayer.push({ 'rethinkCookieAcceptanceValue': cookieAcceptance });\r\n// window.dataLayer.push({ 'event': 'RethinkCookiePolicyUpdated' });\r\n// }\r\n\r\n// hideCookieBanner();\r\n// });\r\n// });\r\n// }\r\n\r\n\r\n// // cookie settings page\r\n// const settingSwitch = document.querySelector('#otherCookiesCheckbox');\r\n// const settingText = document.querySelector('#other-checkbox-text');\r\n// const saveBtn = document.querySelector('#saveSettingsBtn');\r\n\r\n// if (settingSwitch !== null) {\r\n\r\n// const setConsentTrue = () => {\r\n// settingSwitch.checked = true;\r\n// settingText.innerHTML = \"All cookies\";\r\n// saveBtn.setAttribute('data-consent', '2');\r\n// }\r\n\r\n// const setConsentFalse = () => {\r\n// settingSwitch.checked = false;\r\n// settingText.innerHTML = \"All mandatory cookies\";\r\n// saveBtn.setAttribute('data-consent', '1');\r\n// }\r\n\r\n// // check for cookie status on page load and set initial switch position and text\r\n// if (cookieDetails === \"2\") {\r\n// setConsentTrue();\r\n// } else {\r\n// setConsentFalse();\r\n// }\r\n\r\n// // save settings\r\n// const saveSettings = event => {\r\n// const consent = event.target.dataset.consent;\r\n \r\n// if (consent === '2') {\r\n// setCookie(rethinkCookiePolicy, \"2\", 365);\r\n \r\n// } else {\r\n// // expire all cookies\r\n// document.cookie.split(\";\").forEach(function (c) {\r\n// document.cookie = c.replace(/^ +/, \"\").replace(/=.*/, \"=;expires=\" + new Date().toUTCString() + \";path=/\");\r\n// });\r\n\r\n// setCookie(rethinkCookiePolicy, \"1\", 365);\r\n// }\r\n\r\n// if (window.dataLayer) {\r\n// window.dataLayer.push({ 'rethinkCookieAcceptanceValue': consent });\r\n// window.dataLayer.push({ 'event': 'RethinkCookiePolicyUpdated' });\r\n// }\r\n\r\n// // reload page to refresh updated cookies\r\n// window.location.reload(true);\r\n// };\r\n\r\n// settingSwitch.addEventListener('change', () => {\r\n// if (settingSwitch.checked === true) {\r\n// setConsentTrue();\r\n// } else {\r\n// setConsentFalse();\r\n// }\r\n// });\r\n\r\n// saveBtn.addEventListener('click', event => {\r\n// saveSettings(event);\r\n// });\r\n// }\r\n//});\r\n\r\n","//See KSS doc\r\n\r\n/**\r\n * Hi :-) This is a class representing a Siema.\r\n */\r\nclass Siema {\r\n /**\r\n * Create a Siema.\r\n * @param {Object} options - Optional settings object.\r\n */\r\n constructor(options) {\r\n // Merge defaults with user's settings\r\n this.config = Siema.mergeSettings(options);\r\n\r\n // Resolve selector's type\r\n this.selector = typeof this.config.selector === 'string' ? document.querySelector(this.config.selector) : this.config.selector;\r\n\r\n // Early throw if selector doesn't exists\r\n if (this.selector === null) {\r\n throw new Error('Something wrong with your selector 😭');\r\n }\r\n\r\n // update perPage number and offset dependable of user value\r\n this.resolveSlidesNumber();\r\n\r\n // Create global references\r\n this.selectorWidth = this.selector.offsetWidth;\r\n this.innerElements = [].slice.call(this.selector.children);\r\n this.currentSlide = this.config.loop ?\r\n this.config.startIndex % this.innerElements.length :\r\n Math.max(0, Math.min(this.config.startIndex, this.innerElements.length - this.perPage));\r\n this.transformProperty = Siema.webkitOrNot();\r\n\r\n // Bind all event handlers for referencability\r\n ['resizeHandler', 'touchstartHandler', 'touchendHandler', 'touchmoveHandler', 'mousedownHandler', 'mouseupHandler', 'mouseleaveHandler', 'mousemoveHandler', 'clickHandler'].forEach(method => {\r\n this[method] = this[method].bind(this);\r\n });\r\n\r\n // Build markup and apply required styling to elements\r\n this.init();\r\n }\r\n\r\n\r\n /**\r\n * Overrides default settings with custom ones.\r\n * @param {Object} options - Optional settings object.\r\n * @returns {Object} - Custom Siema settings.\r\n */\r\n static mergeSettings(options) {\r\n const settings = {\r\n selector: '.siema',\r\n duration: 200,\r\n easing: 'ease-out',\r\n center: false,\r\n perPage: 1,\r\n offset: 0,\r\n startIndex: 0,\r\n draggable: true,\r\n multipleDrag: true,\r\n threshold: 20,\r\n loop: false,\r\n rtl: false,\r\n onInit: () => { },\r\n onChange: () => { },\r\n };\r\n\r\n const userSttings = options;\r\n for (const attrname in userSttings) {\r\n settings[attrname] = userSttings[attrname];\r\n }\r\n\r\n return settings;\r\n }\r\n\r\n\r\n /**\r\n * Determine if browser supports unprefixed transform property.\r\n * Google Chrome since version 26 supports prefix-less transform\r\n * @returns {string} - Transform property supported by client.\r\n */\r\n static webkitOrNot() {\r\n const style = document.documentElement.style;\r\n if (typeof style.transform === 'string') {\r\n return 'transform';\r\n }\r\n return 'WebkitTransform';\r\n }\r\n\r\n /**\r\n * Attaches listeners to required events.\r\n */\r\n attachEvents() {\r\n // Resize element on window resize\r\n window.addEventListener('resize', this.resizeHandler);\r\n\r\n // If element is draggable / swipable, add event handlers\r\n if (this.config.draggable) {\r\n // Keep track pointer hold and dragging distance\r\n this.pointerDown = false;\r\n this.drag = {\r\n startX: 0,\r\n endX: 0,\r\n startY: 0,\r\n letItGo: null,\r\n preventClick: false,\r\n };\r\n\r\n // Touch events\r\n this.selector.addEventListener('touchstart', this.touchstartHandler);\r\n this.selector.addEventListener('touchend', this.touchendHandler);\r\n this.selector.addEventListener('touchmove', this.touchmoveHandler);\r\n\r\n // Mouse events\r\n this.selector.addEventListener('mousedown', this.mousedownHandler);\r\n this.selector.addEventListener('mouseup', this.mouseupHandler);\r\n this.selector.addEventListener('mouseleave', this.mouseleaveHandler);\r\n this.selector.addEventListener('mousemove', this.mousemoveHandler);\r\n\r\n // Click\r\n this.selector.addEventListener('click', this.clickHandler);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Detaches listeners from required events.\r\n */\r\n detachEvents() {\r\n window.removeEventListener('resize', this.resizeHandler);\r\n this.selector.removeEventListener('touchstart', this.touchstartHandler);\r\n this.selector.removeEventListener('touchend', this.touchendHandler);\r\n this.selector.removeEventListener('touchmove', this.touchmoveHandler);\r\n this.selector.removeEventListener('mousedown', this.mousedownHandler);\r\n this.selector.removeEventListener('mouseup', this.mouseupHandler);\r\n this.selector.removeEventListener('mouseleave', this.mouseleaveHandler);\r\n this.selector.removeEventListener('mousemove', this.mousemoveHandler);\r\n this.selector.removeEventListener('click', this.clickHandler);\r\n }\r\n\r\n\r\n /**\r\n * Builds the markup and attaches listeners to required events.\r\n */\r\n init() {\r\n this.attachEvents();\r\n\r\n // hide everything out of selector's boundaries\r\n this.selector.style.overflow = 'hidden';\r\n\r\n // rtl or ltr\r\n this.selector.style.direction = this.config.rtl ? 'rtl' : 'ltr';\r\n\r\n // build a frame and slide to a currentSlide\r\n this.buildSliderFrame();\r\n\r\n this.config.onInit.call(this);\r\n }\r\n\r\n /**\r\n * Build a sliderFrame and slide to a current item.\r\n */\r\n buildSliderFrame() {\r\n this.widthItem = this.selectorWidth / this.perPage * (1 - this.originalOffset);\r\n const itemsToBuild = this.config.loop ? this.innerElements.length + (2 * this.perPage) : this.innerElements.length;\r\n\r\n // Create frame and apply styling\r\n this.sliderFrame = document.createElement('div');\r\n this.sliderFrame.style.width = `${this.widthItem * itemsToBuild}px`;\r\n this.enableTransition();\r\n\r\n if (this.config.draggable) {\r\n this.selector.style.cursor = '-webkit-grab';\r\n }\r\n\r\n // Create a document fragment to put slides into it\r\n const docFragment = document.createDocumentFragment();\r\n\r\n // Loop through the slides, add styling and add them to document fragment\r\n if (this.config.loop) {\r\n for (let i = this.innerElements.length - this.perPage; i < this.innerElements.length; i++) {\r\n const element = this.buildSliderFrameItem(this.innerElements[i].cloneNode(true));\r\n docFragment.appendChild(element);\r\n }\r\n }\r\n for (let i = 0; i < this.innerElements.length; i++) {\r\n const element = this.buildSliderFrameItem(this.innerElements[i]);\r\n docFragment.appendChild(element);\r\n }\r\n if (this.config.loop) {\r\n for (let i = 0; i < this.perPage; i++) {\r\n const element = this.buildSliderFrameItem(this.innerElements[i].cloneNode(true));\r\n docFragment.appendChild(element);\r\n }\r\n }\r\n\r\n // Add fragment to the frame\r\n this.sliderFrame.appendChild(docFragment);\r\n\r\n // Clear selector (just in case something is there) and insert a frame\r\n this.selector.innerHTML = '';\r\n this.selector.appendChild(this.sliderFrame);\r\n\r\n // Go to currently active slide after initial build\r\n this.slideToCurrent();\r\n }\r\n\r\n buildSliderFrameItem(elm) {\r\n const elementContainer = document.createElement('div');\r\n elementContainer.style.cssFloat = this.config.rtl ? 'right' : 'left';\r\n elementContainer.style.float = this.config.rtl ? 'right' : 'left';\r\n elementContainer.style.width = `${this.config.loop ? 100 / (this.innerElements.length + (this.perPage * 2)) : 100 / (this.innerElements.length)}%`;\r\n elementContainer.appendChild(elm);\r\n return elementContainer;\r\n }\r\n\r\n /**\r\n * Determinates slides number and innerOffset accordingly to clients viewport.\r\n */\r\n resolveSlidesNumber() {\r\n if (typeof this.config.perPage === 'number') {\r\n this.perPage = this.config.perPage;\r\n }\r\n else if (typeof this.config.perPage === 'object') {\r\n this.perPage = 1;\r\n for (const viewport in this.config.perPage) {\r\n if (window.innerWidth >= viewport) {\r\n this.perPage = this.config.perPage[viewport];\r\n }\r\n }\r\n }\r\n\r\n // Setup original offset and innerOffset\r\n // Keep original offset for witdhItem calculation\r\n this.originalOffset = 0;\r\n this.innerOffset = 0;\r\n\r\n if (typeof this.config.offset === 'number') {\r\n this.originalOffset = this.config.offset >= 1 ? 0 : this.config.offset;\r\n this.innerOffset = this.config.center ? this.originalOffset / 2 * this.perPage : this.originalOffset;\r\n return;\r\n }\r\n\r\n if (typeof this.config.offset === 'object') {\r\n for (const viewport in this.config.offset) {\r\n if (window.innerWidth >= viewport) {\r\n this.originalOffset = this.config.offset[viewport] === 1 ? 0 : this.config.offset[viewport];\r\n this.innerOffset = this.config.center ? this.originalOffset / 2 * this.perPage : this.originalOffset;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Go to previous slide.\r\n * @param {number} [howManySlides=1] - How many items to slide backward.\r\n * @param {function} callback - Optional callback function.\r\n */\r\n prev(howManySlides = 1, callback) {\r\n // early return when there is nothing to slide\r\n if (this.innerElements.length <= this.perPage) {\r\n return;\r\n }\r\n\r\n const beforeChange = this.currentSlide;\r\n\r\n if (this.config.loop) {\r\n const isNewIndexClone = this.currentSlide - howManySlides < 0;\r\n if (isNewIndexClone) {\r\n this.disableTransition();\r\n\r\n const mirrorSlideIndex = this.currentSlide + this.innerElements.length;\r\n const mirrorSlideIndexOffset = this.perPage;\r\n const moveTo = mirrorSlideIndex + mirrorSlideIndexOffset;\r\n const offset = (this.config.rtl ? 1 : -1) * moveTo * this.widthItem;\r\n const dragDistance = this.config.draggable ? this.drag.endX - this.drag.startX : 0;\r\n\r\n this.sliderFrame.style[this.transformProperty] = `translate3d(${offset + dragDistance}px, 0, 0)`;\r\n this.currentSlide = mirrorSlideIndex - howManySlides;\r\n }\r\n else {\r\n this.currentSlide = this.currentSlide - howManySlides;\r\n }\r\n }\r\n else {\r\n this.currentSlide = Math.max(this.currentSlide - howManySlides, 0);\r\n }\r\n\r\n if (beforeChange !== this.currentSlide) {\r\n this.slideToCurrent(this.config.loop);\r\n this.config.onChange.call(this);\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Go to next slide.\r\n * @param {number} [howManySlides=1] - How many items to slide forward.\r\n * @param {function} callback - Optional callback function.\r\n */\r\n next(howManySlides = 1, callback) {\r\n // early return when there is nothing to slide\r\n if (this.innerElements.length <= this.perPage) {\r\n return;\r\n }\r\n\r\n const beforeChange = this.currentSlide;\r\n\r\n if (this.config.loop) {\r\n const isNewIndexClone = this.currentSlide + howManySlides > this.innerElements.length - this.perPage;\r\n if (isNewIndexClone) {\r\n this.disableTransition();\r\n\r\n const mirrorSlideIndex = this.currentSlide - this.innerElements.length;\r\n const mirrorSlideIndexOffset = this.perPage;\r\n const moveTo = mirrorSlideIndex + mirrorSlideIndexOffset;\r\n const offset = (this.config.rtl ? 1 : -1) * moveTo * this.widthItem;\r\n const dragDistance = this.config.draggable ? this.drag.endX - this.drag.startX : 0;\r\n\r\n this.sliderFrame.style[this.transformProperty] = `translate3d(${offset + dragDistance}px, 0, 0)`;\r\n this.currentSlide = mirrorSlideIndex + howManySlides;\r\n }\r\n else {\r\n this.currentSlide = this.currentSlide + howManySlides;\r\n }\r\n }\r\n else {\r\n this.currentSlide = Math.min(this.currentSlide + howManySlides, this.innerElements.length - this.perPage);\r\n }\r\n if (beforeChange !== this.currentSlide) {\r\n this.slideToCurrent(this.config.loop);\r\n this.config.onChange.call(this);\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Disable transition on sliderFrame.\r\n */\r\n disableTransition() {\r\n this.sliderFrame.style.webkitTransition = `all 0ms ${this.config.easing}`;\r\n this.sliderFrame.style.transition = `all 0ms ${this.config.easing}`;\r\n }\r\n\r\n\r\n /**\r\n * Enable transition on sliderFrame.\r\n */\r\n enableTransition() {\r\n this.sliderFrame.style.webkitTransition = `all ${this.config.duration}ms ${this.config.easing}`;\r\n this.sliderFrame.style.transition = `all ${this.config.duration}ms ${this.config.easing}`;\r\n }\r\n\r\n\r\n /**\r\n * Go to slide with particular index\r\n * @param {number} index - Item index to slide to.\r\n * @param {function} callback - Optional callback function.\r\n */\r\n goTo(index, callback) {\r\n if (this.innerElements.length <= this.perPage) {\r\n return;\r\n }\r\n const beforeChange = this.currentSlide;\r\n this.currentSlide = this.config.loop ?\r\n index % this.innerElements.length :\r\n Math.min(Math.max(index, 0), this.innerElements.length - this.perPage);\r\n if (beforeChange !== this.currentSlide) {\r\n this.slideToCurrent();\r\n this.config.onChange.call(this);\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Moves sliders frame to position of currently active slide\r\n */\r\n slideToCurrent(enableTransition) {\r\n const offset = this.getCurrentOffset();\r\n\r\n if (enableTransition) {\r\n // This one is tricky, I know but this is a perfect explanation:\r\n // https://youtu.be/cCOL7MC4Pl0\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => {\r\n this.enableTransition();\r\n this.sliderFrame.style[this.transformProperty] = `translate3d(${(this.config.rtl ? 1 : -1) * offset}px, 0, 0)`;\r\n });\r\n });\r\n }\r\n else {\r\n this.sliderFrame.style[this.transformProperty] = `translate3d(${(this.config.rtl ? 1 : -1) * offset}px, 0, 0)`;\r\n }\r\n }\r\n\r\n /**\r\n * Recalculate drag /swipe event and reposition the frame of a slider\r\n */\r\n updateAfterDrag() {\r\n const movement = (this.config.rtl ? -1 : 1) * (this.drag.endX - this.drag.startX);\r\n const movementDistance = Math.abs(movement);\r\n const howManySliderToSlide = this.config.multipleDrag ? Math.ceil(movementDistance / this.widthItem) : 1;\r\n\r\n const slideToNegativeClone = movement > 0 && this.currentSlide - howManySliderToSlide < 0;\r\n const slideToPositiveClone = movement < 0 && this.currentSlide + howManySliderToSlide > this.innerElements.length - this.perPage;\r\n\r\n if (movement > 0 && movementDistance > this.config.threshold && this.innerElements.length > this.perPage) {\r\n this.prev(howManySliderToSlide);\r\n }\r\n else if (movement < 0 && movementDistance > this.config.threshold && this.innerElements.length > this.perPage) {\r\n this.next(howManySliderToSlide);\r\n }\r\n this.slideToCurrent(slideToNegativeClone || slideToPositiveClone);\r\n }\r\n\r\n\r\n /**\r\n * When window resizes, resize slider components as well\r\n */\r\n resizeHandler() {\r\n // update perPage number dependable of user value\r\n this.resolveSlidesNumber();\r\n\r\n // relcalculate currentSlide\r\n // prevent hiding items when browser width increases\r\n if (this.currentSlide + this.perPage > this.innerElements.length) {\r\n this.currentSlide = this.innerElements.length <= this.perPage ? 0 : this.innerElements.length - this.perPage;\r\n }\r\n\r\n this.selectorWidth = this.selector.offsetWidth;\r\n\r\n this.buildSliderFrame();\r\n }\r\n\r\n\r\n /**\r\n * Clear drag after touchend and mouseup event\r\n */\r\n clearDrag() {\r\n this.drag = {\r\n startX: 0,\r\n endX: 0,\r\n startY: 0,\r\n letItGo: null,\r\n preventClick: this.drag.preventClick\r\n };\r\n }\r\n\r\n\r\n /**\r\n * touchstart event handler\r\n */\r\n touchstartHandler(e) {\r\n // Prevent dragging / swiping on inputs, selects and textareas\r\n const ignoreSiema = ['TEXTAREA', 'OPTION', 'INPUT', 'SELECT'].indexOf(e.target.nodeName) !== -1;\r\n if (ignoreSiema) {\r\n return;\r\n }\r\n\r\n e.stopPropagation();\r\n this.pointerDown = true;\r\n this.drag.startX = e.touches[0].pageX;\r\n this.drag.startY = e.touches[0].pageY;\r\n }\r\n\r\n\r\n /**\r\n * touchend event handler\r\n */\r\n touchendHandler(e) {\r\n e.stopPropagation();\r\n this.pointerDown = false;\r\n this.enableTransition();\r\n if (this.drag.endX) {\r\n this.updateAfterDrag();\r\n }\r\n this.clearDrag();\r\n }\r\n\r\n\r\n /**\r\n * touchmove event handler\r\n */\r\n touchmoveHandler(e) {\r\n e.stopPropagation();\r\n\r\n if (this.drag.letItGo === null) {\r\n this.drag.letItGo = Math.abs(this.drag.startY - e.touches[0].pageY) < Math.abs(this.drag.startX - e.touches[0].pageX);\r\n }\r\n\r\n if (this.pointerDown && this.drag.letItGo) {\r\n e.preventDefault();\r\n this.drag.endX = e.touches[0].pageX;\r\n this.translateSliderFrame();\r\n }\r\n }\r\n\r\n /**\r\n * mousedown event handler\r\n */\r\n mousedownHandler(e) {\r\n // Prevent dragging / swiping on inputs, selects and textareas\r\n const ignoreSiema = ['TEXTAREA', 'OPTION', 'INPUT', 'SELECT'].indexOf(e.target.nodeName) !== -1;\r\n if (ignoreSiema) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.pointerDown = true;\r\n this.drag.startX = e.pageX;\r\n }\r\n\r\n\r\n /**\r\n * mouseup event handler\r\n */\r\n mouseupHandler(e) {\r\n e.stopPropagation();\r\n this.pointerDown = false;\r\n this.selector.style.cursor = '-webkit-grab';\r\n this.enableTransition();\r\n if (this.drag.endX) {\r\n this.updateAfterDrag();\r\n }\r\n this.clearDrag();\r\n }\r\n\r\n\r\n /**\r\n * mousemove event handler\r\n */\r\n mousemoveHandler(e) {\r\n e.preventDefault();\r\n if (this.pointerDown) {\r\n // if dragged element is a link\r\n // mark preventClick prop as a true\r\n // to detemine about browser redirection later on\r\n if (e.target.nodeName === 'A') {\r\n this.drag.preventClick = true;\r\n }\r\n\r\n this.drag.endX = e.pageX;\r\n this.selector.style.cursor = '-webkit-grabbing';\r\n\r\n this.translateSliderFrame();\r\n }\r\n }\r\n\r\n /**\r\n * mouseleave event handler\r\n */\r\n mouseleaveHandler(e) {\r\n if (this.pointerDown) {\r\n this.pointerDown = false;\r\n this.selector.style.cursor = '-webkit-grab';\r\n this.drag.endX = e.pageX;\r\n this.drag.preventClick = false;\r\n this.enableTransition();\r\n this.updateAfterDrag();\r\n this.clearDrag();\r\n }\r\n }\r\n\r\n /**\r\n * Get currentOffset based on current slide and innerOffset\r\n * @returns {number}\r\n */\r\n getCurrentOffset() {\r\n const currentSlide = this.config.loop ? this.currentSlide + this.perPage : this.currentSlide;\r\n return this.config.center ? currentSlide * this.widthItem - this.selectorWidth / this.perPage * this.innerOffset : currentSlide * this.widthItem;\r\n }\r\n\r\n /**\r\n * Get new offset based on currentOffset and dragged value\r\n * @returns {number}\r\n */\r\n getOffset() {\r\n const currentOffset = this.getCurrentOffset();\r\n const dragOffset = (this.drag.endX - this.drag.startX);\r\n return this.config.rtl ? currentOffset + dragOffset : currentOffset - dragOffset;\r\n }\r\n\r\n /**\r\n * Apply translate3d on carousel with new offset calculation\r\n *\r\n */\r\n translateSliderFrame() {\r\n this.sliderFrame.style.webkitTransition = `all 0ms ${this.config.easing}`;\r\n this.sliderFrame.style.transition = `all 0ms ${this.config.easing}`;\r\n\r\n const offset = this.getOffset();\r\n this.sliderFrame.style[this.transformProperty] = `translate3d(${(this.config.rtl ? 1 : -1) * offset}px, 0, 0)`;\r\n }\r\n\r\n /**\r\n * click event handler\r\n */\r\n clickHandler(e) {\r\n // if the dragged element is a link\r\n // prevent browsers from folowing the link\r\n if (this.drag.preventClick) {\r\n e.preventDefault();\r\n }\r\n this.drag.preventClick = false;\r\n }\r\n\r\n\r\n /**\r\n * Remove item from carousel.\r\n * @param {number} index - Item index to remove.\r\n * @param {function} callback - Optional callback to call after remove.\r\n */\r\n remove(index, callback) {\r\n if (index < 0 || index >= this.innerElements.length) {\r\n throw new Error('Item to remove doesn\\'t exist 😭');\r\n }\r\n\r\n // Shift sliderFrame back by one item when:\r\n // 1. Item with lower index than currenSlide is removed.\r\n // 2. Last item is removed.\r\n const lowerIndex = index < this.currentSlide;\r\n const lastItem = this.currentSlide + this.perPage - 1 === index;\r\n\r\n if (lowerIndex || lastItem) {\r\n this.currentSlide--;\r\n }\r\n\r\n this.innerElements.splice(index, 1);\r\n\r\n // build a frame and slide to a currentSlide\r\n this.buildSliderFrame();\r\n\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Insert item to carousel at particular index.\r\n * @param {HTMLElement} item - Item to insert.\r\n * @param {number} index - Index of new new item insertion.\r\n * @param {function} callback - Optional callback to call after insert.\r\n */\r\n insert(item, index, callback) {\r\n if (index < 0 || index > this.innerElements.length + 1) {\r\n throw new Error('Unable to inset it at this index 😭');\r\n }\r\n if (this.innerElements.indexOf(item) !== -1) {\r\n throw new Error('The same item in a carousel? Really? Nope 😭');\r\n }\r\n\r\n // Avoid shifting content\r\n const shouldItShift = index <= this.currentSlide > 0 && this.innerElements.length;\r\n this.currentSlide = shouldItShift ? this.currentSlide + 1 : this.currentSlide;\r\n\r\n this.innerElements.splice(index, 0, item);\r\n\r\n // build a frame and slide to a currentSlide\r\n this.buildSliderFrame();\r\n\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Prepernd item to carousel.\r\n * @param {HTMLElement} item - Item to prepend.\r\n * @param {function} callback - Optional callback to call after prepend.\r\n */\r\n prepend(item, callback) {\r\n this.insert(item, 0);\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Append item to carousel.\r\n * @param {HTMLElement} item - Item to append.\r\n * @param {function} callback - Optional callback to call after append.\r\n */\r\n append(item, callback) {\r\n this.insert(item, this.innerElements.length + 1);\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Removes listeners and optionally restores to initial markup\r\n * @param {boolean} restoreMarkup - Determinants about restoring an initial markup.\r\n * @param {function} callback - Optional callback function.\r\n */\r\n destroy(restoreMarkup = false, callback) {\r\n this.detachEvents();\r\n\r\n this.selector.style.cursor = 'auto';\r\n\r\n if (restoreMarkup) {\r\n const slides = document.createDocumentFragment();\r\n for (let i = 0; i < this.innerElements.length; i++) {\r\n slides.appendChild(this.innerElements[i]);\r\n }\r\n this.selector.innerHTML = '';\r\n this.selector.appendChild(slides);\r\n this.selector.removeAttribute('style');\r\n }\r\n\r\n if (callback) {\r\n callback.call(this);\r\n }\r\n }\r\n}","const focusableElements = [\r\n \"a[href]\",\r\n \"area[href]\",\r\n \"input:not([disabled])\",\r\n \"select:not([disabled])\",\r\n \"textarea:not([disabled])\",\r\n \"button:not([disabled])\",\r\n \"iframe\",\r\n \"object\",\r\n \"embed\",\r\n \"[contenteditable]\",\r\n '[tabindex]:not([tabindex^=\"-\"])'\r\n];\r\n\r\nconst keyList = {\r\n tab: 9,\r\n escape: 27\r\n};\r\n\r\nconst breakpoints = {\r\n xs: 320, // Smartphone\r\n sm: 600, // Tablets\r\n md: 900, // Tablets Landscape and small desktops\r\n lg: 1200, // Desktops\r\n xl: 1800 // Large Desktop\r\n};\r\n\r\nconst detectIE = () => {\r\n const ua = window.navigator.userAgent;\r\n\r\n const msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n // IE 10 or older => return version number\r\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n // IE 11 => return version number\r\n var rv = ua.indexOf('rv:');\r\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n var edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n // Edge (IE 12+) => return version number\r\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n}\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n // Polyfills\r\n const objectFitImageEls = document.querySelectorAll(\"img.media-cover\");\r\n const stickyElements = document.querySelectorAll('.sticky');\r\n objectFitImages(objectFitImageEls);\r\n new lazyloadPicturefillBackground();\r\n cssVars();\r\n Stickyfill.add(stickyElements);\r\n});","// Extension of siema for this project\r\n\r\nSiema.prototype.updatePagination = function () {\r\n for (var i = 0; i < this.selector.closest('.siema-carousel').querySelectorAll('.siema-pagination button').length; i++) {\r\n // if current dot matches currentSlide prop, add a class to it, remove otherwise\r\n var addOrRemove = this.currentSlide === i ? 'add' : 'remove';\r\n this.selector.closest('.siema-carousel').querySelectorAll('.siema-pagination button')[i].classList[addOrRemove]('is-active');\r\n }\r\n};\r\n\r\nSiema.prototype.setAutoHeight = function (that) {\r\n\r\n var timeout;\r\n\r\n function autoHeight() {\r\n if ( that !== undefined ) {\r\n var currentItems, min, max, itemHeightList, height, maxHeight, i;\r\n\r\n min = that.currentSlide;\r\n max = min + that.perPage;\r\n itemHeightList = [];\r\n\r\n for (i = min; i < max; i++) {\r\n if ( that.innerElements[i] !== undefined ) {\r\n height = parseInt(that.innerElements[i].scrollHeight, 10); \r\n }\r\n itemHeightList.push(height);\r\n }\r\n maxHeight = Math.max.apply(null, itemHeightList);\r\n\r\n that.sliderFrame.style.maxHeight = maxHeight + 'px';\r\n }\r\n }\r\n\r\n window.addEventListener('resize', function () {\r\n if ( that !== undefined ) {\r\n that.sliderFrame.style.maxHeight = '';\r\n }\r\n clearTimeout(timeout);\r\n timeout = setTimeout(autoHeight, 500);\r\n });\r\n autoHeight();\r\n};\r\n//Siema.prototype.sameHeight = function () {\r\n// var _this = this;\r\n// console.log(this);\r\n//};\r\n\r\nSiema.prototype.addPagination = function () {\r\n var _this = this;\r\n\r\n var siemaPagination = document.createElement('div');\r\n siemaPagination.className = \"siema-pagination\";\r\n\r\n var _loop = function _loop(i) {\r\n var btn = document.createElement('button');\r\n btn.textContent = i + 1;\r\n btn.addEventListener('click', function () {\r\n return _this.goTo(i);\r\n });\r\n siemaPagination.appendChild(btn);\r\n };\r\n\r\n for (var i = 0; i < this.innerElements.length; i++) {\r\n _loop(i);\r\n }\r\n\r\n this.selector.closest('.siema-carousel').appendChild(siemaPagination);\r\n};\r\n\r\nSiema.prototype.destroyPagination = function () {\r\n var siemaContainer = this.selector.closest('.siema-carousel');\r\n var paginationToRemove = siemaContainer.querySelectorAll('.siema-pagination')[0];\r\n siemaContainer.removeChild(paginationToRemove);\r\n};\r\n\r\nSiema.prototype.updateThumbnail = function () {\r\n for (var i = 0; i < this.selector.closest('.siema-carousel').querySelectorAll('.siema-thumbnail button').length; i++) {\r\n\r\n var currentSlide = this.config.loop ? Math.round(this.currentSlide + this.perPage) : Math.round(this.currentSlide);\r\n var addOrRemove = currentSlide === i ? 'add' : 'remove';\r\n this.selector.closest('.siema-carousel').querySelectorAll('.siema-thumbnail button')[i].classList[addOrRemove]('is-active');\r\n }\r\n};\r\n\r\nSiema.prototype.addThumbnail = function () {\r\n var _this = this;\r\n var slideImages = _this.innerElements;\r\n\r\n var siemaThumbnail = document.createElement('div');\r\n siemaThumbnail.className = \"siema-thumbnail\";\r\n\r\n var _loop = function _loop(i) {\r\n let slide = slideImages[i];\r\n let imgSrc;\r\n\r\n if (slide.nodeName == \"IMG\") {\r\n imgSrc = slide.getAttribute(\"src\");\r\n } else {\r\n imgSrc = slide.querySelector('img').getAttribute(\"src\");\r\n }\r\n\r\n let siemaThumbnailCta = document.createElement(\"button\");\r\n //siemaThumbnail.classList.add(\"is-justify-between\");\r\n siemaThumbnailCta.classList.add(\"has-p-0\", \"has-m-2\");\r\n siemaThumbnailCta.setAttribute('aria-label', 'Image ' + (i + 1))\r\n let siemaThumbnailImg = `\"\"/`;\r\n\r\n siemaThumbnailCta.insertAdjacentHTML('beforeend', siemaThumbnailImg);\r\n\r\n siemaThumbnailCta.addEventListener('click', function () {\r\n return _this.goTo(i);\r\n \r\n });\r\n\r\n siemaThumbnail.appendChild(siemaThumbnailCta);\r\n\r\n } //end loop\r\n\r\n for (var i = 0; i < slideImages.length; i++) {\r\n _loop(i);\r\n }\r\n\r\n _this.selector.closest('.siema-carousel').appendChild(siemaThumbnail);\r\n\r\n};\r\n\r\nSiema.prototype.destroyThumbnail = function () {\r\n var siemaContainer = this.selector.closest('.siema-carousel');\r\n var paginationToRemove = siemaContainer.querySelectorAll('.siema-pagination')[0];\r\n siemaContainer.removeChild(paginationToRemove);\r\n};\r\n\r\nSiema.prototype.addArrows = function () {\r\n var _this = this;\r\n\r\n var nextArrowCopy = ' next slide';\r\n var prevArrowCopy = ' previous slide';\r\n\r\n var siemaArrows = document.createElement('div');\r\n siemaArrows.className = \"siema-arrows\";\r\n\r\n this.prevArrow = document.createElement('button');\r\n this.nextArrow = document.createElement('button');\r\n this.prevArrow.innerHTML = prevArrowCopy;\r\n this.nextArrow.innerHTML = nextArrowCopy;\r\n siemaArrows.appendChild(this.prevArrow);\r\n siemaArrows.appendChild(this.nextArrow);\r\n this.selector.closest('.siema-carousel').insertBefore(siemaArrows, null);\r\n\r\n this.prevArrow.addEventListener('click', function () {\r\n return _this.prev();\r\n });\r\n this.nextArrow.addEventListener('click', function () {\r\n return _this.next();\r\n });\r\n};\r\n\r\nSiema.prototype.destroyArrows = function () {\r\n var siemaContainer = this.selector.closest('.siema-carousel');\r\n var arrowsToRemove = siemaContainer.querySelectorAll('.siema-arrows')[0];\r\n if (arrowsToRemove) {\r\n siemaContainer.removeChild(arrowsToRemove);\r\n }\r\n};\r\n\r\nSiema.prototype.updateArrows = function () {\r\n var siemaContainer = this.selector.closest('.siema-carousel');\r\n var siemaArrows = siemaContainer.querySelector('.siema-arrows');\r\n var prevArrow = siemaArrows.firstChild;\r\n var nextArrow = siemaArrows.lastChild;\r\n\r\n if (this.currentSlide === 0) {\r\n prevArrow.classList.remove(\"is-showing\");\r\n nextArrow.classList.add(\"is-showing\");\r\n } else if (this.currentSlide === this.innerElements.length - this.perPage) {\r\n nextArrow.classList.remove(\"is-showing\");\r\n prevArrow.classList.add(\"is-showing\");\r\n } else {\r\n prevArrow.classList.add(\"is-showing\");\r\n nextArrow.classList.add(\"is-showing\");\r\n }\r\n};\r\n\r\nSiema.prototype.showArrows = function () {\r\n var siemaContainer = this.selector.closest('.siema-carousel');\r\n var siemaArrows = siemaContainer.querySelector('.siema-arrows');\r\n var prevArrow = siemaArrows.firstChild;\r\n var nextArrow = siemaArrows.lastChild;\r\n\r\n prevArrow.classList.add(\"is-showing\");\r\n nextArrow.classList.add(\"is-showing\");\r\n};\r\n\r\nSiema.prototype.printCurrentSlide = function () {\r\n var _this = this;\r\n var containerSiema = _this.selector.closest('.siema-carousel');\r\n\r\n var siemaSlides = containerSiema.querySelectorAll('.slides > div > *');\r\n var currentSlide = this.config.loop ? Math.round(this.currentSlide + this.perPage) : Math.round(this.currentSlide);\r\n\r\n for (var i = 0; i < siemaSlides.length; i++) {\r\n siemaSlides[i].tabIndex = 0;\r\n siemaSlides[i].classList.add('slide');\r\n\r\n siemaSlides[i].addEventListener('focus', function () {\r\n return _this.goTo(i);\r\n });\r\n\r\n if (i === currentSlide) {\r\n siemaSlides[i].classList.add('has-active-slide');\r\n siemaSlides[i].inert = false;\r\n } else {\r\n siemaSlides[i].classList.remove('has-active-slide');\r\n siemaSlides[i].inert = true;\r\n }\r\n }\r\n};\r\n","(function () {\r\n var bp = breakpoints.md;\r\n var mqCarouselMobyleOnly = window.matchMedia('(min-width: ' + bp + 'px)');\r\n\r\n document.addEventListener(\"DOMContentLoaded\", function (event) {\r\n var mobileCarousels = document.querySelectorAll(\".siema-carousel.is-mobile-carousel.has-arrows .slides\");\r\n\r\n Array.prototype.forEach.call(mobileCarousels, function (el, i) {\r\n var carouselMobyleOnly = new Siema({\r\n selector: mobileCarousels[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n perPage: 1,\r\n onInit: function () {\r\n this.addPagination();\r\n this.updatePagination();\r\n this.printCurrentSlide();\r\n this.slideToCurrent();\r\n this.addArrows();\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n },\r\n onChange: function () {\r\n this.updatePagination();\r\n this.printCurrentSlide();\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n }\r\n });\r\n\r\n if (window.innerWidth >= bp) {\r\n carouselMobyleOnly.destroy(true);\r\n carouselDestroyExtraMarkup(carouselMobyleOnly);\r\n }\r\n\r\n \r\n\r\n carouselMobyleOnlyResetOnBreakPoint(carouselMobyleOnly, mqCarouselMobyleOnly);\r\n });\r\n });\r\n\r\n function carouselDestroyExtraMarkup(currentElement) {\r\n currentElement.destroyPagination();\r\n currentElement.destroyArrows();\r\n }\r\n\r\n function carouselMobyleOnlyResetOnBreakPoint(currentElement, mqCarouselMobyleOnly) {\r\n if (matchMedia) {\r\n mqCarouselMobyleOnly.addListener(function () {\r\n\r\n if (mqCarouselMobyleOnly.matches) {\r\n currentElement.destroy(true);\r\n carouselDestroyExtraMarkup(currentElement);\r\n } else {\r\n currentElement.destroy(true);\r\n currentElement.init();\r\n\r\n }\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", function (event) {\r\n var mobileCarousels = document.querySelectorAll(\".siema-carousel.carousel-with-thumbnails .slides\");\r\n var numItems = document.querySelectorAll(\".siema-carousel.carousel-with-thumbnails .slides figure\");\r\n\r\n Array.prototype.forEach.call(mobileCarousels, function (el, i) {\r\n var carouselMobyleOnly = new Siema({\r\n selector: mobileCarousels[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n perPage: 1,\r\n\r\n onInit: function () {\r\n\r\n this.printCurrentSlide();\r\n this.slideToCurrent();\r\n\r\n if (numItems.length > 1) {\r\n this.addArrows();\r\n this.addThumbnail();\r\n this.updateThumbnail();\r\n this.updateArrows();\r\n }\r\n },\r\n onChange: function () {\r\n this.updateThumbnail();\r\n this.printCurrentSlide();\r\n this.updateArrows();\r\n }\r\n });\r\n });\r\n });\r\n})();","(function () {\r\n var bp = breakpoints.md;\r\n var mqCarouselMobyleOnly = window.matchMedia('(min-width: ' + bp + 'px)');\r\n\r\n document.addEventListener(\"DOMContentLoaded\", function (event) {\r\n var mobileCarousels = document.querySelectorAll(\".siema-carousel.three-col-carousel.has-arrows .slides\");\r\n var isIe = detectIE();\r\n\r\n Array.prototype.forEach.call(mobileCarousels, function (el, i) {\r\n var carouselMobyleOnly = new Siema({\r\n selector: mobileCarousels[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n perPage: {\r\n 600: 2,\r\n 1024: 3,\r\n },\r\n\r\n onInit: function () {\r\n this.addPagination();\r\n this.updatePagination();\r\n this.slideToCurrent();\r\n this.addArrows();\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n\r\n if (isIe) {\r\n let thisCarousel = this;\r\n cssVars({\r\n onComplete: function () {\r\n thisCarousel.resizeHandler();\r\n thisCarousel.setAutoHeight(this);\r\n }\r\n });\r\n }\r\n },\r\n onChange: function () {\r\n this.updatePagination();\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n }\r\n });\r\n\r\n });\r\n });\r\n\r\n})();","(function () {\r\n var bp = breakpoints.md;\r\n var mqCarouselMobyleOnly = window.matchMedia('(min-width: ' + bp + 'px)');\r\n\r\n document.addEventListener(\"DOMContentLoaded\", function (event) {\r\n var mobileCarousels = document.querySelectorAll(\".siema-carousel.is-mobile-carousel:not(.has-arrows) .slides\");\r\n\r\n Array.prototype.forEach.call(mobileCarousels, function (el, i) {\r\n var carouselMobyleOnly = new Siema({\r\n selector: mobileCarousels[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n perPage: 1,\r\n //offset: 0.5,\r\n //startIndex: 1,\r\n //center: true,\r\n onInit: function () {\r\n \r\n this.addPagination();\r\n this.updatePagination();\r\n this.printCurrentSlide();\r\n this.setAutoHeight(this);\r\n },\r\n onChange: function () {\r\n this.updatePagination();\r\n this.printCurrentSlide();\r\n this.setAutoHeight(this);\r\n }\r\n });\r\n\r\n if (window.innerWidth >= bp) {\r\n carouselMobyleOnly.destroy(true);\r\n carouselDestroyExtraMarkup(carouselMobyleOnly);\r\n }\r\n\r\n carouselMobyleOnlyResetOnBreakPoint(carouselMobyleOnly, mqCarouselMobyleOnly);\r\n });\r\n });\r\n\r\n function carouselDestroyExtraMarkup(currentElement) {\r\n currentElement.destroyPagination();\r\n }\r\n\r\n function carouselMobyleOnlyResetOnBreakPoint(currentElement, mqCarouselMobyleOnly) {\r\n if (matchMedia) {\r\n mqCarouselMobyleOnly.addListener(function () {\r\n\r\n if (mqCarouselMobyleOnly.matches) {\r\n currentElement.destroy(true);\r\n carouselDestroyExtraMarkup(currentElement);\r\n } else {\r\n currentElement.destroy(true);\r\n currentElement.init();\r\n }\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n var bp = breakpoints.md;\r\n\r\n document.addEventListener(\"SearchAppCarouselCreated\", function (event) {\r\n createCarousels();\r\n }); \r\n\r\n document.addEventListener(\"SearchAppCarouselDestroyed\", function (event) {\r\n destroyCarousels();\r\n });\r\n\r\n var siemaCarousels = [];\r\n\r\n var destroyCarousels = function() {\r\n Array.prototype.forEach.call(siemaCarousels, function (el, i) {\r\n siemaCarousels[i].destroy();\r\n siemaCarousels.length = 0;\r\n });\r\n };\r\n\r\n var createCarousels = function() { \r\n var carouselElements = document.querySelectorAll(\".six-col-carousel .slides\"); \r\n var isIe = detectIE();\r\n\r\n Array.prototype.forEach.call(carouselElements, function (el, i) {\r\n \r\n siemaCarousels.push(new Siema({\r\n selector: carouselElements[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n draggable: true,\r\n perPage: {\r\n 0: 1,\r\n 768: 2,\r\n 1024: 4,\r\n 1200: 6\r\n },\r\n offset: {\r\n 0: 0.1,\r\n 768: 0.05,\r\n 1200: 0.025\r\n },\r\n\r\n onInit: function () {\r\n this.slideToCurrent();\r\n this.addArrows();\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n\r\n if (isIe) {\r\n let thisCarousel = this;\r\n cssVars({\r\n onComplete: function () {\r\n thisCarousel.resizeHandler();\r\n thisCarousel.setAutoHeight(this);\r\n }\r\n });\r\n }\r\n\r\n document.dispatchEvent(new Event('SearchAppCarouselInitComplete'));\r\n },\r\n onChange: function () {\r\n this.updateArrows();\r\n this.setAutoHeight(this);\r\n }\r\n }));\r\n });\r\n }\r\n\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const filterSectionContainers = document.querySelectorAll(\".filter-section-container\");\r\n\r\n Array.prototype.forEach.call(filterSectionContainers, (filterSectionContainer) => {\r\n const filterInputsContainers = filterSectionContainer.querySelectorAll(\".filter-inputs\");\r\n const filterItems = document.querySelectorAll(\".filter-item\");\r\n\r\n let filters = [];\r\n\r\n Array.prototype.forEach.call(filterInputsContainers, (filterInputsContainer, i) => {\r\n const filterEls = filterInputsContainer.querySelectorAll(\".filter-input\");\r\n\r\n filters[i] = \"null\";\r\n\r\n Array.prototype.forEach.call(filterEls, (filterEl) => {\r\n filterEl.addEventListener(\"change\", () => {\r\n const resetFilter = filterInputsContainer.querySelector(\".filter-input[value='null']\");\r\n let checkedFilterEls = filterInputsContainer.querySelectorAll(\"input.filter-input:checked\");\r\n\r\n if (checkedFilterEls.length === 0) {\r\n resetFilter.checked = true;\r\n }\r\n\r\n if (filterEl.value === \"null\" && filterEl.checked) {\r\n Array.prototype.forEach.call(filterEls, (filterEl) => {\r\n filterEl.checked = false;\r\n });\r\n filterEl.checked = true;\r\n } else if (filterEl.value !== \"null\" && filterEl.checked) {\r\n resetFilter.checked = false;\r\n }\r\n\r\n\r\n checkedFilterEls = filterInputsContainer.querySelectorAll(\"input.filter-input:checked\");\r\n\r\n filters[i] = ([...checkedFilterEls].map((checkedFilterEl) => checkedFilterEl.value));\r\n\r\n let nodesFilteredGroups = [];\r\n\r\n let j = 0;\r\n\r\n for (let filter of filters) {\r\n let results = [];\r\n if (filter[0] === \"null\") {\r\n Array.prototype.forEach.call(filterItems, (filterItem) => {\r\n results.push(filterItem);\r\n });\r\n } else {\r\n Array.prototype.forEach.call(filterItems, (filterItem) => {\r\n const filterItemFilters = filterItem.getAttribute(\"data-filter\");\r\n for (let i = 0; i < filter.length; i++) {\r\n if (filterItemFilters.includes(filter[i])) {\r\n results.push(filterItem);\r\n }\r\n }\r\n });\r\n }\r\n nodesFilteredGroups[j] = results;\r\n j++;\r\n }\r\n\r\n let concatArr = [];\r\n\r\n for (let nodesFilteredGroup of nodesFilteredGroups) {\r\n let nodesFilteredGroupSet = new Set(nodesFilteredGroup);\r\n let uniqArray = [...nodesFilteredGroupSet]\r\n concatArr = [...concatArr,...uniqArray];\r\n }\r\n\r\n Array.prototype.forEach.call(filterItems, (filterItem) => {\r\n filterItem.classList.add(\"is-filtered\");\r\n });\r\n\r\n for (let i = 0; i < concatArr.length; i++) {\r\n let itemRepitation = countInArray(concatArr, concatArr[i]);\r\n\r\n if (itemRepitation === filters.length) {\r\n concatArr[i].classList.remove(\"is-filtered\");\r\n }\r\n }\r\n });\r\n }); \r\n });\r\n });\r\n });\r\n\r\n function countInArray(array, what) {\r\n let count = 0;\r\n for (let i = 0; i < array.length; i++) {\r\n if (array[i] === what) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n})();","(function () {\r\n document.addEventListener('DOMContentLoaded', (event) => {\r\n var carousels = document.querySelectorAll('.header-carousel .siema-carousel .slides');\r\n var items = document.querySelectorAll('.header-carousel .siema-carousel .slides article');\r\n\r\n if (items.length > 1) {\r\n Array.prototype.forEach.call(carousels, function (el, i) {\r\n el.closest('.header-carousel').classList.add('header-carousel--active')\r\n\r\n // Has the carousel been automatically changed?\r\n let autoChange = false\r\n // The control button\r\n let control\r\n // The autoplay interval\r\n let autoplay\r\n // The next button\r\n let next\r\n\r\n const play = () => {\r\n autoplay = setInterval(() => {\r\n autoChange = true\r\n next.click()\r\n }, 5000)\r\n }\r\n\r\n var carousel = new Siema({\r\n selector: carousels[i],\r\n duration: 200,\r\n easing: 'ease-out',\r\n perPage: 1,\r\n loop: true,\r\n onInit: function () {\r\n this.printCurrentSlide();\r\n this.slideToCurrent();\r\n this.addArrows();\r\n this.showArrows();\r\n this.addPagination();\r\n this.updatePagination();\r\n\r\n control = document.createElement('button')\r\n control.classList.add('control')\r\n control.setAttribute('aria-label', 'Play')\r\n const pagination = el.closest('.siema-carousel').querySelector('.siema-pagination')\r\n next = el.closest('.siema-carousel').querySelector('.siema-arrows button:last-child')\r\n\r\n pagination.appendChild(control)\r\n\r\n control.addEventListener('click', () => {\r\n if (control.classList.contains('is-paused')) {\r\n play()\r\n } else {\r\n clearInterval(autoplay)\r\n }\r\n\r\n control.classList.toggle('is-paused')\r\n })\r\n\r\n play()\r\n },\r\n onChange: function () {\r\n this.printCurrentSlide();\r\n this.updatePagination();\r\n\r\n if (!autoChange) {\r\n if (!control.classList.contains('is-paused')) {\r\n clearInterval(autoplay)\r\n play()\r\n }\r\n }\r\n\r\n autoChange = false;\r\n }\r\n });\r\n });\r\n }\r\n });\r\n})();","document.addEventListener(\"DOMContentLoaded\",() => {\r\n const lazyImages = [].slice.call(document.querySelectorAll(\"img.lazy\"));\r\n\r\n const lazyImageObserver = new IntersectionObserver((entries, observer) => {\r\n entries.forEach(function (entry) {\r\n if (entry.isIntersecting) {\r\n const lazyImage = entry.target;\r\n\r\n if (lazyImage.dataset.src) {\r\n lazyImage.src = lazyImage.dataset.src;\r\n }\r\n\r\n if (lazyImage.dataset.srcset) {\r\n lazyImage.srcset = lazyImage.dataset.srcset;\r\n }\r\n \r\n lazyImage.classList.remove(\"lazy\");\r\n lazyImageObserver.unobserve(lazyImage);\r\n }\r\n });\r\n });\r\n\r\n lazyImages.forEach((lazyImage) => {\r\n lazyImageObserver.observe(lazyImage);\r\n });\r\n});","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const searchLocationModules = document.querySelectorAll(\".map-single-location\");\r\n\r\n Array.prototype.forEach.call(searchLocationModules, (el, i) => {\r\n const currentEl = el;\r\n const location = {\r\n lat: parseFloat(currentEl.getAttribute(\"data-locationLat\")),\r\n lng: parseFloat(currentEl.getAttribute(\"data-locationLng\")),\r\n zoom: parseInt(currentEl.getAttribute(\"data-locationZoom\"))\r\n };\r\n singleMap.initMap(currentEl, location);\r\n });\r\n });\r\n\r\n const singleMap = {\r\n data: {\r\n map: null\r\n },\r\n initMap: async function (el, location) {\r\n const _this = this;\r\n\r\n // Request libraries when needed, not in the script tag.\r\n const { Map } = await google.maps.importLibrary(\"maps\");\r\n // Short namespaces can be used.\r\n _this.data.map = new Map(el, {\r\n center: { lat: location.lat, lng: location.lng },\r\n zoom: location.zoom,\r\n });\r\n\r\n _this.setMarker(_this.data.map, location);\r\n },\r\n setMarker: function (map, location) {\r\n const marker = new google.maps.Marker({\r\n position: { lat: location.lat, lng: location.lng },\r\n map: map\r\n });\r\n }\r\n };\r\n})();","(function () {\r\n const navBp = breakpoints.md;\r\n const mqNav = window.matchMedia('(min-width: ' + navBp + 'px)');\r\n\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const navigationBar = document.querySelector(\".navigation-bar\");\r\n const alertBar = document.querySelector(\".is-alert-bar\");\r\n const conditionSubNav = document.querySelector(\".condition-sub-nav\"); \r\n\r\n if (conditionSubNav) {\r\n detectAlertBar(conditionSubNav);\r\n }\r\n\r\n if (navigationBar) {\r\n const burgerButtons = navigationBar.querySelectorAll(\"button.burger\");\r\n const navPanelCtas = navigationBar.querySelectorAll(\".navigation .navigation-items > li > button\");\r\n const backdropEl = document.querySelector(\".backdrop\");\r\n\r\n detectScrollNavPosition(navigationBar);\r\n\r\n Array.prototype.forEach.call(burgerButtons, (el, i) => {\r\n const burgerButton = el;\r\n\r\n burgerButton.addEventListener(\"click\", () => {\r\n mobileNavigation.toggle(burgerButton, navigationBar);\r\n });\r\n\r\n backdropEl.addEventListener(\"click\", () => {\r\n mobileNavigation.close(burgerButton, navigationBar);\r\n });\r\n\r\n document.onkeydown = function (evt) {\r\n if (evt.keyCode === keyList.escape) {\r\n mobileNavigation.close(burgerButton, navigationBar);\r\n }\r\n };\r\n\r\n if (matchMedia) {\r\n mqNav.addListener(function () {\r\n if (mqNav.matches) {\r\n mobileNavigation.close(burgerButton, navigationBar);\r\n navigationBar.querySelector('.navigation-group').inert = false;\r\n } else {\r\n mobileNavigation.close(burgerButton, navigationBar);\r\n navigationBar.querySelector('.navigation-group').inert = true;\r\n }\r\n });\r\n }\r\n });\r\n\r\n Array.prototype.forEach.call(navPanelCtas, (el, i) => {\r\n const navPanelCta = el;\r\n const closeNavPanelCta = navPanelCta.closest('.has-sub-navigation').querySelector('.mobile-nav-back-cta');\r\n const parentEl = navPanelCta.closest(\".has-sub-navigation\");\r\n\r\n if (matchMedia) {\r\n mqNav.addListener(function () {\r\n if (mqNav.matches) {\r\n navigationPanel.close(navPanelCta, navPanelCtas, parentEl);\r\n } else {\r\n navigationPanel.close(navPanelCta, navPanelCtas, parentEl);\r\n }\r\n });\r\n }\r\n\r\n navPanelCta.addEventListener(\"click\", () => {\r\n navigationPanel.toggle(navPanelCta, navPanelCtas, parentEl);\r\n });\r\n\r\n closeNavPanelCta.addEventListener(\"click\", () => {\r\n navigationPanel.close(navPanelCta, navPanelCtas, parentEl);\r\n });\r\n\r\n backdropEl.addEventListener(\"click\", () => {\r\n navigationPanel.close(navPanelCta, navPanelCtas, parentEl);\r\n });\r\n });\r\n\r\n document.onkeydown = function (evt) {\r\n if (evt.keyCode === keyList.escape) {\r\n Array.prototype.forEach.call(navPanelCtas, (el, i) => {\r\n const navPanelCta = el;\r\n const parentEl = navPanelCta.closest(\".has-sub-navigation\");\r\n navigationPanel.close(navPanelCta, navPanelCtas, parentEl);\r\n });\r\n Array.prototype.forEach.call(burgerButtons, (el, i) => {\r\n const burgerButton = el;\r\n mobileNavigation.close(burgerButton, navigationBar);\r\n });\r\n }\r\n };\r\n }\r\n });\r\n\r\n const navigationPanel = {\r\n toggle: function(cta, ctas, parentEl) {\r\n const isParenElOpen = parentEl.classList.contains(\"is-active\");\r\n\r\n if (isParenElOpen) {\r\n this.close(cta, ctas, parentEl);\r\n } else {\r\n Array.prototype.forEach.call(ctas, (el, i) => {\r\n const navPanelCta = el;\r\n const parentEl = navPanelCta.closest(\".has-sub-navigation\");\r\n this.close(navPanelCta, ctas, parentEl);\r\n });\r\n this.open(cta, ctas, parentEl);\r\n }\r\n },\r\n close: function (cta, ctas, parentEl) {\r\n const subNavItems = parentEl.querySelector(\".sub-navigation-item\");\r\n parentEl.classList.remove(\"is-active\");\r\n parentEl.closest(\".navigation-bar\").classList.remove(\"has-open-panel\");\r\n document.querySelector(\".backdrop\").classList.remove(\"is-active\");\r\n subNavItems.inert = true;\r\n Array.prototype.forEach.call(ctas, (el, i) => {\r\n el.inert = false;\r\n });\r\n },\r\n open: function (cta, ctas, parentEl) {\r\n const subNavItems = parentEl.querySelector(\".sub-navigation-item\");\r\n parentEl.classList.add(\"is-active\");\r\n parentEl.closest(\".navigation-bar\").classList.add(\"has-open-panel\");\r\n document.querySelector(\".backdrop\").classList.add(\"is-active\");\r\n subNavItems.inert = false;\r\n if (window.innerWidth <= navBp) {\r\n Array.prototype.forEach.call(ctas, (el, i) => {\r\n el.inert = true;\r\n });\r\n }\r\n }\r\n };\r\n\r\n const mobileNavigation = {\r\n toggle: function (cta, navigationContainer) {\r\n const isNavigationOpen = navigationContainer.classList.contains(\"is-active\");\r\n\r\n if (isNavigationOpen) {\r\n this.close(cta, navigationContainer);\r\n } else {\r\n this.open(cta, navigationContainer);\r\n }\r\n },\r\n close: function (cta, navigationContainer) {\r\n const body = document.querySelector(\"body\");\r\n const pageContainerDirectChildrens = document.querySelectorAll(\".page-container > *:not(.navigation-bar-holder)\");\r\n const navigationGroup = navigationContainer.querySelector('.navigation-group');\r\n const navPanelCtas = navigationGroup.querySelectorAll(\".navigation .navigation-items > li > button\");\r\n\r\n Array.prototype.forEach.call(navPanelCtas, (el, i) => {\r\n const parentEl = el.closest(\".has-sub-navigation\");\r\n navigationPanel.close(el, navPanelCtas, parentEl);\r\n });\r\n navigationContainer.classList.remove(\"is-active\");\r\n cta.classList.remove(\"is-active\");\r\n body.classList.remove('has-modal-open');\r\n Array.prototype.forEach.call(pageContainerDirectChildrens, (el, i) => {\r\n el.inert = false;\r\n });\r\n if (window.innerWidth <= navBp) {\r\n navigationGroup.inert = true;\r\n }\r\n },\r\n open: function (cta, navigationContainer) {\r\n const body = document.querySelector(\"body\");\r\n const pageContainerDirectChildrens = document.querySelectorAll(\".page-container > *:not(.navigation-bar-holder)\");\r\n const navigationGroup = navigationContainer.querySelector('.navigation-group');\r\n\r\n navigationContainer.classList.add(\"is-active\");\r\n navigationGroup.inert = false;\r\n cta.classList.add(\"is-active\");\r\n body.classList.add('has-modal-open');\r\n if (window.innerWidth <= navBp) {\r\n Array.prototype.forEach.call(pageContainerDirectChildrens, (el, i) => {\r\n el.inert = true;\r\n });\r\n }\r\n }\r\n };\r\n\r\n function detectScrollNavPosition(navBarEl) {\r\n window.addEventListener(\"scroll\", function () {\r\n if (window.pageYOffset > 300) {\r\n navBarEl.classList.add(\"is-scroll\");\r\n\r\n } else if (window.pageYOffset < 200) {\r\n navBarEl.classList.remove(\"is-scroll\");\r\n\r\n }\r\n });\r\n }\r\n\r\n\r\n function detectAlertBar() {\r\n\r\n const alertBar = document.querySelector(\".is-alert-bar\");\r\n const conditionSubNav = document.querySelector(\".condition-sub-nav\");\r\n\r\n if (alertBar) {\r\n conditionSubNav.classList.add(\"alert-bar-active\");\r\n\r\n } else {\r\n conditionSubNav.classList.remove(\"alert-bar-active\");\r\n\r\n }\r\n }\r\n \r\n\r\n\r\n})();","; (function () {\r\n document.addEventListener(\"DOMContentLoaded\", function (event) {\r\n const animatedEls = document.querySelectorAll('.scroll-fade-in-effect');\r\n const reduceMotionPreference = window.matchMedia('(prefers-reduced-motion: reduce)');\r\n //disable animation if user prefers reduced motion!\r\n //ReduceMotionMediaQuery to be supported by Chrome from v74+ April 23 2019\r\n //once widely supported, outsource all css animations to separate stylesheet loaded conditionally via *media* attribute on link element\r\n // eg. \r\n if (animatedEls && !reduceMotionPreference.matches) {\r\n //normal forEach not supported by IE\r\n //alternative use const someArray = [].slice.call(document.querySelectorAll(\"some-mass-selector\")); with normal forEach\r\n //Array.prototype.forEach.call(animatedEls, (animatedEl) => {\r\n // animatedEl.classList.add(\"is-hidden\");\r\n //});\r\n\r\n const observerConfig = {\r\n root: null,\r\n rootMargin: '0px',\r\n threshold: 0.5\r\n };\r\n\r\n const intersectionObserver = new IntersectionObserver(function (entries) {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n ////entry.target.classList.remove(\"is-hidden\");\r\n entry.target.classList.add(\"is-animated\");\r\n intersectionObserver.unobserve(entry.target);\r\n }\r\n });\r\n }, observerConfig);\r\n\r\n Array.prototype.forEach.call(animatedEls, (animatedEl) => {\r\n intersectionObserver.observe(animatedEl);\r\n });\r\n } else {\r\n //console.log('user prefers reduced motion: animations disabled');\r\n }\r\n });\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", async (event) => {\r\n const allSearchModules = document.querySelectorAll(\".search-location-module\");\r\n const { Autocomplete } = await google.maps.importLibrary(\"places\")\r\n\r\n Array.prototype.forEach.call(allSearchModules, (searchModule) => {\r\n let searchForm = searchModule.querySelector(\".search-location-form\");\r\n let options = {\r\n types: ['geocode'],\r\n componentRestrictions: { country: \"uk\" }\r\n };\r\n let input = searchForm.querySelector(\"input.autocomplete\");\r\n let autoComplete = new Autocomplete(input, options);\r\n let locationForm = {\r\n searchForm: searchForm,\r\n latInput: searchForm.querySelector(\"input[name='Latitude']\"),\r\n longInput: searchForm.querySelector(\"input[name='Longitude']\"),\r\n autoCompleteInput: searchForm.querySelector(\"input.autocomplete\"),\r\n autocomplete: autoComplete,\r\n optionSelected: false,\r\n requiresAddressLookup: true\r\n };\r\n\r\n locationForm.searchForm.addEventListener(\"submit\", (e) => onPlaceChanged.setFirstSuggestion(e, locationForm));\r\n locationForm.autocomplete.addListener(\"place_changed\", () => onPlaceChanged.setClickedLocation(locationForm));\r\n locationForm.autoCompleteInput.addEventListener(\"keyup\", (e) => onPlaceChanged.checkRequiresAddressLookup(e, locationForm));\r\n \r\n const currentLocationCta = searchModule.querySelector(\".search-location-module--current-location-cta\");\r\n if (currentLocationCta) {\r\n\r\n if (navigator.geolocation) {\r\n currentLocationCta.addEventListener(\"click\", () => {\r\n getCurrentLocation.location(locationForm, currentLocationCta);\r\n });\r\n } else {\r\n currentLocationCta.remove();\r\n }\r\n }\r\n });\r\n });\r\n\r\n const onPlaceChanged = {\r\n setClickedLocation: function (locationForm) {\r\n let place = locationForm.autocomplete.getPlace();\r\n\r\n if (place.geometry) {\r\n locationForm.latInput.value = place.geometry.location.lat();\r\n locationForm.longInput.value = place.geometry.location.lng();\r\n\r\n locationForm.requiresAddressLookup = false;\r\n locationForm.optionSelected = true;\r\n }\r\n },\r\n setFirstSuggestion: function (e, locationForm) {\r\n e.preventDefault();\r\n let pacItem = document.querySelector(\".pac-item\");\r\n\r\n if (locationForm.requiresAddressLookup && pacItem) {\r\n let firstResult = pacItem.children;\r\n let placeName = firstResult[1].textContent;\r\n let placeAddress = firstResult[2].textContent;\r\n\r\n locationForm.autoCompleteInput.value = placeName + \", \" + placeAddress;\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({\"address\": placeName, \"region\": \"gb\"}, function (results, status) {\r\n if (status === google.maps.GeocoderStatus.OK) {\r\n let lat = results[0].geometry.location.lat(),\r\n lng = results[0].geometry.location.lng();\r\n\r\n locationForm.latInput.value = lat;\r\n locationForm.longInput.value = lng;\r\n }\r\n\r\n locationForm.searchForm.submit();\r\n });\r\n\r\n } else if (locationForm.optionSelected) {\r\n locationForm.searchForm.submit();\r\n }\r\n },\r\n checkRequiresAddressLookup: function (e, locationForm) {\r\n document.querySelector(\".location-error-msg\").classList.add(\"is-d-none\");\r\n\r\n if (!locationForm.autoCompleteInput.value) {\r\n // If the user clears the box they are editing their location\r\n locationForm.requiresAddressLookup = true;\r\n locationForm.optionSelected = false;\r\n }\r\n\r\n if (e.keyCode === 46) {\r\n // If the user presses the backspace key they are editing their location\r\n locationForm.requiresAddressLookup = true;\r\n locationForm.optionSelected = false;\r\n }\r\n\r\n if (e.keyCode === 38 || e.keyCode === 40) {\r\n // Stop the form submitting if user is using arrow keys up/down to select an option...\r\n // the first press of the enter key will select the location.\r\n locationForm.requiresAddressLookup = false;\r\n locationForm.optionSelected = false;\r\n }\r\n }\r\n };\r\n\r\n const getCurrentLocation = {\r\n success: function (position, loadingMsg, locationForm) {\r\n const _this = this;\r\n const errorMsgEl = document.querySelector(\".location-error-msg\");\r\n const geocoder = new google.maps.Geocoder;\r\n const latlng = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n };\r\n let result = {\r\n error: false,\r\n value: \"\"\r\n };\r\n\r\n geocoder.geocode({\"location\": latlng}, (results, status) => {\r\n if (status === 'OK') {\r\n if (results[0]) {\r\n const resultsData = results[0].address_components;\r\n\r\n for (let addressComponent of resultsData) {\r\n // If you are outside of the UK show an error\r\n if (addressComponent.types.indexOf(\"country\") > -1 && addressComponent.short_name !== \"GB\") {\r\n result.error = true;\r\n _this.error(result.error, locationForm, loadingMsg);\r\n return;\r\n }\r\n \r\n if (addressComponent.types.indexOf(\"postal_code\") > -1) {\r\n result.value = addressComponent.long_name;\r\n locationForm.autoCompleteInput.value = result.value;\r\n locationForm.autoCompleteInput.focus();\r\n loadingMsg.classList.add(\"is-d-none\");\r\n errorMsgEl.classList.add(\"is-d-none\");\r\n }\r\n }\r\n\r\n } else {\r\n result.error = true;\r\n _this.error(result.error, locationForm, loadingMsg);\r\n }\r\n } else {\r\n result.error = true;\r\n _this.error(result.error, locationForm, loadingMsg);\r\n }\r\n });\r\n },\r\n error: function (error = true, locationForm, loadingMsg) {\r\n if (error.code > 0 || error === true) {\r\n const errorMsgEl = document.querySelector(\".location-error-msg\");\r\n loadingMsg.classList.add(\"is-d-none\");\r\n errorMsgEl.classList.remove(\"is-d-none\");\r\n locationForm.autoCompleteInput.focus();\r\n }\r\n },\r\n location: function (locationForm, cta) {\r\n const loadingMsg = cta.querySelector(\".loading-msg\");\r\n const _this = this;\r\n\r\n loadingMsg.classList.remove(\"is-d-none\");\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n _this.success(position, loadingMsg, locationForm);\r\n\r\n locationForm.latInput.value = position.coords.latitude;\r\n locationForm.longInput.value = position.coords.longitude;\r\n\r\n locationForm.optionSelected = true;\r\n locationForm.requiresAddressLookup = false;\r\n\r\n }, (positionError) => {\r\n _this.error(positionError, locationForm, loadingMsg);\r\n });\r\n }\r\n };\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const allSearchFilters = document.querySelectorAll(\".filter-input\");\r\n const searchForm = document.getElementById(\"search-form-2\");\r\n\r\n if (searchForm != null) {\r\n Array.prototype.forEach.call(allSearchFilters, (filter) => {\r\n filter.addEventListener(\"click\", (e) => searchForm.submit());\r\n });\r\n }\r\n\r\n const loadMoreBtn = document.querySelector('.search-results-module .loadMoreBtn');\r\n\r\n if (loadMoreBtn) {\r\n\t let currentPage = 1;\r\n let remainingPageCount = searchForm.getAttribute('data-total-pages') - 1;\r\n\r\n toggleLoadMore(remainingPageCount, loadMoreBtn);\r\n\r\n loadMoreBtn.addEventListener('click', (e) => {\r\n var queryString = window.location.search;\r\n\r\n if (queryString.length > 0) {\r\n currentPage++;\r\n queryString += '&page=' + currentPage;\r\n\r\n var request = new XMLHttpRequest();\r\n request.open('GET', '/umbraco/api/SearchApi/LoadMoreResults' + queryString, true);\r\n\r\n request.onload = function () {\r\n if (request.status >= 200 && request.status < 400) {\r\n var results = JSON.parse(request.responseText);\r\n\r\n if (results.length > 0) {\r\n let loadMoreItems = [];\r\n\r\n results.forEach((r) => {\r\n var hasTag = r.Tag.length > 0;\r\n var hasMinutes = r.MinutesToRead > 0;\r\n var hasLastUpdated = r.LastUpdated.length > 0;\r\n\r\n var itemEl =\r\n `
  • \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${r.Title}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${hasTag ? \r\n \t\t\t\tr.Tag : ''\r\n\t\t\t\t }\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${hasTag && (hasMinutes || hasLastUpdated) ? '|' : ''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${hasMinutes ? r.MinutesToRead + ' min read' : ''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${hasMinutes && hasLastUpdated ? '|' : ''}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${hasLastUpdated ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Last updated: ' + new Date(r.LastUpdated).toLocaleDateString('en-GB') : ''\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t${r.Summary}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t

    Read more

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
  • `;\r\n\r\n loadMoreItems.push(itemEl);\r\n });\r\n\r\n const container = document.querySelector('.search-results-module ul');\r\n container.innerHTML += loadMoreItems.join(' ');\r\n\r\n remainingPageCount--;\r\n toggleLoadMore(remainingPageCount, loadMoreBtn);\r\n }\r\n }\r\n };\r\n\r\n request.onerror = function () {\r\n currentPage--;\r\n //console.log('search-results.js - Error getting more results');\r\n };\r\n\r\n request.send();\r\n }\r\n });\r\n }\r\n });\r\n\r\n function toggleLoadMore(remainingPageCount, loadMoreBtn) {\r\n if (remainingPageCount === 0) {\r\n loadMoreBtn.style.display = 'none';\r\n }\r\n }\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const searchLocationForm = document.querySelector(\".services-groups-search-header .search-location-form\");\r\n\r\n const cardFilterModules = document.querySelectorAll(\".card-filters\");\r\n Array.prototype.forEach.call(cardFilterModules, (currentCardFilterModule) => {\r\n const cardFilterInputs = currentCardFilterModule.querySelectorAll(\".card-filter-inputs button\");\r\n const loadMoreBtn = currentCardFilterModule.querySelector(\".loadMoreBtn\");\r\n\r\n Array.prototype.forEach.call(cardFilterInputs, (currentCardFilterInput) => {\r\n currentCardFilterInput.addEventListener(\"click\", () => {\r\n filtering.filterItems(currentCardFilterModule, cardFilterInputs, currentCardFilterInput, loadMoreBtn);\r\n });\r\n });\r\n\r\n loadMoreBtn.addEventListener(\"click\", () => {\r\n filtering.loadMore(currentCardFilterModule, loadMoreBtn);\r\n });\r\n });\r\n\r\n const mapContainer = document.querySelector(\".search-location-map\");\r\n if (mapContainer) {\r\n let lat = searchLocationForm.getAttribute(\"data-selected-lat\");\r\n let lng = searchLocationForm.getAttribute(\"data-selected-lng\");\r\n let zoom = parseInt(searchLocationForm.getAttribute(\"data-zoom\"));\r\n\r\n let selectedLat = lat !== \"\" ? parseFloat(lat) : 54.4263196;\r\n let selectedLng = lng !== \"\" ? parseFloat(lng) : -4.36647;\r\n let locations = [];\r\n\r\n document.querySelectorAll(\".filter-item:not(.is-filtered)\").forEach((item, index) => {\r\n locations.push({\r\n title: item.getAttribute(\"data-map-title\"),\r\n url: item.getAttribute(\"data-map-url\"),\r\n description: item.getAttribute(\"data-map-description\"),\r\n lat: parseFloat(item.getAttribute(\"data-map-lat\")),\r\n lng: parseFloat(item.getAttribute(\"data-map-lng\"))\r\n });\r\n });\r\n\r\n map.initMap(mapContainer, selectedLat, selectedLng, zoom, locations);\r\n }\r\n\r\n const mapBtn = document.querySelector(\".toggle-map\");\r\n if (mapBtn) {\r\n mapBtn.addEventListener(\"click\", () => {\r\n const cardContainer = document.getElementById(\"results-list\");\r\n const mapContainer = document.getElementById(\"results-map\");\r\n const btnIcon = mapBtn.querySelector(\"i\");\r\n const btnText = mapBtn.querySelector(\"span\");\r\n let isHidden = mapContainer.classList.contains(\"is-d-none\");\r\n\r\n if (isHidden) {\r\n cardContainer.classList.add(\"is-d-none\");\r\n mapContainer.classList.remove(\"is-d-none\");\r\n btnText.textContent = \"List View\";\r\n btnIcon.classList.remove(\"rethink-icon-crosshair\");\r\n btnIcon.classList.add(\"rethink-icon-list-view\");\r\n\r\n } else {\r\n cardContainer.classList.remove(\"is-d-none\");\r\n mapContainer.classList.add(\"is-d-none\");\r\n btnText.textContent = \"Map View\";\r\n btnIcon.classList.remove(\"rethink-icon-list-view\");\r\n btnIcon.classList.add(\"rethink-icon-crosshair\");\r\n }\r\n });\r\n }\r\n\r\n const switchTypeForm = document.querySelector(\".switch-type-form\");\r\n if (switchTypeForm) {\r\n switchTypeForm.addEventListener(\"submit\", () => {\r\n let lat = searchLocationForm.getAttribute(\"data-selected-lat\");\r\n let lng = searchLocationForm.getAttribute(\"data-selected-lng\");\r\n\r\n if (lat !== \"\" && lng !== \"\") {\r\n const latitudeInput = \"\";\r\n const longitudeInput = \"\";\r\n const postCodeInput = \"\";\r\n\r\n switchTypeForm.innerHTML += latitudeInput;\r\n switchTypeForm.innerHTML += longitudeInput;\r\n switchTypeForm.innerHTML += postCodeInput;\r\n }\r\n });\r\n }\r\n });\r\n\r\n const filtering = {\r\n data: {\r\n currentFilter: \"\",\r\n currentPageSize: 9\r\n },\r\n filterItems: function (module, ctas, cta, btn) {\r\n const value = cta.value;\r\n const allItems = module.querySelectorAll(\".filter-item\");\r\n let itemsToFilter = allItems;\r\n let itemsForPage = [];\r\n\r\n this.data.currentPageSize = 9;\r\n\r\n Array.prototype.forEach.call(allItems, (item) => {\r\n item.classList.add(\"is-filtered\");\r\n item.inert = true;\r\n });\r\n\r\n Array.prototype.forEach.call(ctas, (item) => {\r\n item.classList.add(\"is-contrast\");\r\n });\r\n\r\n cta.blur();\r\n map.clearMarkers();\r\n\r\n if (value === this.data.currentFilter) {\r\n this.data.currentFilter = \"\";\r\n itemsForPage = Array.prototype.slice.call(itemsToFilter, 0, this.data.currentPageSize);\r\n\r\n } else {\r\n this.data.currentFilter = value;\r\n cta.classList.remove(\"is-contrast\");\r\n\r\n itemsToFilter = module.querySelectorAll(`.filter-item[data-filter=\"${this.data.currentFilter}\"]`);\r\n itemsForPage = Array.prototype.slice.call(itemsToFilter, 0, this.data.currentPageSize);\r\n }\r\n\r\n Array.prototype.forEach.call(itemsForPage, (item) => {\r\n item.classList.remove(\"is-filtered\");\r\n item.inert = false;\r\n\r\n map.setMarker({\r\n title: item.getAttribute(\"data-map-title\"),\r\n url: item.getAttribute(\"data-map-url\"),\r\n description: item.getAttribute(\"data-map-description\"),\r\n lat: parseFloat(item.getAttribute(\"data-map-lat\")),\r\n lng: parseFloat(item.getAttribute(\"data-map-lng\"))\r\n });\r\n });\r\n\r\n if (itemsToFilter.length <= this.data.currentPageSize) {\r\n btn.classList.add(\"is-d-none\");\r\n } else {\r\n btn.classList.remove(\"is-d-none\");\r\n }\r\n },\r\n loadMore: function (module, btn) {\r\n const allItems = module.querySelectorAll(\".filter-item\");\r\n let itemsToFilter = this.data.currentFilter === \"\" ? allItems : module.querySelectorAll(`.filter-item[data-filter=\"${this.data.currentFilter}\"]`);\r\n\r\n this.data.currentPageSize += 9;\r\n let loadMoreItems = Array.prototype.slice.call(itemsToFilter, 0, this.data.currentPageSize);\r\n \r\n Array.prototype.forEach.call(allItems, (item) => {\r\n item.classList.add(\"is-filtered\");\r\n item.inert = true;\r\n });\r\n\r\n Array.prototype.forEach.call(loadMoreItems, (item) => {\r\n item.classList.remove(\"is-filtered\");\r\n item.inert = false;\r\n\r\n map.setMarker({\r\n title: item.getAttribute(\"data-map-title\"),\r\n url: item.getAttribute(\"data-map-url\"),\r\n description: item.getAttribute(\"data-map-description\"),\r\n lat: parseFloat(item.getAttribute(\"data-map-lat\")),\r\n lng: parseFloat(item.getAttribute(\"data-map-lng\"))\r\n });\r\n });\r\n\r\n if (itemsToFilter.length <= this.data.currentPageSize) {\r\n btn.classList.add(\"is-d-none\");\r\n } else {\r\n btn.classList.remove(\"is-d-none\");\r\n }\r\n }\r\n };\r\n\r\n const map = {\r\n data: {\r\n map: null,\r\n allActiveMarkers: []\r\n },\r\n initMap: async function (el, centreLat, centreLng, zoom, locations) {\r\n const _this = this;\r\n\r\n // Request libraries when needed, not in the script tag.\r\n const { Map } = await google.maps.importLibrary(\"maps\");\r\n // Short namespaces can be used.\r\n _this.data.map = new Map(el, {\r\n center: { lat: centreLat, lng: centreLng },\r\n zoom: zoom,\r\n });\r\n\r\n for (let loc of locations) {\r\n _this.setMarker(loc);\r\n }\r\n },\r\n setMarker: function (location) {\r\n const _this = this;\r\n const infoWindowContent = `\r\n

    \r\n ${location.title}\r\n

    \r\n

    \r\n ${location.description}\r\n

    \r\n \r\n Learn more about ${location.title}\r\n `;\r\n const infoWindow = new google.maps.InfoWindow({\r\n content: infoWindowContent\r\n });\r\n\r\n const marker = new google.maps.Marker({\r\n position: {lat: location.lat, lng: location.lng},\r\n map: _this.data.map\r\n });\r\n\r\n marker.addListener(\"click\", () => {\r\n infoWindow.open(map, marker);\r\n });\r\n\r\n _this.data.allActiveMarkers.push(marker);\r\n },\r\n clearMarkers: function () {\r\n this.data.allActiveMarkers.forEach((marker) => {\r\n marker.setMap(null);\r\n });\r\n }\r\n }\r\n})();","(function () {\r\n document.addEventListener(\"DOMContentLoaded\", (event) => {\r\n const scrollSpySections = document.querySelectorAll(\".scrollspy-section\");\r\n const scrollspyNavigation = document.querySelector(\".scrollspy-navigation\");\r\n\r\n if (scrollspyNavigation) {\r\n const navLinks = scrollspyNavigation.querySelectorAll(\"a\");\r\n\r\n if (detectIE()) {\r\n // Small delay needed for IE11 cssVars polyfill, otherwise section positions are wrong.\r\n setTimeout(function () { scrollSpy.updateSectionPositions(scrollSpySections, scrollspyNavigation) }, 500);\r\n } else {\r\n scrollSpy.updateSectionPositions(scrollSpySections, scrollspyNavigation);\r\n }\r\n\r\n if (matchMedia) {\r\n for (let key in breakpoints) {\r\n const windowMatchBp = window.matchMedia(`(min-width: ${breakpoints[key]}px)`);\r\n windowMatchBp.addListener(function () {\r\n if (windowMatchBp.matches) {\r\n scrollSpy.updateSectionPositions(scrollSpySections, scrollspyNavigation);\r\n } else {\r\n scrollSpy.updateSectionPositions(scrollSpySections, scrollspyNavigation);\r\n }\r\n });\r\n }\r\n }\r\n\r\n scrollSpy.updateNavCurrentPosition(scrollSpySections, scrollspyNavigation);\r\n\r\n Array.prototype.forEach.call(navLinks, (currentNavLink) => {\r\n currentNavLink.addEventListener(\"click\", (event) => {\r\n scrollSpy.scrollToSection(event, currentNavLink);\r\n });\r\n });\r\n }\r\n });\r\n\r\n const scrollSpy = {\r\n data: {\r\n sectionPositions: {}\r\n },\r\n scrollToSection: function (event, currentNavLink) {\r\n event.preventDefault();\r\n const targetId = currentNavLink.getAttribute(\"href\").split('#').join(\"\");\r\n const _this = this;\r\n\r\n window.scroll({\r\n left: 0,\r\n top: _this.data.sectionPositions[targetId],\r\n behavior: 'smooth'\r\n });\r\n },\r\n updateSectionPositions: function (scrollSpySections, scrollspyNavigation) {\r\n Array.prototype.forEach.call(scrollSpySections, (currentScrollSpySection) => {\r\n this.data.sectionPositions[currentScrollSpySection.id] = this.getSectionsPosition(currentScrollSpySection, scrollspyNavigation);\r\n });\r\n },\r\n getSectionsPosition: function (el, scrollspyNavigation) {\r\n const mainNavigation = document.querySelector(\".navigation-bar-holder\");\r\n\r\n for (let key in breakpoints) {\r\n if (window.matchMedia(`(min-width: ${breakpoints[key]}px)`).matches) {\r\n return el.offsetTop - (mainNavigation.offsetHeight + scrollspyNavigation.offsetHeight);\r\n }\r\n }\r\n },\r\n getNavItemsPosition: function (el) {\r\n for (let key in breakpoints) {\r\n if (window.matchMedia(`(min-width: ${breakpoints[key]}px)`).matches) {\r\n return el.offsetLeft;\r\n }\r\n }\r\n },\r\n updateNavCurrentPosition: function (sections, nav) {\r\n const observerConfig = {\r\n root: null,\r\n rootMargin: '-50% 0px -50% 0px',\r\n threshold: 0\r\n };\r\n\r\n const intersectionObserver = new IntersectionObserver(function (entries) {\r\n const navLinks = nav.querySelectorAll(\"a\");\r\n const scrollspyNavigation = document.querySelector(\".scrollspy-navigation\");\r\n const containerPadding = 23;\r\n\r\n Array.prototype.forEach.call(navLinks, (item) => {\r\n item.classList.remove(\"active-scroll\");\r\n item.blur();\r\n });\r\n\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting) {\r\n let intersectingSection = entry.target;\r\n let intersectingSectionId = intersectingSection.getAttribute(\"id\");\r\n let currentNavLink = nav.querySelector(`a[href=\"#${intersectingSectionId}\"]`);\r\n intersectingSection.classList.add(\"active-scroll\");\r\n currentNavLink.classList.add(\"active-scroll\");\r\n\r\n let newScrollPosition = (currentNavLink.offsetLeft - scrollspyNavigation.scrollLeft) - containerPadding;\r\n scrollspyNavigation.scrollBy({ top: 0, left: newScrollPosition, behavior: 'smooth' });\r\n\r\n } else {\r\n let notIntersectingSection = entry.target;\r\n notIntersectingSection.classList.remove(\"active-scroll\");\r\n }\r\n });\r\n\r\n }, observerConfig);\r\n\r\n Array.prototype.forEach.call(sections, (section) => {\r\n intersectionObserver.observe(section);\r\n });\r\n }\r\n };\r\n})();","//"],"sourceRoot":"/source/"}