{"version":3,"sources":["jsdelivr-header.js","/npm/videojs-social-share-overlay@0.0.11/dist/videojs-social-share-overlay.cjs.js"],"names":[],"mappings":"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","file":"/npm/videojs-social-share-overlay@0.0.11/dist/videojs-social-share-overlay.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/videojs-social-share-overlay@0.0.11/dist/videojs-social-share-overlay.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar videojs = _interopDefault(require('video.js'));\n\nvar version = \"0.0.11\";\n\nvar classCallCheck = function (instance, Constructor) {\n  if (!(instance instanceof Constructor)) {\n    throw new TypeError(\"Cannot call a class as a function\");\n  }\n};\n\n// Default options for the plugin.\nvar defaults = {};\n\n// Cross-compatibility for Video.js 5 and 6.\nvar registerPlugin = videojs.registerPlugin || videojs.plugin;\n// const dom = videojs.dom || videojs;\n\n/**\n * Function to invoke when the player is ready.\n *\n * This is a great place for your plugin to initialize itself. When this\n * function is called, the player will have its DOM and child components\n * in place.\n *\n * @function onPlayerReady\n * @param    {Player} player\n *           A Video.js player object.\n *\n * @param    {Object} [options={}]\n *           A plain object containing options for the plugin.\n */\nvar onPlayerReady = function onPlayerReady(player, options) {\n  player.addClass('vjs-social-share-overlay');\n  player.socialShareOverlay = new SocialShareOverlayPlugin(player, options);\n};\n\n/**\n * A video.js plugin.\n *\n * In the plugin function, the value of `this` is a video.js `Player`\n * instance. You cannot rely on the player being in a \"ready\" state here,\n * depending on how the plugin is invoked. This may or may not be important\n * to you; if not, remove the wait for \"ready\"!\n *\n * @function socialShareOverlay\n * @param    {Object} [options={}]\n *           An object of options left to the plugin author to define.\n */\nvar socialShareOverlay = function socialShareOverlay(options) {\n  var _this = this;\n\n  this.ready(function () {\n    onPlayerReady(_this, videojs.mergeOptions(defaults, options));\n  });\n};\n\nvar SocialShareOverlayPlugin = function () {\n  function SocialShareOverlayPlugin(player, options) {\n    classCallCheck(this, SocialShareOverlayPlugin);\n\n    this.player = player;\n    this.options = options;\n    this.createShareButton();\n  }\n\n  SocialShareOverlayPlugin.prototype.createShareButton = function createShareButton() {\n\n    var self = this;\n    var player = this.player;\n    var videoJsButtonClass = videojs.getComponent('Button');\n    var concreteButtonClass = videojs.extend(videoJsButtonClass, {\n      constructor: function constructor() {\n        videoJsButtonClass.call(this, player, { title: player.localize('Share') });\n      },\n      handleClick: function handleClick() {\n        self.showShareOverlay();\n      }\n    });\n\n    this._socialShareButton = new concreteButtonClass();\n\n    var placementIndex = player.controlBar.children().length - 2;\n    var concreteButtonInstance = player.controlBar.addChild(this._socialShareButton, { componentClass: 'socialShare' }, placementIndex);\n    concreteButtonInstance.addClass('vjs-social-share');\n    concreteButtonInstance.addClass('vjs-icon-share');\n    if (!this.options.url) {\n      concreteButtonInstance.addClass('vjs-hidden');\n    }\n\n    if (!this.shareOverlayEl) {\n      this.createOverlayEl();\n    }\n    this.populateShareOverlay();\n  };\n\n  SocialShareOverlayPlugin.prototype.createOverlayEl = function createOverlayEl() {\n    var _this2 = this;\n\n    var player = this.player;\n    this.shareOverlayEl = document.createElement('div');\n    this.shareOverlayEl.className += 'vjs-share-overlay';\n    this.shareOverlayEl.innerHTML = this.shareTemplate();\n    var closeButton = this.shareOverlayEl.querySelector('.vjs-share-overlay-header button');\n    closeButton.addEventListener('click', function () {\n      return _this2.hideShareOverlay();\n    });\n    this.bindShareEvents();\n    player.el().appendChild(this.shareOverlayEl);\n    this.requireClipboard();\n  };\n\n  SocialShareOverlayPlugin.prototype.bindShareEvents = function bindShareEvents() {\n    var _this3 = this;\n\n    var buttons = this.shareOverlayEl.querySelectorAll('.vjs-share-overlay-button');\n\n    var _loop = function _loop(i) {\n      var button = buttons[i];\n      var platform = button.dataset.platform;\n      button.addEventListener('click', function () {\n        return _this3.doShareAction(platform);\n      });\n    };\n\n    for (var i = 0; i < buttons.length; ++i) {\n      _loop(i);\n    }\n  };\n\n  SocialShareOverlayPlugin.prototype.doShareAction = function doShareAction(platform) {\n    var shareUrl = this.options.url || '';\n    var windowOptions = 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=300,width=600';\n    this.player.trigger('share-initiated', {\n      platform: platform,\n      url: shareUrl\n    });\n    switch (platform) {\n      case 'link':\n        var copyBtn = this.shareOverlayEl.querySelector('.copy-link');\n        copyBtn.classList.add('copied');\n        setTimeout(function () {\n          copyBtn.classList.remove('copied');\n        }, 1500);\n        break;\n      case 'facebook':\n        window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(shareUrl), windowOptions);\n        break;\n      case 'twitter':\n        window.open(this.getTwitterShareLink(this.options.title || '', shareUrl), windowOptions);\n        break;\n      case 'email':\n        window.open(this.getEmailShareLink(this.options.title || '', shareUrl), windowOptions);\n        break;\n    }\n  };\n\n  SocialShareOverlayPlugin.prototype.set = function set$$1(config) {\n    this.options = config;\n    this.populateShareOverlay();\n  };\n\n  SocialShareOverlayPlugin.prototype.populateShareOverlay = function populateShareOverlay() {\n    if (!this.shareOverlayEl) {\n      return;\n    }\n    if (!this.options.url) {\n      return this._socialShareButton.addClass('vjs-hidden');\n    }\n    this._socialShareButton.removeClass('vjs-hidden');\n    var title = this.shareOverlayEl.querySelector('.vjs-share-overlay-title');\n    var desc = this.shareOverlayEl.querySelector('.vjs-share-overlay-description');\n    var link = this.shareOverlayEl.querySelector('.vjs-share-overlay-link');\n    var buttons = this.shareOverlayEl.querySelectorAll('.vjs-share-overlay-button');\n    title.innerHTML = this.options.title || '';\n    desc.innerHTML = this.options.description || '';\n    link.innerText = this.options.url || '';\n    for (var i = 0; i < buttons.length; ++i) {\n      var button = buttons[i];\n      var _platform = button.dataset.platform;\n      if (this.options.platforms && this.options.platforms.indexOf(_platform) >= 0) {\n        // show the button\n        button.classList.remove('vjs-hidden');\n      } else {\n        // hide the button\n        button.classList.add('vjs-hidden');\n      }\n    }\n  };\n\n  SocialShareOverlayPlugin.prototype.showShareOverlay = function showShareOverlay() {\n    var height = this.player.el().offsetHeight;\n\n    this.onSharePausedState = this.player.paused();\n    this.player.pause();\n    this.player.addClass(\"vjs-social-share-overlay-open\");\n    this.player.trigger('share-overlay-open');\n\n    if (height < 280) {\n      this.player.addClass(\"vjs-social-share-overlay-minimal\");\n    }\n  };\n\n  SocialShareOverlayPlugin.prototype.hideShareOverlay = function hideShareOverlay() {\n    if (!this.onSharePausedState) {\n      this.player.play();\n    }\n    this.player.removeClass(\"vjs-social-share-overlay-open\");\n    this.player.removeClass(\"vjs-social-share-overlay-minimal\");\n    this.player.trigger('share-overlay-closed');\n  };\n\n  SocialShareOverlayPlugin.prototype.shareTemplate = function shareTemplate() {\n    return '<div class=\"vjs-share-overlay-main\">' + '<div class=\"vjs-share-overlay-controls\">' + '<h3 class=\"vjs-share-overlay-header\">' + '<span>Share Video</span>' + '<button>&times;</button>' + '</h3>' + '<div class=\"vjs-share-overlay-buttons\">' + '<button class=\"vjs-share-overlay-button copy-link\" data-platform=\"link\" data-clipboard-target=\".vjs-share-overlay-link\"></button>' + '<button class=\"vjs-share-overlay-button facebook vjs-icon-facebook\" data-platform=\"facebook\"></button>' + '<button class=\"vjs-share-overlay-button twitter vjs-icon-twitter\" data-platform=\"twitter\"></button>' + '<button class=\"vjs-share-overlay-button email vjs-icon-share\" data-platform=\"email\"></button>' + '</div>' + '<div class=\"vjs-share-overlay-link\"></div>' + '</div>' + '</div>' + '<div class=\"vjs-share-overlay-footer\">' + '<h2 class=\"vjs-share-overlay-title\"></h2>' + '<p class=\"vjs-share-overlay-description\"></p>' + '</div>';\n  };\n\n  SocialShareOverlayPlugin.prototype.requireClipboard = function requireClipboard() {\n    if (!this.clipboardInitialized) {\n      var script = document.createElement('script');\n      script.type = 'text/javascript';\n      script.src = 'https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.5.16/clipboard.min.js';\n      script.onload = this.attachClipboard;\n      document.body.appendChild(script);\n    } else {\n      this.attachClipboard();\n    }\n    this.clipboardInitialized = true;\n  };\n\n  SocialShareOverlayPlugin.prototype.attachClipboard = function attachClipboard() {\n    if (typeof Clipboard !== 'undefined') {\n      new Clipboard('.vjs-share-overlay-button.copy-link');\n    }\n  };\n\n  SocialShareOverlayPlugin.prototype.stringifyObject = function stringifyObject(obj) {\n    var str = [];\n    for (var p in obj) {\n      if (obj.hasOwnProperty(p)) {\n        str.push(encodeURIComponent(p) + \"=\" + encodeURIComponent(obj[p]));\n      }\n    }return str.join(\"&\");\n  };\n\n  SocialShareOverlayPlugin.prototype.getTwitterShareLink = function getTwitterShareLink(title, url) {\n\n    var link = 'https://twitter.com/intent/tweet?';\n\n    var params = {\n      url: url,\n      text: title\n    };\n\n    if (this.options.via) {\n      params.via = this.options.via;\n    }\n\n    return link + this.stringifyObject(params);\n  };\n\n  SocialShareOverlayPlugin.prototype.getEmailShareLink = function getEmailShareLink(title, shareLink) {\n\n    var link = 'mailto:?';\n    var body = (this.options.emailBody ? this.options.emailBody + \"\\n\\n\" : '') + title + \"\\n\\n\" + shareLink;\n    var params = {\n      subject: title,\n      body: body\n    };\n\n    return link + this.stringifyObject(params);\n  };\n\n  return SocialShareOverlayPlugin;\n}();\n\n// Register the plugin with video.js.\n\n\nregisterPlugin('socialShareOverlay', socialShareOverlay);\n\n// Include the version number.\nsocialShareOverlay.VERSION = version;\n\nmodule.exports = socialShareOverlay;\n"]}