{"version":3,"sources":["webpack:///src/components/MenuBar.vue","webpack:///./src/components/MenuBar.vue?0d6e","webpack:///./src/components/MenuBar.vue","webpack:///src/components/PrevNextNav.vue","webpack:///./src/components/PrevNextNav.vue?4390","webpack:///./src/components/PrevNextNav.vue","webpack:///src/App.vue","webpack:///./src/App.vue?6c2c","webpack:///./src/App.vue","webpack:///src/components/templates/Front.vue","webpack:///./src/components/templates/Front.vue?d94a","webpack:///./src/components/templates/Front.vue","webpack:///src/components/templates/Intro.vue","webpack:///./src/components/templates/Intro.vue?5aeb","webpack:///./src/components/templates/Intro.vue","webpack:///src/components/HeaderBox.vue","webpack:///./src/components/HeaderBox.vue?ee96","webpack:///./src/components/HeaderBox.vue","webpack:///./src/components/MovieProgressBar.vue?4713","webpack:///./src/components/MovieProgressBar.vue","webpack:///src/components/MoviePlayer.vue","webpack:///src/components/MovieProgressBar.vue","webpack:///./src/components/MoviePlayer.vue?a13e","webpack:///./src/components/MoviePlayer.vue","webpack:///src/components/MarketBlock.vue","webpack:///./src/components/MarketBlock.vue?d185","webpack:///./src/components/MarketBlock.vue","webpack:///src/components/templates/Markets.vue","webpack:///./src/components/templates/Markets.vue?f643","webpack:///./src/components/templates/Markets.vue","webpack:///./src/components/Bullet.vue?78bc","webpack:///./src/components/Bullet.vue","webpack:///src/components/Bullet.vue","webpack:///src/components/ThreeSixtyBlock.vue","webpack:///./src/components/ThreeSixtyBlock.vue?486c","webpack:///./src/components/ThreeSixtyBlock.vue","webpack:///src/components/ToggleButton.vue","webpack:///./src/components/ToggleButton.vue?635d","webpack:///./src/components/ToggleButton.vue","webpack:///src/components/templates/Installation3d.vue","webpack:///./src/components/templates/Installation3d.vue?10f6","webpack:///./src/components/templates/Installation3d.vue","webpack:///src/components/templates/Installation.vue","webpack:///./src/components/templates/Installation.vue?d5b3","webpack:///./src/components/templates/Installation.vue","webpack:///src/components/templates/Workflow.vue","webpack:///./src/components/templates/Workflow.vue?fe47","webpack:///./src/components/templates/Workflow.vue","webpack:///src/components/templates/InteractivePdf.vue","webpack:///./src/components/templates/InteractivePdf.vue?1d70","webpack:///./src/components/templates/InteractivePdf.vue","webpack:///src/components/templates/InteractiveHtml.vue","webpack:///./src/components/templates/InteractiveHtml.vue?f34d","webpack:///./src/components/templates/InteractiveHtml.vue","webpack:///src/components/templates/Movie.vue","webpack:///./src/components/templates/Movie.vue?7c1b","webpack:///./src/components/templates/Movie.vue","webpack:///src/components/templates/Specs.vue","webpack:///./src/components/templates/Specs.vue?a14a","webpack:///./src/components/templates/Specs.vue","webpack:///src/components/templates/Backcover.vue","webpack:///./src/components/templates/Backcover.vue?006e","webpack:///./src/components/templates/Backcover.vue","webpack:///src/components/ThreeSixtyPlayer.vue","webpack:///./src/components/ThreeSixtyPlayer.vue?d6b9","webpack:///./src/components/ThreeSixtyPlayer.vue","webpack:///./src/components/DropdownMenu.vue?c5a8","webpack:///./src/components/DropdownMenu.vue","webpack:///src/components/DropdownMenu.vue","webpack:///src/components/templates/ThreeSixty.vue","webpack:///./src/components/templates/ThreeSixty.vue?d886","webpack:///./src/components/templates/ThreeSixty.vue","webpack:///src/components/templates/Orb.vue","webpack:///./src/components/templates/Orb.vue?b841","webpack:///./src/components/templates/Orb.vue","webpack:///src/components/templates/Slider.vue","webpack:///./src/components/templates/Slider.vue?d6ac","webpack:///./src/components/templates/Slider.vue","webpack:///src/components/templates/Table.vue","webpack:///./src/components/templates/Table.vue?6d87","webpack:///./src/components/templates/Table.vue","webpack:///./src/router/index.js","webpack:///./src/store/mutations.js","webpack:///./src/store/index.js","webpack:///./src/main.js"],"names":["MenuBar","name","data","menuOpen","computed","extends_default","Object","vuex_esm","printerUrl","this","printUrl","methods","pad","index","s","substr","length","toggleMenu","closeMenu","routerArray","get","arr","params","id","pages","template","tViewIndex","canopy","info","selectedBullet","getRouterArray","$store","getters","components_MenuBar","render","_vm","_h","$createElement","_c","_self","staticClass","_m","_v","domProps","innerHTML","_s","title","parseInt","pageIndex","pageMenuTitle","attrs","href","translations","_e","class","menu__burger--open","on","click","menu__list--open","_l","page","key","menu__list-link--active","to","nativeOn","$event","menuTitle","staticRenderFns","src","src_components_MenuBar","__webpack_require__","normalizeComponent","ssrContext","PrevNextNav","touch","showMenu","mounted","_this","document","addEventListener","window","innerHeight","$el","getBoundingClientRect","top","body","classList","add","remove","showMenuF","hideMenu","components_PrevNextNav","prevPageRouterArray","nextPageRouterArray","src_components_PrevNextNav","PrevNextNav_normalizeComponent","isClassInParents","element","className","contains","parentNode","nodeName","App","components","prevID","hammertime","hammer_default","a","ev","target","$router","push","beforeMount","getProducts","watch","$route","scrollTo","selectortype_template_index_0_src_App","page-wrapper--front","isFront","ready","src_App","App_normalizeComponent","Front","subtitle","coverImage","coverImagePortrait","coverVideo","bgVid","querySelector","templates_Front","style","backgroundImage","muted","autoplay","plays-inline","width","height","components_templates_Front","Front_normalizeComponent","Intro","intro","contentBlocks","templates_Intro","block","content","components_templates_Intro","Intro_normalizeComponent","HeaderBox","props","type","String","required","Boolean","default","long","noMargin","components_HeaderBox","header-box--small","header-box--long","header-box--no-margin","src_components_HeaderBox","HeaderBox_normalizeComponent","components_MovieProgressBar","seek","progressPercentage","mouseown","mouseDown","mouseup","mouseUp","mousemove","mouseMove","keys","37","38","39","40","preventDefault","e","event","returnValue","preventDefaultForScrollKeys","keyCode","MoviePlayer","MovieProgressBar","MovieProgressBar_normalizeComponent","isMouseDown","dot","mouseLeave","touchMove","offsetWidth","left","percentage","clientX","$emit","emitPercentage","touches","progress","played","paused","ended","fullscreen","controlsActive","controlsTimeout","aspectRatio","maxWidth","fillerStyle","innerwrapStyle","elVideo","elOverlay","elInnerwrap","timeout","video","enableControls","playPause","toggleShowNav","_this2","clearTimeout","navTimeout","showNav","setTimeout","_this3","currentTime","play","pause","removeEventListener","maximize","_this4","onwheel","onmousewheel","ontouchmove","onkeydown","offsetHeight","rect","position","minimize","_this5","toggleFullscreen","toggleMute","removeAttribute","setAttribute","onTimeUpdate","duration","_this6","updateTime","components_MoviePlayer","hidden","movieUrl","playsinline","webkit-playsinline","timeupdate","paddingTop","placeholderUrl","change","src_components_MoviePlayer","MoviePlayer_normalizeComponent","MarketBlock","components_MarketBlock","image","src_components_MarketBlock","MarketBlock_normalizeComponent","Markets","innerWidth","mobileContentBlocks","slice","forEach","call","contentBlock","tempFirst","tempSec","templates_Markets","components_templates_Markets","Markets_normalizeComponent","components_Bullet","x","y","src_components_Bullet","Bullet_normalizeComponent","ThreeSixtyBlock","opaque","close","Number","components_ThreeSixtyBlock","src_components_ThreeSixtyBlock","ThreeSixtyBlock_normalizeComponent","ToggleButton","model","prop","label","checked","align","updateChecked","components_ToggleButton","for","_uid","src_components_ToggleButton","ToggleButton_normalizeComponent","scrollToElement","scrollIntoView","Installation3d","Bullet","newVal","oldVal","bullet","time","isScrollable","$refs","blocks3d","toggleInfo","val","closeBullet","openBullet","contentBlocks3d","threedContentBlocks","view3dStyle","selectedBlock","transformOrigin","transform","scale","templates_Installation3d","show","b","ref","hide","isMobile","value","callback","$$v","expression","components_templates_Installation3d","Installation3d_normalizeComponent","Installation","coverType","evenContentBlocks","filter","filterEven","oddContentBlocks","filterOdd","macy_watchcss_default","container","trueOrder","waitForImages","margin","columns","watchCSS","templates_Installation","components_templates_Installation","Installation_normalizeComponent","Workflow","vids","querySelectorAll","vid","templates_Workflow","workflow__block-textwrap--long","components_templates_Workflow","Workflow_normalizeComponent","InteractivePdf","pdfFiles","pdfUrl","url","indexOf","pdfIframe","setPdfIndex","templates_InteractivePdf","pdf","components_templates_InteractivePdf","InteractivePdf_normalizeComponent","InteractiveHtml","iframeLinks","iframeLink","linkBlockTitle","linkBlockContent","linkBlockCta","linkBlockImage","htmlUrl","templates_InteractiveHtml","no-margin","imagePosition","components_templates_InteractiveHtml","InteractiveHtml_normalizeComponent","Movie","coverVideoPlaceholder","templates_Movie","components_templates_Movie","Movie_normalizeComponent","Specs","playing","templates_Specs","components_templates_Specs","Specs_normalizeComponent","Backcover","templates_Backcover","components_templates_Backcover","Backcover_normalizeComponent","ThreeSixtyPlayer","collection","imagesLoaded","imagesTotal","frames","currentFrame","endFrame","ctx","bulletsArray","bullets","startX","endX","distance","dragging","monitorStartTime","ticker","MONITOR_INTERVAL","SPEED_MULTIPLIER","loaded","loadBullets","innerwrap","maxHeight","animateToFrame","frame","diff","getNormalizedCurrentFrame","Math","abs","animate","bulletsUrl","bulletsJson","axios_default","then","response","init","preload","i","Image","handleImageLoaded","frameUrl","initListeners","getContext","handleTouchStart","handleTouchEnd","handleMouseDown","handleTouchMove","handleMouseMove","stopPropagation","changedTouches","Date","getTime","ceil","requestAnimationFrame","num","stringNum","toString","rightNow","performance","now","easing","floor","clearRect","drawImage","cancelAnimationFrame","loadedPercent","highlightedFrameIndex","components_ThreeSixtyPlayer","highlightedFrameUrl","mode","appear","opacity","src_components_ThreeSixtyPlayer","ThreeSixtyPlayer_normalizeComponent","components_DropdownMenu","active","currentPage","link","array","dropdown-menu__link--active","currentIndex","updateIndex","src_components_DropdownMenu","DropdownMenu_normalizeComponent","ThreeSixty_scrollToElement","ThreeSixty","DropdownMenu","tView","threesixtyViews","dropdownArray","threesixtyView","productName","isLandscape","matchMedia","matches","isNotTablet","macy","toggleCanopy","updateTViewIndex","isNocanopy","goToBlock","closeHighlight","vue_esm","nextTick","reInit","breakAt","699","templates_ThreeSixty","highlighted","components_templates_ThreeSixty","ThreeSixty_normalizeComponent","Orb","imageUrl","pano","viewer","prototype","onChangeSize","load","req","XMLHttpRequest","ActiveXObject","open","responseType","onload","blob","Blob","URL","createObjectURL","onprogress","total","send","crossOrigin","view360","gyroMode","updateViewportDimensions","templates_Orb","components_templates_Orb","Orb_normalizeComponent","Slider","horizontalPercent","verticalPercent","view","imageTop","imageBottom","labelTop","labelBottom","right","bottom","horizontalPercentage","max","min","verticalPercentage","clientY","templates_Slider","touchmove","components_templates_Slider","Slider_normalizeComponent","Table","selectedIcon","bgImg","templates_Table","table","row","rowIndex","cell","header_rows","spanned","colspan","c_span","rowspan","r_span","c","cellIndex","odd","first","disclaimers","components_templates_Table","Table_normalizeComponent","Vue","use","Router","router","routes","path","redirect","component","mutations","GET_DATA_SUCCESS","state","defaultTranslations","threesixtyOn","threesixtyOff","alternativeLanguage","GET_DATA_FAILED","Vuex","actions","_ref","parameterName","result","tmp","commit","location","search","split","item","decodeURIComponent","axios","st","route","indexedContentBlocks","canopyContentBlocks","nocanopyContentBlocks","indexedContentBlock","canopyBulletsJson","nocanopyBulletsJson","canopyFrames","nocanopyFrames","store","Store","menuCTA","printCTA","prev","next","backcoverTitle","backcoverText","productTitle","threesixtyLabels","threesixtyCanopy","require","sync","config","productionTip","ua","navigator","userAgent","msie","substring","rv","edge","detectIE","el"],"mappings":"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","file":"static/js/app.3bec84d00495edc1a6e8.js","sourcesContent":["<template>\n <div class=\"menu\">\n <div class=\"menu__logo\">\n <img class=\"menu__logo-img\" src=\"static/svg/logo-white.svg\" />\n </div>\n <div class=\"menu__title\">\n <span v-html=\"title\"></span> / <b>{{pad(parseInt(pageIndex) + 1)}}</b> <span v-html=\"pageMenuTitle\"></span>\n </div>\n <div class=\"menu__right-align\">\n <a class=\"menu__print-link\" v-if=\"menuOpen\" :href=\"printerUrl\">\n {{translations['printCTA']}}\n </a>\n <span class=\"menu__burger\" v-bind:class=\"{ 'menu__burger--open': menuOpen }\" @click=\"toggleMenu\">\n {{translations['menuCTA']}}\n <em></em>\n </span>\n </div>\n <ul class=\"menu__list\" v-bind:class=\"{ 'menu__list--open': menuOpen }\">\n <div class=\"menu__list-innerwrap\">\n <li v-for=\"(page, index) in pages\" class=\"menu__list-item\" :key=\"index\">\n <router-link class=\"menu__list-link\" v-on:click.native=\"closeMenu\" v-bind:class=\"{ 'menu__list-link--active': pageIndex === index }\" :to=\"routerArray(index)\">\n <b>{{pad(index + 1)}}</b>\n <span v-html=\"page.menuTitle\"></span>\n </router-link>\n </li>\n </div>\n </ul>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nconst getRouterArray = (index, get) => {\n const arr = {};\n arr.params = {};\n arr.params.id = index;\n arr.name = get.pages[arr.params.id].template;\n\n if (arr.name === '360') {\n arr.params.tViewIndex = 0;\n arr.params.canopy = 'canopy';\n arr.params.info = 'info';\n arr.params.selectedBullet = -1;\n }\n\n if (arr.name === 'installation-3d') {\n arr.params.info = 'info';\n arr.params.selectedBullet = -1;\n }\n return arr;\n};\n\nexport default {\n name: 'MenuBar',\n data() {\n return {\n menuOpen: false,\n };\n },\n computed: {\n ...mapGetters(['translations', 'title', 'pageIndex', 'pageMenuTitle', 'pages', 'printUrl']),\n printerUrl() {\n return `${this.printUrl}`;\n },\n },\n methods: {\n pad(index) {\n const s = '000000000' + index; //eslint-disable-line\n return s.substr(s.length - 2);\n },\n toggleMenu() {\n this.menuOpen = !this.menuOpen;\n },\n closeMenu() {\n this.menuOpen = false;\n },\n routerArray(index) {\n return getRouterArray(index, this.$store.getters);\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\" scoped>\n@import '../scss/helpers';\n\n.menu {\n display: block;\n height: 70px;\n width: 100%;\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n box-sizing: border-box;\n background: $c_primary;\n padding: 18px 20px;\n box-shadow: 0px -2px 6px 0px rgba(0,0,0,0.1);\n z-index: 10;\n color: $c_white;\n\n @include not-mobile {\n padding: 18px 40px;\n }\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background: $c_primary;\n z-index: -1;\n }\n\n &__logo {\n display: inline-block;\n vertical-align: middle;\n\n img {\n display: block;\n }\n }\n\n &__title {\n @include mobile {\n display: none;\n }\n\n @include not-mobile {\n display: inline-block;\n line-height: 34px;\n margin-left: 20px;\n @include t_normal;\n font-size: 16px;\n\n\n b {\n @include t_bold;\n }\n }\n }\n\n &__right-align {\n float: right;\n }\n\n @mixin menuLink {\n @include t_bold;\n display: inline-block;\n color: $c_white;\n font-size: 16px;\n line-height: 34px;\n text-decoration: none;\n cursor: pointer;\n }\n\n &__print-link {\n @include menuLink;\n\n &::after {\n display: inline-block;\n content: '';\n width: 21px;\n height: 20px;\n background: url('../../static/svg/icon_download.svg') no-repeat center;\n margin-left: 10px;\n margin-top: 4px;\n vertical-align: top;\n }\n }\n\n &__burger {\n @include menuLink;\n margin-left: 20px;\n\n @include not-mobile {\n margin-left: 40px;\n }\n\n em {\n width: 14px;\n height: 1px;\n background: $c_white;\n margin: 11px 0 12px 10px;\n display: inline-block;\n vertical-align: middle;\n position: relative;\n transition: background .45s;\n\n &::before,\n &::after {\n display: block;\n width: 100%;\n height: 100%;\n background: $c_white;\n position: absolute;\n content: '';\n transition: top .45s, bottom .45s, width .45s, transform .45s;\n }\n\n &::before {\n top: -5px;\n left: 0;\n transform-origin: 0 0;\n }\n\n &::after {\n bottom: -5px;\n left: 0;\n transform-origin: 0 100%;\n }\n }\n\n &--open em {\n background: transparent;\n\n &::before,\n &::after {\n width: 17.3px;\n }\n\n &::before {\n transform: translateY(-1px) rotate(45deg);\n }\n\n &::after {\n transform: translateY(1px) rotate(-45deg);\n }\n }\n }\n\n &__list {\n // display: none;\n display: block;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 70px;\n z-index: -2;\n margin: 0;\n list-style: none;\n background-color: $c_primary;\n box-sizing: border-box;\n transition: transform .4s, opacity .4s;\n overflow: auto;\n // @include gradientBackground(true);\n padding: 0;\n box-shadow: 0px -2px 6px 0px rgba(0,0,0,0.1);\n\n &::before {\n @include gradientBackgroundDarkOverlay;\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n @include not-mobile {\n\n }\n }\n\n @include not-mobile {\n // padding: 60px;\n position: absolute;\n bottom: 100%;\n left: 0;\n right: 0;\n top: auto;\n max-height: calc(100vh - 70px);\n // column-count: 3;\n }\n\n @include landscape {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 70px;\n max-height: none;\n column-count: initial;\n }\n\n @include not-tablet {\n // column-count: 4;\n }\n\n &:not(&--open) {\n transform: translateY(100%);\n opacity: 0;\n }\n }\n\n &__list-innerwrap {\n position: relative;\n z-index: 1;\n max-height: 100%;\n overflow: auto;\n padding: 40px 60px;\n box-sizing: border-box;\n\n @include not-mobile {\n column-count: 3;\n padding: 3% 0 3% 11%;\n }\n\n @include landscape {\n column-count: 2;\n padding: 40px 60px;\n }\n\n @include not-tablet {\n column-count: 4;\n }\n }\n\n &__list-link {\n display: inline-block;\n font-size: 16px;\n line-height: 34px;\n text-decoration: none;\n color: $c_white;\n @include t_normal;\n line-height: 3.5em;\n\n &--active {\n @include t_bold;\n }\n\n b {\n @include t_bold;\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/MenuBar.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"menu\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"menu__title\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_vm._v(\" / \"),_c('b',[_vm._v(_vm._s(_vm.pad(parseInt(_vm.pageIndex) + 1)))]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.pageMenuTitle)}})]),_vm._v(\" \"),_c('div',{staticClass:\"menu__right-align\"},[(_vm.menuOpen)?_c('a',{staticClass:\"menu__print-link\",attrs:{\"href\":_vm.printerUrl}},[_vm._v(\"\\n \"+_vm._s(_vm.translations['printCTA'])+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"menu__burger\",class:{ 'menu__burger--open': _vm.menuOpen },on:{\"click\":_vm.toggleMenu}},[_vm._v(\"\\n \"+_vm._s(_vm.translations['menuCTA'])+\"\\n \"),_c('em')])]),_vm._v(\" \"),_c('ul',{staticClass:\"menu__list\",class:{ 'menu__list--open': _vm.menuOpen }},[_c('div',{staticClass:\"menu__list-innerwrap\"},_vm._l((_vm.pages),function(page,index){return _c('li',{key:index,staticClass:\"menu__list-item\"},[_c('router-link',{staticClass:\"menu__list-link\",class:{ 'menu__list-link--active': _vm.pageIndex === index },attrs:{\"to\":_vm.routerArray(index)},nativeOn:{\"click\":function($event){return _vm.closeMenu($event)}}},[_c('b',[_vm._v(_vm._s(_vm.pad(index + 1)))]),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(page.menuTitle)}})])],1)}))])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"menu__logo\"},[_c('img',{staticClass:\"menu__logo-img\",attrs:{\"src\":\"static/svg/logo-white.svg\"}})])}]\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-7d0f2c59\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/MenuBar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-7d0f2c59\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MenuBar.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MenuBar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MenuBar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7d0f2c59\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MenuBar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-7d0f2c59\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MenuBar.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"prev-next-nav\" @click=\"hideMenu\">\n <router-link v-if=\"prevPageRouterArray\" class=\"prev-next-nav__link prev-next-nav__link--prev\" :to=\"prevPageRouterArray\">\n {{translations['prev']}}\n </router-link>\n <router-link v-if=\"nextPageRouterArray\" class=\"prev-next-nav__link prev-next-nav__link--next\" :to=\"nextPageRouterArray\">\n {{translations['next']}}\n </router-link>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'prev-next-nav',\n computed: {\n ...mapGetters(['translations', 'nextPageRouterArray', 'prevPageRouterArray']),\n },\n data() {\n return {\n touch: false,\n showMenu: false,\n };\n },\n mounted() {\n document.addEventListener('scroll', () => {\n if (window.innerHeight - this.$el.getBoundingClientRect().top > 90) {\n document.body.classList.add('menu-show');\n } else {\n document.body.classList.remove('menu-show');\n }\n });\n },\n methods: {\n showMenuF() {\n this.showMenu = true;\n document.body.classList.add('menu-show');\n },\n hideMenu() {\n this.showMenu = false;\n document.body.classList.remove('menu-show');\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\" scoped>\n@import '../scss/helpers';\n\n.prev-next-nav {\n height: 40px;\n width: 100%;\n box-sizing: border-box;\n background: $c_primary;\n padding: 0 40px;\n z-index: 1;\n position: relative;\n\n\n &__link {\n color: $c_white;\n font-weight: 700;\n font-size: 12px;\n line-height: 16px;\n padding: 12px 0;\n text-decoration: none;\n\n &--prev::before,\n &--next::after {\n content: '';\n display: inline-block;\n width: 8px;\n height: 8px;\n box-sizing: border-box;\n transform: rotate(45deg);\n }\n\n &--prev::before {\n border-bottom: 1px solid $c_white;\n border-left: 1px solid $c_white;\n }\n\n &--next::after {\n border-top: 1px solid $c_white;\n border-right: 1px solid $c_white;\n }\n\n\n &--next {\n float: right;\n }\n\n &--prev {\n float: left;\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/PrevNextNav.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"prev-next-nav\",on:{\"click\":_vm.hideMenu}},[(_vm.prevPageRouterArray)?_c('router-link',{staticClass:\"prev-next-nav__link prev-next-nav__link--prev\",attrs:{\"to\":_vm.prevPageRouterArray}},[_vm._v(\"\\n \"+_vm._s(_vm.translations['prev'])+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.nextPageRouterArray)?_c('router-link',{staticClass:\"prev-next-nav__link prev-next-nav__link--next\",attrs:{\"to\":_vm.nextPageRouterArray}},[_vm._v(\"\\n \"+_vm._s(_vm.translations['next'])+\"\\n \")]):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6d792214\",\"hasScoped\":true,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/PrevNextNav.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6d792214\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./PrevNextNav.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./PrevNextNav.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./PrevNextNav.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6d792214\\\",\\\"hasScoped\\\":true,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./PrevNextNav.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = \"data-v-6d792214\"\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/PrevNextNav.vue\n// module id = null\n// module chunks = ","<template>\n <div id=\"app\">\n <div v-if=\"ready\" class=\"page-wrapper\" v-bind:class=\"{'page-wrapper--front' : isFront}\">\n <router-view></router-view>\n <prev-next-nav v-if=\"!isFront\"></prev-next-nav>\n </div>\n <menu-bar v-if=\"ready && !isFront\"></menu-bar>\n \n </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\nimport Hammer from 'hammerjs';\nimport MenuBar from '@/components/MenuBar';\nimport PrevNextNav from '@/components/PrevNextNav';\n\nfunction isClassInParents(element, className) {\n if (element.classList.contains(className)) {\n return true;\n }\n\n return element.parentNode && element.nodeName !== 'BODY' && isClassInParents(element.parentNode, className);\n}\n\n\nexport default {\n components: { MenuBar, PrevNextNav },\n name: 'app',\n data() {\n return {\n prevID: false,\n };\n },\n methods: {\n ...mapActions(['getProducts']),\n },\n mounted() {\n const hammertime = new Hammer(this.$el);\n hammertime.on('swipeleft', (ev) => {\n if (!isClassInParents(ev.target, 'no-swipe-nav')) {\n this.$router.push(this.nextPageRouterArray);\n }\n });\n hammertime.on('swiperight', (ev) => {\n // if (ev.target.localName !== 'canvas') {\n if (!isClassInParents(ev.target, 'no-swipe-nav')) {\n this.$router.push(this.prevPageRouterArray);\n }\n });\n },\n beforeMount() {\n this.getProducts();\n },\n computed: {\n ...mapGetters(['ready', 'isFront', 'nextPageRouterArray', 'prevPageRouterArray']),\n },\n watch: {\n $route() {\n if (this.prevID !== this.$route.params.id) {\n window.scrollTo(0, 0);\n }\n this.prevID = this.$route.params.id;\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import './scss/helpers';\n@import './scss/core';\n\nhtml, body {\n background: #ffffff;\n margin: 0;\n padding: 0;\n min-height: 100%;\n width: 100%;\n}\n\n#app {\n font-family: $t_font;\n // -webkit-font-smoothing: antialiased;\n // -moz-osx-font-smoothing: grayscale;\n position: absolute;\n color: $c_black--broken;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n .font-alternative & {\n font-family: $t_font-alternative;\n }\n\n .font-chinese & {\n font-family: $t_font-chinese;\n }\n\n .font-japanese & {\n font-family: $t_font-japanese;\n }\n}\n\n\n.page-wrapper {\n display: block;\n padding-bottom: 70px;\n\n &--front {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n padding-bottom: 0;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[(_vm.ready)?_c('div',{staticClass:\"page-wrapper\",class:{'page-wrapper--front' : _vm.isFront}},[_c('router-view'),_vm._v(\" \"),(!_vm.isFront)?_c('prev-next-nav'):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.ready && !_vm.isFront)?_c('menu-bar'):_vm._e()],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-eada7df0\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-eada7df0\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-eada7df0\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","<template>\r\n <div class=\"front\">\r\n <router-link class=\"front__link\" :to=\"nextPageRouterArray\">\r\n <div class=\"front__bg\">\r\n <div v-if=\"coverImagePortrait\" class=\"front__bg-image front__bg-image--portrait\" v-bind:style=\"{ backgroundImage: 'url(' + coverImagePortrait + ')' }\"></div>\r\n <div class=\"front__bg-image\" v-bind:style=\"{ backgroundImage: 'url(' + coverImage + ')' }\"></div>\r\n <video class=\"front__bg-video\" v-if=\"coverVideo\" :src=\"coverVideo\" muted autoplay plays-inline width=\"16\" height=\"9\"></video>\r\n </div>\r\n <div class=\"front__box\">\r\n <h1 class=\"front__title\" v-html=\"title\"></h1>\r\n <p class=\"front__subtitle\" v-html=\"subtitle\"></p>\r\n </div>\r\n <div class=\"front__logo-wrapper\">\r\n <img class=\"front__logo\" src=\"static/svg/logo-white.svg\">\r\n </div>\r\n </router-link>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapGetters } from 'vuex';\n\nexport default {\n name: 'front',\n computed: {\n ...mapGetters(['page', 'nextPageRouterArray']),\n title() {\n return this.page.title;\n },\n subtitle() {\n return this.page.subtitle;\n },\n coverImage() {\n return this.page.coverImage;\n },\n coverImagePortrait() {\n return this.page.coverImagePortrait;\n },\n coverVideo() {\n return this.page.coverVideo;\n },\n },\n mounted() {\n const bgVid = document.querySelector('.front__bg-video');\n if (bgVid) {\n bgVid.addEventListener('ended', () => {\n bgVid.classList.add('hide');\n });\n }\n },\n};\n</script>\r\n\r\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\r\n<style lang=\"scss\">\r\n@import '../../scss/helpers';\r\n\r\n.front {\r\n @include page;\r\n\r\n min-height: 100%;\r\n\r\n &__link {\r\n text-decoration: none;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n bottom: 0;\r\n right: 0;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n &__bg {\r\n flex-grow: 1;\r\n margin: 0;\r\n display: block;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n\r\n @include not-mobile {\r\n margin: 0;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n }\r\n\r\n @include landscape {\r\n margin: 20px 0 20px 20px;\r\n position: relative;\r\n top: auto;\r\n left: auto;\r\n right: auto;\r\n bottom: auto;\r\n }\r\n }\r\n\r\n &__bg-image {\r\n background-size: cover;\r\n background-position: center bottom;\r\n background-repeat: no-repeat;\r\n margin: 0;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n\r\n @include not-mobile {\r\n background-position: center;\r\n }\r\n\r\n @include landscape {\r\n background-position: center;\r\n }\r\n\r\n &--portrait {\r\n display: none;\r\n }\r\n\r\n @include portrait {\r\n &--portrait {\r\n display: block;\r\n }\r\n\r\n &--portrait + & {\r\n display: none;\r\n }\r\n }\r\n }\r\n\r\n &__bg-video {\r\n min-width: 100%; \r\n min-height: 100%; \r\n \r\n /* Setting width & height to auto prevents the browser from stretching or squishing the video */\r\n width: auto;\r\n height: auto;\r\n \r\n /* Center the video */\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%,-50%);\r\n transition: opacity .5s;\r\n\r\n &.hide {\r\n opacity: 0;\r\n pointer-events: none;\r\n }\r\n }\r\n\r\n &__box {\r\n color: $c_white;\r\n text-decoration: none;\r\n margin: 0;\r\n background: $c_primary;\r\n box-sizing: border-box;\r\n z-index: 1;\r\n box-sizing: border-box;\r\n padding: 45px 40px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n &::before {\r\n content: '';\r\n display: block;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n min-height: 250px;\r\n height: 100%;\r\n z-index: -1;\r\n background-position: center bottom;\r\n background-size: contain;\r\n background-repeat: no-repeat;\r\n background-image: url('../../../static/svg/frontcover_bg-mobile.svg');\r\n opacity: .9;\r\n\r\n @include not-mobile {\r\n height: auto;\r\n min-height: auto;\r\n top: auto;\r\n bottom: 0;\r\n max-width: 533px;\r\n background-position: left bottom;\r\n background-image: url('../../../static/svg/frontcover_bg.svg');\r\n width: 533px;\r\n height: 407px;\r\n }\r\n }\r\n\r\n\r\n @include not-mobile {\r\n padding: 45px;\r\n position: absolute;\r\n left: 0;\r\n bottom: 0;\r\n z-index: 1;\r\n margin: 0;\r\n background: none;\r\n overflow: visible;\r\n max-width: 430px;\r\n }\r\n\r\n @include landscape {\r\n margin: 20px 20px 20px 0;\r\n width: 50%;\r\n position: relative;\r\n top: auto;\r\n right: auto;\r\n }\r\n\r\n // @include not-tablet {\r\n // width: 50%;\r\n // }\r\n\r\n // @include desktop {\r\n // width: 42%;\r\n // }\r\n }\r\n\r\n &__title {\r\n margin: 0;\r\n font-size: 20px;\r\n font-weight: 700;\r\n line-height: 1.066;\r\n font-style: oblique;\r\n // max-width: 300px;\r\n padding-bottom: 8%;\r\n\r\n\r\n @include not-mobile {\r\n font-size: 35px;\r\n // padding-bottom: 26%;\r\n line-height: 1;\r\n margin-bottom: 20px;\r\n padding-bottom: 0;\r\n }\r\n\r\n @include landscape {\r\n padding-bottom: 5%;\r\n line-height: 1.066;\r\n\r\n @media (max-device-height: 350px) {\r\n font-size: 26px;\r\n }\r\n }\r\n }\r\n\r\n &__subtitle {\r\n margin: 0;\r\n font-size: 12px;\r\n line-height: 1.15;\r\n font-weight: 300;\r\n display: inline-block;\r\n\r\n @include not-mobile {\r\n font-size: 14px;\r\n line-height: 18px;\r\n }\r\n\r\n @include landscape {\r\n width: auto;\r\n\r\n @media (max-device-height: 350px) {\r\n font-size: 12px;\r\n }\r\n }\r\n }\r\n\r\n \r\n\r\n &__logo-wrapper {\r\n display: block;\r\n background: rgba($c_primary, .9);\r\n padding: 19px;\r\n position: absolute;\r\n top: 35px;\r\n right: 35px;\r\n\r\n @include not-mobile {\r\n padding: 25px;\r\n top: 45px;\r\n right: 45px;\r\n }\r\n }\r\n\r\n &__logo {\r\n width: 80px;\r\n display: block;\r\n\r\n @include not-mobile {\r\n width: 102px;\r\n }\r\n }\r\n}\r\n</style>\r\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Front.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"front\"},[_c('router-link',{staticClass:\"front__link\",attrs:{\"to\":_vm.nextPageRouterArray}},[_c('div',{staticClass:\"front__bg\"},[(_vm.coverImagePortrait)?_c('div',{staticClass:\"front__bg-image front__bg-image--portrait\",style:({ backgroundImage: 'url(' + _vm.coverImagePortrait + ')' })}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"front__bg-image\",style:({ backgroundImage: 'url(' + _vm.coverImage + ')' })}),_vm._v(\" \"),(_vm.coverVideo)?_c('video',{staticClass:\"front__bg-video\",attrs:{\"src\":_vm.coverVideo,\"muted\":\"\",\"autoplay\":\"\",\"plays-inline\":\"\",\"width\":\"16\",\"height\":\"9\"},domProps:{\"muted\":true}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"front__box\"},[_c('h1',{staticClass:\"front__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_vm._v(\" \"),_c('p',{staticClass:\"front__subtitle\",domProps:{\"innerHTML\":_vm._s(_vm.subtitle)}})]),_vm._v(\" \"),_c('div',{staticClass:\"front__logo-wrapper\"},[_c('img',{staticClass:\"front__logo\",attrs:{\"src\":\"static/svg/logo-white.svg\"}})])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-00eea4a2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Front.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-00eea4a2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Front.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Front.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Front.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-00eea4a2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Front.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Front.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"intro\">\n <div class=\"intro__innerwrap\">\n\n <div class=\"intro__bg\">\n <div v-if=\"coverImagePortrait\" class=\"intro__bg-image intro__bg-image--portrait\" v-bind:style=\"{ backgroundImage: 'url(' + coverImagePortrait + ')' }\"></div>\n <div class=\"intro__bg-image\" v-bind:style=\"{ backgroundImage: 'url(' + coverImage + ')' }\"></div>\n <video class=\"intro__bg-video\" v-if=\"coverVideo\" :src=\"coverVideo\" muted autoplay plays-inline></video>\n </div>\n <div class=\"intro__boxes\">\n\n <div class=\"intro__box intro__box--top\">\n <h1 class=\"intro__title\" v-html=\"title\"></h1>\n <p class=\"intro__intro\" v-html=\"intro\"></p>\n </div>\n\n <div v-for=\"block in contentBlocks\" class=\"intro__box\">\n <h2 class=\"intro__block-title\" v-html=\"block.title\"></h2>\n <div class=\"intro__block-content\" v-html=\"block.content\"></div>\n </div>\n \n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\n\nexport default {\n name: 'intro',\n components: { PrevNextNav },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n coverImage() {\n return this.page.coverImage;\n },\n coverImagePortrait() {\n return this.page.coverImagePortrait;\n },\n coverVideo() {\n return this.page.coverVideo;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.intro {\n @include page;\n color: $c_white;\n text-align: right;\n\n &__bg {\n pointer-events: none;\n width: 100%;\n overflow: hidden;\n position: relative;\n\n @include mobile {\n &::after {\n padding-top: 95%;\n content: '';\n display: block;\n }\n }\n\n @include not-mobile {\n position: fixed;\n top: 40px;\n left: 40px;\n bottom: 110px;\n width: 83.33%;\n max-height: 100%;\n transition: bottom .35s;\n\n .menu-show & {\n bottom: 150px;\n }\n }\n\n @include landscape {\n position: fixed;\n top: 20px;\n left: 20px;\n bottom: 90px;\n width: 83.33%;\n max-height: 100%;\n }\n }\n\n &__bg-image {\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n margin: 0;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n\n &--portrait {\n display: none;\n }\n\n @include portrait {\n &--portrait {\n display: block;\n }\n\n &--portrait + & {\n display: none;\n }\n }\n }\n\n &__bg-video {\n min-width: 100%; \n min-height: 100%; \n \n /* Setting width & height to auto prevents the browser from stretching or squishing the video */\n width: auto;\n height: auto;\n \n /* Center the video */\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n transition: opacity .5s;\n\n &.hide {\n opacity: 0;\n pointer-events: none;\n }\n }\n\n &__boxes {\n display: inline-block;\n position: relative;\n z-index: 1;\n\n @include not-mobile {\n margin-top: 40px;\n margin-bottom: 20px;\n width: calc(41.66% - 10px);\n }\n\n @include landscape {\n margin-top: 20px;\n margin-bottom: 0;\n width: calc(50% - 10px);\n }\n\n @include not-tablet {\n width: calc(33.33% - 10px);\n }\n }\n\n &__box {\n display: block;\n background: $c_white;\n box-sizing: border-box;\n padding: 40px 30px 30px;\n text-align: left;\n color: $c_black--broken;\n margin-bottom: 20px;\n\n @include not-tablet {\n padding: 50px 40px 40px;\n }\n\n &--top {\n padding: 60px 30px 50px;\n color: $c_white;\n background: $c_primary;\n\n @include not-mobile {\n padding: 60px 30px;\n }\n\n @include not-tablet {\n padding: 60px 40px;\n }\n }\n }\n\n &__title {\n @include font-title;\n\n @include not-tablet {\n width: 70%;\n }\n }\n\n &__intro {\n @include font-intro;\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Intro.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"intro\"},[_c('div',{staticClass:\"intro__innerwrap\"},[_c('div',{staticClass:\"intro__bg\"},[(_vm.coverImagePortrait)?_c('div',{staticClass:\"intro__bg-image intro__bg-image--portrait\",style:({ backgroundImage: 'url(' + _vm.coverImagePortrait + ')' })}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"intro__bg-image\",style:({ backgroundImage: 'url(' + _vm.coverImage + ')' })}),_vm._v(\" \"),(_vm.coverVideo)?_c('video',{staticClass:\"intro__bg-video\",attrs:{\"src\":_vm.coverVideo,\"muted\":\"\",\"autoplay\":\"\",\"plays-inline\":\"\"},domProps:{\"muted\":true}}):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"intro__boxes\"},[_c('div',{staticClass:\"intro__box intro__box--top\"},[_c('h1',{staticClass:\"intro__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_vm._v(\" \"),_c('p',{staticClass:\"intro__intro\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}})]),_vm._v(\" \"),_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"intro__box\"},[_c('h2',{staticClass:\"intro__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"intro__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})])})],2)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-330c99a2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Intro.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-330c99a2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Intro.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Intro.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Intro.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-330c99a2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Intro.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Intro.vue\n// module id = null\n// module chunks = ","<template>\n <header\n class=\"header-box\"\n :class=\"{\n 'header-box--small':!intro,\n 'header-box--long':long,\n 'header-box--no-margin':noMargin\n }\"\n >\n <div class=\"header-box__innerwrap\">\n <h1 class=\"header-box__title\" v-html=\"title\"></h1>\n <p v-if=\"intro\" class=\"header-box__intro\" v-html=\"intro\"></p>\n </div>\n </header>\n</template>\n\n<script>\nexport default {\n name: 'header-box',\n props: {\n title: {\n type: String,\n required: true,\n },\n intro: {\n type: [String, Boolean],\n default: false,\n },\n long: {\n type: Boolean,\n default: false,\n },\n noMargin: {\n type: Boolean,\n default: false,\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n@import '../scss/helpers.scss';\n\n.header-box {\n color: $c_white;\n padding: 20px;\n background: $c_primary;\n box-sizing: border-box;\n\n @include not-mobile {\n padding: 40px;\n }\n\n @include landscape {\n padding: 20px;\n }\n\n &--small {\n padding: 35px 30px;\n width: calc(100% - 40px);\n margin: 20px 20px 0;\n\n @include not-mobile {\n width: calc(83.3333% - 66px);\n margin: 40px 0 0 40px;\n\n &.header-box--long {\n width: calc(100% - 80px);\n }\n }\n\n @include landscape {\n &.header-box--long {\n width: calc(50% - 30px);\n margin: 20px 20px 0;\n }\n width: calc(50% - 30px);\n margin: 20px 20px 0;\n padding: 30px;\n }\n }\n\n &--no-margin {\n margin: 0;\n }\n\n &--no-margin.header-box--long {\n width: 100%;\n }\n\n &__innerwrap {\n display: block;\n max-width: 920px;\n box-sizing: border-box;\n padding: 30px 30px 20px;\n\n @include not-mobile {\n padding: 40px;\n }\n\n @include landscape {\n padding: 30px 30px 20px;\n }\n }\n\n &--small &__innerwrap {\n padding: 0;\n max-width: none;\n }\n\n &__title {\n @include font-title;\n }\n\n &__intro {\n @include font-intro;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/HeaderBox.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:\"header-box\",class:{\n 'header-box--small':!_vm.intro,\n 'header-box--long':_vm.long,\n 'header-box--no-margin':_vm.noMargin\n }},[_c('div',{staticClass:\"header-box__innerwrap\"},[_c('h1',{staticClass:\"header-box__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}}),_vm._v(\" \"),(_vm.intro)?_c('p',{staticClass:\"header-box__intro\",domProps:{\"innerHTML\":_vm._s(_vm.intro)}}):_vm._e()])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-29c88ae5\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/HeaderBox.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-29c88ae5\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./HeaderBox.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HeaderBox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./HeaderBox.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-29c88ae5\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./HeaderBox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/HeaderBox.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"movie-progress-bar no-swipe-nav\"},[_c('div',{staticClass:\"movie-progress-bar__timeline\",on:{\"click\":_vm.seek}},[_c('div',{staticClass:\"movie-progress-bar__progress\",style:('width:' + _vm.progressPercentage + '%')})]),_vm._v(\" \"),_c('div',{staticClass:\"movie-progress-bar__dot\",style:('left:' + _vm.progressPercentage + '%'),on:{\"mouseown\":_vm.mouseDown,\"mouseup\":_vm.mouseUp,\"mousemove\":_vm.mouseMove}})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-05cb747f\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/MovieProgressBar.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-05cb747f\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MovieProgressBar.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MovieProgressBar.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MovieProgressBar.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-05cb747f\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MovieProgressBar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MovieProgressBar.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"movie-player\" :style=\"fillerStyle\" :class=\"{ fullscreen }\">\n <div class=\"movie-player__innerwrap\" :style=\"innerwrapStyle\">\n\n <video v-if=\"autoplay\" class=\"movie-player__video\"\n :class=\"{hidden: !played || ended}\"\n :src=\"movieUrl\"\n @timeupdate=\"onTimeUpdate\"\n playsinline\n webkit-playsinline\n >\n </video>\n <video v-if=\"!autoplay\" class=\"movie-player__video\"\n :class=\"{hidden: !played || ended}\"\n :src=\"movieUrl\"\n @timeupdate=\"onTimeUpdate\"\n playsinline\n webkit-playsinline\n >\n </video>\n\n <div class=\"movie-player__overlay\" :style=\"{maxWidth: maxWidth}\" @click=\"enableControls\">\n <div class=\"movie-player__aspectratio\" :style=\"{ paddingTop: ((aspectRatio * 100) + '%')}\"></div>\n <div class=\"movie-player__placeholder\" v-on:click=\"playPause\" :class=\"{ hidden: played && !ended }\" v-bind:style=\"{ backgroundImage: 'url(' + placeholderUrl + ')' }\"></div>\n <a :class=\"{ hidden: !controlsActive, paused: paused }\" v-on:click=\"playPause\" class=\"movie-player__play\"></a>\n <movie-progress-bar :class=\"{ hidden: !controlsActive }\" @change=\"updateTime\" :progress=\"progress\"></movie-progress-bar>\n <a class=\"movie-player__mute\" :class=\"{ hidden: !controlsActive, muted: muted }\" v-on:click=\"toggleMute\"></a>\n <a class=\"movie-player__fullscreen\" :class=\"{ hidden: !controlsActive, fullscreen: fullscreen }\" v-on:click=\"toggleFullscreen\"></a>\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\nimport MovieProgressBar from '@/components/MovieProgressBar';\n\nconst keys = { 37: 1, 38: 1, 39: 1, 40: 1 };\n\nfunction preventDefault(e) {\n const ev = e || window.event;\n if (ev.preventDefault) {\n ev.preventDefault();\n }\n ev.returnValue = false;\n}\n\nfunction preventDefaultForScrollKeys(e) {\n if (keys[e.keyCode]) {\n preventDefault(e);\n return false;\n }\n return true;\n}\n\nfunction disableScroll() {\n if (window.addEventListener) { // older FF\n window.addEventListener('DOMMouseScroll', preventDefault, false);\n }\n window.onwheel = preventDefault; // modern standard\n window.onmousewheel = preventDefault; // older browsers, IE\n document.onmousewheel = preventDefault; // older browsers, IE\n window.ontouchmove = preventDefault; // mobile\n document.onkeydown = preventDefaultForScrollKeys;\n}\n\nfunction enableScroll() {\n if (window.removeEventListener) {\n window.removeEventListener('DOMMouseScroll', preventDefault, false);\n }\n document.onmousewheel = null;\n window.onmousewheel = null;\n window.onwheel = null;\n window.ontouchmove = null;\n document.onkeydown = null;\n}\n\nexport default {\n name: 'movie-player',\n components: { MovieProgressBar },\n props: ['movieUrl', 'placeholderUrl', 'autoplay'],\n data() {\n return {\n played: false,\n paused: true,\n ended: false,\n fullscreen: false,\n muted: true,\n progress: 0,\n controlsActive: true,\n controlsTimeout: false,\n aspectRatio: 0.5625,\n maxWidth: false,\n\n fillerStyle: {},\n innerwrapStyle: {},\n\n elVideo: null,\n elOverlay: null,\n elInnerwrap: null,\n\n\n timeout: false,\n video: null,\n };\n },\n mounted() {\n this.elVideo = this.$el.querySelector('.movie-player__video');\n this.elOverlay = this.$el.querySelector('.movie-player__overlay');\n this.elInnerwrap = this.$el.querySelector('.movie-player__innerwrap');\n this.maxWidth = (window.innerHeight - 70) / this.aspectRatio + 'px'; //eslint-disable-line\n\n window.addEventListener('resize', () => {\n this.maxWidth = (window.innerHeight - 70) / this.aspectRatio + 'px'; //eslint-disable-line\n });\n\n\n this.$el.addEventListener('mousemove', () => {\n this.enableControls();\n });\n\n if (this.muted) {\n this.elVideo.muted = true;\n }\n\n if (this.autoplay) {\n // this.elVideo.addEventListener('canplaythrough', this.playPause);\n }\n\n this.elVideo.addEventListener('click', this.playPause);\n },\n methods: {\n toggleShowNav() {\n clearTimeout(this.navTimeout);\n this.showNav = true;\n\n this.navTimeout = setTimeout(() => {\n this.showNav = false;\n }, 12500);\n },\n playPause() {\n const video = this.$el.querySelector('.movie-player__video');\n if (!this.played) {\n this.elVideo.removeEventListener('canplaythrough', this.playPause);\n video.addEventListener('ended', () => {\n this.paused = true;\n this.ended = true;\n clearTimeout(this.navTimeout);\n this.controlsActive = true;\n });\n\n video.play();\n this.played = true;\n this.controlsActive = false;\n this.paused = false;\n } else if (this.ended) {\n this.ended = false;\n this.paused = false;\n video.currentTime = 0;\n video.play();\n } else if (this.paused) {\n video.play();\n this.paused = false;\n } else {\n video.pause();\n this.paused = true;\n }\n },\n maximize() {\n disableScroll();\n\n this.aspectRatio = this.elVideo.offsetHeight / this.elVideo.offsetWidth;\n\n\n this.fillerStyle = {\n height: this.$el.offsetHeight + 'px', //eslint-disable-line\n width: this.$el.offsetWidth + 'px', //eslint-disable-line\n };\n\n\n const rect = this.elInnerwrap.getBoundingClientRect();\n const top = rect.top;\n const left = rect.left;\n\n this.innerwrapStyle = {\n top: top + 'px', //eslint-disable-line\n left: left + 'px', //eslint-disable-line\n height: this.elInnerwrap.offsetHeight + 'px', //eslint-disable-line\n width: this.elInnerwrap.offsetWidth + 'px', //eslint-disable-line\n position: 'fixed',\n };\n\n\n this.timeout = setTimeout(() => {\n this.elOverlay.classList.add('aspect-ratio');\n this.elOverlay.classList.add('center');\n this.elInnerwrap.classList.add('movie-player__innerwrap--full');\n }, 80);\n },\n minimize() {\n this.elInnerwrap.classList.remove('movie-player__innerwrap--full');\n this.elOverlay.classList.remove('aspect-ratio');\n\n\n setTimeout(() => {\n enableScroll();\n this.elOverlay.classList.remove('center');\n\n this.fillerStyle = {};\n this.innerwrapStyle = {};\n }, 500);\n },\n toggleFullscreen() {\n clearTimeout(this.timeout);\n if (this.fullscreen) {\n this.minimize();\n this.fullscreen = false;\n } else {\n this.fullscreen = true;\n this.maximize();\n }\n },\n toggleMute() {\n // clearTimeout(this.timeout);\n if (this.muted) {\n this.muted = false;\n this.elVideo.removeAttribute('muted');\n this.elVideo.muted = false;\n } else {\n this.muted = true;\n this.elVideo.setAttribute('muted', true);\n this.elVideo.muted = true;\n }\n },\n onTimeUpdate() {\n this.progress = this.elVideo.currentTime / this.elVideo.duration;\n },\n enableControls() {\n this.controlsActive = true;\n clearTimeout(this.controlsTimeout);\n\n this.controlsTimeout = setTimeout(() => {\n this.controlsActive = false;\n }, 2000);\n },\n updateTime(progress) {\n this.elVideo.currentTime = (progress * this.elVideo.duration);\n this.ended = false;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../scss/helpers';\n\n.movie-player {\n display: block;\n width: 100%;\n position: relative;\n z-index: 1;\n\n &.fullscreen {\n z-index: 3;\n }\n\n\n &__innerwrap {\n @include gradientBackground;\n position: relative;\n transition: width .5s ease-in-out, height .5s ease-in-out, top .5s ease-in-out, left .5s ease-in-out, background .5s ease-in-out;\n\n &--full {\n position: fixed;\n top: 0 !important;\n left: 0 !important;\n width: 100% !important;\n height: calc(100% - 70px) !important;\n }\n }\n\n &__video {\n width: 100%;\n height: 100%;\n display: block;\n transition: opacity .3s cubic-bezier(.75,.01,.25,1);\n\n &.hidden {\n opacity: 0;\n }\n }\n\n &__overlay {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 1;\n transition: max-width .5s ease-in-out;\n width: 100%;\n\n &:not(.aspect-ratio) {\n max-width: 100% !important;\n }\n\n &.center {\n top: 50%;\n bottom: auto;\n left: 50%;\n right: auto;\n transform: translate(-50%, -50%);\n }\n\n }\n\n &__aspectRatio {\n display: block;\n }\n\n &__placeholder {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-position: center;\n background-size: contain;\n background-repeat: no-repeat;\n transition: opacity .3s cubic-bezier(.75,.01,.25,1);\n\n &.hidden {\n opacity: 0;\n }\n }\n\n &__fullscreen {\n display: block;\n height: 46px;\n width: 46px;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-image: url('../../static/svg/icon_maximize.svg');\n position: absolute;\n top: 20px;\n right: 20px;\n transition: opacity .3s;\n z-index: 3;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n }\n\n &.fullscreen {\n background-image: url('../../static/svg/icon_minimize.svg');\n }\n }\n\n &__mute {\n display: block;\n height: 46px;\n width: 46px;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-image: url('../../static/svg/icon_unmute.svg');\n position: absolute;\n top: 20px;\n right: 86px;\n transition: opacity .3s;\n z-index: 3;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n }\n\n &.muted {\n background-image: url('../../static/svg/icon_mute.svg');\n }\n }\n\n &__play {\n display: block;\n height: 84px;\n width: 84px;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-image: url('../../static/svg/icon_play.svg');\n position: absolute;\n top: 50%;\n left: 50%;\n margin-top: -42px;\n margin-left: -42px;\n transition: opacity .3s;\n z-index: 3;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n }\n\n &:not(.paused) {\n background-image: url('../../static/svg/icon_pause.svg');\n }\n\n &.paused {\n background-image: url('../../static/svg/icon_play.svg');\n }\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/MoviePlayer.vue","<template>\n <div class=\"movie-progress-bar no-swipe-nav\">\n <div class=\"movie-progress-bar__timeline\" @click=\"seek\">\n <div class=\"movie-progress-bar__progress\" :style=\"'width:' + progressPercentage + '%'\"></div>\n </div>\n <div class=\"movie-progress-bar__dot\" @mouseown=\"mouseDown\" @mouseup=\"mouseUp\" @mousemove=\"mouseMove\" :style=\"'left:' + progressPercentage + '%'\"></div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'movie-progress-bar',\n props: ['progress'],\n data() {\n return {\n progressPercentage: 0,\n isMouseDown: false,\n dot: null,\n };\n },\n mounted() {\n this.$el.addEventListener('mouseup', this.mouseUp);\n this.$el.addEventListener('mouseleave', this.mouseLeave);\n this.$el.addEventListener('mousedown', this.mouseDown);\n this.$el.addEventListener('mousemove', this.mouseMove);\n this.$el.addEventListener('touchmove', this.touchMove);\n },\n methods: {\n width() {\n return this.$el.offsetWidth;\n },\n left() {\n return this.$el.getBoundingClientRect().left;\n },\n seek(event) {\n const percentage = ((event.clientX - this.left()) / this.width());\n this.$emit('change', percentage);\n this.progressPercentage = percentage * 100;\n },\n mouseDown() {\n this.isMouseDown = true;\n },\n mouseUp() {\n this.isMouseDown = false;\n },\n mouseLeave() {\n this.isMouseDown = false;\n },\n mouseMove(event) {\n if (this.isMouseDown) {\n const percentage = ((event.clientX - this.left()) / this.width());\n this.$emit('change', percentage);\n this.progressPercentage = percentage * 100;\n }\n },\n touchMove(event) {\n this.emitPercentage(event.touches[0].clientX);\n },\n },\n watch: {\n progress() {\n this.progressPercentage = this.progress * 100;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../scss/helpers';\n\n.movie-progress-bar {\n display: block;\n width: calc(100% - 80px);\n margin: 100px 40px 30px;\n padding: 15px 0;\n position: absolute;\n bottom: 0;\n z-index: 1;\n transition: opacity .3s;\n\n &.hidden {\n opacity: 0;\n }\n\n &__timeline {\n width: 100%;\n height: 10px;\n border-radius: 5px;\n position: relative;\n overflow: hidden;\n background: $c_white;\n }\n\n &__progress {\n height: 100%;\n position: absolute;\n left: 0;\n top: 0;\n background: $c_primary;\n transition: width .15s;\n }\n\n &__dot {\n width: 22px;\n height: 22px;\n margin: -6px;\n transform: translateX(-5px);\n top: 15px;\n border-radius: 11px;\n background: $c_primary;\n box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.16);\n transition: left .15s;\n position: absolute;\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/MovieProgressBar.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"movie-player\",class:{ fullscreen: _vm.fullscreen },style:(_vm.fillerStyle)},[_c('div',{staticClass:\"movie-player__innerwrap\",style:(_vm.innerwrapStyle)},[(_vm.autoplay)?_c('video',{staticClass:\"movie-player__video\",class:{hidden: !_vm.played || _vm.ended},attrs:{\"src\":_vm.movieUrl,\"playsinline\":\"\",\"webkit-playsinline\":\"\"},on:{\"timeupdate\":_vm.onTimeUpdate}}):_vm._e(),_vm._v(\" \"),(!_vm.autoplay)?_c('video',{staticClass:\"movie-player__video\",class:{hidden: !_vm.played || _vm.ended},attrs:{\"src\":_vm.movieUrl,\"playsinline\":\"\",\"webkit-playsinline\":\"\"},on:{\"timeupdate\":_vm.onTimeUpdate}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"movie-player__overlay\",style:({maxWidth: _vm.maxWidth}),on:{\"click\":_vm.enableControls}},[_c('div',{staticClass:\"movie-player__aspectratio\",style:({ paddingTop: ((_vm.aspectRatio * 100) + '%')})}),_vm._v(\" \"),_c('div',{staticClass:\"movie-player__placeholder\",class:{ hidden: _vm.played && !_vm.ended },style:({ backgroundImage: 'url(' + _vm.placeholderUrl + ')' }),on:{\"click\":_vm.playPause}}),_vm._v(\" \"),_c('a',{staticClass:\"movie-player__play\",class:{ hidden: !_vm.controlsActive, paused: _vm.paused },on:{\"click\":_vm.playPause}}),_vm._v(\" \"),_c('movie-progress-bar',{class:{ hidden: !_vm.controlsActive },attrs:{\"progress\":_vm.progress},on:{\"change\":_vm.updateTime}}),_vm._v(\" \"),_c('a',{staticClass:\"movie-player__mute\",class:{ hidden: !_vm.controlsActive, muted: _vm.muted },on:{\"click\":_vm.toggleMute}}),_vm._v(\" \"),_c('a',{staticClass:\"movie-player__fullscreen\",class:{ hidden: !_vm.controlsActive, fullscreen: _vm.fullscreen },on:{\"click\":_vm.toggleFullscreen}})],1)])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4ac8c145\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/MoviePlayer.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4ac8c145\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MoviePlayer.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MoviePlayer.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MoviePlayer.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4ac8c145\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MoviePlayer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MoviePlayer.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"market-block\">\n <div class=\"market-block__image-wrapper\" v-if=\"(block.type === 'image')\">\n <movie-player v-if=\"block.video\" class=\"market-block__video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" class=\"market-block__image\" :src=\"block.image\" />\n </div>\n <div class=\"market-block__textwrap\" v-if=\"(block.type === 'text')\">\n <h2 class=\"market-block__title\" v-html=\"block.title\"></h2>\n <h3 v-if=\"block.subtitle\" class=\"market-block__subtitle\" v-html=\"block.subtitle\"></h3>\n <div class=\"market-block__content\" v-html=\"block.content\"></div>\n </div>\n </div>\n</template>\n\n<script>\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'market-block',\n components: { MoviePlayer },\n props: ['block'],\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../scss/helpers';\n\n.market-block {\n display: block;\n width: 100%;\n box-sizing: border-box;\n\n @include tablet {\n width: 75%;\n\n &:nth-child(2n) {\n margin-left: 25%;\n margin-bottom: 60px;\n }\n\n &:nth-child(2n+1) {\n margin-right: 25%;\n }\n }\n\n @include landscape {\n width: 50%;\n margin-bottom: 20px;\n\n &:nth-child(2n) {\n margin-left: 0;\n margin-bottom: 20px;\n }\n\n &:nth-child(2n+1) {\n margin-right: 0;\n }\n }\n\n @include not-tablet {\n width: 50%;\n }\n\n &__image-wrapper {\n display: block;\n width: calc(100% - 40px);\n // background-size: cover;\n // background-position: center;\n position: relative;\n margin: auto;\n overflow: hidden;\n\n // &::before {\n // content: '';\n // display: block;\n // padding-top: 56.25%;\n // }\n\n @include landscape {\n width: calc(100% - 20px);\n }\n }\n\n @include not-mobile {\n &:nth-child(2n) &__image-wrapper {\n margin-right: 40px;\n }\n\n &:nth-child(2n+1) &__image-wrapper {\n margin-left: 40px;\n }\n }\n\n &__image {\n display: block;\n width: 100%;\n }\n\n // &__video {\n // width: 100%; \n // height: 100%;\n \n // /* Center the video */\n // position: absolute;\n // top: 0;\n // left: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n // }\n\n @include landscape {\n &:nth-child(2n) &__image {\n margin-right: 20px;\n margin-left: 0;\n }\n\n &:nth-child(2n+1) &__image {\n margin-left: 20px;\n margin-right: 0;\n }\n }\n\n\n &__textwrap {\n background: $c_white;\n\n @include mobile {\n width: calc(100% - 20px);\n box-sizing: border-box;\n padding: 40px 30px 40px 60px;\n margin-bottom: 20px;\n }\n\n @include not-mobile {\n padding: 50px 40px 50px 80px;\n }\n\n @include landscape {\n box-sizing: border-box;\n padding: 40px 30px 40px 60px;\n width: auto;\n margin-bottom: 0;\n }\n }\n\n @include tablet {\n &:nth-child(2n) &__textwrap {\n padding: 80px 40px 30px 80px;\n margin-top: -40px;\n }\n\n &:nth-child(2n+1) &__textwrap {\n padding: 40px 40px 70px 80px;\n margin-bottom: -40px;\n }\n }\n\n @include landscape {\n &:nth-child(2n) &__textwrap {\n padding: 40px 30px 40px 60px;\n margin-top: 0;\n }\n\n &:nth-child(2n+1) &__textwrap {\n padding: 40px 30px 40px 60px;\n margin-bottom: 0;\n }\n }\n\n &__title {\n @include font-block-title;\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n left: -40px;\n width: 20px;\n height: 2px;\n background: $c_primary;\n top: 9px;\n }\n }\n\n &__subtitle {\n @include font-block-subtitle;\n }\n\n &__content {\n @include font-block-content;\n margin: 0;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/MarketBlock.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"market-block\"},[((_vm.block.type === 'image'))?_c('div',{staticClass:\"market-block__image-wrapper\"},[(_vm.block.video)?_c('movie-player',{staticClass:\"market-block__video\",attrs:{\"movieUrl\":_vm.block.video,\"placeholderUrl\":_vm.block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!_vm.block.video)?_c('img',{staticClass:\"market-block__image\",attrs:{\"src\":_vm.block.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),((_vm.block.type === 'text'))?_c('div',{staticClass:\"market-block__textwrap\"},[_c('h2',{staticClass:\"market-block__title\",domProps:{\"innerHTML\":_vm._s(_vm.block.title)}}),_vm._v(\" \"),(_vm.block.subtitle)?_c('h3',{staticClass:\"market-block__subtitle\",domProps:{\"innerHTML\":_vm._s(_vm.block.subtitle)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"market-block__content\",domProps:{\"innerHTML\":_vm._s(_vm.block.content)}})]):_vm._e()])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-247ffc9d\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/MarketBlock.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-247ffc9d\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./MarketBlock.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MarketBlock.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./MarketBlock.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-247ffc9d\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./MarketBlock.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/MarketBlock.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"markets\">\n <header-box :title=\"title\" :intro=\"intro\"></header-box>\n <div class=\"markets__innerwrap\">\n <div class=\"markets__blocks\">\n <market-block v-for=\"(block, index) in contentBlocks\" :block=\"block\" :key=\"index\"/>\n </div>\n\n <div class=\"markets__blocks markets__blocks--mobile\">\n <market-block v-for=\"(block, index) in mobileContentBlocks\" :block=\"block\" :key=\"index\"/>\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MarketBlock from '@/components/MarketBlock';\n\nexport default {\n name: 'markets',\n components: { PrevNextNav, HeaderBox, MarketBlock },\n data() {\n return {\n innerWidth: window.innerWidth,\n };\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n mobileContentBlocks() {\n const contentBlocks = this.page.contentBlocks.slice();\n\n [].forEach.call(contentBlocks, (contentBlock, index) => {\n if (index % 2 === 1 && contentBlocks[index].type === 'image' && contentBlocks[index - 1].type === 'text') {\n const tempFirst = contentBlocks[index];\n const tempSec = contentBlocks[index - 1];\n contentBlocks[index] = tempSec;\n contentBlocks[index - 1] = tempFirst;\n }\n });\n\n return contentBlocks;\n },\n },\n mounted() {\n window.addEventListener('resize', () => {\n this.innerWidth = window.innerWidth;\n });\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.markets {\n @include page(false);\n\n &__blocks {\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n box-sizing: border-box;\n padding: 20px 0 0;\n\n @include mobile {\n display: none;\n\n &--mobile {\n display: block;\n }\n }\n\n\n @include not-mobile {\n padding: 40px 0;\n\n &--mobile {\n display: none;\n }\n }\n \n @include landscape {\n display: flex;\n padding: 20px 0 0;\n\n &--mobile {\n display: none;\n }\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Markets.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"markets\"},[_c('header-box',{attrs:{\"title\":_vm.title,\"intro\":_vm.intro}}),_vm._v(\" \"),_c('div',{staticClass:\"markets__innerwrap\"},[_c('div',{staticClass:\"markets__blocks\"},_vm._l((_vm.contentBlocks),function(block,index){return _c('market-block',{key:index,attrs:{\"block\":block}})})),_vm._v(\" \"),_c('div',{staticClass:\"markets__blocks markets__blocks--mobile\"},_vm._l((_vm.mobileContentBlocks),function(block,index){return _c('market-block',{key:index,attrs:{\"block\":block}})}))])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-59a2fae2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Markets.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-59a2fae2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Markets.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Markets.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Markets.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-59a2fae2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Markets.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Markets.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('router-link',{attrs:{\"to\":{ params: { selectedBullet: _vm.index } }}},[_c('div',{staticClass:\"bullet\",style:('left: ' + _vm.x + '%; ' + 'top: ' + _vm.y + '%')},[_c('span',{staticClass:\"bullet__label\"},[_vm._v(_vm._s(_vm.index + 1))])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-6c547cb4\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/Bullet.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-6c547cb4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Bullet.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Bullet.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./Bullet.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6c547cb4\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./Bullet.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/Bullet.vue\n// module id = null\n// module chunks = ","<template>\n <router-link :to=\"{ params: { selectedBullet: index } }\">\n <div class=\"bullet\" :style=\"'left: ' + x + '%; ' + 'top: ' + y + '%'\">\n <span class=\"bullet__label\">{{index + 1}}</span>\n </div>\n </router-link>\n</template>\n\n<script>\nexport default {\n name: 'bullet',\n props: ['x', 'y', 'index'],\n};\n</script>\n\n<style lang=\"scss\">\n @import '../scss/helpers.scss';\n .bullet {\n display: block;\n position: absolute;\n height: 40px;\n width: 40px;\n background: rgba($c_primary, .9);\n transition: opacity .15s;\n opacity: 0;\n font-size: 18px;\n font-weight: bold;\n box-sizing: border-box;\n border-radius: 50%;\n color: $c_white;\n text-align: center;\n transform: translate(-20px, -20px);\n box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.31);\n\n &__label {\n display: inline-block;\n position: absolute;\n top: 20px;\n left: 20px;\n transform: translate(-50%, -50%);\n @include font-baseline-fix;\n\n }\n\n .show & {\n opacity: 1;\n }\n }\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/Bullet.vue","<template>\n <div\n class=\"threesixty-block\"\n :class=\"{opaque: opaque}\"\n >\n <div class=\"threesixty-block__image-wrapper\" v-if=\"image\">\n <movie-player class=\"threesixty-block__video\" v-if=\"video\" :movieUrl=\"video\" :placeholderUrl=\"image\" autoplay=\"true\"></movie-player>\n <img class=\"threesixty-block__image\" v-if=\"!video\" :src=\"image\" />\n </div>\n <div class=\"threesixty-block__content-wrapper\">\n <a class=\"threesixty-block__close\" v-if=\"close\" @click=\"$emit('close', $event)\"></a>\n <div class=\"threesixty-block__textwrap\" @click=\"$emit('click', $event)\">\n <h2 class=\"threesixty-block__title\"><span v-if=\"index\" class=\"number\">{{index}}.</span> <span v-html=\"title\"></span></h2>\n <div class=\"threesixty-block__content\" v-html=\"content\"></div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'threesixty',\n components: { MoviePlayer },\n props: {\n image: {\n type: [String, Boolean],\n },\n video: {\n type: [String, Boolean],\n },\n opaque: {\n type: Boolean,\n },\n close: {\n type: Boolean,\n },\n index: {\n type: [Number, String, Boolean],\n default: false,\n },\n title: {\n type: String,\n required: true,\n },\n content: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../scss/helpers';\n\n.threesixty-block {\n\n background: $c_white;\n margin-bottom: 20px;\n box-sizing: border-box;\n // order: 2;\n\n &--title {\n color: $c_white;\n padding: 30px;\n background: $c_primary;\n // order: 1;\n\n @include not-laptop {\n display: none;\n }\n }\n\n &.opaque {\n opacity: .5;\n\n @include not-laptop {\n display: none;\n }\n\n @include landscape {\n display: block;\n }\n }\n\n &__title {\n @include font-block-title;\n \n .number {\n color: $c_primary;\n\n @include mobile {\n display: none;\n }\n\n @include landscape {\n display: none;\n }\n }\n }\n\n &__content-wrapper {\n position: relative;\n }\n\n &__content {\n @include font-block-content;\n line-height: 2.3333;\n }\n\n &__image-wrapper {\n display: block;\n width: 100%;\n position: relative;\n overflow: hidden;\n }\n\n &__image {\n display: block;\n width: 100%;\n }\n\n &__textwrap {\n padding: 40px 30px;\n position: relative;\n }\n\n &__close {\n background: #0096C3;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: block;\n position: absolute;\n top: -20px;\n right: -20px;\n z-index: 1;\n -webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.31);\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.31);\n -webkit-transition: all .25s;\n transition: all .25s;\n cursor: pointer;\n\n &:before, &:after {\n content: '';\n background: #fff;\n display: block;\n height: 2px;\n left: 11px;\n position: absolute;\n top: 19px;\n transform: rotate(-45deg);\n width: 18px;\n z-index: 10;\n transition: all .25s;\n }\n\n &:before {\n transform: rotate(45deg);\n }\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/ThreeSixtyBlock.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"threesixty-block\",class:{opaque: _vm.opaque}},[(_vm.image)?_c('div',{staticClass:\"threesixty-block__image-wrapper\"},[(_vm.video)?_c('movie-player',{staticClass:\"threesixty-block__video\",attrs:{\"movieUrl\":_vm.video,\"placeholderUrl\":_vm.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!_vm.video)?_c('img',{staticClass:\"threesixty-block__image\",attrs:{\"src\":_vm.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"threesixty-block__content-wrapper\"},[(_vm.close)?_c('a',{staticClass:\"threesixty-block__close\",on:{\"click\":function($event){_vm.$emit('close', $event)}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"threesixty-block__textwrap\",on:{\"click\":function($event){_vm.$emit('click', $event)}}},[_c('h2',{staticClass:\"threesixty-block__title\"},[(_vm.index)?_c('span',{staticClass:\"number\"},[_vm._v(_vm._s(_vm.index)+\".\")]):_vm._e(),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.title)}})]),_vm._v(\" \"),_c('div',{staticClass:\"threesixty-block__content\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-bbcf248a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ThreeSixtyBlock.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-bbcf248a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ThreeSixtyBlock.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixtyBlock.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixtyBlock.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-bbcf248a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ThreeSixtyBlock.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ThreeSixtyBlock.vue\n// module id = null\n// module chunks = ","<template>\n <label :for=\"_uid\" class=\"toggle-button\" :class=\"'toggle-button--' + align\">\n <input\n class=\"toggle-button__checkbox\"\n type=\"checkbox\"\n :id=\"_uid\"\n :checked=\"checked\"\n @change=\"updateChecked\"\n />\n <span class=\"toggle-button__toggler\" :class=\"checked ? 'on' : 'off'\" >\n <em class=\"toggle-button__icon\"> </em>\n <i v-if=\"checked\">{{translations['threesixtyOn']}}</i>\n <i v-else>{{translations['threesixtyOff']}}</i>\n </span>\n <span class=\"toggle-button__label\" :class=\"'toggle-button__label--' + align\" v-html=\"label\"></span>\n </label>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n\nexport default {\n model: {\n prop: 'checked',\n },\n props: {\n label: String,\n checked: Boolean,\n align: {\n type: String,\n default: 'right',\n },\n },\n computed: {\n ...mapGetters(['translations']),\n },\n methods: {\n updateChecked(event) {\n this.$emit('change', event.target.checked);\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n @import '../scss/helpers.scss';\n\n .toggle-button {\n cursor: pointer;\n display: flex;\n align-items: center;\n position: relative;\n\n &:not(:last-child) {\n margin-right: 20px;\n }\n\n &--left {\n margin-right: 0;\n\n &:not(:first-child) {\n margin-left: 20px;\n }\n flex-direction: row-reverse;\n }\n\n &__checkbox {\n position: absolute;\n visibility: hidden;\n }\n\n &__label {\n font-size: 12px;\n font-weight: 300;\n color: #000;\n margin-left: 20px;\n\n &--left {\n margin-right: 20px;\n\n @include landscape {\n margin-left: 0px;\n }\n }\n }\n\n &__icon {\n &:before, &:after {\n content: '';\n background: #fff;\n display: block;\n height: 2px;\n left: 45px;\n position: absolute;\n top: 15px;\n transform: rotate(-45deg);\n width: 18px;\n z-index: 10;\n transition: all .25s;\n }\n\n &:before {\n transform: rotate(45deg);\n }\n\n .on & {\n &:after {\n left: 3px;\n top: 16px;\n z-index: 10;\n transform: rotate(-225deg);\n }\n\n &:before {\n left: -2px;\n top: 18px;\n width: 9px;\n transform: rotate(-135deg);\n }\n } \n }\n\n &__toggler {\n background: #E6EBEF;\n border-radius: 20px;\n box-sizing: border-box;\n color: #000;\n display: inline-block;\n font-size: 12px;\n line-height: 20px;\n font-weight: 300;\n height: 34px;\n padding: 7px 12px;\n position: relative;\n vertical-align: middle;\n width: 63px;\n text-align: right;\n transition: all .25s;\n z-index: 0;\n\n img {\n position: absolute;\n top: 10px;\n z-index: 2;\n }\n\n i {\n font-style: normal;\n }\n\n &:before {\n content: '';\n background: #0096C3;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: block;\n position: absolute;\n top: -3px;\n z-index: 1;\n box-shadow: 0px 2px 2px rgba(0,0,0,0.31);\n transition: all .25s;\n }\n\n &.on {\n &::before { left: -12px; }\n img { left: -1px; }\n }\n\n &.off {\n text-align: left;\n background: rgba(0,0,0,.5);\n\n &::before { left: 34px; }\n img { right: 1px; }\n }\n }\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/ToggleButton.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"toggle-button\",class:'toggle-button--' + _vm.align,attrs:{\"for\":_vm._uid}},[_c('input',{staticClass:\"toggle-button__checkbox\",attrs:{\"type\":\"checkbox\",\"id\":_vm._uid},domProps:{\"checked\":_vm.checked},on:{\"change\":_vm.updateChecked}}),_vm._v(\" \"),_c('span',{staticClass:\"toggle-button__toggler\",class:_vm.checked ? 'on' : 'off'},[_c('em',{staticClass:\"toggle-button__icon\"}),_vm._v(\" \"),(_vm.checked)?_c('i',[_vm._v(_vm._s(_vm.translations['threesixtyOn']))]):_c('i',[_vm._v(_vm._s(_vm.translations['threesixtyOff']))])]),_vm._v(\" \"),_c('span',{staticClass:\"toggle-button__label\",class:'toggle-button__label--' + _vm.align,domProps:{\"innerHTML\":_vm._s(_vm.label)}})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-272e0195\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ToggleButton.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-272e0195\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ToggleButton.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ToggleButton.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ToggleButton.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-272e0195\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ToggleButton.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ToggleButton.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"installation-3d\">\n <!-- <header-box :title=\"title\" :intro=\"intro\"></header-box> -->\n <div class=\"installation-3d__innerwrap\">\n <div class=\"installation-3d__3d-wrapper\">\n \n <div class=\"installation-3d__3d-view\" :style=\"view3dStyle\">\n <div class=\"installation-3d__3d-close-rect\" v-on:click=\"closeBullet\"></div>\n <div class=\"installation-3d__bullets\" :class=\"{ show: info }\">\n <bullet\n :key=\"index\"\n :index=\"index\"\n v-for=\"(b, index) in contentBlocks3d\"\n :x=\"b.x\"\n :y=\"b.y\"\n >\n </bullet>\n </div>\n </div>\n <div class=\"installation-3d__3d-blocks\" ref=\"blocks3d\" :class=\"{ hide: (selectedBullet === -1 || !info) }\">\n <three-sixty-block\n :id=\"'block-' + index\"\n v-for=\"(block, index) in contentBlocks3d\"\n :key=\"index\"\n :image=\"block.image\"\n :video=\"block.video\"\n :title=\"block.title\"\n :content=\"block.content\"\n v-on:close=\"closeBullet\"\n v-on:click=\"openBullet(index)\"\n :index=\"index + 1\"\n :close=\"selectedBullet === index\"\n />\n </div>\n <div class=\"installation-3d__3d-toggle\" :class=\"{ hide: selectedBullet !== -1 }\" v-if=\"contentBlocks3d.length\">\n <toggle-button v-if=\"!isMobile\" :label=\"translations['threesixtyLabels']\" align=\"left\" @change=\"toggleInfo\" v-model=\"info\"></toggle-button>\n </div>\n </div>\n <div class=\"installation-3d__blocks\">\n <market-block v-for=\"(block, index) in contentBlocks\" :block=\"block\" :key=\"index\"/>\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MarketBlock from '@/components/MarketBlock';\nimport Bullet from '@/components/Bullet';\nimport ThreeSixtyBlock from '@/components/ThreeSixtyBlock';\nimport ToggleButton from '@/components/ToggleButton';\n\nconst scrollToElement = require('scroll-to-element');\nconst scrollIntoView = require('scroll-into-view');\n\n\nexport default {\n name: 'installation-3d',\n components: { PrevNextNav, HeaderBox, MarketBlock, Bullet, ThreeSixtyBlock, ToggleButton },\n watch: {\n selectedBullet(newVal, oldVal) {\n const bullet = this.$el.querySelector(`#block-${this.selectedBullet}`);\n if (this.selectedBullet !== -1 && bullet) {\n scrollIntoView(bullet, {\n time: oldVal === '-1' ? 0 : 500,\n isScrollable: target => target.classList && target.classList.contains('installation-3d__3d-blocks'),\n });\n }\n scrollToElement(this.$refs.blocks3d, { duration: 500, align: 'top' });\n },\n },\n methods: {\n toggleInfo(val) {\n const params = this.$route.params;\n params.selectedBullet = -1;\n params.info = val ? 'info' : 'noinfo';\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n closeBullet() {\n const params = this.$route.params;\n params.selectedBullet = -1;\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n openBullet(index) {\n const params = this.$route.params;\n params.selectedBullet = index;\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n },\n computed: {\n ...mapGetters(['page', 'selectedBullet', 'info', 'translations']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n image() {\n return this.page.image;\n },\n contentBlocks3d() {\n return this.page.threedContentBlocks;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n mobileContentBlocks() {\n const contentBlocks = this.page.contentBlocks.slice();\n\n [].forEach.call(contentBlocks, (contentBlock, index) => {\n if (index % 2 === 1 && contentBlocks[index].type === 'image' && contentBlocks[index - 1].type === 'text') {\n const tempFirst = contentBlocks[index];\n const tempSec = contentBlocks[index - 1];\n contentBlocks[index] = tempSec;\n contentBlocks[index - 1] = tempFirst;\n }\n });\n\n return contentBlocks;\n },\n view3dStyle() {\n const style = {\n backgroundImage: `url('${this.image}')`,\n };\n const selectedBlock = this.selectedBullet >= 0 && this.contentBlocks3d[this.selectedBullet];\n if (selectedBlock) {\n style.transformOrigin = `${selectedBlock.x}% ${selectedBlock.y}%`;\n style.transform = `translate(-50%, -50%) translate(${28 - selectedBlock.x}%, ${50 - selectedBlock.y}%) scale(${selectedBlock.scale})`;\n }\n return style;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.installation-3d {\n @include page(false);\n\n &__3d-wrapper {\n width: 100%;\n position: relative;\n\n @include not-mobile {\n height: calc(100vh - 70px);\n overflow: hidden;\n }\n }\n\n &__3d-view {\n display: block;\n background-size: cover;\n background-position: center;\n\n @include mobile {\n display: block;\n\n &::before {\n content: '';\n display: block;\n padding-top: 1396/2048*100%;\n }\n }\n\n @include not-mobile {\n @include aspect-ratio-box-cover(2048/1396, 70px);\n transition: transform .45s, transform-origin .45s;\n }\n }\n\n &__3d-close-rect {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n &__bullets {\n display: none;\n \n @include not-mobile {\n display: block;\n }\n }\n\n &__3d-blocks {\n display: block;\n padding: 20px 20px 0;\n box-sizing: border-box;\n\n @include not-mobile {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n padding: 40px 40px 0;\n width: 44%;\n @include gradientBackground();\n overflow: auto;\n transition: transform .45s;\n \n &.hide {\n transform: translateX(100%);\n }\n }\n }\n\n &__3d-toggle {\n display: block;\n padding: 12px 20px 12px 0;\n background: $c_white;\n position: absolute;\n top: 20px;\n left: 20px;\n transition: opacity .45s;\n\n &.hide {\n opacity: 0;\n pointer-events: none;\n }\n }\n\n &__blocks {\n display: none;\n\n @include not-mobile {\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n box-sizing: border-box;\n padding: 20px 0 0;\n padding: 40px 0;\n\n &--mobile {\n display: none;\n }\n\n @include landscape {\n display: flex;\n padding: 20px 0 0;\n\n &--mobile {\n display: none;\n }\n }\n }\n \n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Installation3d.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"installation-3d\"},[_c('div',{staticClass:\"installation-3d__innerwrap\"},[_c('div',{staticClass:\"installation-3d__3d-wrapper\"},[_c('div',{staticClass:\"installation-3d__3d-view\",style:(_vm.view3dStyle)},[_c('div',{staticClass:\"installation-3d__3d-close-rect\",on:{\"click\":_vm.closeBullet}}),_vm._v(\" \"),_c('div',{staticClass:\"installation-3d__bullets\",class:{ show: _vm.info }},_vm._l((_vm.contentBlocks3d),function(b,index){return _c('bullet',{key:index,attrs:{\"index\":index,\"x\":b.x,\"y\":b.y}})}))]),_vm._v(\" \"),_c('div',{ref:\"blocks3d\",staticClass:\"installation-3d__3d-blocks\",class:{ hide: (_vm.selectedBullet === -1 || !_vm.info) }},_vm._l((_vm.contentBlocks3d),function(block,index){return _c('three-sixty-block',{key:index,attrs:{\"id\":'block-' + index,\"image\":block.image,\"video\":block.video,\"title\":block.title,\"content\":block.content,\"index\":index + 1,\"close\":_vm.selectedBullet === index},on:{\"close\":_vm.closeBullet,\"click\":function($event){_vm.openBullet(index)}}})})),_vm._v(\" \"),(_vm.contentBlocks3d.length)?_c('div',{staticClass:\"installation-3d__3d-toggle\",class:{ hide: _vm.selectedBullet !== -1 }},[(!_vm.isMobile)?_c('toggle-button',{attrs:{\"label\":_vm.translations['threesixtyLabels'],\"align\":\"left\"},on:{\"change\":_vm.toggleInfo},model:{value:(_vm.info),callback:function ($$v) {_vm.info=$$v},expression:\"info\"}}):_vm._e()],1):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"installation-3d__blocks\"},_vm._l((_vm.contentBlocks),function(block,index){return _c('market-block',{key:index,attrs:{\"block\":block}})}))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-555e8147\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Installation3d.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-555e8147\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Installation3d.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Installation3d.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Installation3d.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-555e8147\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Installation3d.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Installation3d.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"installation\">\n\n <header-box :title=\"title\"></header-box>\n <div class=\"installation__innerwrap\">\n <div class=\"installation__row\">\n <div class=\"installation__blocks\">\n <div class=\"installation__block\" v-for=\"block in oddContentBlocks\">\n <h2 class=\"installation__block-title\" v-html=\"block.title\"></h2>\n <div class=\"installation__block-content\" v-html=\"block.content\"></div>\n </div>\n </div>\n <div class=\"installation__image-wrapper\">\n\n <movie-player v-if=\"coverVideo\" class=\"installation__video\" :movieUrl=\"coverVideo\" :placeholderUrl=\"coverImage\" autoplay=\"true\"></movie-player>\n <img v-if=\"!coverVideo\" class=\"installation__image\" :src=\"coverImage\" />\n </div>\n <div class=\"installation__blocks installation__blocks--all\">\n <div class=\"installation__block\" v-for=\"block in contentBlocks\">\n <h2 class=\"installation__block-title\" v-html=\"block.title\"></h2>\n <div class=\"installation__block-content\" v-html=\"block.content\"></div>\n </div>\n </div>\n <div class=\"installation__blocks installation__blocks--padded\">\n <div class=\"installation__block\" v-for=\"block in evenContentBlocks\">\n <h2 class=\"installation__block-title\" v-html=\"block.title\"></h2>\n <div class=\"installation__block-content\" v-html=\"block.content\"></div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MoviePlayer from '@/components/MoviePlayer';\nimport Macy from 'macy-watchcss';\n\nexport default {\n name: 'installation',\n components: { PrevNextNav, HeaderBox, MoviePlayer },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n coverType() {\n return this.page.coverType;\n },\n coverImage() {\n return this.page.coverImage;\n },\n coverVideo() {\n return this.page.coverVideo;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n evenContentBlocks() {\n return this.contentBlocks.filter(this.filterEven);\n },\n oddContentBlocks() {\n return this.contentBlocks.filter(this.filterOdd);\n },\n },\n methods: {\n filterEven(block, index) {\n return (index + 1) % 2 === 0;\n },\n filterOdd(block, index) {\n return (index + 1) % 2 === 1;\n },\n },\n mounted() {\n const bgVid = document.querySelector('.installation__video');\n if (bgVid) {\n bgVid.addEventListener('ended', () => {\n bgVid.classList.add('hide');\n });\n }\n\n Macy({\n container: '.installation__blocks--all',\n trueOrder: true,\n waitForImages: false,\n margin: 20,\n columns: 3,\n watchCSS: true,\n });\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.installation {\n @include page;\n\n &__innerwrap {\n padding-top: 20px;\n }\n\n &__row {\n @include not-tablet {\n display: flex;\n align-item: flex-start;\n justify-content: space-between;\n position: relative;\n }\n }\n\n &__image-wrapper {\n display: block;\n width: 100%;\n margin: 0 auto 20px;\n position: relative;\n\n @include not-mobile {\n width: 75%;\n }\n\n @include landscape {\n position: fixed;\n top: 20px;\n left: calc(50% + 10px);\n width: auto;\n right: 20px;\n }\n\n @include not-tablet {\n width: calc(75% - 60px);\n margin-bottom: 0;\n position: fixed;\n left: calc(12.5% + 30px);\n top: (40px + 91px + 20px);\n }\n }\n\n &__image {\n width: 100%;\n display: block;\n }\n\n // &__video {\n // width: 100%;\n // display: block;\n // position: absolute;\n // top: 0;\n // left: 0;\n // right: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n\n // @include not-tablet {\n // width: 100%;\n // margin: 0 auto;\n // }\n // }\n\n // &__video + &__image {\n // transition: opacity .5s;\n // }\n\n // &__video:not(.hide) + &__image {\n // opacity: 0;\n // }\n\n &__blocks {\n flex-shrink: 0;\n display: none;\n position: relative;\n z-index: 1;\n\n &--all {\n display: block;\n\n @include tablet {\n &::after {\n content: \"macy\";\n display: none;\n }\n }\n }\n\n @include landscape {\n width: calc(50% - 10px);\n\n &::after {\n content: none;\n }\n }\n\n @include not-tablet {\n width: calc(25% - 10px);\n display: block;\n margin-bottom: 20px;\n\n &--all {\n display: none;\n }\n\n &--padded {\n padding-top: 100px;\n }\n }\n\n }\n\n &__block {\n display: block;\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 40px 30px 30px;\n background: $c_white;\n\n @include tablet {\n width: 33.33%;\n }\n\n @include landscape {\n width: auto;\n }\n\n @include not-tablet {\n padding: 50px 40px 40px;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Installation.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"installation\"},[_c('header-box',{attrs:{\"title\":_vm.title}}),_vm._v(\" \"),_c('div',{staticClass:\"installation__innerwrap\"},[_c('div',{staticClass:\"installation__row\"},[_c('div',{staticClass:\"installation__blocks\"},_vm._l((_vm.oddContentBlocks),function(block){return _c('div',{staticClass:\"installation__block\"},[_c('h2',{staticClass:\"installation__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"installation__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})])})),_vm._v(\" \"),_c('div',{staticClass:\"installation__image-wrapper\"},[(_vm.coverVideo)?_c('movie-player',{staticClass:\"installation__video\",attrs:{\"movieUrl\":_vm.coverVideo,\"placeholderUrl\":_vm.coverImage,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!_vm.coverVideo)?_c('img',{staticClass:\"installation__image\",attrs:{\"src\":_vm.coverImage}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"installation__blocks installation__blocks--all\"},_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"installation__block\"},[_c('h2',{staticClass:\"installation__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"installation__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})])})),_vm._v(\" \"),_c('div',{staticClass:\"installation__blocks installation__blocks--padded\"},_vm._l((_vm.evenContentBlocks),function(block){return _c('div',{staticClass:\"installation__block\"},[_c('h2',{staticClass:\"installation__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"installation__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})])}))])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-46e2c38b\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Installation.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-46e2c38b\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Installation.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Installation.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Installation.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46e2c38b\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Installation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Installation.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"workflow\">\n <header-box :title=\"title\" :intro=\"intro\"></header-box>\n <div class=\"workflow__innerwrap\">\n <div class=\"workflow__blocks\">\n <div class=\"workflow__block\" v-for=\"block in contentBlocks\">\n\n <div class=\"workflow__block-image\" v-if=\"(block.type === 'image' || block.type === 'image_text')\">\n <movie-player v-if=\"block.video\" class=\"workflow__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n <div class=\"workflow__block-textwrap\" v-if=\"(block.type === 'text' || block.type === 'image_text' || block.type === 'text_image')\" :class=\"{'workflow__block-textwrap--long' : (block.type === 'text')}\"> \n <h2 class=\"workflow__block-title\" v-html=\"block.title\"></h2>\n <div class=\"workflow__block-content\" v-html=\"block.content\"></div>\n </div>\n\n <div class=\"workflow__block-image\" v-if=\"(block.type === 'text_image')\">\n <movie-player v-if=\"block.video\" class=\"workflow__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'workflow',\n components: { PrevNextNav, HeaderBox, MoviePlayer },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n },\n mounted() {\n const vids = document.querySelectorAll('.workflow__block-video');\n\n [].forEach.call(vids, (vid) => {\n vid.addEventListener('ended', () => {\n vid.classList.add('hide');\n });\n });\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.workflow {\n @include page;\n background: none;\n\n &__blocks {\n box-sizing: border-box;\n }\n\n &__block {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n margin-bottom: 60px;\n\n @include landscape {\n flex-direction: row;\n margin-bottom: 40px\n }\n\n @include not-tablet {\n margin-bottom: 80px;\n flex-direction: row;\n }\n }\n\n &__block-image {\n display: block;\n position: relative;\n\n @include tablet {\n width: 75%;\n margin-right: 25%;\n order: 0;\n\n &:first-child:last-child {\n width: 100%;\n margin: 0;\n }\n }\n\n @include landscape {\n margin: 0;\n flex-basis: 0;\n flex-shrink: 1;\n flex-grow: 2;\n order: unset;\n width: auto;\n }\n\n @include not-tablet {\n flex-basis: 0;\n flex-shrink: 1;\n flex-grow: 2;\n }\n\n img {\n display: block;\n width: 100%;\n }\n\n // video + img {\n // transition: opacity .5s;\n // }\n\n // video:not(.hide) + img {\n // opacity: 0;\n // }\n }\n\n &__block-video {\n // width: 100%;\n // display: block;\n // position: absolute;\n // top: 0;\n // left: 0;\n // right: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n }\n\n &__block-textwrap {\n box-sizing: border-box;\n background: $c_white;\n padding: 30px 20px 0;\n margin: auto;\n\n @include not-mobile {\n padding: 40px 0 0;\n width: 83.33%;\n margin-left: 16.66%;\n }\n\n\n @include not-laptop {\n order: 2;\n\n &:first-child:last-child {\n padding-top: 0;\n }\n }\n\n @include landscape {\n order: unset;\n padding: 0 20px 0 0;\n box-sizing: content-box;\n width: calc(50% - 10px);\n margin: 0;\n\n &--long {\n width: 75%;\n padding: 0 0 0 20px;\n box-sizing: border-box;\n }\n }\n\n @include not-tablet {\n width: calc(33.33% + 10px);\n padding: 0 40px 0 0;\n margin: 0;\n\n\n @include desktop {\n padding: 0 40px 0 7%;\n }\n\n &--long {\n width: 75%;\n max-width: 750px;\n padding: 0 0 0 40px;\n box-sizing: border-box;\n\n @include desktop {\n width: 66.66%;\n }\n }\n }\n }\n\n @include mobile {\n &__block:first-child &__block-textwrap:first-child:last-child {\n margin-top: 30px;\n }\n }\n\n @include not-tablet {\n &__block-image + &__block-textwrap {\n padding-right: 0;\n padding-left: 40px;\n\n @include desktop {\n padding-right: 7%;\n padding-left: 40px;\n }\n }\n }\n\n @include landscape {\n &__block-image + &__block-textwrap {\n padding-right: 0;\n padding-left: 20px;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Workflow.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"workflow\"},[_c('header-box',{attrs:{\"title\":_vm.title,\"intro\":_vm.intro}}),_vm._v(\" \"),_c('div',{staticClass:\"workflow__innerwrap\"},[_c('div',{staticClass:\"workflow__blocks\"},_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"workflow__block\"},[((block.type === 'image' || block.type === 'image_text'))?_c('div',{staticClass:\"workflow__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"workflow__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),((block.type === 'text' || block.type === 'image_text' || block.type === 'text_image'))?_c('div',{staticClass:\"workflow__block-textwrap\",class:{'workflow__block-textwrap--long' : (block.type === 'text')}},[_c('h2',{staticClass:\"workflow__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"workflow__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})]):_vm._e(),_vm._v(\" \"),((block.type === 'text_image'))?_c('div',{staticClass:\"workflow__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"workflow__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e()])}))])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-2975e323\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Workflow.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-2975e323\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Workflow.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Workflow.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Workflow.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2975e323\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Workflow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Workflow.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interactive-pdf\">\n <header-box :title=\"title\"></header-box>\n <div class=\"interactive-pdf__innerwrap\">\n <ul class=\"interactive-pdf__names\">\n <li class=\"interactive-pdf__name\" v-for=\"(pdf, index) in pdfFiles\">\n <a @click=\"setPdfIndex(index)\" v-html=\"pdf.title\"></a>\n </li>\n </ul>\n <iframe class=\"interactive-pdf__pdf-iframe no-swipe-nav\" :src=\"pdfIframe\"></iframe>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\n\nexport default {\n name: 'interactive-pdf',\n components: { PrevNextNav, HeaderBox },\n data() {\n return {\n index: 0,\n };\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n pdfFiles() {\n return this.page.pdfFiles;\n },\n pdfUrl() {\n if (this.page.pdfFiles[this.index].url.indexOf('static') === 0) {\n return `../../${this.page.pdfFiles[this.index].url}`;\n }\n return this.page.pdfFiles[this.index].url;\n },\n pdfIframe() {\n return `static/pdf-js-viewer/index.html?file=${this.pdfUrl}`;\n },\n },\n methods: {\n setPdfIndex(index) {\n this.index = index;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.interactive-pdf {\n @include page(true, true);\n\n &__innerwrap {\n display: flex;\n flex-direction: column;\n padding-bottom: 20px;\n\n @include not-mobile {\n padding-bottom: 40px;\n padding-top: 0;\n }\n\n @include landscape {\n padding-top: 20px;\n padding-bottom: 20px;\n }\n }\n\n &__names {\n display: none;\n\n @include not-mobile {\n @include font-block-title;\n color: $c_primary;\n display: block;\n list-style: none;\n padding: 0;\n margin: 30px 0 30px 8.333%;\n width: 91.666%;\n }\n\n @include landscape {\n display: none;\n }\n }\n\n &__name {\n display: inline-block;\n margin-left: 40px;\n\n &:first-child {\n margin-left: 25px;\n }\n\n &::after {\n display: inline-block;\n content: '';\n width: 16px;\n height: 16px;\n background: url('../../../static/svg/icon_table.svg') no-repeat center;\n margin-left: 10px;\n margin-top: 4px;\n vertical-align: top;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n cursor: pointer;\n }\n }\n\n &__pdf-iframe {\n width: 100%;\n display: block;\n background: $c_white;\n flex-grow: 1;\n border: 0;\n\n @include not-mobile {\n margin: 0 0 0 8.333%;\n width: 91.666%;\n }\n\n @include landscape {\n width: 100%;\n margin: 0;\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/InteractivePdf.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interactive-pdf\"},[_c('header-box',{attrs:{\"title\":_vm.title}}),_vm._v(\" \"),_c('div',{staticClass:\"interactive-pdf__innerwrap\"},[_c('ul',{staticClass:\"interactive-pdf__names\"},_vm._l((_vm.pdfFiles),function(pdf,index){return _c('li',{staticClass:\"interactive-pdf__name\"},[_c('a',{domProps:{\"innerHTML\":_vm._s(pdf.title)},on:{\"click\":function($event){_vm.setPdfIndex(index)}}})])})),_vm._v(\" \"),_c('iframe',{staticClass:\"interactive-pdf__pdf-iframe no-swipe-nav\",attrs:{\"src\":_vm.pdfIframe}})])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4aa61b7c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/InteractivePdf.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-4aa61b7c\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InteractivePdf.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InteractivePdf.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InteractivePdf.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4aa61b7c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InteractivePdf.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/InteractivePdf.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"interactive-html\">\n <header-box :title=\"title\"></header-box>\n <div class=\"interactive-html__innerwrap\">\n <transition name=\"fade\">\n <div v-if=\"fullscreen\" class=\"interactive-html__overlay\">\n <div class=\"interactive-html__overlay-header\">\n <header-box :no-margin=\"true\" :long=\"true\" :title=\"title\"></header-box>\n <a href=\"#\" class=\"interactive-html__overlay-close\" @click=\"toggleFullscreen\"></a>\n </div>\n <iframe class=\"interactive-html__iframe no-swipe-nav\" :src=\"htmlUrl\"></iframe>\n </div>\n </transition>\n <div class=\"interactive-html__blocks\">\n <div class=\"interactive-html__block\">\n <div class=\"interactive-html__block-textwrap\">\n <h2 class=\"interactive-html__block-title\" v-html=\"linkBlockTitle\"></h2>\n <div class=\"interactive-html__block-content\" v-html=\"linkBlockContent\"></div>\n <a class=\"interactive-html__cta\" href=\"#\" @click=\"toggleFullscreen\">{{linkBlockCta}}</a>\n </div>\n\n <div class=\"interactive-html__block-image\">\n <img :src=\"linkBlockImage\" />\n </div>\n </div>\n\n <div class=\"interactive-html__block\" v-for=\"block in contentBlocks\">\n\n <div class=\"interactive-html__block-image\" v-if=\"(block.imagePosition === 'left')\">\n <movie-player v-if=\"block.video\" class=\"interactive-html__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n <div class=\"interactive-html__block-textwrap\">\n <h2 class=\"interactive-html__block-title\" v-html=\"block.title\"></h2>\n <div class=\"interactive-html__block-content\" v-html=\"block.content\"></div>\n </div>\n\n <div class=\"interactive-html__block-image\" v-if=\"(block.imagePosition === 'right')\">\n <movie-player v-if=\"block.video\" class=\"interactive-html__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'interactive-html',\n components: { PrevNextNav, HeaderBox, MoviePlayer },\n data() {\n return {\n fullscreen: false,\n };\n },\n mounted() {\n const iframeLinks = this.$el.querySelectorAll('.interactive-html__content a');\n [].forEach.call(iframeLinks, (iframeLink) => {\n iframeLink.addEventListener('click', this.toggleFullscreen);\n });\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n linkBlockTitle() {\n return this.page.linkBlockTitle;\n },\n linkBlockContent() {\n return this.page.linkBlockContent;\n },\n linkBlockCta() {\n return this.page.linkBlockCta;\n },\n linkBlockImage() {\n return this.page.linkBlockImage;\n },\n htmlUrl() {\n return this.page.htmlUrl;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n },\n methods: {\n toggleFullscreen(ev) {\n ev.preventDefault();\n this.fullscreen = !this.fullscreen;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.interactive-html {\n @include page;\n\n .fade-enter-active, .fade-leave-active {\n transition: opacity .35s;\n }\n .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {\n opacity: 0;\n }\n\n &__innerwrap {\n padding-top: 0;\n }\n\n &__overlay {\n display: flex;\n flex-direction: column;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 70px;\n background: $c_white;\n z-index: 3;\n // transition: opacity .35s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n }\n\n &__overlay-header {\n position: relative;\n }\n\n &__overlay-close {\n display: block;\n height: 46px;\n width: 46px;\n background-position: center;\n background-size: cover;\n background-repeat: no-repeat;\n background-image: url('../../../static/svg/icon_minimize-white.svg');\n position: absolute;\n top: calc(50% - 23px);\n right: 20px;\n transition: opacity .3s;\n z-index: 3;\n outline: none;\n }\n\n &__iframe {\n display: block;\n flex-grow: 1;\n width: 100%;\n border: none;\n outline: none;\n }\n\n &__cta {\n display: block;\n @include font-block-subtitle;\n margin: 0;\n color: $c_primary;\n text-decoration: none;\n font-style: normal;\n margin-top: 50px;\n\n &::after {\n content: '';\n display: inline-block;\n width: 17px;\n height: 13px;\n margin: 5px 10px;\n vertical-align: top;\n background-position: center;\n background-repeat: no-repeat;\n background-image: url('../../../static/svg/icon_cta.svg');\n transition: transform .35s;\n }\n\n &:hover::after {\n transform: translateX(6px);\n }\n }\n\n // &__content {\n // @include font-block-content;\n\n // box-sizing: border-box;\n // padding: 30px 30px;\n // margin: auto;\n\n // p:first-child {\n // margin-top: 0;\n // }\n\n // @include not-mobile {\n // padding: 40px 0;\n // width: 83.33%;\n // margin: 0 30px;\n // // margin-left: 16.66%;\n // }\n\n // @include landscape {\n // order: unset;\n // margin: 20px 0;\n // width: 75%;\n // padding: 20px 0 20px 20px;\n // }\n\n // @include not-tablet {\n // margin: 30px 0;\n // width: 75%;\n // max-width: 750px;\n // padding: 0 0 0 30px;\n\n // @include desktop {\n // width: 66.66%;\n // }\n // }\n // }\n\n &__blocks {\n box-sizing: border-box;\n // padding: 40px;\n margin-top: 20px;\n @include not-mobile {\n margin-top: 40px;\n }\n }\n\n &__block {\n box-sizing: border-box;\n padding-bottom: 20px;\n display: flex;\n flex-direction: column;\n\n @include not-mobile {\n flex-direction: row;\n padding-bottom: 40px;\n }\n\n @include tablet {\n display: block;\n }\n\n @include landscape {\n display: flex;\n flex-direction: row;\n padding-bottom: 20px;\n }\n }\n\n &__block-image {\n display: block;\n position: relative;\n overflow: hidden;\n\n @include tablet {\n width: calc(66.66% - 10px);\n }\n\n @include landscape {\n width: 50%;\n }\n\n @include not-tablet {\n width: 50%;\n }\n\n img {\n display: block;\n width: 100%;\n }\n\n // video + img {\n // transition: opacity .5s;\n // }\n\n // video:not(.hide) + img {\n // opacity: 0;\n // }\n }\n\n // &__block-video {\n // width: 100%;\n // display: block;\n // position: absolute;\n // top: 0;\n // left: 0;\n // right: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n // }\n\n &__block-textwrap + &__block-image {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n }\n\n @include landscape {\n margin: 0;\n }\n }\n\n &__block-textwrap {\n box-sizing: border-box;\n background: $c_white;\n padding: 35px 30px;\n\n @include mobile {\n order: 1;\n }\n\n @include tablet {\n width: calc(66.66% - 10px);\n margin-bottom: -40px;\n padding: 40px 40px 80px;\n }\n\n @include landscape {\n order: unset;\n width: 50%;\n padding: 35px 30px;\n margin: 0;\n }\n\n @include not-tablet {\n width: 50%;\n padding: 40px;\n }\n\n @include desktop {\n width: 33.33%;\n margin-left: 16.665%;\n }\n }\n\n &__block-image + &__block-textwrap {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n margin-top: -40px;\n margin-bottom: 0;\n padding: 80px 40px 40px;\n }\n\n @include landscape {\n margin: 0;\n padding: 35px 30px;\n }\n\n @include not-tablet {\n margin-left: 0;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/InteractiveHtml.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"interactive-html\"},[_c('header-box',{attrs:{\"title\":_vm.title}}),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__innerwrap\"},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.fullscreen)?_c('div',{staticClass:\"interactive-html__overlay\"},[_c('div',{staticClass:\"interactive-html__overlay-header\"},[_c('header-box',{attrs:{\"no-margin\":true,\"long\":true,\"title\":_vm.title}}),_vm._v(\" \"),_c('a',{staticClass:\"interactive-html__overlay-close\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.toggleFullscreen}})],1),_vm._v(\" \"),_c('iframe',{staticClass:\"interactive-html__iframe no-swipe-nav\",attrs:{\"src\":_vm.htmlUrl}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__blocks\"},[_c('div',{staticClass:\"interactive-html__block\"},[_c('div',{staticClass:\"interactive-html__block-textwrap\"},[_c('h2',{staticClass:\"interactive-html__block-title\",domProps:{\"innerHTML\":_vm._s(_vm.linkBlockTitle)}}),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__block-content\",domProps:{\"innerHTML\":_vm._s(_vm.linkBlockContent)}}),_vm._v(\" \"),_c('a',{staticClass:\"interactive-html__cta\",attrs:{\"href\":\"#\"},on:{\"click\":_vm.toggleFullscreen}},[_vm._v(_vm._s(_vm.linkBlockCta))])]),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__block-image\"},[_c('img',{attrs:{\"src\":_vm.linkBlockImage}})])]),_vm._v(\" \"),_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"interactive-html__block\"},[((block.imagePosition === 'left'))?_c('div',{staticClass:\"interactive-html__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"interactive-html__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__block-textwrap\"},[_c('h2',{staticClass:\"interactive-html__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"interactive-html__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})]),_vm._v(\" \"),((block.imagePosition === 'right'))?_c('div',{staticClass:\"interactive-html__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"interactive-html__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e()])})],2)],1)],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-1d889e1b\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/InteractiveHtml.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-1d889e1b\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./InteractiveHtml.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InteractiveHtml.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./InteractiveHtml.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1d889e1b\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./InteractiveHtml.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/InteractiveHtml.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"movie\">\n <header-box :title=\"title\"></header-box>\n <div class=\"movie__innerwrap\">\n <div class=\"movie__video-wrapper\">\n <movie-player :movieUrl=\"coverVideo\" :placeholderUrl=\"coverVideoPlaceholder\"></movie-player>\n </div>\n <div class=\"movie__blocks\">\n <div class=\"movie__block\" v-for=\"block in contentBlocks\">\n\n <div class=\"movie__block-image\" v-if=\"(block.imagePosition === 'left')\">\n <movie-player v-if=\"block.video\" class=\"movie__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n <div class=\"movie__block-textwrap\">\n <h2 class=\"movie__block-title\" v-html=\"block.title\"></h2>\n <div class=\"movie__block-content\" v-html=\"block.content\"></div>\n </div>\n\n <div class=\"movie__block-image\" v-if=\"(block.imagePosition === 'right')\">\n <movie-player v-if=\"block.video\" class=\"movie__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'movie',\n components: { PrevNextNav, HeaderBox, MoviePlayer },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n coverVideo() {\n return this.page.coverVideo;\n },\n coverVideoPlaceholder() {\n return this.page.coverVideoPlaceholder;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n },\n mounted() {\n const vids = document.querySelectorAll('.movie__block-video');\n\n [].forEach.call(vids, (vid) => {\n vid.addEventListener('ended', () => {\n vid.classList.add('hide');\n });\n });\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.movie {\n @include page;\n\n &__innerwrap {\n padding-top: 0;\n }\n\n &__video-wrapper {\n display: block;\n width: 100%;\n position: relative;\n z-index: 1;\n margin: 0 0 20px;\n\n @include not-mobile {\n width: calc(91.6666% - 10px);\n margin: 0 0 40px calc(8.3333% + 10px);\n }\n\n @include landscape {\n width: calc(75% - 10px);\n margin: 0 0 20px calc(25% + 10px);\n }\n\n @include not-tablet {\n width: 83.3333%;\n margin: 0 0 40px 16.6666%;\n }\n\n @include desktop {\n width: 75%;\n margin: 0 8.3333% 40px 16.6666%;\n }\n }\n\n &__blocks {\n box-sizing: border-box;\n // padding: 40px;\n }\n\n &__block {\n box-sizing: border-box;\n padding-bottom: 20px;\n display: flex;\n flex-direction: column;\n\n @include not-mobile {\n flex-direction: row;\n padding-bottom: 40px;\n }\n\n @include tablet {\n display: block;\n }\n\n @include landscape {\n display: flex;\n flex-direction: row;\n padding-bottom: 20px;\n }\n }\n\n &__block-image {\n display: block;\n position: relative;\n overflow: hidden;\n\n @include tablet {\n width: calc(66.66% - 10px);\n }\n\n @include landscape {\n width: 50%;\n }\n\n @include not-tablet {\n width: 50%;\n }\n\n img {\n display: block;\n width: 100%;\n }\n\n // video + img {\n // transition: opacity .5s;\n // }\n\n // video:not(.hide) + img {\n // opacity: 0;\n // }\n }\n\n &__block-video {\n // width: 100%;\n // display: block;\n // position: absolute;\n // top: 0;\n // left: 0;\n // right: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n }\n\n &__block-textwrap + &__block-image {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n }\n\n @include landscape {\n margin: 0;\n }\n }\n\n &__block-textwrap {\n box-sizing: border-box;\n background: $c_white;\n padding: 35px 30px;\n\n @include mobile {\n order: 1;\n }\n\n @include tablet {\n width: calc(66.66% - 10px);\n margin-bottom: -40px;\n padding: 40px 40px 80px;\n }\n\n @include landscape {\n order: unset;\n width: 50%;\n padding: 35px 30px;\n margin: 0;\n }\n\n @include not-tablet {\n width: 50%;\n padding: 40px;\n }\n\n @include desktop {\n width: 33.33%;\n margin-left: 16.665%;\n }\n }\n\n &__block-image + &__block-textwrap {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n margin-top: -40px;\n margin-bottom: 0;\n padding: 80px 40px 40px;\n }\n\n @include landscape {\n margin: 0;\n padding: 35px 30px;\n }\n\n @include not-tablet {\n margin-left: 0;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Movie.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"movie\"},[_c('header-box',{attrs:{\"title\":_vm.title}}),_vm._v(\" \"),_c('div',{staticClass:\"movie__innerwrap\"},[_c('div',{staticClass:\"movie__video-wrapper\"},[_c('movie-player',{attrs:{\"movieUrl\":_vm.coverVideo,\"placeholderUrl\":_vm.coverVideoPlaceholder}})],1),_vm._v(\" \"),_c('div',{staticClass:\"movie__blocks\"},_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"movie__block\"},[((block.imagePosition === 'left'))?_c('div',{staticClass:\"movie__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"movie__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"movie__block-textwrap\"},[_c('h2',{staticClass:\"movie__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"movie__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})]),_vm._v(\" \"),((block.imagePosition === 'right'))?_c('div',{staticClass:\"movie__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"movie__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e()])}))])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-9b0bb8c4\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Movie.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-9b0bb8c4\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Movie.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Movie.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Movie.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9b0bb8c4\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Movie.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Movie.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"specs\">\n <header-box :title=\"title\" :intro=\"intro\"></header-box>\n <div class=\"specs__innerwrap\">\n <div class=\"specs__blocks\">\n <div class=\"specs__block\">\n <iframe class=\"specs__pdf-iframe no-swipe-nav\" :src=\"pdfIframe\"></iframe>\n </div>\n <div class=\"specs__block\" v-for=\"block in contentBlocks\">\n\n <div class=\"specs__block-image\" v-if=\"(block.imagePosition === 'left')\">\n <movie-player v-if=\"block.video\" class=\"specs__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n <div class=\"specs__block-textwrap\"> \n <h2 class=\"specs__block-title\" v-html=\"block.title\"></h2>\n <div class=\"specs__block-content\" v-html=\"block.content\"></div>\n </div>\n\n <div class=\"specs__block-image\" v-if=\"(block.imagePosition === 'right')\">\n <movie-player v-if=\"block.video\" class=\"specs__block-video\" :movieUrl=\"block.video\" :placeholderUrl=\"block.image\" autoplay=\"true\"></movie-player>\n <img v-if=\"!block.video\" :src=\"block.image\" />\n </div>\n\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\nimport MoviePlayer from '@/components/MoviePlayer';\n\nexport default {\n name: 'specs',\n components: { PrevNextNav, HeaderBox, MoviePlayer },\n data() {\n return {\n playing: false,\n paused: true,\n };\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n pdfUrl() {\n if (this.page.pdfUrl.indexOf('static') === 0) {\n return `../../${this.page.pdfUrl}`;\n }\n return this.page.pdfUrl;\n },\n pdfIframe() {\n return `static/pdf-js-viewer/index.html?file=${this.pdfUrl}`;\n },\n contentBlocks() {\n return this.page.contentBlocks;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.specs {\n @include page;\n\n &__pdf-iframe {\n height: 250px;\n width: 100%;\n display: block;\n background: $c_white;\n border: 0;\n\n @include not-mobile {\n margin: 0 0 0 14%;\n height: 390px;\n width: 86%;\n }\n\n @include landscape {\n width: 100%;\n margin: 0;\n height: 250px;\n }\n }\n\n &__blocks {\n box-sizing: border-box;\n }\n\n &__block {\n box-sizing: border-box;\n padding-bottom: 20px;\n display: flex;\n flex-direction: column;\n\n @include not-mobile {\n flex-direction: row;\n padding-bottom: 40px;\n }\n\n @include tablet {\n display: block;\n }\n\n @include landscape {\n display: flex;\n flex-direction: row;\n padding-bottom: 20px;\n }\n }\n\n &__block-image {\n display: block;\n position: relative;\n overflow: hidden;\n\n @include tablet {\n width: calc(66.66% - 10px);\n }\n\n @include landscape {\n width: 50%;\n }\n\n @include not-tablet {\n width: 50%;\n }\n\n img {\n display: block;\n width: 100%;\n }\n }\n\n // &__block-video {\n // width: 100%;\n // display: block;\n // position: absolute;\n // top: 0;\n // left: 0;\n // right: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n // }\n\n &__block-textwrap + &__block-image {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n }\n\n @include landscape {\n margin: 0;\n }\n }\n\n &__block-textwrap {\n box-sizing: border-box;\n background: $c_white;\n padding: 35px 30px;\n\n @include mobile {\n order: 1;\n }\n\n @include tablet {\n width: calc(66.66% - 10px);\n margin-bottom: -40px;\n padding: 40px 40px 80px;\n }\n\n @include landscape {\n order: unset;\n width: 50%;\n padding: 35px 30px;\n margin: 0;\n }\n\n @include not-tablet {\n width: 50%;\n padding: 40px;\n }\n\n @include desktop {\n width: 33.33%;\n margin-left: 16.665%;\n }\n }\n\n &__block-image + &__block-textwrap {\n @include tablet {\n margin-left: calc(33.33% + 10px);\n margin-top: -40px;\n margin-bottom: 0;\n padding: 80px 40px 40px;\n }\n\n @include landscape {\n margin: 0;\n padding: 35px 30px;\n }\n\n @include not-tablet {\n margin-left: 0;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Specs.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"specs\"},[_c('header-box',{attrs:{\"title\":_vm.title,\"intro\":_vm.intro}}),_vm._v(\" \"),_c('div',{staticClass:\"specs__innerwrap\"},[_c('div',{staticClass:\"specs__blocks\"},[_c('div',{staticClass:\"specs__block\"},[_c('iframe',{staticClass:\"specs__pdf-iframe no-swipe-nav\",attrs:{\"src\":_vm.pdfIframe}})]),_vm._v(\" \"),_vm._l((_vm.contentBlocks),function(block){return _c('div',{staticClass:\"specs__block\"},[((block.imagePosition === 'left'))?_c('div',{staticClass:\"specs__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"specs__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"specs__block-textwrap\"},[_c('h2',{staticClass:\"specs__block-title\",domProps:{\"innerHTML\":_vm._s(block.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"specs__block-content\",domProps:{\"innerHTML\":_vm._s(block.content)}})]),_vm._v(\" \"),((block.imagePosition === 'right'))?_c('div',{staticClass:\"specs__block-image\"},[(block.video)?_c('movie-player',{staticClass:\"specs__block-video\",attrs:{\"movieUrl\":block.video,\"placeholderUrl\":block.image,\"autoplay\":\"true\"}}):_vm._e(),_vm._v(\" \"),(!block.video)?_c('img',{attrs:{\"src\":block.image}}):_vm._e()],1):_vm._e()])})],2)])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0b563748\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Specs.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0b563748\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Specs.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Specs.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Specs.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0b563748\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Specs.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Specs.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"backcover\">\n <div class=\"backcover__innerwrap\">\n <div class=\"backcover__bg\"></div>\n <div class=\"backcover__content\">\n <img class=\"backcover__main-logo\" src=\"static/svg/logo-white.svg\">\n <div class=\"backcover__infobox\">\n <p class=\"backcover__infobox-text\" v-html=\"translations['backcoverText']\"></p>\n <a class=\"backcover__link\" :href=\"translations['backcoverLink'].url\">{{translations['backcoverLink'].title}}</a>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\n\nexport default {\n name: 'backcover',\n components: { PrevNextNav },\n computed: {\n ...mapGetters(['translations']),\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.backcover {\n @include page;\n\n &__innerwrap {\n background: none;\n }\n\n &__bg {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: $c_primary;\n\n &::before {\n content: '';\n display: block;\n position: absolute;\n bottom: 0;\n right: 0;\n width: 100%;\n max-width: 635px;\n height: 200px;\n background-size: 130% auto;\n background-position: center bottom;\n background-repeat: no-repeat;\n background-image: url('../../../static/svg/backcover_bg.svg');\n }\n\n @include landscape {\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n }\n\n &__content {\n position: absolute;\n left: 45px;\n bottom: 50px;\n color: $c_white;\n box-sizing: border-box;\n padding: 0;\n display: flex;\n align-items: flex-end;\n }\n\n &__main-logo {\n display: none;\n\n @include not-mobile {\n width: 95px;\n display: block;\n flex-shrink: 0;\n margin: 5px 0;\n }\n }\n\n &__infobox {\n display: block;\n\n @include not-mobile {\n margin-left: 25px;\n border-left: 1px solid $c_white;\n padding-left: 25px;\n }\n }\n\n &__infobox-text {\n @include font-block-content;\n font-size: 14px;\n margin-top: 0;\n }\n\n &__link {\n display: block;\n color: inherit;\n text-decoration: none;\n @include font-block-content;\n font-size: 14px;\n margin-bottom: -1px;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Backcover.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"backcover\"},[_c('div',{staticClass:\"backcover__innerwrap\"},[_c('div',{staticClass:\"backcover__bg\"}),_vm._v(\" \"),_c('div',{staticClass:\"backcover__content\"},[_c('img',{staticClass:\"backcover__main-logo\",attrs:{\"src\":\"static/svg/logo-white.svg\"}}),_vm._v(\" \"),_c('div',{staticClass:\"backcover__infobox\"},[_c('p',{staticClass:\"backcover__infobox-text\",domProps:{\"innerHTML\":_vm._s(_vm.translations['backcoverText'])}}),_vm._v(\" \"),_c('a',{staticClass:\"backcover__link\",attrs:{\"href\":_vm.translations['backcoverLink'].url}},[_vm._v(_vm._s(_vm.translations['backcoverLink'].title))])])])])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-f945b394\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Backcover.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-f945b394\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Backcover.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Backcover.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Backcover.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f945b394\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Backcover.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Backcover.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"threesixty-player no-swipe-nav\">\n <div class=\"threesixty-player__innerwrap\">\n <canvas :class=\"{ hide: (highlightedFrameUrl && ticker === 0) }\" :width=\"width\" :height=\"height\" class=\"threesixty-player__canvas\"></canvas>\n <div class=\"threesixty-player__bullets\" v-if=\"info\" :class=\" { show: (ticker == 0 && !dragging && loaded && !highlightedFrameIndex)}\">\n <bullet\n :key=\"index\"\n :index=\"index\"\n v-for=\"(b, index) in bullets\"\n :x=\"b.x\"\n :y=\"b.y\"\n >\n </bullet>\n </div>\n\n <transition name=\"fade\" mode=\"out-in\" appear>\n <img class=\"threesixty-player__highlight\" v-if=\"highlightedFrameUrl && ticker === 0\" :src=\"highlightedFrameUrl\" />\n </transition>\n </div>\n <div class=\"threesixty-player__preloader\" :style=\"{width: loadedPercent, opacity: !loaded ? 1 : 0}\"></div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport axios from 'axios';\nimport Bullet from './Bullet';\n\nexport default {\n name: 'threesixty-player',\n components: { Bullet },\n props: ['width', 'height', 'frames', 'bulletsJson', 'info'],\n data() {\n return {\n collection: [],\n imagesLoaded: 0,\n imagesTotal: this.frames.length,\n currentFrame: 48,\n // currentTime: null,\n endFrame: 0,\n // startFrame: null,\n ctx: null,\n // frame: 0,\n // playing: false,\n // fps: 35,\n bulletsArray: [],\n bullets: [],\n startX: 0,\n endX: 0,\n distance: 0,\n dragging: false,\n touch: false,\n monitorStartTime: 0,\n ticker: 0,\n MONITOR_INTERVAL: 10,\n SPEED_MULTIPLIER: 10,\n loaded: false,\n };\n },\n mounted() {\n this.loadBullets();\n const aspectRatio = this.height / this.width;\n const innerwrap = this.$el.querySelector('.threesixty-player__innerwrap');\n let maxHeight = this.$el.offsetHeight;\n innerwrap.style.maxWidth = (maxHeight / aspectRatio) + 'px'; //eslint-disable-line\n\n window.addEventListener('resize', () => {\n maxHeight = this.$el.offsetHeight;\n innerwrap.style.maxWidth = (maxHeight / aspectRatio) + 'px'; //eslint-disable-line\n });\n },\n methods: {\n animateToFrame(frame) {\n const currentFrame = this.getNormalizedCurrentFrame();\n\n const diff = (currentFrame - frame);\n const absDiff = Math.abs(diff);\n\n if (absDiff <= (this.imagesTotal / 2)) {\n this.endFrame += diff;\n } else if (diff >= 0) {\n this.endFrame -= (this.imagesTotal - 1) - diff;\n } else {\n this.endFrame += (this.imagesTotal - 1) + diff;\n }\n this.animate();\n },\n loadBullets() {\n const bulletsUrl = this.bulletsJson;\n axios.get(bulletsUrl).then((response) => {\n this.bulletsArray = response.data;\n\n /* eslint-disable no-param-reassign */\n this.bulletsArray.forEach((bullets) => {\n bullets.forEach((bullet) => {\n bullet.x = (bullet.x / 1024) * 100;\n bullet.y = (bullet.y / 768) * 100;\n });\n });\n this.bullets = this.bulletsArray[0];\n this.imagesLoaded = 0;\n this.init();\n }, () => {\n this.init();\n });\n },\n preload() {\n this.imagesLoaded = 0;\n this.collection = [];\n\n for (let i = 0; i < this.imagesTotal; i += 1) {\n this.collection[i] = new Image();\n this.collection[i].addEventListener('load', this.handleImageLoaded);\n this.collection[i].src = this.frameUrl(i);\n }\n },\n handleImageLoaded() {\n this.imagesLoaded += 1;\n if (this.imagesLoaded === this.imagesTotal * 1) {\n this.loaded = true;\n this.animate(0, 1);\n }\n },\n initListeners() {\n this.ctx = this.$el.querySelector('canvas').getContext('2d');\n this.$el.querySelector('canvas').addEventListener('touchstart', this.handleTouchStart);\n this.$el.querySelector('canvas').addEventListener('touchend', this.handleTouchEnd);\n\n this.$el.querySelector('canvas').addEventListener('mousedown', this.handleMouseDown);\n this.$el.querySelector('canvas').addEventListener('mouseup', this.handleTouchEnd);\n\n this.$el.querySelector('canvas').addEventListener('touchmove', this.handleTouchMove);\n this.$el.querySelector('canvas').addEventListener('mousemove', this.handleMouseMove);\n },\n handleTouchStart(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.touch = true;\n this.startX = event.changedTouches[0].clientX;\n this.$router.push({ params: { selectedBullet: -1 } });\n },\n handleMouseDown(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.touch = true;\n this.startX = event.clientX;\n this.$router.push({ params: { selectedBullet: -1 } });\n },\n handleTouchEnd(event) {\n event.preventDefault();\n event.stopPropagation();\n\n this.dragging = false;\n this.touch = false;\n },\n handleTouchMove(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.touch) {\n this.dragging = true;\n }\n\n if (this.dragging) {\n this.endX = event.changedTouches[0].clientX;\n\n if (this.monitorStartTime < new Date().getTime() - this.MONITOR_INTERVAL) {\n this.distance = this.endX - this.startX;\n this.endFrame = this.currentFrame\n + Math.ceil((this.imagesTotal - 1)\n * this.SPEED_MULTIPLIER * (this.distance / this.width));\n\n if (this.ticker === 0) {\n this.animate();\n }\n\n this.monitorStartTime = new Date().getTime();\n this.startX = event.changedTouches[0].clientX;\n }\n }\n },\n handleMouseMove(event) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.touch) {\n this.dragging = true;\n }\n\n if (this.dragging) {\n this.endX = event.clientX;\n\n if (this.monitorStartTime < new Date().getTime() - this.MONITOR_INTERVAL) {\n this.distance = this.endX - this.startX;\n this.endFrame = this.currentFrame\n + Math.ceil((this.imagesTotal - 1)\n * this.SPEED_MULTIPLIER * (this.distance / this.width));\n\n if (this.ticker === 0) {\n this.animate();\n }\n\n this.monitorStartTime = new Date().getTime();\n this.startX = event.clientX;\n }\n }\n },\n init() {\n if (!this.imagesLoaded) {\n this.preload();\n this.initListeners();\n }\n },\n animate() {\n this.ticker = requestAnimationFrame(this.animate);\n this.render();\n },\n frameUrl(index) {\n return this.frames[index];\n },\n pad(num) {\n let stringNum = num.toString();\n while (stringNum.length < 2) {\n stringNum = `0${stringNum}`;\n }\n return stringNum;\n },\n rightNow() {\n if (window.performance && window.performance.now) {\n return window.performance.now();\n }\n\n return Number(new Date());\n },\n render() {\n if (this.currentFrame !== this.endFrame) {\n const easing = this.endFrame < this.currentFrame\n ? Math.floor((this.endFrame - this.currentFrame) * 0.1)\n : Math.ceil((this.endFrame - this.currentFrame) * 0.1);\n this.currentFrame += easing;\n this.ctx.clearRect(0, 0, this.width, this.height);\n this.ctx.drawImage(this.collection[this.getNormalizedCurrentFrame()],\n 0,\n 0,\n this.width,\n this.height);\n } else {\n cancelAnimationFrame(this.ticker);\n this.bullets = this.bulletsArray[this.getNormalizedCurrentFrame()];\n this.ticker = 0;\n }\n },\n getNormalizedCurrentFrame() {\n let currentFrame = -Math.ceil(this.currentFrame % this.imagesTotal);\n if (currentFrame < 0) {\n currentFrame += (this.imagesTotal - 1);\n }\n return currentFrame;\n },\n },\n computed: {\n ...mapGetters(['highlightedFrameIndex', 'highlightedFrameUrl']),\n loadedPercent() {\n let percent;\n if (!this.loaded) {\n percent = ((this.imagesLoaded / this.imagesTotal) * 100) + '%'; // eslint-disable-line prefer-template\n } else {\n percent = 0;\n }\n return percent;\n },\n },\n watch: {\n frames() {\n this.currentFrame -= 1;\n this.loadBullets();\n },\n highlightedFrameIndex() {\n if (this.highlightedFrameIndex !== false) {\n this.animateToFrame(this.highlightedFrameIndex);\n }\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n @import '../scss/helpers.scss';\n .threesixty-player {\n position: absolute;\n top: 80px;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n overflow: hidden;\n\n &__innerwrap {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 100%;\n\n &::before {\n content: '';\n display: block;\n width: 80%;\n padding-top: 22.65%;\n position: absolute;\n left: 10%;\n right: 10%;\n bottom: 0;\n z-index: -1;\n background-size: contain;\n background-position: center;\n background-repeat: no-repeat;\n background-image: url('../../static/svg/360_arrow.svg');\n }\n }\n\n &__bullets {\n pointer-events: none;\n\n &.show {\n pointer-events: auto;\n }\n }\n\n &__bullets.show &__bullet {\n opacity: 1;\n }\n\n &__canvas {\n width: 100%;\n transition: opacity .5s cubic-bezier(.75,.01,.25,1);\n\n &.hide {\n opacity: 0;\n }\n }\n\n &__highlight {\n position: absolute;\n width: 100%;\n top: 0;\n opacity: 1;\n pointer-events: none;\n transition: opacity .5s cubic-bezier(.75,.01,.25,1);\n }\n\n &__preloader {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 0;\n transition: width 2s, opacity 1s;\n background: rgba($c_primary, .75);\n }\n }\n \n .fade-enter, .fade-leave-to {\n bottom: -200px;\n opacity: 0;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/ThreeSixtyPlayer.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"threesixty-player no-swipe-nav\"},[_c('div',{staticClass:\"threesixty-player__innerwrap\"},[_c('canvas',{staticClass:\"threesixty-player__canvas\",class:{ hide: (_vm.highlightedFrameUrl && _vm.ticker === 0) },attrs:{\"width\":_vm.width,\"height\":_vm.height}}),_vm._v(\" \"),(_vm.info)?_c('div',{staticClass:\"threesixty-player__bullets\",class:{ show: (_vm.ticker == 0 && !_vm.dragging && _vm.loaded && !_vm.highlightedFrameIndex)}},_vm._l((_vm.bullets),function(b,index){return _c('bullet',{key:index,attrs:{\"index\":index,\"x\":b.x,\"y\":b.y}})})):_vm._e(),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\",\"appear\":\"\"}},[(_vm.highlightedFrameUrl && _vm.ticker === 0)?_c('img',{staticClass:\"threesixty-player__highlight\",attrs:{\"src\":_vm.highlightedFrameUrl}}):_vm._e()])],1),_vm._v(\" \"),_c('div',{staticClass:\"threesixty-player__preloader\",style:({width: _vm.loadedPercent, opacity: !_vm.loaded ? 1 : 0})})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-19bea2b6\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/ThreeSixtyPlayer.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-19bea2b6\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ThreeSixtyPlayer.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixtyPlayer.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixtyPlayer.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-19bea2b6\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./ThreeSixtyPlayer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/ThreeSixtyPlayer.vue\n// module id = null\n// module chunks = ","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown-menu\"},[(_vm.title)?_c('span',{staticClass:\"dropdown-menu__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu__dropdown\",on:{\"click\":function($event){_vm.active = !_vm.active}}},[_c('button',{staticClass:\"dropdown-menu__selected\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.currentPage.title)}}),_vm._v(\" \"),_c('img',{attrs:{\"src\":\"static/svg/dropdown.svg\"}})]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\",\"appear\":\"\"}},[(_vm.active)?_c('ul',{staticClass:\"dropdown-menu__list\"},_vm._l((_vm.array),function(link){return _c('li',{key:_vm.array.index,staticClass:\"dropdown-menu__item\"},[_c('a',{staticClass:\"dropdown-menu__link\",class:{'dropdown-menu__link--active': (_vm.currentIndex == link.index)},attrs:{\"href\":\"#\"},domProps:{\"innerHTML\":_vm._s(link.title)},on:{\"click\":function($event){$event.preventDefault();_vm.updateIndex(link.index)}}})])})):_vm._e()])],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-d59c0d3a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/DropdownMenu.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-d59c0d3a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./DropdownMenu.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./DropdownMenu.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./DropdownMenu.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d59c0d3a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./DropdownMenu.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/DropdownMenu.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"dropdown-menu\">\n <span class=\"dropdown-menu__title\" v-if=\"title\" v-html=\"title\"></span>\n <div class=\"dropdown-menu__dropdown\" @click=\"active = !active\">\n <button class=\"dropdown-menu__selected\">\n <span v-html=\"currentPage.title\"></span>\n <img src=\"static/svg/dropdown.svg\">\n </button>\n <transition name=\"fade\" mode=\"out-in\" appear>\n <ul class=\"dropdown-menu__list\" v-if=\"active\">\n <li class=\"dropdown-menu__item\" v-for=\"link in array\" :key=\"array.index\">\n <a href=\"#\" class=\"dropdown-menu__link\" :class=\"{'dropdown-menu__link--active': (currentIndex == link.index)}\" v-on:click.prevent=\"updateIndex(link.index)\" v-html=\"link.title\"></a>\n </li>\n </ul>\n </transition>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n active: false,\n };\n },\n props: ['array', 'currentIndex', 'title'],\n computed: {\n currentPage() {\n return this.array[this.currentIndex];\n },\n },\n methods: {\n updateIndex(index) {\n this.$emit('updateIndex', index);\n },\n },\n};\n</script>\n\n<style lang=\"scss\">\n @import '../scss/helpers.scss';\n\n .dropdown-menu {\n display: flex;\n align-items: center;\n flex-grow: 1;\n\n &__dropdown {\n position: relative;\n text-align: center;\n }\n\n &__title {\n display: none;\n\n @include not-mobile {\n font-size: 12px;\n font-weight: 300;\n line-height: 20px;\n margin-right: 15px;\n display: block;\n }\n\n @include landscape {\n display: none;\n }\n }\n\n &__selected {\n background: #E6EBEF;\n border-radius: 20px;\n border: 0;\n font-size: 12px;\n font-weight: 300;\n padding: 12px 20px;\n position: relative;\n text-align: left;\n width: 154px;\n outline: none;\n font-family: 'Univers', Helvetica, Arial, sans-serif;\n\n img {\n position: absolute;\n right: 20px;\n top: 16px;\n }\n }\n\n &__list {\n background: #fff;\n top: 12px;\n box-shadow: 0px 6px 8px rgba(0,0,0,0.16);\n border-radius: 4px;\n left: 50%;\n list-style: none;\n margin: 0;\n position: absolute;\n text-align: center;\n transform: translateX(-50%);\n width: 180px;\n padding: 13px 0;\n transition: all .5s cubic-bezier(0.19, 1, 0.22, 1);\n }\n\n &__link {\n display: block;\n text-decoration: none;\n padding: 13px 0;\n color: #000;\n font-size: 12px;\n font-weight: 300;\n\n &--active {\n font-weight: bold;\n opacity: .5;\n pointer-events: none;\n }\n }\n }\n \n .fade-enter, .fade-leave-to {\n bottom: -200px;\n opacity: 0;\n }\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/DropdownMenu.vue","<template>\n <div class=\"threesixty\">\n <header-box class=\"threesixty__header\" :title=\"title\" :long=\"true\"></header-box>\n <div class=\"threesixty__innerwrap\">\n <div class=\"threesixty__blocks\">\n\n <div class=\"threesixty__block threesixty__block--title\">\n <h1 class=\"threesixty__title\" v-html=\"title\"></h1>\n </div>\n\n <three-sixty-block\n :id=\"'block-' + block.id\"\n v-for=\"(block, index) in contentBlocks\"\n :key=\"index\"\n :opaque=\"(selectedBullet !== -1 && selectedBullet !== block.id)\"\n v-if=\"(selectedBullet !== -1 && selectedBullet == block.id) || isNotTablet || isLandscape || selectedBullet === -1\"\n :image=\"block.image\"\n :video=\"block.video\"\n :title=\"block.title\"\n :content=\"block.content\"\n v-on:click=\"goToBlock(block.id, $event)\"\n v-on:close=\"closeHighlight()\"\n :index=\"block.highlighted && block.id + 1\"\n :close=\"selectedBullet === block.id && selectedBullet !== -1\"\n />\n </div>\n\n <div class=\"threesixty__player\">\n <three-sixty-player :key=\"tViewIndex\" width=\"1024\" height=\"768\" :frames=\"frames\" :bulletsJson=\"bulletsJson\" :info=\"info\"></three-sixty-player>\n <div class=\"threesixty__player-nav\">\n <dropdown-menu v-if=\"dropdownArray.length > 1\" :array=\"dropdownArray\" :currentIndex=\"tViewIndex\" :title=\"translations['productTitle']\" @updateIndex=\"updateTViewIndex\" v-model=\"info\"></dropdown-menu>\n <toggle-button v-if=\"!isMobile\" :label=\"translations['threesixtyLabels']\" align=\"left\" @change=\"toggleInfo\" v-model=\"info\"></toggle-button>\n <toggle-button v-if=\"tView.isNocanopy\" :label=\"translations['threesixtyCanopy']\" align=\"left\" @change=\"toggleCanopy\" v-model=\"canopy\"></toggle-button>\n </div>\n </div>\n\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport ThreeSixtyPlayer from '@/components/ThreeSixtyPlayer';\nimport ToggleButton from '@/components/ToggleButton';\nimport DropdownMenu from '@/components/DropdownMenu';\nimport HeaderBox from '@/components/HeaderBox';\nimport ThreeSixtyBlock from '@/components/ThreeSixtyBlock';\nimport Macy from 'macy-watchcss';\nimport Vue from 'vue';\n\nconst scrollToElement = require('scroll-to-element');\n\nexport default {\n name: 'threesixty',\n components: {\n PrevNextNav,\n ThreeSixtyPlayer,\n ToggleButton,\n DropdownMenu,\n HeaderBox,\n ThreeSixtyBlock,\n },\n computed: {\n ...mapGetters(['translations', 'page', 'tViewIndex', 'canopy', 'info', 'contentBlocks', 'bulletsJson', 'frames', 'selectedBullet']),\n title() {\n return this.tView.title;\n },\n tView() {\n return this.page.threesixtyViews[this.tViewIndex];\n },\n dropdownArray() {\n const arr = [];\n [].forEach.call(this.page.threesixtyViews, (threesixtyView, index) => {\n const link = {\n title: threesixtyView.productName,\n index,\n };\n arr.push(link);\n });\n return arr;\n },\n isMobile() {\n return this.innerWidth < 700 || this.isLandscape;\n },\n },\n data() {\n return {\n innerWidth: window.innerWidth,\n isLandscape: window.matchMedia('only screen and (min-device-width: 320px) and (max-device-width: 760px) and (orientation: landscape)').matches,\n isNotTablet: window.matchMedia('screen and (min-width: 1024px)').matches,\n macy: null,\n };\n },\n methods: {\n toggleInfo(val) {\n const params = this.$route.params;\n params.selectedBullet = -1;\n params.info = val ? 'info' : 'noinfo';\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n toggleCanopy(val) {\n const params = this.$route.params;\n params.selectedBullet = -1;\n params.canopy = val ? 'canopy' : 'nocanopy';\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n updateTViewIndex(index) {\n const params = this.$route.params;\n params.selectedBullet = -1;\n params.tViewIndex = index;\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n\n if (!this.tView.isNocanopy) {\n params.canopy = 'canopy';\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n }\n },\n goToBlock(id) {\n const params = this.$route.params;\n params.selectedBullet = id !== -1 ? id : -1;\n\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n closeHighlight() {\n const params = this.$route.params;\n params.selectedBullet = -1;\n this.$router.push({\n name: this.$route.name,\n params,\n });\n },\n },\n watch: {\n selectedBullet() {\n if (!this.isNotTablet && !this.isLandscape) {\n Vue.nextTick(() => {\n this.macy.reInit();\n });\n }\n const bullet = this.$el.querySelector('#block-' + this.selectedBullet); //eslint-disable-line\n if (this.selectedBullet !== -1 && (this.isNotTablet || this.isLandscape) && bullet) {\n scrollToElement(bullet, { duration: 500, align: 'middle' });\n }\n },\n canopy() {\n Vue.nextTick(() => {\n this.macy.reInit();\n });\n },\n },\n mounted() {\n this.macy = Macy({\n container: '.threesixty__blocks',\n trueOrder: false,\n waitForImages: false,\n margin: 20,\n columns: 2,\n breakAt: {\n 699: 1,\n },\n watchCSS: true,\n });\n\n if (this.isMobile && this.info) {\n this.toggleInfo(false);\n }\n\n window.addEventListener('resize', () => {\n this.innerWidth = window.innerWidth;\n this.isLandscape = window.matchMedia('only screen and (min-device-width: 320px) and (max-device-width: 760px) and (orientation: landscape)').matches;\n this.isNotTablet = window.matchMedia('screen and (min-width: 1024px)').matches;\n\n if (this.isMobile && this.info) {\n this.toggleInfo(false);\n }\n });\n\n // const vids = document.querySelectorAll('.threesixty__block-video');\n\n // [].forEach.call(vids, (vid) => {\n // vid.addEventListener('ended', () => {\n // vid.classList.add('hide');\n // });\n // });\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.threesixty {\n @include page;\n\n &__header {\n width: 100%;\n\n @include not-tablet {\n display: none;\n }\n }\n\n &__innerwrap {\n @include not-laptop {\n display: flex;\n flex-direction: column-reverse;\n padding-top: 0;\n justify-content: flex-end;\n }\n\n @include landscape {\n padding-top: 20px;\n display: block;\n }\n }\n\n &__player {\n display: block;\n position: relative;\n margin: 0 0 20px;\n\n &::after {\n content: '';\n display: block;\n padding-top: calc(75%);\n }\n\n @include not-tablet {\n width: calc(66.66% - 110px);\n position: fixed;\n top: 40px;\n right: 40px;\n bottom: 70px;\n margin: 0;\n }\n\n @include landscape {\n position: fixed;\n width: calc(50% - 30px);\n top: 20px;\n right: 20px;\n left: calc(50% + 10px);\n }\n }\n\n &__player-nav {\n width: 100%;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n min-height: 80px;\n\n @include not-laptop {\n flex-wrap: wrap;\n }\n\n @include landscape {\n min-height: 0;\n }\n }\n\n &__blocks {\n // display: flex;\n // flex-direction: column;\n overflow: visible;\n\n @include not-mobile {\n margin-bottom: 20px;\n }\n\n @include not-tablet {\n width: 33.33%;\n }\n\n @include tablet {\n &::after {\n content: \"macy\";\n display: none;\n }\n }\n\n @include landscape {\n width: calc(50% - 10px);\n margin: 0;\n\n &::after {\n content: none;\n }\n }\n }\n\n &__block {\n background: $c_white;\n margin-bottom: 20px;\n box-sizing: border-box;\n // order: 2;\n\n &--title {\n color: $c_white;\n padding: 30px;\n background: $c_primary;\n // order: 1;\n\n @include not-laptop {\n display: none;\n }\n }\n\n &.opaque {\n opacity: .5;\n\n @include not-laptop {\n display: none;\n }\n\n @include landscape {\n display: block;\n }\n }\n }\n\n &__title {\n @include font-title;\n }\n\n &__block-title {\n @include font-block-title;\n \n .number {\n color: $c_primary;\n\n @include mobile {\n display: none;\n }\n\n @include landscape {\n display: none;\n }\n }\n }\n\n &__block-content {\n @include font-block-content;\n line-height: 2.3333;\n }\n\n &__block-image-wrapper {\n display: block;\n width: 100%;\n position: relative;\n overflow: hidden;\n }\n\n &__block-image {\n display: block;\n width: 100%;\n }\n\n // &__block-video {\n // width: 100%; \n // height: 100%;\n \n /* Center the video */\n // position: absolute;\n // top: 0;\n // left: 0;\n // transition: opacity .5s;\n\n // &.hide {\n // opacity: 0;\n // pointer-events: none;\n // }\n // }\n\n &__block-textwrap {\n padding: 40px 30px;\n position: relative;\n }\n\n &__bullet-close {\n background: #0096C3;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n display: block;\n position: absolute;\n top: -20px;\n right: -20px;\n z-index: 1;\n -webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.31);\n box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.31);\n -webkit-transition: all .25s;\n transition: all .25s;\n\n &:before, &:after {\n content: '';\n background: #fff;\n display: block;\n height: 2px;\n left: 11px;\n position: absolute;\n top: 19px;\n transform: rotate(-45deg);\n width: 18px;\n z-index: 10;\n transition: all .25s;\n }\n\n &:before {\n transform: rotate(45deg);\n }\n }\n}\n\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/ThreeSixty.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"threesixty\"},[_c('header-box',{staticClass:\"threesixty__header\",attrs:{\"title\":_vm.title,\"long\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"threesixty__innerwrap\"},[_c('div',{staticClass:\"threesixty__blocks\"},[_c('div',{staticClass:\"threesixty__block threesixty__block--title\"},[_c('h1',{staticClass:\"threesixty__title\",domProps:{\"innerHTML\":_vm._s(_vm.title)}})]),_vm._v(\" \"),_vm._l((_vm.contentBlocks),function(block,index){return ((_vm.selectedBullet !== -1 && _vm.selectedBullet == block.id) || _vm.isNotTablet || _vm.isLandscape || _vm.selectedBullet === -1)?_c('three-sixty-block',{key:index,attrs:{\"id\":'block-' + block.id,\"opaque\":(_vm.selectedBullet !== -1 && _vm.selectedBullet !== block.id),\"image\":block.image,\"video\":block.video,\"title\":block.title,\"content\":block.content,\"index\":block.highlighted && block.id + 1,\"close\":_vm.selectedBullet === block.id && _vm.selectedBullet !== -1},on:{\"click\":function($event){_vm.goToBlock(block.id, $event)},\"close\":function($event){_vm.closeHighlight()}}}):_vm._e()})],2),_vm._v(\" \"),_c('div',{staticClass:\"threesixty__player\"},[_c('three-sixty-player',{key:_vm.tViewIndex,attrs:{\"width\":\"1024\",\"height\":\"768\",\"frames\":_vm.frames,\"bulletsJson\":_vm.bulletsJson,\"info\":_vm.info}}),_vm._v(\" \"),_c('div',{staticClass:\"threesixty__player-nav\"},[(_vm.dropdownArray.length > 1)?_c('dropdown-menu',{attrs:{\"array\":_vm.dropdownArray,\"currentIndex\":_vm.tViewIndex,\"title\":_vm.translations['productTitle']},on:{\"updateIndex\":_vm.updateTViewIndex},model:{value:(_vm.info),callback:function ($$v) {_vm.info=$$v},expression:\"info\"}}):_vm._e(),_vm._v(\" \"),(!_vm.isMobile)?_c('toggle-button',{attrs:{\"label\":_vm.translations['threesixtyLabels'],\"align\":\"left\"},on:{\"change\":_vm.toggleInfo},model:{value:(_vm.info),callback:function ($$v) {_vm.info=$$v},expression:\"info\"}}):_vm._e(),_vm._v(\" \"),(_vm.tView.isNocanopy)?_c('toggle-button',{attrs:{\"label\":_vm.translations['threesixtyCanopy'],\"align\":\"left\"},on:{\"change\":_vm.toggleCanopy},model:{value:(_vm.canopy),callback:function ($$v) {_vm.canopy=$$v},expression:\"canopy\"}}):_vm._e()],1)],1)])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-518a008a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/ThreeSixty.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-518a008a\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./ThreeSixty.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixty.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./ThreeSixty.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-518a008a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./ThreeSixty.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/ThreeSixty.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"orb\">\n <canvas class=\"orb__canvas no-swipe-nav\" />\n <div class=\"orb__pano no-swipe-nav\"></div>\n <div class=\"orb__preloader no-swipe-nav\" :style=\"{width: loadedPercent, opacity: !loaded ? 1 : 0}\"></div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\n// import create360Viewer from '360-image-viewer';\nimport { PanoViewer } from '@egjs/view360';\n// import canvasFit from 'canvas-fit';\n\nexport default {\n name: 'orb',\n computed: {\n ...mapGetters(['page']),\n imageUrl() {\n return this.page.image;\n },\n },\n data() {\n return {\n // canvas: null,\n pano: null,\n image: null,\n viewer: null,\n loadedPercent: 0,\n loaded: false,\n };\n },\n mounted() {\n // this.canvas = this.$el.querySelector('.orb__canvas');\n\n Image.prototype.onChangeSize; // eslint-disable-line\n Image.prototype.load = (url) => {\n const req = ((XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP')); //eslint-disable-line\n req.open('GET', url, true);\n req.responseType = 'arraybuffer';\n req.onload = () => {\n if (req.response) {\n const blob = new Blob([req.response]);\n this.src = window.URL.createObjectURL(blob);\n }\n };\n req.onprogress = (e) => {\n if (this.onChangeSize) {\n this.onChangeSize(e.loaded, e.total);\n }\n };\n req.send();\n };\n this.image = new Image();\n this.image.crossOrigin = 'Anonymous';\n this.image.onChangeSize = (loaded, total) => {\n this.loadedPercent = `${parseInt((loaded / total) * 100, 10)}%`;\n };\n this.image.addEventListener('load', this.handleImageLoaded);\n this.image.load(this.imageUrl);\n this.pano = this.$el.querySelector('.orb__pano');\n // console.log(panoViewer);\n\n // this.image = new Image();\n // this.image.addEventListener('load', this.handleImageLoaded);\n // this.image.crossOrigin = 'Anonymous';\n // this.image.src = this.imageUrl;\n // const image = new Image();\n // image.src = this.image;\n },\n methods: {\n handleImageLoaded() {\n this.loaded = true;\n this.viewer = new PanoViewer(\n this.pano,\n {\n image: this.image,\n gyroMode: 'none',\n },\n );\n // console.log(panoViewer);\n\n window.addEventListener('resize', () => {\n this.viewer.updateViewportDimensions();\n });\n // const viewer = create360Viewer({\n // image: this.image,\n // canvas: this.canvas,\n // });\n\n // const fit = canvasFit(this.canvas, this.$el);\n // window.addEventListener('resize', fit, false);\n // fit();\n\n // viewer.start();\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.orb {\n @include page;\n\n &__canvas,\n &__pano {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n }\n\n &__preloader {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n width: 0;\n transition: width 2s, opacity 1s;\n background: rgba($c_primary, .75);\n pointer-events: none;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Orb.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"orb\"},[_c('canvas',{staticClass:\"orb__canvas no-swipe-nav\"}),_vm._v(\" \"),_c('div',{staticClass:\"orb__pano no-swipe-nav\"}),_vm._v(\" \"),_c('div',{staticClass:\"orb__preloader no-swipe-nav\",style:({width: _vm.loadedPercent, opacity: !_vm.loaded ? 1 : 0})})])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-0492df92\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Orb.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-0492df92\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Orb.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Orb.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Orb.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0492df92\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Orb.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Orb.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"slider\">\n <header-box :title=\"title\"></header-box>\n <div class=\"slider__innerwrap\">\n <div class=\"slider__comparator no-swipe-nav\">\n\n <div class=\"slider__image\" v-bind:style=\"{ backgroundImage: 'url(' + imageTop + ')' }\">\n <span class=\"slider__label\" v-html=\"labelTop\"></span>\n </div>\n <div class=\"slider__view-limiter\" v-bind:style=\"{ width: `${horizontalPercent}%`, height: `${verticalPercent}%` }\">\n <div class=\"slider__image\" v-bind:style=\"{\n backgroundImage: 'url(' + imageBottom + ')',\n width: `${10000/horizontalPercent}%`,\n height: `${10000/verticalPercent}%`\n }\">\n <span class=\"slider__label slider__label--right\" v-html=\"labelBottom\"></span>\n </div> \n </div>\n\n <div class=\"slider__dot\" @touchmove=\"touchMove\" v-bind:style=\"{right: + horizontalPercent + '%', bottom: + verticalPercent + '%'}\"><span></span></div>\n\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport PrevNextNav from '@/components/PrevNextNav';\nimport HeaderBox from '@/components/HeaderBox';\n\nexport default {\n name: 'slider',\n components: { PrevNextNav, HeaderBox },\n data() {\n return {\n horizontalPercent: 50,\n verticalPercent: 50,\n isMouseDown: false,\n view: null,\n dot: null,\n };\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n imageTop() {\n return this.page.imageTop;\n },\n imageBottom() {\n return this.page.imageBottom;\n },\n labelTop() {\n return this.page.labelTop;\n },\n labelBottom() {\n return this.page.labelBottom;\n },\n },\n mounted() {\n this.view = this.$el.querySelector('.slider__comparator');\n this.dot = this.$el.querySelector('.slider__dot');\n this.$el.addEventListener('mouseup', this.mouseUp);\n this.$el.addEventListener('mouseleave', this.mouseLeave);\n this.$el.addEventListener('mousemove', this.mouseMove);\n this.dot.addEventListener('mousedown', this.mouseDown);\n },\n methods: {\n width() {\n return this.view.offsetWidth;\n },\n height() {\n return this.view.offsetHeight;\n },\n right() {\n return this.view.getBoundingClientRect().right;\n },\n bottom() {\n return this.view.getBoundingClientRect().bottom;\n },\n mouseDown() {\n this.isMouseDown = true;\n },\n mouseUp() {\n this.isMouseDown = false;\n },\n mouseLeave() {\n this.isMouseDown = false;\n },\n mouseMove(event) {\n if (this.isMouseDown) {\n const horizontalPercentage = ((this.right() - event.clientX) / this.width());\n this.horizontalPercent = Math.max(Math.min(horizontalPercentage * 100, 100), 0);\n\n const verticalPercentage = ((this.bottom() - event.clientY) / this.height());\n this.verticalPercent = Math.max(Math.min(verticalPercentage * 100, 100), 0);\n }\n },\n touchMove(event) {\n // this.emitPercentage(event.touches[0].clientX);\n const horizontalPercentage = ((this.right() - event.touches[0].clientX) / this.width());\n this.horizontalPercent = Math.max(Math.min(horizontalPercentage * 100, 100), 0);\n\n const verticalPercentage = ((this.bottom() - event.touches[0].clientY) / this.height());\n this.verticalPercent = Math.max(Math.min(verticalPercentage * 100, 100), 0);\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.slider {\n @include page(true, true);\n\n &__innerwrap {\n display: flex;\n flex-direction: column;\n padding-bottom: 20px;\n\n @include not-mobile {\n padding-bottom: 40px;\n padding-top: 0;\n }\n\n @include landscape {\n padding-top: 20px;\n padding-bottom: 20px;\n }\n }\n\n &__comparator {\n width: 100%;\n display: block;\n background: $c_white;\n flex-grow: 1;\n border: 0;\n position: relative;\n\n // @include not-mobile {\n // margin: 0 0 0 8.333%;\n // width: 91.666%;\n // }\n\n // @include landscape {\n // width: 100%;\n // margin: 0;\n // }\n }\n\n &__image {\n display: block;\n background-size: cover;\n background-position: center;\n position: absolute;\n bottom: 0;\n right: 0;\n width: 100%;\n height: 100%;\n\n \n @media screen and (orientation: portrait) {\n width: 100% !important;\n }\n\n @media screen and (orientation: landscape) {\n height: 100% !important;\n }\n }\n\n &__label {\n @include font-block-title;\n background: $c_white;\n padding: 7px 20px 5px;\n position: absolute;\n bottom: 0;\n left: 0;\n\n @media screen and (orientation: portrait) {\n left: auto;\n right: 0;\n top: 0;\n bottom: auto;\n }\n\n &--right {\n left: auto;\n right: 0;\n\n @media screen and (orientation: portrait) {\n top: auto;\n bottom: 0;\n }\n }\n }\n\n &__view-limiter {\n position: absolute;\n bottom: 0;\n right: 0;\n height: 100%;\n width: 100%;\n overflow: hidden;\n\n @media screen and (orientation: portrait) {\n width: 100% !important;\n }\n\n @media screen and (orientation: landscape) {\n height: 100% !important;\n }\n }\n\n &__dot {\n width: 60px;\n height: 60px;\n position: absolute;\n bottom: 50%;\n transform: translate(50%, 50%);\n z-index: 1;\n border-radius: 50%;\n border: 30px solid transparent;\n\n @media screen and (orientation: portrait) {\n right: 50% !important;\n }\n\n @media screen and (orientation: landscape) {\n bottom: 50% !important;\n }\n \n &::before {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background: $c_primary;\n box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.31);\n }\n\n span {\n width: 20px;\n height: 20px;\n position: absolute;\n top: calc(50% - 10px);\n left: calc(50% - 10px);\n transform: rotate(-45deg);\n\n @media screen and (orientation: portrait) {\n transform: rotate(45deg);\n }\n\n &::before,\n &::after {\n content: '';\n display: block;\n width: 10px;\n height: 10px;\n border: 3px solid $c_white;\n box-sizing: border-box;\n position: absolute;\n }\n\n &::before {\n border-right: none;\n border-bottom: none;\n top: 0;\n left: 0;\n }\n\n &::after {\n border-left: none;\n border-top: none;\n bottom: 0;\n right: 0;\n }\n }\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Slider.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"slider\"},[_c('header-box',{attrs:{\"title\":_vm.title}}),_vm._v(\" \"),_c('div',{staticClass:\"slider__innerwrap\"},[_c('div',{staticClass:\"slider__comparator no-swipe-nav\"},[_c('div',{staticClass:\"slider__image\",style:({ backgroundImage: 'url(' + _vm.imageTop + ')' })},[_c('span',{staticClass:\"slider__label\",domProps:{\"innerHTML\":_vm._s(_vm.labelTop)}})]),_vm._v(\" \"),_c('div',{staticClass:\"slider__view-limiter\",style:({ width: (_vm.horizontalPercent + \"%\"), height: (_vm.verticalPercent + \"%\") })},[_c('div',{staticClass:\"slider__image\",style:({\n backgroundImage: 'url(' + _vm.imageBottom + ')',\n width: ((10000/_vm.horizontalPercent) + \"%\"),\n height: ((10000/_vm.verticalPercent) + \"%\")\n })},[_c('span',{staticClass:\"slider__label slider__label--right\",domProps:{\"innerHTML\":_vm._s(_vm.labelBottom)}})])]),_vm._v(\" \"),_c('div',{staticClass:\"slider__dot\",style:({right: + _vm.horizontalPercent + '%', bottom: + _vm.verticalPercent + '%'}),on:{\"touchmove\":_vm.touchMove}},[_c('span')])])])],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-edb55554\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Slider.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-edb55554\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Slider.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Slider.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Slider.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-edb55554\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Slider.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Slider.vue\n// module id = null\n// module chunks = ","<template>\n <div class=\"table\">\n <header-box :title=\"title\" :intro=\"intro\"></header-box>\n <div class=\"table__innerwrap\">\n\n\n <div class=\"table__row\" v-for=\"(table, index) in page.tables\" :key=\"'table-'+index\">\n <div class=\"table__table-wrap\">\n <h2 class=\"table__table-title\" v-html=\"table.title\"></h2>\n <table class=\"table__table\">\n <tr v-for=\"(row, rowIndex) in table.table.body\">\n <th v-for=\"cell in row\" v-if=\"rowIndex < table.table.header_rows && !cell.spanned\" :colspan=\"cell.c_span\" :rowspan=\"cell.r_span\" v-html=\"cell.c\"></th>\n <td v-for=\"(cell, cellIndex) in row\" :class=\"{ 'odd': (cellIndex % 2), 'first': cellIndex === 0 }\" v-if=\"rowIndex >= table.table.header_rows &&!cell.spanned\" :colspan=\"cell.c_span\" :rowspan=\"cell.r_span\" v-html=\"cell.c\"></td>\n </tr>\n </table>\n <p class=\"table__disclaimer\" v-if=\"table.disclaimers\" v-html=\"table.disclaimers\"></p>\n </div>\n\n <div class=\"table__block\" v-if=\"table.showContentBlock\">\n <h2 class=\"table__block-title\" v-html=\"table.contentBlock.title\"></h2>\n <div class=\"table__block-content\" v-html=\"table.contentBlock.content\"></div>\n </div>\n </div>\n \n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport HeaderBox from '@/components/HeaderBox';\nimport PrevNextNav from '@/components/PrevNextNav';\n\nexport default {\n name: 'table',\n components: { HeaderBox, PrevNextNav },\n data() {\n return {\n selectedIcon: 0,\n };\n },\n computed: {\n ...mapGetters(['page']),\n title() {\n return this.page.title;\n },\n intro() {\n return this.page.intro;\n },\n },\n methods: {\n bgImg(url) {\n return `background-image: url('${url}');`;\n },\n },\n};\n</script>\n\n<!-- Add \"scoped\" attribute to limit CSS to this component only -->\n<style lang=\"scss\">\n@import '../../scss/helpers';\n\n.table {\n @include page(true, true);\n\n &__innerwrap {\n display: flex;\n flex-direction: column;\n }\n\n &__push {\n flex-grow: 1;\n }\n\n &__row {\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n margin: 0 0 40px;\n }\n\n &__table-wrap {\n padding: 0 20px;\n background: $c_white;\n align-items: flex-start;\n width: 640px;\n flex-grow: 1;\n max-width: 980px;\n margin-right: 1px;\n\n &:nth-child(2n) {\n margin-left: 1px;\n margin-right: auto;\n align-self: flex-end;\n }\n }\n\n &__table-title {\n @include font-block-title;\n margin: 1.15em 0;\n }\n\n &__table {\n width: 100%;\n font-size: 12px;\n line-height: 16px;\n border-collapse:collapse;\n text-align: center;\n\n th {\n @include t_bold;\n padding: 4px 0 5px;\n background: $c_black--broken;\n color: $c_white;\n border-bottom: 1px solid $c_grey;\n line-height: 20px;\n\n &:not(:first-child) {\n border-left: 1px solid $c_grey;\n }\n }\n\n td {\n padding: 3px 0 2px;\n border-bottom: 1px solid rgba($c_primary, .3);\n\n &.first {\n text-align: left;\n padding-left: 10px;\n }\n\n &.odd {\n background: rgba($c_primary, .7);\n }\n\n &:not(.first) {\n border-left: 1px solid rgba($c_primary, .3);\n }\n\n @include font-baseline-fix;\n }\n }\n\n &__disclaimer {\n @include t_normal;\n font-size: 12px;\n line-height: 1.4;\n margin: 1.5em 0;\n }\n\n &__block {\n display: block;\n box-sizing: border-box;\n margin-bottom: 20px;\n padding: 40px 30px 30px;\n background: $c_white;\n\n @include tablet {\n width: 33.33%;\n }\n\n @include landscape {\n width: auto;\n }\n\n @include not-tablet {\n padding: 50px 40px 40px;\n }\n }\n\n &__block-title {\n @include font-block-title;\n }\n\n &__block-content {\n @include font-block-content;\n }\n}\n</style>\n\n\n\n// WEBPACK FOOTER //\n// src/components/templates/Table.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"table\"},[_c('header-box',{attrs:{\"title\":_vm.title,\"intro\":_vm.intro}}),_vm._v(\" \"),_c('div',{staticClass:\"table__innerwrap\"},_vm._l((_vm.page.tables),function(table,index){return _c('div',{key:'table-'+index,staticClass:\"table__row\"},[_c('div',{staticClass:\"table__table-wrap\"},[_c('h2',{staticClass:\"table__table-title\",domProps:{\"innerHTML\":_vm._s(table.title)}}),_vm._v(\" \"),_c('table',{staticClass:\"table__table\"},_vm._l((table.table.body),function(row,rowIndex){return _c('tr',[_vm._l((row),function(cell){return (rowIndex < table.table.header_rows && !cell.spanned)?_c('th',{attrs:{\"colspan\":cell.c_span,\"rowspan\":cell.r_span},domProps:{\"innerHTML\":_vm._s(cell.c)}}):_vm._e()}),_vm._v(\" \"),_vm._l((row),function(cell,cellIndex){return (rowIndex >= table.table.header_rows &&!cell.spanned)?_c('td',{class:{ 'odd': (cellIndex % 2), 'first': cellIndex === 0 },attrs:{\"colspan\":cell.c_span,\"rowspan\":cell.r_span},domProps:{\"innerHTML\":_vm._s(cell.c)}}):_vm._e()})],2)})),_vm._v(\" \"),(table.disclaimers)?_c('p',{staticClass:\"table__disclaimer\",domProps:{\"innerHTML\":_vm._s(table.disclaimers)}}):_vm._e()]),_vm._v(\" \"),(table.showContentBlock)?_c('div',{staticClass:\"table__block\"},[_c('h2',{staticClass:\"table__block-title\",domProps:{\"innerHTML\":_vm._s(table.contentBlock.title)}}),_vm._v(\" \"),_c('div',{staticClass:\"table__block-content\",domProps:{\"innerHTML\":_vm._s(table.contentBlock.content)}})]):_vm._e()])}))],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-55d53d38\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/templates/Table.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-55d53d38\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./Table.vue\")\n}\nvar normalizeComponent = require(\"!../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Table.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./Table.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-55d53d38\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./Table.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/templates/Table.vue\n// module id = null\n// module chunks = ","import Vue from 'vue';\nimport Router from 'vue-router';\nimport Front from '@/components/templates/Front';\nimport Intro from '@/components/templates/Intro';\nimport Markets from '@/components/templates/Markets';\nimport Installation3d from '@/components/templates/Installation3d';\nimport Installation from '@/components/templates/Installation';\nimport Workflow from '@/components/templates/Workflow';\nimport InteractivePdf from '@/components/templates/InteractivePdf';\nimport InteractiveHtml from '@/components/templates/InteractiveHtml';\nimport Movie from '@/components/templates/Movie';\nimport Specs from '@/components/templates/Specs';\nimport Backcover from '@/components/templates/Backcover';\nimport ThreeSixty from '@/components/templates/ThreeSixty';\nimport Orb from '@/components/templates/Orb';\nimport Slider from '@/components/templates/Slider';\nimport Table from '@/components/templates/Table';\n\nVue.use(Router);\n\nexport default new Router({\n routes: [\n { path: '*', redirect: '/0/front' },\n {\n path: '/:id/front',\n name: 'front',\n component: Front,\n },\n {\n path: '/:id/intro',\n name: 'intro',\n component: Intro,\n },\n {\n path: '/:id/markets',\n name: 'markets',\n component: Markets,\n },\n {\n path: '/:id/installation-3d/:info/:selectedBullet',\n name: 'installation-3d',\n component: Installation3d,\n },\n {\n path: '/:id/installation',\n name: 'installation',\n component: Installation,\n },\n {\n path: '/:id/workflow',\n name: 'workflow',\n component: Workflow,\n },\n {\n path: '/:id/interactive-pdf',\n name: 'interactive-pdf',\n component: InteractivePdf,\n },\n {\n path: '/:id/interactive-html',\n name: 'interactive-html',\n component: InteractiveHtml,\n },\n {\n path: '/:id/movie',\n name: 'movie',\n component: Movie,\n },\n {\n path: '/:id/specs',\n name: 'specs',\n component: Specs,\n },\n {\n path: '/:id/backcover',\n name: 'backcover',\n component: Backcover,\n },\n {\n path: '/:id/360/:tViewIndex/:canopy/:info/:selectedBullet',\n name: '360',\n component: ThreeSixty,\n },\n {\n path: '/:id/orb',\n name: 'orb',\n component: Orb,\n },\n {\n path: '/:id/slider',\n name: 'slider',\n component: Slider,\n },\n {\n path: '/:id/table',\n name: 'table',\n component: Table,\n },\n ],\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","export default {\n GET_DATA_SUCCESS(state, data) {\n state.printUrl = data.printUrl;\n state.title = data.title;\n state.pages = data.pages;\n state.ready = true;\n\n const defaultTranslations = state.translations;\n if (data.translations) {\n state.translations = data.translations;\n\n if (!state.translations.threesixtyOn) {\n state.translations.threesixtyOn = defaultTranslations.threesixtyOn;\n }\n\n if (!state.translations.threesixtyOff) {\n state.translations.threesixtyOff = defaultTranslations.threesixtyOff;\n }\n }\n\n if (data.alternativeLanguage) {\n document.body.classList.add(`font-${data.alternativeLanguage}`);\n }\n },\n GET_DATA_FAILED(state) {\n state.title = '';\n state.printUrl = '';\n state.pages = [];\n },\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/mutations.js","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport axios from 'axios';\n\nimport mutations from './mutations';\n\n// const pad = (num, size) => {\n// const s = '000000000' + num; //eslint-disable-line\n// return s.substr(s.length - size);\n// };\n\nVue.use(Vuex);\n\nconst state = {\n title: null,\n printUrl: null,\n pages: [],\n ready: false,\n translations: {\n menuCTA: 'Menu',\n printCTA: 'Printable PDF',\n prev: 'Previous',\n next: 'Next',\n backcoverTitle: 'Committed to sustainable productivity',\n backcoverText: 'We stand by our responsibilities towards our customers, towards the<br>environment and the people around us. We make performance stand<br>the test of time. This is what we call – Sustainable Productivity.',\n productTitle: 'Product',\n threesixtyLabels: 'Labels',\n threesixtyCanopy: 'Canopy',\n threesixtyOn: 'On',\n threesixtyOff: 'Off',\n },\n};\n\nconst findGetParameter = (parameterName) => { //eslint-disable-line\n let result = null;\n let tmp = [];\n location.search\n .substr(1)\n .split('&')\n .forEach((item) => {\n tmp = item.split('=');\n if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);\n });\n return result;\n};\n\nconst actions = {\n getProducts: ({ commit }) => {\n const urlParameter = findGetParameter('url');\n const url = urlParameter || 'static/data.json';\n axios.get(url).then((response) => {\n // axios.get(findGetParameter('url')).then((response) => {\n // axios.get('http://local.api.brochure-platform.kubaja.com/sample-page/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/sample-page/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/zs4-zs4vsd/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/zb-5-6-vsd/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/5183-2/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/ga-90-160-vsd/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/mdg-real-content/?json=true').then((response) => {\n // axios.get('http://api.brochure-platform.kubaja.com/jelle/?json=true').then((response) => {\n commit('GET_DATA_SUCCESS', response.data);\n });\n },\n};\n\nconst getRouterArray = (index, get) => {\n const arr = {};\n if (get.ready) {\n arr.params = {};\n arr.params.id = index;\n arr.name = get.pages[arr.params.id].template;\n\n if (arr.name === '360') {\n arr.params.tViewIndex = 0;\n arr.params.canopy = 'canopy';\n arr.params.info = 'info';\n arr.params.selectedBullet = -1;\n } else if (arr.name === 'installation-3d') {\n arr.params.info = 'info';\n arr.params.selectedBullet = -1;\n }\n }\n return arr;\n};\n\nconst getters = {\n translations(st) {\n return st.translations;\n },\n title(st) {\n return st.title;\n },\n printUrl(st) {\n return st.printUrl;\n },\n pageIndex(st) {\n return parseInt(st.route.params.id, 10);\n },\n pageMenuTitle(st) {\n return st.pages[st.route.params.id] ? st.pages[st.route.params.id].menuTitle : '';\n },\n pages(st) {\n return st.pages;\n },\n page(st) {\n return st.pages[st.route.params.id];\n },\n ready(st) {\n return st.ready;\n },\n isFront(st) {\n return st.ready ? st.pages[st.route.params.id].template === 'front' : false;\n },\n nextPageRouterArray(st, get) {\n let arr;\n if ((get.pageIndex + 1) < get.pages.length) {\n arr = getRouterArray(get.pageIndex + 1, get);\n } else {\n arr = false;\n }\n return arr;\n },\n prevPageRouterArray(st, get) {\n let arr;\n if (get.pageIndex > 0) {\n arr = getRouterArray(get.pageIndex - 1, get);\n } else {\n arr = false;\n }\n return arr;\n },\n tViewIndex(st) {\n return st.route.params.tViewIndex;\n },\n canopy(st) {\n return st.route.params.canopy === 'canopy';\n },\n info(st) {\n return st.route.params.info === 'info';\n },\n /* eslint-disable max-len */\n contentBlocks(st, get) {\n const indexedContentBlocks = [];\n if (st.route.name === '360') {\n const contentBlocks = get.canopy ? get.page.threesixtyViews[get.tViewIndex].canopyContentBlocks : get.page.threesixtyViews[get.tViewIndex].nocanopyContentBlocks;\n let index = 0;\n [].forEach.call(contentBlocks, (contentBlock) => {\n const indexedContentBlock = contentBlock;\n if (contentBlock.highlighted) {\n indexedContentBlock.id = index;\n index += 1;\n } else {\n indexedContentBlock.id = -1;\n }\n indexedContentBlocks.push(indexedContentBlock);\n });\n }\n return indexedContentBlocks;\n },\n bulletsJson(st, get) {\n if (st.route.name === '360') {\n return get.canopy ? get.page.threesixtyViews[get.tViewIndex].canopyBulletsJson : get.page.threesixtyViews[get.tViewIndex].nocanopyBulletsJson;\n }\n return {};\n },\n frames(st, get) {\n if (st.route.name === '360') {\n return get.canopy ? get.page.threesixtyViews[get.tViewIndex].canopyFrames : get.page.threesixtyViews[get.tViewIndex].nocanopyFrames;\n }\n return {};\n },\n selectedBullet(st) {\n return parseInt(st.route.params.selectedBullet, 10);\n },\n highlightedFrameIndex(st, get) {\n let index = false;\n if (get.selectedBullet !== -1) {\n [].forEach.call(get.contentBlocks, (contentBlock) => {\n if (contentBlock.id == get.selectedBullet) { //eslint-disable-line\n index = contentBlock.highlightedFrameIndex;\n }\n });\n }\n // if (get.selectedBullet !== false && get.contentBlocks.length > get.selectedBullet && get.contentBlocks[get.selectedBullet].highlighted) {\n // index = get.contentBlocks[get.selectedBullet].highlightedFrameIndex;\n // }\n return index;\n },\n highlightedFrameUrl(st, get) {\n let url = false;\n if (get.selectedBullet !== -1) {\n [].forEach.call(get.contentBlocks, (contentBlock) => {\n if (contentBlock.id == get.selectedBullet) { //eslint-disable-line\n url = contentBlock.highlightedFrameUrl;\n }\n });\n }\n // if (get.selectedBullet !== false && get.contentBlocks.length > get.selectedBullet && get.contentBlocks[get.selectedBullet].highlighted) {\n // url = get.contentBlocks[get.selectedBullet].highlightedFrameUrl;\n // }\n return url;\n // return get.selectedBullet !== false && get.contentBlocks.length > get.selectedBullet ? get.contentBlocks[get.selectedBullet].highlightedFrameUrl : false;\n },\n};\n\nexport default new Vuex.Store({\n state,\n getters,\n actions,\n mutations,\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue';\nimport { sync } from 'vuex-router-sync';\nimport App from './App';\nimport router from './router';\nimport store from './store';\n\nrequire('babel-polyfill');\n\nsync(store, router);\n\nVue.config.productionTip = false;\n\nconst detectIE = () => {\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n if (msie > 0) { // IE 10 or older => return version number\n return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\n }\n\n const trident = ua.indexOf('Trident/');\n if (trident > 0) { // IE 11 => return version number\n const rv = ua.indexOf('rv:');\n return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\n }\n\n const edge = ua.indexOf('Edge/');\n if (edge > 0) { // Edge (IE 12+) => return version number\n return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\n }\n\n // other browser\n return false;\n};\n\nif (detectIE()) {\n document.body.classList.add('ie');\n} else {\n document.body.classList.add('no-ie');\n}\n\n/* eslint-disable no-new */\nnew Vue({\n el: '#app',\n router,\n store,\n template: '<App/>',\n components: { App },\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js"],"sourceRoot":""}