{"version":3,"sources":["webpack:///./src/js/components/scurveCard.js"],"names":["gsap","registerPlugin","ScrollTrigger","Module","this","dom","videoTrigger","el","querySelector","localVideo","vimeoVideo","vimeoPlayer","Vimeo","Player","controls","initShapeAnimation","addEventListener","handleVideoClick","bind","e","key","which","keyCode","RETURN","SPACE","preventDefault","handleVideoPlay","handleVideoPause","handleVideoEnd","playing","play","url","encodeURI","element","src","URLSearchParams","split","get","vimeoPlayerAddControls","getPaused","pause","destroy","then","classList","add","on","setAttribute","remove","removeAttribute","currentTime","load","Component"],"mappings":"uoDAKAA,IAAKC,eAAeC,K,IAEdC,E,qXAEFC,KAAKC,IAAM,CACTC,aAAcF,KAAKG,GAAGC,cACpB,8DAEFC,WAAYL,KAAKG,GAAGC,cAAc,qCAClCE,WAAYN,KAAKG,GAAGC,cAClB,gDAIAJ,KAAKC,IAAIK,aACXN,KAAKO,YAAc,IAAIC,MAAMC,OAAOT,KAAKC,IAAIK,WAAY,CACvDI,UAAU,KAIdV,KAAKW,uB,qCAGQ,WACTX,KAAKC,IAAIC,eACXF,KAAKC,IAAIC,aAAaU,iBACpB,QACAZ,KAAKa,iBAAiBC,KAAKd,OAE7BA,KAAKC,IAAIC,aAAaU,iBAAiB,YAAY,SAAAG,GACjD,IAAMC,EAAMD,EAAEE,OAASF,EAAEG,QAErBF,IAAQE,IAAQC,QAAUH,IAAQE,IAAQE,QAC5CL,EAAEM,iBACF,EAAKR,iBAAiB,QAKxBb,KAAKC,IAAII,aACXL,KAAKC,IAAII,WAAWO,iBAClB,OACAZ,KAAKsB,gBAAgBR,KAAKd,OAE5BA,KAAKC,IAAII,WAAWO,iBAClB,QACAZ,KAAKuB,iBAAiBT,KAAKd,OAE7BA,KAAKC,IAAII,WAAWO,iBAClB,QACAZ,KAAKwB,eAAeV,KAAKd,U,iKAQzBA,KAAKC,IAAII,W,gBACNL,KAAKC,IAAII,WAAWoB,SACvBzB,KAAKC,IAAII,WAAWqB,O,2BAEb1B,KAAKO,Y,oBACRoB,EAAMC,UAAU5B,KAAKO,YAAYsB,QAAQC,KAGhB,MAFhB,IAAIC,gBAAgBJ,EAAIK,MAAM,KAAK,IAEvCC,IAAI,Y,iBACbjC,KAAKkC,yB,yCAEkBlC,KAAKO,YAAY4B,Y,eAMtCnC,KAAKO,YAAYmB,OAFjB1B,KAAKO,YAAY6B,Q,4TAQA,WACvBpC,KAAKO,YAAY8B,UAAUC,MAAK,WAC9B,EAAKrC,IAAIC,aAAaqC,UAAUC,IAC9B,0CAEF,EAAKjC,YAAc,IAAIC,MAAMC,OAAO,EAAKR,IAAIK,WAAY,CACvDI,UAAU,IAEZ,EAAKH,YAAYmB,OACjB,EAAKnB,YAAYkC,GAAG,OAAQ,EAAKnB,gBAAgBR,KAAK,IACtD,EAAKP,YAAYkC,GAAG,QAAS,EAAKlB,iBAAiBT,KAAK,IACxD,EAAKP,YAAYkC,GAAG,QAAS,EAAKjB,eAAeV,KAAK,S,wCAKxDd,KAAKC,IAAIC,aAAaqC,UAAUC,IAAI,wCACpCxC,KAAKC,IAAII,YACPL,KAAKC,IAAII,WAAWqC,aAAa,WAAY,c,yCAI/C1C,KAAKC,IAAIC,aAAaqC,UAAUI,OAC9B,wCAEF3C,KAAKC,IAAII,YACPL,KAAKC,IAAII,WAAWuC,gBAAgB,WAAY,c,uCAIlD5C,KAAKC,IAAIC,aAAaqC,UAAUI,OAC9B,wCAGE3C,KAAKC,IAAII,aACXL,KAAKC,IAAII,WAAWwC,YAAc,EAClC7C,KAAKC,IAAII,WAAWyC,OACpB9C,KAAKC,IAAII,WAAWuC,gBAAgB,WAAY,kB,8BApHjCG,aAyHNhD","file":"48.b97dace242b77ddf1e83.js","sourcesContent":["import { Component } from '@verndale/core';\r\nimport { gsap } from 'gsap';\r\nimport ScrollTrigger from 'gsap/ScrollTrigger';\r\nimport { keyCode } from '../helpers';\r\n\r\ngsap.registerPlugin(ScrollTrigger);\r\n\r\nclass Module extends Component {\r\n  setupDefaults() {\r\n    this.dom = {\r\n      videoTrigger: this.el.querySelector(\r\n        '.s-curve-card__media--video .s-curve-card__media-container'\r\n      ),\r\n      localVideo: this.el.querySelector('.s-curve-card__media--video video'),\r\n      vimeoVideo: this.el.querySelector(\r\n        '.s-curve-card__media--video [data-vimeo-id]'\r\n      )\r\n    };\r\n\r\n    if (this.dom.vimeoVideo) {\r\n      this.vimeoPlayer = new Vimeo.Player(this.dom.vimeoVideo, {\r\n        controls: false\r\n      });\r\n    }\r\n\r\n    this.initShapeAnimation();\r\n  }\r\n\r\n  addListeners() {\r\n    if (this.dom.videoTrigger) {\r\n      this.dom.videoTrigger.addEventListener(\r\n        'click',\r\n        this.handleVideoClick.bind(this)\r\n      );\r\n      this.dom.videoTrigger.addEventListener('keypress', e => {\r\n        const key = e.which || e.keyCode;\r\n\r\n        if (key === keyCode.RETURN || key === keyCode.SPACE) {\r\n          e.preventDefault();\r\n          this.handleVideoClick(this);\r\n        }\r\n      });\r\n    }\r\n\r\n    if (this.dom.localVideo) {\r\n      this.dom.localVideo.addEventListener(\r\n        'play',\r\n        this.handleVideoPlay.bind(this)\r\n      );\r\n      this.dom.localVideo.addEventListener(\r\n        'pause',\r\n        this.handleVideoPause.bind(this)\r\n      );\r\n      this.dom.localVideo.addEventListener(\r\n        'ended',\r\n        this.handleVideoEnd.bind(this)\r\n      );\r\n    }\r\n  }\r\n\r\n  async handleVideoClick() {\r\n    let isPlaying;\r\n\r\n    if (this.dom.localVideo) {\r\n      if (!this.dom.localVideo.playing) {\r\n        this.dom.localVideo.play();\r\n      }\r\n    } else if (this.vimeoPlayer) {\r\n      const url = encodeURI(this.vimeoPlayer.element.src);\r\n      const params = new URLSearchParams(url.split('?')[1]);\r\n\r\n      if (params.get('controls') === '0') {\r\n        this.vimeoPlayerAddControls();\r\n      } else {\r\n        const isPaused = await this.vimeoPlayer.getPaused();\r\n        isPlaying = !isPaused;\r\n\r\n        if (isPlaying) {\r\n          this.vimeoPlayer.pause();\r\n        } else {\r\n          this.vimeoPlayer.play();\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  vimeoPlayerAddControls() {\r\n    this.vimeoPlayer.destroy().then(() => {\r\n      this.dom.videoTrigger.classList.add(\r\n        's-curve-card__media--vimeo-initialized'\r\n      );\r\n      this.vimeoPlayer = new Vimeo.Player(this.dom.vimeoVideo, {\r\n        controls: true\r\n      });\r\n      this.vimeoPlayer.play();\r\n      this.vimeoPlayer.on('play', this.handleVideoPlay.bind(this));\r\n      this.vimeoPlayer.on('pause', this.handleVideoPause.bind(this));\r\n      this.vimeoPlayer.on('ended', this.handleVideoEnd.bind(this));\r\n    });\r\n  }\r\n\r\n  handleVideoPlay() {\r\n    this.dom.videoTrigger.classList.add('s-curve-card__media--video-triggered');\r\n    this.dom.localVideo &&\r\n      this.dom.localVideo.setAttribute('controls', 'controls');\r\n  }\r\n\r\n  handleVideoPause() {\r\n    this.dom.videoTrigger.classList.remove(\r\n      's-curve-card__media--video-triggered'\r\n    );\r\n    this.dom.localVideo &&\r\n      this.dom.localVideo.removeAttribute('controls', 'controls');\r\n  }\r\n\r\n  handleVideoEnd() {\r\n    this.dom.videoTrigger.classList.remove(\r\n      's-curve-card__media--video-triggered'\r\n    );\r\n\r\n    if (this.dom.localVideo) {\r\n      this.dom.localVideo.currentTime = 0;\r\n      this.dom.localVideo.load();\r\n      this.dom.localVideo.removeAttribute('controls', 'controls');\r\n    }\r\n  }\r\n}\r\n\r\nexport default Module;\r\n"],"sourceRoot":""}