{"version":3,"sources":["webpack:///./components/share/share.js"],"names":["Share","_classCallCheck","this","pageParams","shareUrls","facebook","twitter","google","linkedin","tumblr","gmail","email","_getPageParams","_initShareLinks","key","value","links","document","querySelectorAll","i","length","link","shareService","getAttribute","_setupPrintLink","setAttribute","_getShareLink","service","shareUrl","undefined","replace","url","title","addEventListener","event","preventDefault","window","print","metas","getElementsByTagName","encodeURIComponent","location","href"],"mappings":"60BAAA,IAMqBA,EAAK,WA0BzB,O,EArBA,SAAAA,K,4FAAcC,CAAA,KAAAD,GAEbE,KAAKC,WAAa,GAGlBD,KAAKE,UAAY,CAChBC,SAAU,qDACVC,QAAS,kDACTC,OAAQ,0CACRC,SAAU,4DACVC,OACC,uFACDC,MACC,oFACDC,MAAO,sCAGRT,KAAKU,iBACLV,KAAKW,oB,EAGN,EAAAC,IAAA,kBAAAC,MAIA,WAGC,IAFA,IAAIC,EAAQC,SAASC,iBAAiB,uBAE7BC,EAAI,EAAGA,EAAIH,EAAMI,OAAQD,IAAK,CACtC,IAAIE,EAAOL,EAAMG,GAChBG,EAAeD,EAAKE,aAAa,sBAEb,OAAjBD,IACkB,UAAjBA,EACHpB,KAAKsB,gBAAgBH,IAErBA,EAAKI,aAAa,OAAQvB,KAAKwB,cAAcJ,IACxB,UAAjBA,GACHD,EAAKI,aAAa,SAAU,eAOjC,CAAAX,IAAA,gBAAAC,MAKA,SAAcY,GACb,IAAIC,EAAW,GAUf,YARgCC,IAA5B3B,KAAKE,UAAUuB,KAKlBC,GAJAA,EAAW1B,KAAKE,UAAUuB,GAASG,QAClC,WACA5B,KAAKC,WAAW4B,MAEGD,QAAQ,aAAc5B,KAAKC,WAAW6B,QAGpDJ,IAGR,CAAAd,IAAA,kBAAAC,MAKA,SAAgBM,GACfA,EAAKY,iBAAiB,SAAS,SAAAC,GAC9BA,EAAMC,iBACNC,OAAOC,aAIT,CAAAvB,IAAA,iBAAAC,MAIA,WACC,IAAIuB,EAAQrB,SAASsB,qBAAqB,QAE1CrC,KAAKC,WAAa,GAElB,IAAK,IAAIgB,EAAI,EAAGA,EAAImB,EAAMlB,OAAQD,IACS,WAAtCmB,EAAMnB,GAAGI,aAAa,cACzBrB,KAAKC,WAAW4B,IAAMS,mBACrBF,EAAMnB,GAAGI,aAAa,aAGkB,aAAtCe,EAAMnB,GAAGI,aAAa,cACzBrB,KAAKC,WAAW6B,MAAQQ,mBACvBF,EAAMnB,GAAGI,aAAa,kBAKGM,IAAxB3B,KAAKC,WAAW4B,MACnB7B,KAAKC,WAAW4B,IAAMS,mBAAmBJ,OAAOK,SAASC,YAE5Bb,IAA1B3B,KAAKC,WAAW6B,QACnB9B,KAAKC,WAAW6B,MAAQQ,mBAAmBvB,SAASe,a,0FA3G7B","file":"partial.share.js","sourcesContent":["/**\n * Share\n * A share plugin.\n * @version 3.0.0\n * @exports Share\n */\nexport default class Share {\n\t/**\n\t * Constructor\n\t * @public\n\t */\n\tconstructor() {\n\t\t/** Object placeholder that will contain page parameters used for sharing. */\n\t\tthis.pageParams = {};\n\n\t\t/** Object containing urls for supported share services with placeholders for url (and optional title). */\n\t\tthis.shareUrls = {\n\t\t\tfacebook: 'https://www.facebook.com/sharer/sharer.php?u=[url]',\n\t\t\ttwitter: 'https://twitter.com/home?status=[title]%20[url]',\n\t\t\tgoogle: 'https://plus.google.com/share?url=[url]',\n\t\t\tlinkedin: 'https://www.linkedin.com/shareArticle?mini=true&url=[url]',\n\t\t\ttumblr:\n\t\t\t\t'https://www.tumblr.com/widgets/share/tool?canonicalUrl=[url]&url=[url]&title=[title]',\n\t\t\tgmail:\n\t\t\t\t'https://mail.google.com/mail/u/0/?view=cm&fs=1&to&su=[title]&body=[url]&ui=2&tf=1',\n\t\t\temail: 'mailto:?subject=[title]&body=[url]',\n\t\t};\n\n\t\tthis._getPageParams();\n\t\tthis._initShareLinks();\n\t}\n\n\t/**\n\t * Adds the correct sharing url for each share-link.\n\t * @private\n\t */\n\t_initShareLinks() {\n\t\tlet links = document.querySelectorAll('[data-type=\"share\"]');\n\n\t\tfor (let i = 0; i < links.length; i++) {\n\t\t\tlet link = links[i],\n\t\t\t\tshareService = link.getAttribute('data-share-service');\n\n\t\t\tif (shareService !== null) {\n\t\t\t\tif (shareService === 'print') {\n\t\t\t\t\tthis._setupPrintLink(link);\n\t\t\t\t} else {\n\t\t\t\t\tlink.setAttribute('href', this._getShareLink(shareService));\n\t\t\t\t\tif (shareService !== 'email') {\n\t\t\t\t\t\tlink.setAttribute('target', '_blank');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Returns the url for a share-service.\n\t * @param {String} service - The searvice name as a string.\n\t * @private\n\t */\n\t_getShareLink(service) {\n\t\tlet shareUrl = '';\n\n\t\tif (this.shareUrls[service] !== undefined) {\n\t\t\tshareUrl = this.shareUrls[service].replace(\n\t\t\t\t/\\[url\\]/g,\n\t\t\t\tthis.pageParams.url\n\t\t\t);\n\t\t\tshareUrl = shareUrl.replace(/\\[title\\]/g, this.pageParams.title);\n\t\t}\n\n\t\treturn shareUrl;\n\t}\n\n\t/**\n\t * Adds an onclick event to print current page.\n\t * @param {Object} link - A link as a DOM node.\n\t * @private\n\t */\n\t_setupPrintLink(link) {\n\t\tlink.addEventListener('click', event => {\n\t\t\tevent.preventDefault();\n\t\t\twindow.print();\n\t\t});\n\t}\n\n\t/**\n\t * Collects the page parameters used when sharing.\n\t * @private\n\t */\n\t_getPageParams() {\n\t\tlet metas = document.getElementsByTagName('meta');\n\n\t\tthis.pageParams = {};\n\n\t\tfor (let i = 0; i < metas.length; i++) {\n\t\t\tif (metas[i].getAttribute('property') === 'og:url') {\n\t\t\t\tthis.pageParams.url = encodeURIComponent(\n\t\t\t\t\tmetas[i].getAttribute('content')\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (metas[i].getAttribute('property') === 'og:title') {\n\t\t\t\tthis.pageParams.title = encodeURIComponent(\n\t\t\t\t\tmetas[i].getAttribute('content')\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (this.pageParams.url === undefined) {\n\t\t\tthis.pageParams.url = encodeURIComponent(window.location.href);\n\t\t}\n\t\tif (this.pageParams.title === undefined) {\n\t\t\tthis.pageParams.title = encodeURIComponent(document.title);\n\t\t}\n\t}\n}\n"],"sourceRoot":""}