{"version":3,"sources":["webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/platforms/youtube.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/platforms/vimeo.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/platforms/native.js","webpack:///./cartridges/app_designholding/cartridge/client/default/js/components/video/platforms/index.js"],"names":["YoutubeVideo","constructor","options","playerOptions","videoId","host","playerVars","start","videoTime","modestbranding","showinfo","controls","videoControls","rel","origin","window","location","href","loop","videoLoop","autoplay","videoAutoplay","mute","videoMuted","playlist","playsinline","videoPlaysinline","events","onReady","bind","onStateChange","Cookies","cookieIsValid","cookieName","advertising","init","YT","loadAPI","checkAPIReady","tag","document","createElement","src","firstScriptTag","getElementsByTagName","parentNode","insertBefore","initPlayer","youtubeIsReady","videoInterval","clearInterval","player","Player","onYouTubeIframeAPIReady","setInterval","Events","$trigger","data","instanceId","event","play","playVideo","pause","pauseVideo","replay","stopVideo","unMute","setVolume","value","VimeoVideo","then","default","bindEvents","id","videoAutopause","autopause","muted","title","portrait","color","dnt","ready","initialPlay","setStartTime","on","off","unload","seconds","setCurrentTime","catch","console","error","NativeVideo","parseSources","sourceData","getClosestVideoSource","sources","_addMediaSources","videoClosedcaptions","_addClosedCaptions","setAttribute","appendChild","addEventListener","currentTime","JSON","parse","videoSources","e","source","forEach","type","url","closedcaptions","cc","kind","label","srclang","lang","removeAttribute","volume","windowWidth","innerWidth","closestSource","map","el","Math","abs","size"],"mappings":"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","file":"js/Video-Platforms.js","sourcesContent":["import Cookies from '@components/cookies'\nimport Events from '@utilities/events'\n\n/**\n *\n * States\n * -1: 'unstarted'\n *  0: 'ended'\n *  1: 'playing'\n *  2: 'paused'\n *  3: 'buffering'\n *  5: 'video cued'\n */\nclass YoutubeVideo {\n  constructor(options) {\n    this.options = options\n\n    this.playerOptions = {\n      videoId: this.options.videoId,\n      host: 'https://www.youtube-nocookie.com',\n      playerVars: {\n        start: this.options.videoTime,\n        modestbranding: 1,\n        showinfo: 0,\n        controls: this.options.videoControls || 0,\n        rel: 0,\n        origin: window.location.href,\n        loop: this.options.videoLoop,\n        autoplay: this.options.videoAutoplay,\n        mute: this.options.videoMuted,\n        playlist: this.options.videoLoop ? this.options.videoId : false,\n        playsinline: this.options.videoAutoplay || this.options.videoPlaysinline ? 1 : 0,\n      },\n      events: {\n        onReady: this.onReady.bind(this),\n        onStateChange: this.onStateChange.bind(this),\n      },\n    }\n\n    if (Cookies.cookieIsValid(Cookies.cookieName.advertising)) {\n      this.playerOptions.host = 'https://www.youtube.com'\n    }\n\n    this.init()\n  }\n\n  init() {\n    // @ts-ignore\n    if (!window.YT) {\n      YoutubeVideo.loadAPI()\n      this.checkAPIReady()\n      return\n    }\n\n    this.checkAPIReady()\n  }\n\n  static loadAPI() {\n    // This code loads the IFrame Player API code asynchronously.\n    const tag = document.createElement('script')\n    tag.src = 'https://www.youtube.com/iframe_api'\n    const firstScriptTag = document.getElementsByTagName('script')[0]\n    // @ts-ignore\n    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag)\n  }\n\n  initPlayer() {\n    // @ts-ignore\n    window.youtubeIsReady = true\n    if (this.videoInterval) clearInterval(this.videoInterval)\n    // @ts-ignore\n    this.player = new window.YT.Player(this.options.player, this.playerOptions)\n  }\n\n  checkAPIReady() {\n    // @ts-ignore\n    window.onYouTubeIframeAPIReady = () => this.initPlayer()\n\n    this.videoInterval = setInterval(() => {\n      // @ts-ignore\n      if (window.youtubeIsReady) {\n        this.initPlayer()\n        if(this.videoInterval) clearInterval(this.videoInterval)\n      }\n    }, 200)\n  }\n\n  onReady() {\n    Events.$trigger('video::ready', { data: this.options })\n    Events.$trigger(`video[${this.options.instanceId}]::ready`, {\n      data: this.options,\n    })\n\n    Events.$trigger('video::bind-player-events', { data: this.options })\n  }\n\n  onStateChange(event) {\n    switch (event.data) {\n      // finished\n      case 0:\n        Events.$trigger('video::ended', { data: this.options })\n        Events.$trigger(`video[${this.options.instanceId}]::ended`, {\n          data: this.options,\n        })\n        break\n\n      // playing\n      case 1:\n        Events.$trigger('video::playing', { data: this.options })\n        Events.$trigger(`video[${this.options.instanceId}]::playing`, {\n          data: this.options,\n        })\n        break\n\n      // paused\n      case 2:\n        Events.$trigger('video::paused', { data: this.options })\n        Events.$trigger(`video[${this.options.instanceId}]::paused`, {\n          data: this.options,\n        })\n        break\n\n      // do nothing\n      default:\n        break\n    }\n  }\n\n  play() {\n    this.player.playVideo()\n  }\n\n  pause() {\n    this.player.pauseVideo()\n  }\n\n  replay() {\n    this.player.stopVideo()\n    this.player.playVideo()\n  }\n\n  mute() {\n    this.player.mute()\n  }\n\n  unMute() {\n    this.player.unMute()\n  }\n\n  setVolume(value) {\n    this.player.setVolume(value)\n  }\n}\n\nexport default YoutubeVideo\n","import Cookies from '@components/cookies'\nimport Events from '@utilities/events'\n\nclass VimeoVideo {\n  constructor(options) {\n    this.options = options\n\n    import(/* webpackChunkName: \"js/Vimeo-Player\" */ '@vimeo/player').then((Player) => {\n      this.initPlayer(Player.default)\n      this.bindEvents()\n    })\n  }\n\n  initPlayer(Player) {\n    const {\n      videoId: id,\n      videoAutoplay: autoplay,\n      videoAutopause: autopause,\n      videoLoop: loop,\n      videoPlaysinline: playsinline,\n      videoMuted: muted,\n      videoControls: controls,\n    } = this.options\n\n    this.player = new Player(this.options.player, {\n      id,\n      title: false,\n      portrait: false,\n      autoplay,\n      autopause,\n      color: 'ffffff',\n      loop,\n      dnt: !Cookies.cookieIsValid(Cookies.cookieName.advertising),\n      playsinline: autoplay ? true : playsinline,\n      muted: autoplay ? true : muted,\n      controls,\n    })\n  }\n\n  bindEvents() {\n    Events.$trigger('video::bind-player-events', { data: this.options })\n\n    this.player.ready().then(() => {\n      if (this.options.videoTime && !this.initialPlay) {\n        this.setStartTime(this.options.videoTime)\n      }\n\n      Events.$trigger('video::ready', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::ready`, {\n        data: this.options,\n      })\n    })\n\n    // Workaround on iOS where the play event would not be triggered on autoplay - https://github.com/vimeo/player.js/issues/315\n    if (this.options.videoAutoplay) {\n      this.player.on('timeupdate', () => {\n        this.player.off('timeupdate')\n        Events.$trigger('video::playing', { data: this.options })\n        Events.$trigger(`video[${this.options.instanceId}]::playing`, { data: this.options })\n      })\n    }\n\n    this.player.on('play', () => {\n      this.player.off('timeupdate') // Remove timeupdate event listener on play.\n      Events.$trigger('video::playing', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::playing`, {\n        data: this.options,\n      })\n    })\n\n    this.player.on('pause', () => {\n      Events.$trigger('video::paused', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::paused`, {\n        data: this.options,\n      })\n    })\n\n    this.player.on('ended', () => {\n      Events.$trigger('video::ended', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::ended`, {\n        data: this.options,\n      })\n    })\n  }\n\n  play() {\n    this.player.play()\n  }\n\n  pause() {\n    this.player.pause()\n  }\n\n  replay() {\n    this.player.unload()\n    this.player.play()\n  }\n\n  mute() {\n    this.player.setVolume(0)\n  }\n\n  unMute() {\n    this.player.setVolume(1)\n  }\n\n  setVolume(value) {\n    this.player.setVolume(value)\n  }\n\n  setStartTime(seconds) {\n    this.player\n      .setCurrentTime(seconds)\n      .then(() => {\n        this.initialPlay = true\n      })\n      .catch(() => {\n        this.initialPlay = false\n        console.error('Unable to set start time for video', this.options.id)\n      })\n  }\n}\n\nexport default VimeoVideo\n","/**\n *  @shelf-version: 1.0.0\n */\n\nimport Events from '@utilities/events'\n\nclass NativeVideo {\n  constructor(options) {\n    this.options = options\n\n    if (this.parseSources()) {\n      this.initPlayer()\n      this.bindEvents()\n    }\n  }\n\n  /**\n   * Init the player instance\n   */\n  initPlayer() {\n    this.sourceData = getClosestVideoSource(this.sources)\n    this.player = document.createElement('video')\n\n    this._addMediaSources()\n\n    if (this.options.videoClosedcaptions) {\n      this._addClosedCaptions()\n    }\n\n    if (this.options.videoControls) {\n      this.player.setAttribute('controls', 'controls')\n    }\n\n    if (this.options.videoLoop) {\n      this.player.setAttribute('loop', 'loop')\n    }\n\n    if (this.options.videoPlaysinline) {\n      // For mobile autoplay\n      this.player.setAttribute('playsinline', 'playsinline')\n    }\n\n    if (this.options.videoAutoplay) {\n      this.player.setAttribute('autoplay', 'autoplay')\n\n      // For mobile autoplay\n      this.player.setAttribute('playsinline', 'playsinline')\n    }\n\n    if (this.options.videoMuted) {\n      this.player.setAttribute('muted', 'muted')\n      this.player.muted = true\n    }\n\n    this.options.player.appendChild(this.player)\n  }\n\n  /**\n   * Bind events\n   */\n  bindEvents() {\n    Events.$trigger('video::bind-player-events', { data: this.options })\n\n    this.player.addEventListener('loadedmetadata', () => {\n      if (this.options.videoTime) this.player.currentTime = this.options.videoTime\n      if (this.options.videoControls) this.player.controls = false\n\n      Events.$trigger('video::ready', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::ready`, {\n        data: this.options,\n      })\n    })\n\n    this.player.addEventListener('playing', () => {\n      if (this.options.videoControls) this.player.controls = true\n\n      Events.$trigger('video::playing', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::playing`, {\n        data: this.options,\n      })\n    })\n\n    this.player.addEventListener('pause', () => {\n      if (this.options.videoControls) this.player.controls = false\n\n      Events.$trigger('video::paused', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::paused`, {\n        data: this.options,\n      })\n    })\n\n    this.player.addEventListener('ended', () => {\n      Events.$trigger('video::ended', { data: this.options })\n      Events.$trigger(`video[${this.options.instanceId}]::ended`, {\n        data: this.options,\n      })\n    })\n  }\n\n  parseSources() {\n    try {\n      this.sources = JSON.parse(this.options.videoSources)\n      if (typeof this.sources === 'object') {\n        return true\n      }\n\n      return false\n    } catch (e) {\n      console.error('Failed to parse sources. Are you sure this is an object?')\n      return false\n    }\n  }\n\n  _addMediaSources() {\n    this.sourceData.source.forEach(source => {\n      this.source = document.createElement('source')\n      this.source.type = source.type\n      this.source.src = source.url\n      this.player.appendChild(this.source)\n    })\n  }\n\n  _addClosedCaptions() {\n    try {\n      this.closedcaptions = JSON.parse(this.options.videoClosedcaptions)\n\n      this.closedcaptions.forEach(cc => {\n        this.cc = document.createElement('track')\n        this.cc.src = cc.url\n        this.cc.kind = 'subtitles'\n        this.cc.label = cc.label\n        this.cc.srclang = cc.lang\n        this.player.appendChild(this.cc)\n      })\n    } catch (e) {\n      console.error('Failed to parse closed captions. Are you sure this is an object?')\n    }\n  }\n\n  /**\n   * Bind generic play event\n   */\n  play() {\n    this.player.play()\n  }\n\n  /**\n   * Bind generic pause event\n   */\n  pause() {\n    this.player.pause()\n  }\n\n  /**\n   * Bind generic replay event\n   */\n  replay() {\n    this.player.currentTime = 0\n    this.player.play()\n  }\n\n  /**\n   * Bind generic mute event\n   */\n  mute() {\n    this.player.setAttribute('muted', 'muted')\n    this.player.muted = true\n  }\n\n  /**\n   * Bind generic unmute event\n   */\n  unMute() {\n    this.player.muted = false\n    this.player.removeAttribute('muted')\n  }\n\n  /**\n   * Bind generic setVolume event\n   */\n  setVolume(value) {\n    this.player.volume = value\n  }\n}\n\nfunction getClosestVideoSource(sources) {\n  const windowWidth = window.innerWidth\n  let closestSource = null\n\n  try {\n    sources.map(el => {\n      if (\n        closestSource == null ||\n        Math.abs(el.size - windowWidth) < Math.abs(closestSource.size - windowWidth)\n      ) {\n        closestSource = el\n      }\n    })\n\n    return closestSource\n  } catch (e) {\n    console.error('Failed to find closest source. Are you sure this is an object?')\n    return closestSource\n  }\n}\n\nexport default NativeVideo\n","import Youtube from './youtube'\nimport Vimeo from './vimeo'\nimport Native from './native'\n\nexport { Youtube, Vimeo, Native }\n"],"sourceRoot":""}