{"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":""}