{"version":3,"sources":["webpack:///./resources/js/modules/mobile-menu.js","webpack:///./resources/js/modules/nav-keyboard.js","webpack:///./resources/js/modules/language-select.js","webpack:///./resources/js/modules/case-study-slider/store/index.js","webpack:///resources/js/modules/case-study-slider/components/SliderNav.vue","webpack:///./resources/js/modules/case-study-slider/components/SliderNav.vue?f387","webpack:///./resources/js/modules/case-study-slider/components/SliderNav.vue","webpack:///./resources/js/modules/case-study-slider/components/SliderNav.vue?1f4e","webpack:///resources/js/modules/case-study-slider/components/LogoSlider.vue","webpack:///./resources/js/modules/case-study-slider/components/LogoSlider.vue?25db","webpack:///./resources/js/modules/case-study-slider/components/LogoSlider.vue","webpack:///./resources/js/modules/case-study-slider/components/LogoSlider.vue?4963","webpack:///resources/js/modules/case-study-slider/components/CurrentSlideText.vue","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlideText.vue?7096","webpack:///resources/js/modules/case-study-slider/components/CurrentSlide.vue","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlide.vue?96e1","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlideText.vue","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlideText.vue?81a6","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlide.vue","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlide.vue?5a4e","webpack:///resources/js/modules/case-study-slider/components/MainSlider.vue","webpack:///./resources/js/modules/case-study-slider/components/MainSlider.vue?9736","webpack:///./resources/js/modules/case-study-slider/components/Layout.vue?764b","webpack:///resources/js/modules/case-study-slider/components/Layout.vue","webpack:///./resources/js/modules/case-study-slider/components/MainSlider.vue","webpack:///./resources/js/modules/case-study-slider/components/MainSlider.vue?9a5f","webpack:///./resources/js/modules/case-study-slider/components/Layout.vue","webpack:///./resources/js/modules/case-study-slider/components/Layout.vue?fc15","webpack:///./resources/js/modules/case-study-slider/index.js","webpack:///./resources/js/modules/group-dropdown.js","webpack:///./resources/js/modules/intersectIO.js","webpack:///./resources/js/modules/scroll-triggers.js","webpack:///./resources/js/modules/touch-detect.js","webpack:///./resources/js/main.js","webpack:///./resources/js/modules/body-scroll.js","webpack:///./resources/js/modules/video-hero.js","webpack:///./resources/js/modules/keyboard-focus.js"],"names":["mobileTrigger","document","querySelector","mobileMenu","search","subBack","dropdownMenus","querySelectorAll","dropdownTriggers","addEventListener","event","classList","toggle","documentElement","body","forEach","dropdownMenu","remove","dropdownTrigger","dropdown","dataset","add","dropdowns","trigger","container","focusables","tabFocusables","dropdownItem","e","contains","relatedTarget","focusable","tabIndex","open","key","window","innerWidth","preventDefault","length","tabFocusable","focus","languageDropdownTrigger","languageDropdown","languageClose","firstFocusable","polyfill","Vue","use","Vuex","store","Store","state","caseStudySlides","currentIndex","translateValue","getters","currentSlide","actions","updateIndex","index","commit","decreaseCurrentIndex","increaseCurrentIndex","updateCurrentTouchTranslate","mutations","setCurrentIndex","setTranslateValue","value","_vm","this","_h","$createElement","_c","_self","staticClass","class","isAtFirstSlide","on","previousSlide","attrs","_v","_s","currentSlideNumber","slideCount","isAtLastSlide","nextSlide","ref","swiperOptions","updateCurrentIndex","updateCurrentTranslate","_l","caseStudy","title","logo","ctaUrl","ctaText","style","setInitialXValue","updateLogoSliderTranslate","$event","goToIndex","image","caseStudySliderEl","el","components","Layout","groupDropdowns","groupDropdown","tabItems","tabPanels","tabItem","tabId","panel","associatedTabPanel","tabPanel","associatedTabPanelFocusables","associatedTabPanelFocusable","IntersectIO","options","selector","onChange","onEnter","onLeave","once","threshold","rootMargin","root","hasEntered","Object","assign","init","initObserver","observer","disconnect","observerOptions","isIntersecting","unobserve","entries","target","IntersectionObserver","observe","navigator","userAgent","indexOf","tile","isEntering","localStorage","getItem","setTimeout","toggleIndustries","motionQuery","matchMedia","updateLocalStorage","setItem","touchDeviceCheck","matches","objectFitImages","objectFitVideos","className","ticking","scrollFunction","requestAnimationFrame","pageYOffset","videoLocation","getElementById","onload","removeAttribute","setAttribute","usingMouse","preFocus","type","addFocus","removeFocus"],"mappings":"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","file":"/js/main.js","sourcesContent":["const mobileTrigger = document.querySelector('.js-mobileTrigger')\nconst mobileMenu = document.querySelector('.js-mobileMenu')\nconst search = document.querySelector('.js-search')\nconst subBack = document.querySelector('.js-subBack')\n\nconst dropdownMenus = [...document.querySelectorAll('.js-dropdown')]\nconst dropdownTriggers = [...document.querySelectorAll('.js-dropdownTrigger')]\n\nmobileTrigger.addEventListener('click', event => {\n mobileTrigger.classList.toggle('is-active')\n mobileMenu.classList.toggle('-opened')\n search.classList.toggle('-hide')\n\n document.documentElement.classList.toggle('-lock')\n document.body.classList.toggle('-lock')\n\n dropdownMenus.forEach(dropdownMenu => dropdownMenu.classList.remove('-opened'))\n subBack.classList.remove('-active')\n})\n\ndropdownTriggers.forEach(dropdownTrigger => {\n dropdownTrigger.addEventListener('click', event => {\n const { dropdown } = dropdownTrigger.dataset\n const associatedDropdown = document.querySelector(`.js-dropdown[data-dropdown=\"${dropdown}\"]`)\n\n associatedDropdown.classList.add('-opened')\n subBack.classList.add('-active');\n })\n})\n\nsubBack.addEventListener('click', event => {\n dropdownMenus.forEach(dropdownMenu => dropdownMenu.classList.remove('-opened'))\n subBack.classList.remove('-active')\n})\n","const dropdowns = [...document.querySelectorAll('.js-dropdownParent')]\n\ndropdowns.forEach(function applyKeyboardOperation (dropdown) {\n const trigger = dropdown.querySelector('.js-navLink')\n const container = dropdown.querySelector('.js-dropdown')\n const focusables = [...container.querySelectorAll('[tabindex]:not(.js-dropdownGroupLink')]\n const tabFocusables = [...container.querySelectorAll('.js-dropdownGroupLink')]\n\n container.addEventListener('mouseover', () => {\n dropdowns.forEach(dropdownItem => dropdownItem.classList.remove('-opened'))\n })\n\n const icon = trigger.querySelector('.js-buttonIcon')\n\n container.addEventListener('focusout', e => {\n if (!container.contains(e.relatedTarget)) {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n container.classList.remove('-opened')\n\n trigger.dataset.open = 0\n }\n })\n\n trigger.addEventListener('keydown', e => {\n if (\n (e.key === 'Enter' || e.key === ' ') &&\n !(trigger.dataset.open * 1) &&\n window.innerWidth > 1000\n ) {\n e.preventDefault()\n\n focusables.forEach(focusable => {\n focusable.tabIndex = '0'\n })\n container.classList.add('-opened')\n\n trigger.dataset.open = 1\n }\n })\n\n container.addEventListener('focusout', e => {\n if (!container.contains(e.relatedTarget)) {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n if (tabFocusables.length) {\n tabFocusables.forEach(tabFocusable => tabFocusable.tabIndex = '-1')\n }\n container.classList.remove('-opened')\n trigger.dataset.open = 0\n }\n })\n\n dropdown.addEventListener('keydown', e => {\n if (e.key === 'Escape') {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n if (tabFocusables.length) {\n tabFocusables.forEach(tabFocusable => tabFocusable.tabIndex = '-1')\n }\n container.classList.remove('-opened')\n trigger.dataset.open = 0\n\n trigger.focus()\n }\n })\n})\n","const languageDropdownTrigger = document.querySelector('.js-languageTrigger')\nconst languageDropdown = document.querySelector('.js-dropdownLanguage')\nconst languageClose = document.querySelector('.js-languageClose')\nconst focusables = [...languageDropdown.querySelectorAll('[tabindex]')]\nconst firstFocusable = focusables[1]\n\nlanguageDropdownTrigger.addEventListener('click', event => {\n languageDropdown.classList.toggle('-opened')\n\n if (languageDropdownTrigger.dataset.open * 1) {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n document.documentElement.classList.remove('-lock')\n document.body.classList.remove('-lock')\n \n languageDropdownTrigger.dataset.open = '0'\n } else {\n focusables.forEach(focusable => {\n focusable.tabIndex = '0'\n })\n\n\n if (window.innerWidth < 1000) {\n document.documentElement.classList.add('-lock')\n document.body.classList.add('-lock')\n }\n\n languageDropdownTrigger.dataset.open = '1'\n }\n})\n\nlanguageDropdownTrigger.addEventListener('keydown', e => {\n if (\n (e.key === 'Enter' || e.key === ' ') &&\n !(languageDropdownTrigger.dataset.open * 1) &&\n window.innerWidth > 1000\n ) {\n e.preventDefault()\n\n focusables.forEach(focusable => {\n focusable.tabIndex = '0'\n })\n\n languageDropdown.classList.add('-opened')\n firstFocusable.focus()\n languageDropdownTrigger.dataset.open = 1\n }\n})\n\nlanguageDropdown.addEventListener('focusout', e => {\n if (!languageDropdown.contains(e.relatedTarget)) {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n languageDropdown.classList.remove('-opened')\n languageDropdownTrigger.dataset.open = 0\n }\n})\n\nlanguageDropdown.addEventListener('keydown', e => {\n if (e.key === 'Escape') {\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n languageDropdown.classList.remove('-opened')\n languageDropdownTrigger.dataset.open = 0\n\n languageDropdownTrigger.focus()\n }\n})\n\nlanguageClose.addEventListener('click', event => {\n languageDropdown.classList.remove('-opened')\n\n focusables.forEach(focusable => {\n focusable.tabIndex = '-1'\n })\n\n document.documentElement.classList.remove('-lock')\n document.body.classList.remove('-lock')\n\n languageDropdownTrigger.dataset.open = 0\n})","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { polyfill } from 'es6-promise'\npolyfill()\n\nVue.use(Vuex)\n\nconst store = new Vuex.Store({\n\n state: {\n caseStudySlides: window.caseStudySlides || [],\n currentIndex: 0,\n translateValue: null\n },\n\n getters: {\n currentSlide (state) {\n return state.caseStudySlides[state.currentIndex]\n }\n },\n\n actions: {\n updateIndex ({ commit }, index) {\n commit('setCurrentIndex', index)\n },\n\n decreaseCurrentIndex ({ commit, state }) {\n commit('setCurrentIndex', state.currentIndex - 1)\n },\n\n increaseCurrentIndex ({ commit, state }) {\n commit('setCurrentIndex', state.currentIndex + 1)\n },\n\n updateCurrentTouchTranslate ({ commit }, translateValue) {\n commit('setTranslateValue', translateValue)\n }\n },\n\n mutations: {\n setCurrentIndex (state, index) {\n state.currentIndex = index\n },\n\n setTranslateValue (state, value) {\n state.translateValue = value\n }\n }\n\n})\n\nexport default store","<template>\n <nav class=\"caseStudySlider__nav\">\n <button\n class=\"caseStudySlider__navLeft\"\n :class=\"{ '-disable': isAtFirstSlide }\"\n @click=\"previousSlide\"\n >\n <img src=\"media/icons/previous.png\" alt=\"\" class=\"caseStudySlider__navLeftIcon\">\n </button>\n <p class=\"caseStudySlider__navText\">\n <span class=\"caseStudySlider__valueIndex\">{{ currentSlideNumber }}</span>\n of\n <span class=\"caseStudySlider__valueTotal\">{{ slideCount }}</span>\n </p>\n <button\n class=\"caseStudySlider__navRight\"\n :class=\"{ '-disable': isAtLastSlide }\"\n @click=\"nextSlide\"\n >\n <img src=\"media/icons/next.png\" alt=\"\" class=\"caseStudySlider__navLeftIcon\">\n </button>\n </nav>\n</template>\n\n<script>\nimport { mapState } from 'vuex'\n\nexport default {\n\n computed: {\n ...mapState(['caseStudySlides', 'currentIndex']),\n\n slideCount () {\n return this.caseStudySlides.length\n },\n\n currentSlideNumber () {\n return this.currentIndex + 1\n },\n\n isAtFirstSlide () {\n return this.currentIndex === 0\n },\n\n isAtLastSlide () {\n return this.currentIndex >= this.caseStudySlides.length - 1\n }\n },\n\n methods: {\n previousSlide () {\n this.$store.dispatch('decreaseCurrentIndex')\n },\n\n nextSlide () {\n this.$store.dispatch('increaseCurrentIndex')\n }\n }\n\n}\n</script>","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderNav.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SliderNav.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SliderNav.vue?vue&type=template&id=57a598ca&\"\nimport script from \"./SliderNav.vue?vue&type=script&lang=js&\"\nexport * from \"./SliderNav.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('nav',{staticClass:\"caseStudySlider__nav\"},[_c('button',{staticClass:\"caseStudySlider__navLeft\",class:{ '-disable': _vm.isAtFirstSlide },on:{\"click\":_vm.previousSlide}},[_c('img',{staticClass:\"caseStudySlider__navLeftIcon\",attrs:{\"src\":\"media/icons/previous.png\",\"alt\":\"\"}})]),_vm._v(\" \"),_c('p',{staticClass:\"caseStudySlider__navText\"},[_c('span',{staticClass:\"caseStudySlider__valueIndex\"},[_vm._v(_vm._s(_vm.currentSlideNumber))]),_vm._v(\"\\n of\\n \"),_c('span',{staticClass:\"caseStudySlider__valueTotal\"},[_vm._v(_vm._s(_vm.slideCount))])]),_vm._v(\" \"),_c('button',{staticClass:\"caseStudySlider__navRight\",class:{ '-disable': _vm.isAtLastSlide },on:{\"click\":_vm.nextSlide}},[_c('img',{staticClass:\"caseStudySlider__navLeftIcon\",attrs:{\"src\":\"media/icons/next.png\",\"alt\":\"\"}})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"caseStudySlider__logoSlider\">\n <Swiper\n ref=\"mainSlider\"\n :options=\"swiperOptions\"\n @slide-change=\"updateCurrentIndex\"\n @slide-change-transition-end=\"updateCurrentTranslate\"\n >\n <SwiperSlide\n v-for=\"caseStudy in caseStudySlides\"\n :key=\"caseStudy.title\"\n >\n <div class=\"caseStudySlider__logoWrapper\">\n <img :src=\"caseStudy.logo\" alt=\"\" class=\"caseStudySlider__logo\">\n </div>\n </SwiperSlide>\n </Swiper>\n </div>\n</template>\n\n<script>\nimport { Swiper, SwiperSlide } from 'vue-awesome-swiper'\nimport { mapState } from 'vuex'\n\nexport default {\n\n data () {\n return {\n swiperOptions: {\n direction: 'horizontal'\n },\n currentTranslate: 0\n }\n },\n\n methods: {\n updateCurrentIndex (swiper) {\n const { realIndex } = swiper\n\n this.$store.dispatch('updateIndex', realIndex)\n },\n\n updateCurrentTranslate (swiper) {\n this.currentTranslate = swiper.getTranslate()\n }\n },\n\n watch: {\n currentIndex (val) {\n const { $swiper } = this.$refs.mainSlider\n\n\n requestAnimationFrame(() => {\n $swiper.slideTo(val)\n })\n },\n\n translateValue (value) {\n const { $swiper } = this.$refs.mainSlider\n const newTranslate = this.currentTranslate - value\n if (newTranslate <= 0) {\n $swiper.setTranslate(newTranslate)\n }\n }\n },\n\n components: {\n Swiper,\n SwiperSlide\n },\n\n computed: {\n ...mapState(['caseStudySlides', 'currentIndex', 'translateValue'])\n }\n\n}\n</script>","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoSlider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LogoSlider.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LogoSlider.vue?vue&type=template&id=15ae7eb3&\"\nimport script from \"./LogoSlider.vue?vue&type=script&lang=js&\"\nexport * from \"./LogoSlider.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"caseStudySlider__logoSlider\"},[_c('Swiper',{ref:\"mainSlider\",attrs:{\"options\":_vm.swiperOptions},on:{\"slide-change\":_vm.updateCurrentIndex,\"slide-change-transition-end\":_vm.updateCurrentTranslate}},_vm._l((_vm.caseStudySlides),function(caseStudy){return _c('SwiperSlide',{key:caseStudy.title},[_c('div',{staticClass:\"caseStudySlider__logoWrapper\"},[_c('img',{staticClass:\"caseStudySlider__logo\",attrs:{\"src\":caseStudy.logo,\"alt\":\"\"}})])])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"caseStudySlider__body\">\n <h2 class=\"caseStudySlider__slideTitle\">\n {{ currentSlide.title }}\n </h2>\n <a :href=\"currentSlide.ctaUrl\" class=\"button caseStudySlider__button\">\n {{ currentSlide.ctaText }}\n </a>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport smoothReflow from 'vue-smooth-reflow'\n\nexport default {\n\n mixins: [smoothReflow],\n\n computed: {\n ...mapGetters(['currentSlide'])\n },\n\n mounted () {\n this.$smoothReflow({\n property: ['height', 'width'],\n transition: 'height 250ms cubic-bezier(0.16, 1, 0.3, 1), width 250ms cubic-bezier(0.16, 1, 0.3, 1)'\n })\n }\n\n}\n</script>","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentSlideText.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentSlideText.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"caseStudySlider__currentSlideWrapper\">\n <transition-group name=\"fade\">\n <div \n class=\"caseStudySlider__backgroundSlide\"\n v-for=\"caseStudy in reducedSlides\"\n :key=\"caseStudy.title\"\n :style=\"`background-image:url('${caseStudy.image}')`\"\n >\n </div>\n </transition-group>\n <div class=\"caseStudySlider__currentSlideTray\">\n <SliderNav />\n <LogoSlider />\n <CurrentSlideText />\n </div>\n </div>\n</template>\n\n<script>\nimport SliderNav from './SliderNav'\nimport LogoSlider from './LogoSlider'\nimport CurrentSlideText from './CurrentSlideText'\nimport { mapGetters, mapState } from 'vuex'\n\nexport default {\n\n components: {\n SliderNav,\n LogoSlider,\n CurrentSlideText\n },\n\n computed: {\n ...mapGetters(['currentSlide']),\n ...mapState(['caseStudySlides', 'currentIndex']),\n\n reducedSlides () {\n return this.caseStudySlides.slice(0, this.currentIndex + 1)\n }\n }\n\n}\n</script>","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentSlide.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentSlide.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CurrentSlideText.vue?vue&type=template&id=f58afe5e&\"\nimport script from \"./CurrentSlideText.vue?vue&type=script&lang=js&\"\nexport * from \"./CurrentSlideText.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"caseStudySlider__body\"},[_c('h2',{staticClass:\"caseStudySlider__slideTitle\"},[_vm._v(\"\\n \"+_vm._s(_vm.currentSlide.title)+\"\\n \")]),_vm._v(\" \"),_c('a',{staticClass:\"button caseStudySlider__button\",attrs:{\"href\":_vm.currentSlide.ctaUrl}},[_vm._v(\"\\n \"+_vm._s(_vm.currentSlide.ctaText)+\"\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CurrentSlide.vue?vue&type=template&id=1478defa&\"\nimport script from \"./CurrentSlide.vue?vue&type=script&lang=js&\"\nexport * from \"./CurrentSlide.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"caseStudySlider__currentSlideWrapper\"},[_c('transition-group',{attrs:{\"name\":\"fade\"}},_vm._l((_vm.reducedSlides),function(caseStudy){return _c('div',{key:caseStudy.title,staticClass:\"caseStudySlider__backgroundSlide\",style:((\"background-image:url('\" + (caseStudy.image) + \"')\"))})}),0),_vm._v(\" \"),_c('div',{staticClass:\"caseStudySlider__currentSlideTray\"},[_c('SliderNav'),_vm._v(\" \"),_c('LogoSlider'),_vm._v(\" \"),_c('CurrentSlideText')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"caseStudySlider__mainSliderWrapper\">\n <swiper \n :class=\"'caseStudySlider__mainSliderTray'\"\n ref=\"mainSlider\"\n :options=\"swiperOptions\"\n @slide-change=\"updateCurrentIndex\"\n @touch-start=\"setInitialXValue\"\n @touch-move=\"updateLogoSliderTranslate\"\n >\n <swiper-slide \n v-for=\"(caseStudy, index) in slicedCaseStudies\"\n :key=\"caseStudy.title\"\n > \n <div \n class=\"caseStudySlider__mainSliderColumn\"\n @click=\"goToIndex(index)\"\n >\n <div class=\"caseStudySlider__logoWrapper\">\n <img :src=\"caseStudy.logo\" alt=\"\" class=\"caseStudySlider__logo\">\n </div>\n <div class=\"caseStudySlider__columnImageWrapper\">\n <img :src=\"caseStudy.image\" alt=\"\" class=\"caseStudySlider__columnImage\">\n </div>\n </div>\n </swiper-slide>\n <swiper-slide> \n <div>\n <!-- Hacky Slider Dummy -->\n </div>\n </swiper-slide>\n </swiper>\n </div>\n</template>\n\n<script>\nimport { Swiper, SwiperSlide } from 'vue-awesome-swiper'\nimport { mapState } from 'vuex'\n\nexport default {\n\n data () {\n return {\n swiperOptions: {\n direction: 'horizontal'\n },\n initialXValue: null\n }\n },\n\n components: {\n Swiper,\n SwiperSlide\n },\n\n methods: {\n updateCurrentIndex (swiper) {\n const { realIndex } = swiper\n\n this.$store.dispatch('updateIndex', realIndex)\n },\n\n setInitialXValue (swiper) {\n this.initialXValue = swiper.getTranslate()\n },\n\n updateLogoSliderTranslate (swiper) {\n const changeValue = this.initialXValue - swiper.getTranslate()\n\n this.$store.dispatch('updateCurrentTouchTranslate', changeValue)\n },\n\n goToIndex(index) {\n this.$store.dispatch('updateIndex', index + 1)\n }\n },\n\n watch: {\n currentIndex (val) {\n const { $swiper } = this.$refs.mainSlider\n\n requestAnimationFrame(() => {\n $swiper.slideTo(val)\n })\n }\n },\n\n computed: {\n ...mapState(['caseStudySlides', 'currentIndex']),\n\n slicedCaseStudies () {\n return this.caseStudySlides.slice(1, this.caseStudySlides.length)\n }\n }\n\n}\n</script>","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainSlider.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainSlider.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"caseStudySlider__wrapper\">\n <CurrentSlide />\n <MainSlider />\n </div>\n</template>\n\n<script>\nimport CurrentSlide from './CurrentSlide'\nimport MainSlider from './MainSlider'\n\nexport default {\n components: {\n CurrentSlide,\n MainSlider\n }\n}\n</script>","import { render, staticRenderFns } from \"./MainSlider.vue?vue&type=template&id=709bf741&\"\nimport script from \"./MainSlider.vue?vue&type=script&lang=js&\"\nexport * from \"./MainSlider.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"caseStudySlider__mainSliderWrapper\"},[_c('swiper',{ref:\"mainSlider\",class:'caseStudySlider__mainSliderTray',attrs:{\"options\":_vm.swiperOptions},on:{\"slide-change\":_vm.updateCurrentIndex,\"touch-start\":_vm.setInitialXValue,\"touch-move\":_vm.updateLogoSliderTranslate}},[_vm._l((_vm.slicedCaseStudies),function(caseStudy,index){return _c('swiper-slide',{key:caseStudy.title},[_c('div',{staticClass:\"caseStudySlider__mainSliderColumn\",on:{\"click\":function($event){return _vm.goToIndex(index)}}},[_c('div',{staticClass:\"caseStudySlider__logoWrapper\"},[_c('img',{staticClass:\"caseStudySlider__logo\",attrs:{\"src\":caseStudy.logo,\"alt\":\"\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"caseStudySlider__columnImageWrapper\"},[_c('img',{staticClass:\"caseStudySlider__columnImage\",attrs:{\"src\":caseStudy.image,\"alt\":\"\"}})])])])}),_vm._v(\" \"),_c('swiper-slide',[_c('div')])],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=d4f6c0cc&\"\nimport script from \"./Layout.vue?vue&type=script&lang=js&\"\nexport * from \"./Layout.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"caseStudySlider__wrapper\"},[_c('CurrentSlide'),_vm._v(\" \"),_c('MainSlider')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport store from './store'\nimport Layout from './components/Layout'\nimport { polyfill } from 'es6-promise'\npolyfill()\n\nconst caseStudySliderEl = document.querySelector('.js-caseStudySlider')\n\nif (caseStudySliderEl) {\n new Vue({\n el: caseStudySliderEl,\n store,\n components: {\n Layout\n }\n })\n}","const groupDropdowns = [...document.querySelectorAll('.js-groupedTabs')]\n\nif (groupDropdowns.length) {\n groupDropdowns.forEach(groupDropdown => {\n const tabItems = [...groupDropdown.querySelectorAll('.js-tabItem')]\n const tabPanels = [...groupDropdown.querySelectorAll('.js-tabPanel')]\n const focusables = [...groupDropdown.querySelectorAll('.js-dropdownGroupLink')]\n\n tabItems.forEach(tabItem => {\n tabItem.addEventListener('mouseover', () => {\n const tabId = tabItem.dataset.panel\n const associatedTabPanel = groupDropdown.querySelector(`.js-tabPanel[data-panel='${tabId}']`)\n\n tabPanels.forEach(tabPanel => tabPanel.classList.remove('-active'))\n tabItems.forEach(tabItem => tabItem.classList.remove('-active'))\n associatedTabPanel.classList.add('-active')\n tabItem.classList.add('-active')\n }) \n })\n\n tabItems.forEach(tabItem => {\n tabItem.addEventListener('keydown', e => {\n if (e.key === 'Enter' || e.key === ' ') {\n const tabId = tabItem.dataset.panel\n const associatedTabPanel = groupDropdown.querySelector(`.js-tabPanel[data-panel='${tabId}']`)\n \n const associatedTabPanelFocusables = [...associatedTabPanel.querySelectorAll('.js-dropdownGroupLink')]\n const [firstFocusable] = associatedTabPanelFocusables\n\n focusables.forEach(focusable => focusable.tabIndex = '-1')\n associatedTabPanelFocusables.forEach(associatedTabPanelFocusable => associatedTabPanelFocusable.tabIndex = '0')\n firstFocusable.focus()\n\n tabPanels.forEach(tabPanel => tabPanel.classList.remove('-active'))\n tabItems.forEach(tabItem => tabItem.classList.remove('-active'))\n associatedTabPanel.classList.add('-active')\n tabItem.classList.add('-active')\n }\n })\n })\n })\n}","class IntersectIO {\n constructor(el, options) {\n this.selector = el\n\n // Callbacks.\n this.onChange = function() {}\n this.onEnter = function() {}\n this.onLeave = function() {}\n\n // IntersectionObserver.\n this.once = false\n this.threshold = 0.5\n this.rootMargin = '0px 0px 0px 0px'\n this.root = null\n this.hasEntered = false\n\n // Override defaults.\n Object.assign( this, options )\n\n this.init()\n }\n\n init() {\n this.initObserver()\n }\n\n destroy() {\n if ( this.observer ) {\n this.observer.disconnect()\n }\n }\n\n initObserver() {\n const observerOptions = {\n threshold: this.threshold,\n root: this.root,\n rootMargin: this.rootMargin,\n }\n\n const isIntersecting = () => {\n\n this.onEnter()\n\n // Remove observer.\n if ( this.once ) {\n this.observer.unobserve(entries[0].target)\n }\n }\n\n const isNotIntersecting = () => {\n this.onLeave()\n }\n\n this.observer = new IntersectionObserver((entries) => {\n\n if (!entries[0].isIntersecting) {\n isNotIntersecting()\n } else {\n isIntersecting()\n }\n this.onChange()\n\n }, observerOptions )\n\n this.observer.observe(this.selector)\n }\n}\n\nexport default IntersectIO","import IntersectIO from \"./intersectIO\"\n\nconst toggleIndustries = ( isEntering, tile, index ) => {\n if ( localStorage.getItem('touchDevice') === 'true' ) {\n setTimeout(() => {\n isEntering\n ? tile.classList.add('-noHover')\n : tile.classList.remove('-noHover')\n }, 100 * ( index + 1 ) )\n }\n}\n\nconst isIE11 = window.navigator.userAgent.indexOf(\"Trident/7.0\") > -1\n\nif ( ! isIE11 ) {\n document.querySelectorAll('.aspenIndustries')\n .forEach( ( el ) => {\n const tiles = el.querySelectorAll('.aspenIndustries__card')\n tiles.forEach( ( tile, index) => {\n new IntersectIO( tile, {\n threshold: 1,\n rootMargin: '0% 0% -5%',\n onEnter: function() {\n toggleIndustries( true, tile, index )\n },\n })\n })\n })\n}\n","// Detect Touchscreen Devices\nconst motionQuery = matchMedia(\"(pointer: coarse)\")\nconst updateLocalStorage = ( value ) => {\n localStorage.setItem( 'touchDevice', value )\n}\nconst touchDeviceCheck = () => {\n\tif ( motionQuery.matches ) {\n\t\tupdateLocalStorage( true )\n\t} else {\n\t\tupdateLocalStorage( false )\n\t}\n}\n\nconst isIE11 = window.navigator.userAgent.indexOf(\"Trident/7.0\") > -1\nif ( ! isIE11 ) {\n touchDeviceCheck()\n motionQuery.addEventListener('change', touchDeviceCheck)\n}\n","import 'core-js/es/number'\nimport objectFitImages from 'object-fit-images'\nimport objectFitVideos from 'object-fit-videos'\nimport './modules/keyboard-focus'\nimport './modules/body-scroll'\nimport './modules/mobile-menu'\nimport './modules/nav-keyboard'\nimport './modules/language-select'\nimport './modules/case-study-slider'\nimport './modules/group-dropdown'\nimport './modules/scroll-triggers'\nimport './modules/touch-detect'\nimport './modules/video-hero'\n\nobjectFitImages()\nobjectFitVideos()\n\n// add fallback class if ie11\nif (window.navigator.userAgent.indexOf(\"Trident/7.0\") > -1) {\n\tdocument.documentElement.className += \" -ie11Fallbacks\";\n}","const body = document.querySelector('body')\n\nconst fixedPoint = 10\nlet ticking = false\n\nconst scrollFunction = () => {\n if (!ticking) {\n window.requestAnimationFrame(() => {\n if (window.pageYOffset >= fixedPoint) {\n body.classList.add('scrolled')\n } else {\n body.classList.remove('scrolled')\n }\n ticking = false\n })\n\n ticking = true\n }\n}\n\nscrollFunction()\nwindow.addEventListener('scroll', scrollFunction)\n","const videoLocation = document.getElementById(\"video-hero\");\n\nif ( videoLocation ) {\n window.onload = removeVideoOnMobile();\n function removeVideoOnMobile() {\n if (window.innerWidth < 992){\n videoLocation.removeAttribute(\"autoplay\");\n videoLocation.setAttribute('preload', 'none');\n };\n }\n}","let usingMouse\nconst { body } = document\n\nconst preFocus = function (event) {\n usingMouse = (event.type === 'mousedown')\n}\n\nconst addFocus = function (event) {\n if (usingMouse) { event.target.classList.add('focus--mouse') }\n}\n\nconst removeFocus = function (event) {\n event.target.classList.remove('focus--mouse')\n}\n\nconst bindEvents = function () {\n body.addEventListener('keydown', preFocus)\n body.addEventListener('mousedown', preFocus)\n body.addEventListener('focusin', addFocus)\n body.addEventListener('focusout', removeFocus)\n}\n\nbindEvents()\n"],"sourceRoot":""}