{"version":3,"names":[],"mappings":"","sources":["vendor/SocialShare.js"],"sourcesContent":["(function (window, document, $) {\r\n $.SocialShare = function (elem, e, shareDataSelector, shareDataElement) {\r\n\r\n var constants = {\r\n facebookAppId: \"1774608446082373\",\r\n facebookUrl: \"https://www.facebook.com/dialog/share?\",\r\n twitterUrl: \"https://twitter.com/intent/tweet?\",\r\n linkedInUrl: \"https://www.linkedin.com/shareArticle?\"\r\n };\r\n\r\n var openTab = function (url) {\r\n elem.attr(\"href\", url);\r\n elem.attr(\"target\", \"_blank\");\r\n };\r\n\r\n var popup = function (type, url) {\r\n\r\n var w, h;\r\n switch (type) {\r\n case \"twitter\":\r\n w = 550;\r\n h = 500;\r\n break;\r\n case \"facebook\":\r\n w = 670;\r\n h = 400;\r\n break;\r\n default:\r\n w = 500;\r\n h = 500;\r\n break;\r\n }\r\n var x = (screen.width / 2) - (w / 2);\r\n var y = (screen.height / 2) - (h / 2);\r\n\r\n var popupConfig = \"width=\" + w + \",height=\" + h + \",left=\" + x + \",top=\" + y + \",\";\r\n popupConfig += \"resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,directories=no,status=yes\";\r\n var newWindow = window.open(url, \"popup\", popupConfig);\r\n if (!newWindow) {\r\n console.log(\"Unable to open popup, most likely due to a popup blocker!\");\r\n openTab(url);\r\n } else {\r\n e.preventDefault();\r\n }\r\n };\r\n\r\n var urlBuilders = {\r\n 'facebook': function (shareData) {\r\n var requestData = {\r\n 'app_id': constants.facebookAppId,\r\n 'display': \"popup\",\r\n 'href': shareData.url,\r\n 'title': shareData.title,\r\n 'description': shareData.description,\r\n 'picture': shareData.media\r\n };\r\n\r\n var params = $.param(requestData);\r\n return constants.facebookUrl + params;\r\n },\r\n 'twitter': function (shareData) {\r\n var requestData = {\r\n 'text': shareData.title,\r\n 'url': shareData.url\r\n };\r\n\r\n var params = $.param(requestData);\r\n return constants.twitterUrl + params;\r\n },\r\n 'linked-in': function (shareData) {\r\n var requestData = {\r\n 'mini': \"true\",\r\n 'url': shareData.url,\r\n 'title': shareData.title,\r\n 'summary': shareData.description\r\n };\r\n\r\n var params = $.param(requestData);\r\n return constants.linkedInUrl + params;\r\n }\r\n };\r\n\r\n\r\n var getShareData = function () {\r\n var description = elem.data(\"description\");\r\n var type = elem.data(\"type\");\r\n var url = elem.data(\"url\");\r\n return {\r\n type: type,\r\n title: elem.data(\"title\"),\r\n description: description,\r\n media: elem.data(\"media\"),\r\n url: url\r\n };\r\n };\r\n\r\n var getUrlForShareData = function (shareData) {\r\n var builder = urlBuilders[shareData.type];\r\n if (!builder)\r\n return null;\r\n\r\n return builder(shareData);\r\n };\r\n\r\n function showShare(type, url, shareData) {\r\n if (type === \"print\") {\r\n e.preventDefault();\r\n window.print();\r\n return;\r\n }\r\n if (type === \"email\") {\r\n var email = {\r\n subject: shareData.title,\r\n body: encodeURI(shareData.url)\r\n };\r\n window.open(\"mailto:?subject=\" + email.subject + \"&body=\" + email.body, \"_self\");\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n popup(type, url);\r\n };\r\n\r\n function init() {\r\n var shareData = getShareData();\r\n var shareUrl = getUrlForShareData(shareData);\r\n showShare(shareData.type, shareUrl, shareData);\r\n };\r\n\r\n init();\r\n };\r\n\r\n $.fn.socialShare = function (e, shareDataSelector, shareDataElement) {\r\n\r\n if (!$.data(this, \"share-button\")) {\r\n var socialShare = new $.SocialShare(this, e, shareDataSelector, shareDataElement);\r\n this.data(\"share-button\", socialShare);\r\n }\r\n return this.data(\"share-button\");\r\n };\r\n\r\n $(function () {\r\n\r\n $(document).on('click', \".share-button\", function (e) {\r\n $(this).socialShare(e, \".share-button\");\r\n });\r\n });\r\n\r\n}(window, document, jQuery));\r\n"],"file":"vendor/SocialShare.js"}