{"version":3,"sources":["webpack:///./src/js/modules/breakToLines.js","webpack:///./src/js/modules/splideSlider.js"],"names":["Module","this","dom","overlay","el","querySelector","text","link","svg","image","lineSplit","target","by","handleResize","addEventListener","handleHover","bind","handleMouseOut","window","isMobile","matchMedia","matches","visible","timeOverlay","offsetWidth","showTime","style","visibility","showSequence","lines","reduce","sequence","line","index","lineSequence","opacity","transform","at","duration","delay","push","lineSplitEnd","length","svgSequence","animate","timeline","dissappearTime","hideSequence","finished","then","Component","slider","dataset","experienceEditor","initSwiperBreakToLines","classList","add","isPeopleSlider","sliderAuto","loopSlides","initSlider","splide","Splide","type","drag","focus","lazyLoad","perPage","gap","arrows","autoScroll","speed","autoStart","pauseOnHover","autoHeight","autoWidth","breakpoints","1025","640","mount","AutoScroll","on","Components","start","pause","document","querySelectorAll","forEach","element","breakToLines"],"mappings":"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","file":"36.34a6d4d41f2655de3279.js","sourcesContent":["import { animate, timeline } from 'motion';\n\nimport { Component } from '@verndale/core';\nimport Splitting from 'splitting';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n overlay: this.el.querySelector('.card__overlay'),\n text: this.el.querySelector('.card__text'),\n link: this.el.querySelector('a'),\n svg: this.el.querySelector('svg'),\n image: this.el.querySelector('img')\n };\n\n this.dom.text.lineSplit = Splitting({\n target: this.dom.text,\n by: 'lines'\n });\n this.handleResize();\n }\n\n addListeners() {\n this.dom.link.addEventListener('mouseover', this.handleHover.bind(this));\n this.dom.link.addEventListener('mouseout', this.handleMouseOut.bind(this));\n window.addEventListener('resize', this.handleResize.bind(this));\n }\n\n handleResize() {\n this.isMobile = window.matchMedia('(max-width: 1025px)').matches;\n if (this.visible && this.isMobile) {\n this.handleMouseOut();\n }\n }\n\n handleHover() {\n if (!this.isMobile) {\n this.timeOverlay = 0.35 + this.el.offsetWidth * 0.0003;\n\n this.showTime = this.timeOverlay * 0.12;\n this.dom.text.style.visibility = 'visible';\n\n const showSequence = this.dom.text.lineSplit[0].lines.reduce(\n (sequence, line, index) => {\n const lineSequence = [\n line,\n {\n opacity: [0, 1],\n transform: ['translate(-50px, 0)', 'translate(0, 0)']\n },\n { at: this.showTime * index },\n { duration: this.showTime, delay: this.timeOverlay * 0.6 }\n ];\n sequence.push(lineSequence);\n return sequence;\n },\n []\n );\n\n const lineSplitEnd = this.dom.text.lineSplit[0].lines.length;\n\n const svgSequence = [\n this.dom.svg,\n {\n opacity: [0, 1],\n transform: ['translate(-50px, 0)', 'translate(0, 0)']\n },\n { at: this.showTime * lineSplitEnd },\n { duration: this.showTime, delay: this.timeOverlay * 0.6 }\n ];\n showSequence.push(svgSequence);\n\n animate(\n this.dom.overlay,\n { transform: 'skew(-30deg) scale(2.1, 1)' },\n { duration: this.timeOverlay }\n );\n\n timeline(showSequence);\n\n if (this.dom.image)\n animate(this.dom.image, { transform: 'scale(1.25)' }, { duration: 1 });\n }\n this.visible = true;\n }\n\n handleMouseOut() {\n this.visible = false;\n this.dissappearTime = this.showTime * 0.85;\n const hideSequence = this.dom.text.lineSplit[0].lines.reduce(\n (sequence, line, index) => {\n const lineSequence = [\n line,\n {\n opacity: 0,\n transform: ['translate(0, 0)', 'translate(-50px, 0)']\n },\n { at: this.dissappearTime * index },\n { duration: this.dissappearTime }\n ];\n sequence.push(lineSequence);\n return sequence;\n },\n []\n );\n\n const lineSplitEnd = this.dom.text.lineSplit[0].lines.length;\n\n const lineSequence = [\n this.dom.svg,\n {\n opacity: 0,\n transform: ['translate(0, 0)', 'translate(-50px, 0)']\n },\n { at: this.dissappearTime * lineSplitEnd },\n { duration: this.dissappearTime }\n ];\n\n hideSequence.push(lineSequence);\n\n timeline(hideSequence).finished.then(() => {\n if (!this.visible) {\n this.dom.text.style.visibility = 'hidden';\n }\n });\n\n animate(\n this.dom.overlay,\n { transform: 'skew(-30deg) scale(0, 1)' },\n { duration: this.timeOverlay, delay: lineSplitEnd * this.dissappearTime }\n );\n\n if (this.dom.image)\n animate(\n this.dom.image,\n { transform: 'scale(1)' },\n { duration: this.timeOverlay * 2.6, delay: this.timeOverlay * 0.3 }\n );\n }\n}\n\nexport default Module;\n","import { AutoScroll } from '@splidejs/splide-extension-auto-scroll';\nimport { Component } from '@verndale/core';\nimport { Splide } from '@splidejs/splide';\nimport breakToLines from './breakToLines';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n slider: this.el.querySelector('.swiper-container')\n };\n\n if (this.el.dataset.experienceEditor === 'true') {\n this.initSwiperBreakToLines();\n this.el.style.visibility = 'visible';\n return this.el.classList.add('experience-editor-slider');\n }\n\n this.isPeopleSlider = this.el.dataset.isPeopleSlider === 'true';\n this.sliderAuto = this.el.dataset.sliderAuto === 'true';\n this.loopSlides = this.el.dataset.loopSlides === 'true';\n this.initSlider();\n }\n\n initSlider() {\n const splide = new Splide(this.el, {\n type: this.loopSlides ? 'loop' : 'slide',\n drag: 'free',\n focus: 0,\n lazyLoad: 'sequential',\n perPage: 5,\n gap: 40,\n arrows: false,\n autoScroll: {\n speed: 0.4,\n autoStart: this.sliderAuto,\n pauseOnHover: this.sliderAuto\n },\n autoHeight: true,\n autoWidth: true,\n breakpoints: {\n 1025: { perPage: 3, gap: 40, autoWidth: false },\n 640: { perPage: this.isPeopleSlider ? 1 : 2, gap: 20, autoWidth: false }\n }\n });\n\n splide.mount({ AutoScroll });\n\n\n splide.on('dragged', () => {\n const autoScroll = splide.Components.AutoScroll;\n if (this.sliderAuto) {\n autoScroll.start();\n } else {\n autoScroll.pause();\n }\n });\n\n\n this.initSwiperBreakToLines();\n }\n\n initSwiperBreakToLines() {\n [\n ...document.querySelectorAll('[data-module=\"swiperBreakToLines\"]')\n ].forEach(element => new breakToLines(element));\n }\n}\n\nexport default Module;\n"],"sourceRoot":""}