{"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?3c2f","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?74cd","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?cc7e","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlide.vue","webpack:///./resources/js/modules/case-study-slider/components/CurrentSlide.vue?5846","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?ade8","webpack:///./resources/js/modules/case-study-slider/components/Layout.vue","webpack:///./resources/js/modules/case-study-slider/components/Layout.vue?c660","webpack:///./resources/js/modules/case-study-slider/index.js","webpack:///./resources/js/modules/group-dropdown.js","webpack:///./resources/js/retromain.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","objectFitImages","usingMouse","preFocus","type","addFocus","target","removeFocus"],"mappings":"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","file":"/js/retromain.js","sourcesContent":["const mobileTrigger = document.querySelector('.js-mobileTrigger')\r\nconst mobileMenu = document.querySelector('.js-mobileMenu')\r\nconst search = document.querySelector('.js-search')\r\nconst subBack = document.querySelector('.js-subBack')\r\n\r\nconst dropdownMenus = [...document.querySelectorAll('.js-dropdown')]\r\nconst dropdownTriggers = [...document.querySelectorAll('.js-dropdownTrigger')]\r\n\r\nmobileTrigger.addEventListener('click', event => {\r\n    mobileTrigger.classList.toggle('is-active')\r\n    mobileMenu.classList.toggle('-opened')\r\n    search.classList.toggle('-hide')\r\n\r\n    document.documentElement.classList.toggle('-lock')\r\n    document.body.classList.toggle('-lock')\r\n\r\n    dropdownMenus.forEach(dropdownMenu => dropdownMenu.classList.remove('-opened'))\r\n    subBack.classList.remove('-active')\r\n})\r\n\r\ndropdownTriggers.forEach(dropdownTrigger => {\r\n    dropdownTrigger.addEventListener('click', event => {\r\n        const { dropdown } = dropdownTrigger.dataset\r\n        const associatedDropdown = document.querySelector(`.js-dropdown[data-dropdown=\"${dropdown}\"]`)\r\n\r\n        associatedDropdown.classList.add('-opened')\r\n        subBack.classList.add('-active');\r\n    })\r\n})\r\n\r\nsubBack.addEventListener('click', event => {\r\n    dropdownMenus.forEach(dropdownMenu => dropdownMenu.classList.remove('-opened'))\r\n    subBack.classList.remove('-active')\r\n})\r\n","const dropdowns = [...document.querySelectorAll('.js-dropdownParent')]\r\n\r\ndropdowns.forEach(function applyKeyboardOperation (dropdown) {\r\n    const trigger = dropdown.querySelector('.js-navLink')\r\n    const container = dropdown.querySelector('.js-dropdown')\r\n    const focusables = [...container.querySelectorAll('[tabindex]:not(.js-dropdownGroupLink')]\r\n    const tabFocusables = [...container.querySelectorAll('.js-dropdownGroupLink')]\r\n\r\n    container.addEventListener('mouseover', () => {\r\n        dropdowns.forEach(dropdownItem => dropdownItem.classList.remove('-opened'))\r\n    })\r\n\r\n    const icon = trigger.querySelector('.js-buttonIcon')\r\n\r\n    container.addEventListener('focusout', e => {\r\n        if (!container.contains(e.relatedTarget)) {\r\n            focusables.forEach(focusable => {\r\n                focusable.tabIndex = '-1'\r\n            })\r\n            container.classList.remove('-opened')\r\n\r\n            trigger.dataset.open = 0\r\n        }\r\n    })\r\n\r\n    trigger.addEventListener('keydown', e => {\r\n        if (\r\n            (e.key === 'Enter' || e.key === ' ') &&\r\n            !(trigger.dataset.open * 1) &&\r\n            window.innerWidth > 1000\r\n        ) {\r\n            e.preventDefault()\r\n\r\n            focusables.forEach(focusable => {\r\n                focusable.tabIndex = '0'\r\n            })\r\n            container.classList.add('-opened')\r\n\r\n            trigger.dataset.open = 1\r\n        }\r\n    })\r\n\r\n    container.addEventListener('focusout', e => {\r\n        if (!container.contains(e.relatedTarget)) {\r\n            focusables.forEach(focusable => {\r\n                focusable.tabIndex = '-1'\r\n            })\r\n            if (tabFocusables.length) {\r\n                tabFocusables.forEach(tabFocusable => tabFocusable.tabIndex = '-1')\r\n            }\r\n            container.classList.remove('-opened')\r\n            trigger.dataset.open = 0\r\n        }\r\n    })\r\n\r\n    dropdown.addEventListener('keydown', e => {\r\n        if (e.key === 'Escape') {\r\n            focusables.forEach(focusable => {\r\n                focusable.tabIndex = '-1'\r\n            })\r\n            if (tabFocusables.length) {\r\n                tabFocusables.forEach(tabFocusable => tabFocusable.tabIndex = '-1')\r\n            }\r\n            container.classList.remove('-opened')\r\n            trigger.dataset.open = 0\r\n\r\n            trigger.focus()\r\n        }\r\n    })\r\n})\r\n","const languageDropdownTrigger = document.querySelector('.js-languageTrigger')\r\nconst languageDropdown = document.querySelector('.js-dropdownLanguage')\r\nconst languageClose = document.querySelector('.js-languageClose')\r\nconst focusables = [...languageDropdown.querySelectorAll('[tabindex]')]\r\nconst firstFocusable = focusables[1]\r\n\r\nlanguageDropdownTrigger.addEventListener('click', event => {\r\n    languageDropdown.classList.toggle('-opened')\r\n\r\n    if (languageDropdownTrigger.dataset.open * 1) {\r\n        focusables.forEach(focusable => {\r\n            focusable.tabIndex = '-1'\r\n        })\r\n        document.documentElement.classList.remove('-lock')\r\n        document.body.classList.remove('-lock')\r\n        \r\n        languageDropdownTrigger.dataset.open = '0'\r\n    } else {\r\n        focusables.forEach(focusable => {\r\n            focusable.tabIndex = '0'\r\n        })\r\n\r\n\r\n        if (window.innerWidth < 1000) {\r\n            document.documentElement.classList.add('-lock')\r\n            document.body.classList.add('-lock')\r\n        }\r\n\r\n        languageDropdownTrigger.dataset.open = '1'\r\n    }\r\n})\r\n\r\nlanguageDropdownTrigger.addEventListener('keydown', e => {\r\n    if (\r\n        (e.key === 'Enter' || e.key === ' ') &&\r\n        !(languageDropdownTrigger.dataset.open * 1) &&\r\n        window.innerWidth > 1000\r\n    ) {\r\n        e.preventDefault()\r\n\r\n        focusables.forEach(focusable => {\r\n            focusable.tabIndex = '0'\r\n        })\r\n\r\n        languageDropdown.classList.add('-opened')\r\n        firstFocusable.focus()\r\n        languageDropdownTrigger.dataset.open = 1\r\n    }\r\n})\r\n\r\nlanguageDropdown.addEventListener('focusout', e => {\r\n    if (!languageDropdown.contains(e.relatedTarget)) {\r\n        focusables.forEach(focusable => {\r\n            focusable.tabIndex = '-1'\r\n        })\r\n        languageDropdown.classList.remove('-opened')\r\n        languageDropdownTrigger.dataset.open = 0\r\n    }\r\n})\r\n\r\nlanguageDropdown.addEventListener('keydown', e => {\r\n    if (e.key === 'Escape') {\r\n        focusables.forEach(focusable => {\r\n            focusable.tabIndex = '-1'\r\n        })\r\n        languageDropdown.classList.remove('-opened')\r\n        languageDropdownTrigger.dataset.open = 0\r\n\r\n        languageDropdownTrigger.focus()\r\n    }\r\n})\r\n\r\nlanguageClose.addEventListener('click', event => {\r\n    languageDropdown.classList.remove('-opened')\r\n\r\n    focusables.forEach(focusable => {\r\n        focusable.tabIndex = '-1'\r\n    })\r\n\r\n    document.documentElement.classList.remove('-lock')\r\n    document.body.classList.remove('-lock')\r\n\r\n    languageDropdownTrigger.dataset.open = 0\r\n})","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { polyfill } from 'es6-promise'\r\npolyfill()\r\n\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n\r\n    state: {\r\n        caseStudySlides: window.caseStudySlides || [],\r\n        currentIndex: 0,\r\n        translateValue: null\r\n    },\r\n\r\n    getters: {\r\n        currentSlide (state) {\r\n            return state.caseStudySlides[state.currentIndex]\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        updateIndex ({ commit }, index) {\r\n            commit('setCurrentIndex', index)\r\n        },\r\n\r\n        decreaseCurrentIndex ({ commit, state }) {\r\n            commit('setCurrentIndex', state.currentIndex - 1)\r\n        },\r\n\r\n        increaseCurrentIndex ({ commit, state }) {\r\n            commit('setCurrentIndex', state.currentIndex + 1)\r\n        },\r\n\r\n        updateCurrentTouchTranslate ({ commit }, translateValue) {\r\n            commit('setTranslateValue', translateValue)\r\n        }\r\n    },\r\n\r\n    mutations: {\r\n        setCurrentIndex (state, index) {\r\n            state.currentIndex = index\r\n        },\r\n\r\n        setTranslateValue (state, value) {\r\n            state.translateValue = value\r\n        }\r\n    }\r\n\r\n})\r\n\r\nexport default store","<template>\r\n    <nav class=\"caseStudySlider__nav\">\r\n        <button \r\n            class=\"caseStudySlider__navLeft\"\r\n            :class=\"{ '-disable': isAtFirstSlide }\"\r\n            @click=\"previousSlide\"\r\n        >\r\n            <img src=\"/media/icons/previous.png\" alt=\"\" class=\"caseStudySlider__navLeftIcon\">\r\n        </button>\r\n        <p class=\"caseStudySlider__navText\">\r\n            <span class=\"caseStudySlider__valueIndex\">{{ currentSlideNumber }}</span>\r\n            of \r\n            <span class=\"caseStudySlider__valueTotal\">{{ slideCount }}</span>\r\n        </p>\r\n        <button \r\n            class=\"caseStudySlider__navRight\"\r\n            :class=\"{ '-disable': isAtLastSlide }\"\r\n            @click=\"nextSlide\"\r\n        >\r\n            <img src=\"/media/icons/next.png\" alt=\"\" class=\"caseStudySlider__navLeftIcon\">\r\n        </button>\r\n    </nav>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex'\r\n\r\nexport default {\r\n    \r\n    computed: {\r\n        ...mapState(['caseStudySlides', 'currentIndex']),\r\n\r\n        slideCount () {\r\n            return this.caseStudySlides.length\r\n        },\r\n\r\n        currentSlideNumber () {\r\n            return this.currentIndex + 1\r\n        },\r\n\r\n        isAtFirstSlide () {\r\n            return this.currentIndex === 0\r\n        },\r\n\r\n        isAtLastSlide () {\r\n            return this.currentIndex >= this.caseStudySlides.length - 1\r\n        }\r\n    },\r\n\r\n    methods: {\r\n        previousSlide () {\r\n            this.$store.dispatch('decreaseCurrentIndex')\r\n        },\r\n\r\n        nextSlide () {\r\n            this.$store.dispatch('increaseCurrentIndex')\r\n        }\r\n    }\r\n\r\n}\r\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=f1ee1d3c&\"\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>\r\n    <div class=\"caseStudySlider__logoSlider\">\r\n        <Swiper\r\n            ref=\"mainSlider\"\r\n            :options=\"swiperOptions\"\r\n            @slide-change=\"updateCurrentIndex\"\r\n            @slide-change-transition-end=\"updateCurrentTranslate\"\r\n        >\r\n            <SwiperSlide\r\n                v-for=\"caseStudy in caseStudySlides\"\r\n                :key=\"caseStudy.title\"\r\n            >\r\n                <div class=\"caseStudySlider__logoWrapper\">\r\n                    <img :src=\"caseStudy.logo\" alt=\"\" class=\"caseStudySlider__logo\">\r\n                </div>\r\n            </SwiperSlide>\r\n        </Swiper>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { Swiper, SwiperSlide } from 'vue-awesome-swiper'\r\nimport { mapState } from 'vuex'\r\n\r\nexport default {\r\n\r\n    data () {\r\n        return {\r\n            swiperOptions: {\r\n                direction: 'horizontal'\r\n            },\r\n            currentTranslate: 0\r\n        }\r\n    },\r\n\r\n    methods: {\r\n        updateCurrentIndex (swiper) {\r\n            const { realIndex } = swiper\r\n\r\n            this.$store.dispatch('updateIndex', realIndex)\r\n        },\r\n\r\n        updateCurrentTranslate (swiper) {\r\n            this.currentTranslate = swiper.getTranslate()\r\n        }\r\n    },\r\n\r\n    watch: {\r\n        currentIndex (val) {\r\n            const { $swiper } = this.$refs.mainSlider\r\n\r\n\r\n            requestAnimationFrame(() => {\r\n                $swiper.slideTo(val)\r\n            })\r\n        },\r\n\r\n        translateValue (value) {\r\n            const { $swiper } = this.$refs.mainSlider\r\n            const newTranslate = this.currentTranslate - value\r\n            if (newTranslate <= 0) {\r\n                $swiper.setTranslate(newTranslate)\r\n            }\r\n        }\r\n    },\r\n\r\n    components: {\r\n        Swiper,\r\n        SwiperSlide\r\n    },\r\n\r\n    computed: {\r\n        ...mapState(['caseStudySlides', 'currentIndex', 'translateValue'])\r\n    }\r\n\r\n}\r\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=58547671&\"\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>\r\n    <div class=\"caseStudySlider__body\">\r\n        <h2 class=\"caseStudySlider__slideTitle\">\r\n            {{ currentSlide.title }}\r\n        </h2>\r\n        <a :href=\"currentSlide.ctaUrl\" class=\"button caseStudySlider__button\">\r\n            {{ currentSlide.ctaText }}\r\n        </a>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex'\r\nimport smoothReflow from 'vue-smooth-reflow'\r\n\r\nexport default {\r\n\r\n    mixins: [smoothReflow],\r\n\r\n    computed: {\r\n        ...mapGetters(['currentSlide'])\r\n    },\r\n\r\n    mounted () {\r\n        this.$smoothReflow({\r\n            property: ['height', 'width'],\r\n            transition: 'height 250ms cubic-bezier(0.16, 1, 0.3, 1), width 250ms cubic-bezier(0.16, 1, 0.3, 1)'\r\n        })\r\n    }\r\n\r\n}\r\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>\r\n    <div class=\"caseStudySlider__currentSlideWrapper\">\r\n        <transition-group name=\"fade\">\r\n            <div \r\n                class=\"caseStudySlider__backgroundSlide\"\r\n                v-for=\"caseStudy in reducedSlides\"\r\n                :key=\"caseStudy.title\"\r\n                :style=\"`background-image:url('${caseStudy.image}')`\"\r\n            >\r\n            </div>\r\n        </transition-group>\r\n        <div class=\"caseStudySlider__currentSlideTray\">\r\n            <SliderNav />\r\n            <LogoSlider />\r\n            <CurrentSlideText />\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport SliderNav from './SliderNav'\r\nimport LogoSlider from './LogoSlider'\r\nimport CurrentSlideText from './CurrentSlideText'\r\nimport { mapGetters, mapState } from 'vuex'\r\n\r\nexport default {\r\n\r\n    components: {\r\n        SliderNav,\r\n        LogoSlider,\r\n        CurrentSlideText\r\n    },\r\n\r\n    computed: {\r\n        ...mapGetters(['currentSlide']),\r\n        ...mapState(['caseStudySlides', 'currentIndex']),\r\n\r\n        reducedSlides () {\r\n            return this.caseStudySlides.slice(0, this.currentIndex + 1)\r\n        }\r\n    }\r\n\r\n}\r\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=c6a4c794&\"\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=71ecc7b8&\"\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>\r\n    <div class=\"caseStudySlider__mainSliderWrapper\">\r\n        <swiper \r\n            :class=\"'caseStudySlider__mainSliderTray'\"\r\n            ref=\"mainSlider\"\r\n            :options=\"swiperOptions\"\r\n            @slide-change=\"updateCurrentIndex\"\r\n            @touch-start=\"setInitialXValue\"\r\n            @touch-move=\"updateLogoSliderTranslate\"\r\n        >\r\n            <swiper-slide \r\n                v-for=\"(caseStudy, index) in slicedCaseStudies\"\r\n                :key=\"caseStudy.title\"\r\n            >   \r\n                <div \r\n                    class=\"caseStudySlider__mainSliderColumn\"\r\n                    @click=\"goToIndex(index)\"\r\n                >\r\n                    <div class=\"caseStudySlider__logoWrapper\">\r\n                        <img :src=\"caseStudy.logo\" alt=\"\" class=\"caseStudySlider__logo\">\r\n                    </div>\r\n                    <div class=\"caseStudySlider__columnImageWrapper\">\r\n                        <img :src=\"caseStudy.image\" alt=\"\" class=\"caseStudySlider__columnImage\">\r\n                    </div>\r\n                </div>\r\n            </swiper-slide>\r\n            <swiper-slide>   \r\n                <div>\r\n                    <!-- Hacky Slider Dummy -->\r\n                </div>\r\n            </swiper-slide>\r\n        </swiper>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport { Swiper, SwiperSlide } from 'vue-awesome-swiper'\r\nimport { mapState } from 'vuex'\r\n\r\nexport default {\r\n\r\n    data () {\r\n        return {\r\n            swiperOptions: {\r\n                direction: 'horizontal'\r\n            },\r\n            initialXValue: null\r\n        }\r\n    },\r\n\r\n    components: {\r\n        Swiper,\r\n        SwiperSlide\r\n    },\r\n\r\n    methods: {\r\n        updateCurrentIndex (swiper) {\r\n            const { realIndex } = swiper\r\n\r\n            this.$store.dispatch('updateIndex', realIndex)\r\n        },\r\n\r\n        setInitialXValue (swiper) {\r\n            this.initialXValue = swiper.getTranslate()\r\n        },\r\n\r\n        updateLogoSliderTranslate (swiper) {\r\n            const changeValue = this.initialXValue - swiper.getTranslate()\r\n\r\n            this.$store.dispatch('updateCurrentTouchTranslate', changeValue)\r\n        },\r\n\r\n        goToIndex(index) {\r\n            this.$store.dispatch('updateIndex', index + 1)\r\n        }\r\n    },\r\n\r\n    watch: {\r\n        currentIndex (val) {\r\n            const { $swiper } = this.$refs.mainSlider\r\n\r\n            requestAnimationFrame(() => {\r\n                $swiper.slideTo(val)\r\n            })\r\n        }\r\n    },\r\n\r\n    computed: {\r\n        ...mapState(['caseStudySlides', 'currentIndex']),\r\n\r\n        slicedCaseStudies () {\r\n            return this.caseStudySlides.slice(1, this.caseStudySlides.length)\r\n        }\r\n    }\r\n\r\n}\r\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>\r\n    <div class=\"caseStudySlider__wrapper\">\r\n        <CurrentSlide />\r\n        <MainSlider />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\nimport CurrentSlide from './CurrentSlide'\r\nimport MainSlider from './MainSlider'\r\n\r\nexport default {\r\n    components: {\r\n        CurrentSlide,\r\n        MainSlider\r\n    }\r\n}\r\n</script>","import { render, staticRenderFns } from \"./MainSlider.vue?vue&type=template&id=7786b5eb&\"\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=068feeae&\"\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'\r\nimport store from './store'\r\nimport Layout from './components/Layout'\r\nimport { polyfill } from 'es6-promise'\r\npolyfill()\r\n\r\nconst caseStudySliderEl = document.querySelector('.js-caseStudySlider')\r\n\r\nif (caseStudySliderEl) {\r\n    new Vue({\r\n        el: caseStudySliderEl,\r\n        store,\r\n        components: {\r\n            Layout\r\n        }\r\n    })\r\n}","const groupDropdowns = [...document.querySelectorAll('.js-groupedTabs')]\r\n\r\nif (groupDropdowns.length) {\r\n    groupDropdowns.forEach(groupDropdown => {\r\n        const tabItems = [...groupDropdown.querySelectorAll('.js-tabItem')]\r\n        const tabPanels = [...groupDropdown.querySelectorAll('.js-tabPanel')]\r\n        const focusables = [...groupDropdown.querySelectorAll('.js-dropdownGroupLink')]\r\n\r\n        tabItems.forEach(tabItem => {\r\n            tabItem.addEventListener('mouseover', () => {\r\n                const tabId = tabItem.dataset.panel\r\n                const associatedTabPanel = groupDropdown.querySelector(`.js-tabPanel[data-panel='${tabId}']`)\r\n\r\n                tabPanels.forEach(tabPanel => tabPanel.classList.remove('-active'))\r\n                tabItems.forEach(tabItem => tabItem.classList.remove('-active'))\r\n                associatedTabPanel.classList.add('-active')\r\n                tabItem.classList.add('-active')\r\n            })  \r\n        })\r\n\r\n        tabItems.forEach(tabItem => {\r\n            tabItem.addEventListener('keydown', e => {\r\n                if (e.key === 'Enter' || e.key === ' ') {\r\n                    const tabId = tabItem.dataset.panel\r\n                    const associatedTabPanel = groupDropdown.querySelector(`.js-tabPanel[data-panel='${tabId}']`)\r\n                    \r\n                    const associatedTabPanelFocusables = [...associatedTabPanel.querySelectorAll('.js-dropdownGroupLink')]\r\n                    const [firstFocusable] = associatedTabPanelFocusables\r\n\r\n                    focusables.forEach(focusable => focusable.tabIndex = '-1')\r\n                    associatedTabPanelFocusables.forEach(associatedTabPanelFocusable => associatedTabPanelFocusable.tabIndex = '0')\r\n                    firstFocusable.focus()\r\n\r\n                    tabPanels.forEach(tabPanel => tabPanel.classList.remove('-active'))\r\n                    tabItems.forEach(tabItem => tabItem.classList.remove('-active'))\r\n                    associatedTabPanel.classList.add('-active')\r\n                    tabItem.classList.add('-active')\r\n                }\r\n            })\r\n        })\r\n    })\r\n}","import 'core-js/es/number'\r\nimport objectFitImages from 'object-fit-images'\r\nimport './modules/keyboard-focus'\r\nimport './modules/mobile-menu'\r\nimport './modules/nav-keyboard'\r\nimport './modules/language-select'\r\nimport './modules/case-study-slider'\r\nimport './modules/group-dropdown'\r\n\r\nobjectFitImages()","let usingMouse\r\nconst { body } = document\r\n\r\nconst preFocus = function (event) {\r\n    usingMouse = (event.type === 'mousedown')\r\n}\r\n\r\nconst addFocus = function (event) {\r\n    if (usingMouse) { event.target.classList.add('focus--mouse') }\r\n}\r\n\r\nconst removeFocus = function (event) {\r\n    event.target.classList.remove('focus--mouse')\r\n}\r\n\r\nconst bindEvents = function () {\r\n    body.addEventListener('keydown', preFocus)\r\n    body.addEventListener('mousedown', preFocus)\r\n    body.addEventListener('focusin', addFocus)\r\n    body.addEventListener('focusout', removeFocus)\r\n}\r\n\r\nbindEvents()\r\n"],"sourceRoot":""}