{"version":3,"sources":["webpack:///./src/js/components/testimonialBanner.js"],"names":["Module","this","activeSlide","delay","el","dataset","transition","browser","dom","slides","querySelectorAll","length","setInterval","crossfade","bind","handleResize","window","addEventListener","debounce","previousSlide","gsap","to","autoAlpha","duration","set","querySelector","scale","forEach","slide","style","height","sliderHeight","Math","max","map","offsetHeight","Component"],"mappings":"yvEAIMA,E,iXAEFC,KAAKC,YAAc,EACnBD,KAAKE,MAAQF,KAAKG,GAAGC,QAAQF,OAAS,IACtCF,KAAKK,WAAa,IAClBL,KAAKM,QAAU,KAEfN,KAAKO,IAAM,CACTC,OAAQ,EAAIR,KAAKG,GAAGM,iBAAiB,gCAGnCT,KAAKO,IAAIC,OAAOE,OAAS,GAC3BC,YAAYX,KAAKY,UAAUC,KAAKb,MAAOA,KAAKE,OAG9CF,KAAKc,iB,qCAILC,OAAOC,iBACL,SACAC,YAASjB,KAAKc,aAAaD,KAAKb,MAAO,Q,kCAKzC,IAAMkB,EAAgBlB,KAAKC,cAEvBD,KAAKC,cAAgBD,KAAKO,IAAIC,OAAOE,SACvCV,KAAKC,YAAc,GAGrBkB,IAAKC,GAAGpB,KAAKO,IAAIC,OAAOU,GAAgB,CACtCG,UAAW,EACXC,SAAUtB,KAAKK,aAGjBc,IAAKC,GAAGpB,KAAKO,IAAIC,OAAOR,KAAKC,aAAc,CACzCoB,UAAW,EACXC,SAAUtB,KAAKK,aAGjBc,IAAKI,IACHvB,KAAKO,IAAIC,OAAOR,KAAKC,aAAauB,cAChC,oCAEF,CAAEC,MAAO,M,qCAKXzB,KAAKO,IAAIC,OAAOkB,SAAQ,SAAAC,GAAK,OAAKA,EAAMC,MAAMC,OAAS,QAEvD,IAAMC,EAAeC,KAAKC,IAAL,MAAAD,KAAI,EACpB/B,KAAKO,IAAIC,OAAOyB,KACjB,SAAAN,GAAK,OACHA,EAAMH,cAAc,oCAAoCU,kBAI9DlC,KAAKG,GAAGyB,MAAMC,OAAd,UAA0BC,EAA1B,MACA9B,KAAKO,IAAIC,OAAOkB,SACd,SAAAC,GAAK,OAAKA,EAAMC,MAAMC,OAAZ,UAAwBC,EAAxB,c,8BA9DKK,aAmENpC","file":"50.1ff47923c43faea07ec6.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport { gsap } from 'gsap';\r\nimport { debounce } from '../helpers';\r\n\r\nclass Module extends Component {\r\n  setupDefaults() {\r\n    this.activeSlide = 0;\r\n    this.delay = this.el.dataset.delay || 10000;\r\n    this.transition = 1.5;\r\n    this.browser = null;\r\n\r\n    this.dom = {\r\n      slides: [...this.el.querySelectorAll('.testimonial-banner__slide')]\r\n    };\r\n\r\n    if (this.dom.slides.length > 1) {\r\n      setInterval(this.crossfade.bind(this), this.delay);\r\n    }\r\n\r\n    this.handleResize();\r\n  }\r\n\r\n  addListeners() {\r\n    window.addEventListener(\r\n      'resize',\r\n      debounce(this.handleResize.bind(this), 300)\r\n    );\r\n  }\r\n\r\n  crossfade() {\r\n    const previousSlide = this.activeSlide++;\r\n\r\n    if (this.activeSlide === this.dom.slides.length) {\r\n      this.activeSlide = 0;\r\n    }\r\n\r\n    gsap.to(this.dom.slides[previousSlide], {\r\n      autoAlpha: 0,\r\n      duration: this.transition\r\n    });\r\n\r\n    gsap.to(this.dom.slides[this.activeSlide], {\r\n      autoAlpha: 1,\r\n      duration: this.transition\r\n    });\r\n\r\n    gsap.set(\r\n      this.dom.slides[this.activeSlide].querySelector(\r\n        '.testimonial-banner__slide-image'\r\n      ),\r\n      { scale: 1 }\r\n    );\r\n  }\r\n\r\n  handleResize() {\r\n    this.dom.slides.forEach(slide => (slide.style.height = null));\r\n\r\n    const sliderHeight = Math.max(\r\n      ...this.dom.slides.map(\r\n        slide =>\r\n          slide.querySelector('.testimonial-banner__slide-inner').offsetHeight\r\n      )\r\n    );\r\n\r\n    this.el.style.height = `${sliderHeight}px`;\r\n    this.dom.slides.forEach(\r\n      slide => (slide.style.height = `${sliderHeight}px`)\r\n    );\r\n  }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}