{"version":3,"file":"chunks/212e5c6647afab.js","mappings":"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","sources":["webpack:///./resources/js/components/generic/video-link.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport imkt from '../../imkt';\nimport url from '../../utils/url';\nimport Modal from '../../components/generic/modal';\n\nexport default class VideoLink {\n  sources = {\n    youtube: function () {\n      var srcUrl = \"https://www.youtube.com/embed/\" + this.params.videoId,\n        videoParams = {\n          autoplay: this.params.autoplay,\n          modestbranding: this.params.modestbranding,\n          enablejsapi: 1,\n          rel: 0,\n        },\n        $embed = $(\"<iframe frameborder='0' allowfullscreen></iframe>\");\n\n      srcUrl = url.addUrlParams(videoParams, srcUrl);\n\n      $embed.attr(\"src\", srcUrl).addClass(\"youtube video video-tracking\");\n      return $embed;\n    },\n    vimeo: function () {\n      var srcUrl = \"//player.vimeo.com/video/\" + this.params.videoId,\n        videoParams = {\n          autoplay: this.params.autoplay,\n          title: 0,\n          portrait: 0,\n          byline: 0,\n        },\n        $embed = $(\"<iframe frameborder='0' allowfullscreen></iframe>\");\n\n      srcUrl = url.addUrlParams(videoParams, srcUrl);\n\n      $embed.attr(\"src\", srcUrl).addClass(\"vimeo video\");\n\n      return $embed;\n    },\n  };\n\n  behaviors = {\n    overlaySection: function () {\n      if (!this.modal) {\n        this.modal = new Modal({\n          modalType: \"video\",\n          fixed: false,\n          centerVertically: false,\n          modalContainer: this.domRoot.closest(\"section, .container-fluid\"),\n          id: this.params.videoId,\n        });\n\n        this.bindModalEvents();\n\n        this.$videoPlayer = this.getVideoEmbed();\n        this.modal.$modalContent.html(this.$videoPlayer);\n        this.modal.$overlay\n          .on(\"modal.place\", $.proxy(this.placeSectionVideo, this))\n          .on(\n            \"modal.show\",\n            $.proxy(function () {\n              this.modal.params.modalContainer.addClass(\"modal-video\");\n            }, this)\n          )\n          .on(\n            \"modal.hide\",\n            $.proxy(function () {\n              this.modal.params.modalContainer.removeClass(\"modal-video\");\n            }, this)\n          );\n      }\n      this.modal.show();\n      this.modal.place();\n    },\n    modal: function () {\n      if (!this.modal) {\n        this.modal = new Modal({\n          modalType: \"video\",\n        });\n\n        this.bindModalEvents();\n\n        this.$videoPlayer = this.getVideoEmbed();\n        this.modal.$modalContent.html(this.$videoPlayer);\n        this.modal.$overlay.on(\n          \"modal.place\",\n          $.proxy(this.placeModalVideo, this)\n        );\n      }\n      this.modal.show();\n      this.modal.place();\n    },\n  };\n  domRoot: JQuery<HTMLElement>;\n  params: any;\n  $videoPlayer: any;\n  modal: any;\n\n  constructor(domRoot: HTMLElement, params: any) {\n    this.domRoot = $(domRoot);\n    this.params = {\n      // define default params here\n      autoplay: 1,\n      modestbranding: 1,\n      rel: 0,\n      aspectRatio: 16 / 9,\n      addPlayButton: false,\n      buttonSize: \"medium\",\n      ...params,\n    };\n    this.init();\n  }\n\n  init() {\n    if (!imkt.core.is.mobile()) {\n      this.domRoot.on(\"click\", $.proxy(this.onclick, this));\n    }\n  }\n\n  onclick(e) {\n    if (\n      this.params.behavior &&\n      this.behaviors.hasOwnProperty(this.params.behavior)\n    ) {\n      e.preventDefault();\n      this.behaviors[this.params.behavior].call(this);\n    }\n  }\n\n  getVideoEmbed() {\n    if (this.params.source && this.sources.hasOwnProperty(this.params.source)) {\n      return this.sources[this.params.source].call(this);\n    }\n  }\n\n  getVideoDimensions($container) {\n    var r = {\n      height: null,\n      width: null,\n    };\n\n    if (\n      $container.outerWidth() / $container.outerHeight() >\n      this.params.aspectRatio\n    ) {\n      r.top = 0;\n      r.height = Math.round($container.outerHeight());\n      r.width = Math.round(r.height * this.params.aspectRatio);\n    } else {\n      r.width = Math.round($container.outerWidth());\n      r.height = Math.round(r.width / this.params.aspectRatio);\n      r.top = Math.round(($container.outerHeight() - r.height) / 2);\n    }\n\n    return r;\n  }\n\n  pauseVideo() {\n    if (this.params.source === \"youtube\") {\n      this.issueYoutubeCommand(\"pauseVideo\");\n      // ID for Optimizely\n      this.$videoPlayer.removeAttr(\"id\");\n    } else if (this.params.source === \"vimeo\") {\n      this.issueVimeoCommand(\"pause\");\n    }\n  }\n\n  playVideo() {\n    if (this.params.source === \"youtube\") {\n      this.issueYoutubeCommand(\"playVideo\");\n      // ID for Optimizely\n      this.$videoPlayer.attr(\"id\", \"youtube-video-active\");\n    } else if (this.params.source === \"vimeo\") {\n      this.issueVimeoCommand(\"play\");\n    }\n  }\n\n  issueYoutubeCommand(command) {\n    var iframe;\n    if (this.$videoPlayer && this.$videoPlayer.length) {\n      iframe = this.$videoPlayer[0].contentWindow;\n      iframe.postMessage(\n        '{\"event\":\"command\",\"func\":\"' + command + '\",\"args\":\"\"}',\n        \"*\"\n      );\n    }\n  }\n\n  issueVimeoCommand(command) {\n    var iframe;\n    if (this.$videoPlayer && this.$videoPlayer.length) {\n      iframe = this.$videoPlayer[0].contentWindow;\n      iframe.postMessage('{\"method\":\"' + command + '\",\"value\":\"\"}', \"*\");\n    }\n  }\n\n  placeVideo(width, height, top, additionalClasses) {\n    this.$videoPlayer\n      .css({\n        width: width,\n        height: height,\n      })\n      .addClass(additionalClasses);\n\n    this.modal.$modal.css({\n      top: top,\n    });\n  }\n\n  placeSectionVideo() {\n    if (this.modal.$overlay) {\n      var videoDimensions = this.getVideoDimensions(this.modal.$overlay);\n      this.placeVideo(\n        videoDimensions.width,\n        videoDimensions.height,\n        Math.max(0, videoDimensions.top)\n      );\n    }\n  }\n\n  placeModalVideo() {\n    if (this.modal.$modal) {\n      var videoWidth = this.modal.$modal.width();\n      this.placeVideo(videoWidth, videoWidth / this.params.aspectRatio);\n      this.modal.centerModal();\n    }\n  }\n\n  bindModalEvents() {\n    this.modal.$overlay\n      .on(\"modal.shown\", $.proxy(this.playVideo, this))\n      .on(\"modal.hide\", $.proxy(this.pauseVideo, this));\n  }\n}\n"],"names":["VideoLink","domRoot","params","_classCallCheck","_defineProperty","youtube","srcUrl","this","videoId","videoParams","autoplay","modestbranding","enablejsapi","rel","$embed","$","url","attr","addClass","vimeo","title","portrait","byline","overlaySection","modal","Modal","modalType","fixed","centerVertically","modalContainer","closest","id","bindModalEvents","$videoPlayer","getVideoEmbed","$modalContent","html","$overlay","on","placeSectionVideo","removeClass","show","place","placeModalVideo","_objectSpread","aspectRatio","addPlayButton","buttonSize","init","key","value","imkt","onclick","e","behavior","behaviors","hasOwnProperty","preventDefault","call","source","sources","$container","r","height","width","outerWidth","outerHeight","top","Math","round","issueYoutubeCommand","removeAttr","issueVimeoCommand","command","length","contentWindow","postMessage","additionalClasses","css","$modal","videoDimensions","getVideoDimensions","placeVideo","max","videoWidth","centerModal","playVideo","pauseVideo"],"sourceRoot":""}