{"version":3,"file":"sharebar.min.js","mappings":"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","sources":["webpack://daf/./node_modules/querystring/decode.js","webpack://daf/./node_modules/querystring/encode.js","webpack://daf/./node_modules/querystring/index.js","webpack://daf/webpack/bootstrap","webpack://daf/./src/Feature/Social/code/src/scripts/social/ShareBar.js"],"sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).filter(Boolean).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\r\n * Functionality for sharing on social networks.\r\n *\r\n * @module feature/Social\r\n */\r\nimport querystring from 'querystring';\r\n\r\n/**\r\n * Enables sharing on social networks via data attributes.\r\n *\r\n * @requires querystring\r\n * @memberof module:feature/Social\r\n * @version 2.0.0\r\n * @author Rocco Janse \r\n */\r\nclass ShareBar {\r\n\r\n /**\r\n * Upgrades DOM element.\r\n * @param {DOMElement} element DOM element to upgrade.\r\n */\r\n constructor(element) {\r\n this.$element = element[0];\r\n this.$shareButtons = null;\r\n\r\n this.windowObjectReference = null;\r\n }\r\n\r\n /**\r\n * Configures after load.\r\n */\r\n init() {\r\n this.$shareButtons = Array.from(this.$element.querySelectorAll('.js-share-bar-btn'));\r\n if (this.$shareButtons.length > 0) {\r\n this.$shareButtons.forEach((button) => {\r\n let url = null;\r\n switch(button.dataset.service) {\r\n case 'facebook': {\r\n url = this.createFacebookUrl(button);\r\n break;\r\n }\r\n case 'twitter': {\r\n url = this.createTwitterUrl(button);\r\n break;\r\n }\r\n case 'linkedin': {\r\n url = this.createLinkedInUrl(button);\r\n break;\r\n }\r\n case 'googleplus':\r\n case 'google-plus': {\r\n url = this.createGooglePlusUrl(button);\r\n break;\r\n }\r\n case 'pinterest': {\r\n url = this.createPinterestUrl(button);\r\n break;\r\n }\r\n case 'vk': {\r\n url = this.createVKontakteUrl(button);\r\n break;\r\n }\r\n default: {\r\n //console.warn('[ShareBar] No service attribute set for share button: ', button);\r\n break;\r\n }\r\n }\r\n\r\n button.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n if (url) {\r\n this.openPopup(url, '_blank');\r\n return false;\r\n }\r\n }, false);\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Opens or focusses a popup window.\r\n * @param {String} url Url of page to open in popup\r\n * @param {String} title Title of window\r\n * @param {String} prop Window properties\r\n */\r\n openPopup(url, title, prop = 'width=500, height=620, resizable, scrollbars=yes, status=1, centerscreen=1, chrome=yes') {\r\n\r\n const dualScreenLeft = window.screenLeft !== undefined ? window.screenLeft : window.screenX;\r\n const dualScreenTop = window.screenTop !== undefined ? window.screenTop : window.screenY;\r\n\r\n const width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;\r\n const height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;\r\n\r\n const left = ((width / 2) - (500 / 2)) + dualScreenLeft;\r\n const top = ((height / 2) - (620 / 2)) + dualScreenTop;\r\n\r\n prop += `, top=${top}, left=${left}`;\r\n\r\n if (this.windowObjectReference === null || this.windowObjectReference.closed) {\r\n this.windowObjectReference = window.open(url, title, prop);\r\n } else {\r\n this.windowObjectReference.focus();\r\n }\r\n }\r\n\r\n createFacebookUrl(button) {\r\n const shareUrl = 'https://www.facebook.com/sharer/sharer.php';\r\n const params = {\r\n u: button.dataset.url\r\n //appid: '2142952709365629',\r\n };\r\n\r\n // https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.smashingmagazine.com%2F2019%2F05%2Ffuture-design-voice-prototypes%2F\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n\r\n createTwitterUrl(button) {\r\n const shareUrl = 'https://twitter.com/intent/tweet';\r\n const params = {\r\n text: button.dataset.title,\r\n url: button.dataset.url,\r\n related: button.dataset.url\r\n };\r\n\r\n // https://twitter.com/intent/tweet?text=This%20is%20the%20default%20share%20bar%20description&url=https%3A%2F%2Fdaf.localhost.efocus.local%2Fen%2Ftrucks%23.W6yio1jKPx8.twitter&related=\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n\r\n createGooglePlusUrl(button) {\r\n const shareUrl = 'https://plus.google.com/share';\r\n const params = {\r\n url: button.dataset.url,\r\n title: button.dataset.title,\r\n description: button.dataset.url\r\n };\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n\r\n createLinkedInUrl(button) {\r\n const shareUrl = 'https://www.linkedin.com/sharing/share-offsite';\r\n const params = {\r\n url: button.dataset.url\r\n };\r\n\r\n // https://www.linkedin.com/sharing/share-offsite/?url=https://www.smashingmagazine.com/2019/05/future-design-voice-prototypes/\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n\r\n createPinterestUrl(button) {\r\n const shareUrl = 'https://pinterest.com/pin/create/button/';\r\n const params = {\r\n description: button.dataset.title,\r\n media: button.dataset.media,\r\n url: button.dataset.url\r\n };\r\n // https://pinterest.com/pin/create/button/?url=https%3A//www.daf.com/-/media/images/daf-trucks/trucks/euro-3-5/range/daf-model-range-euro-3-5-2015142.jpg?mw=1280%26amp;hash=9E2EFF7FA62EA6EE698E66B33EF3131018C2776E&media=https%3A//www.daf.com/en&description=beschrijving\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n\r\n createVKontakteUrl(button) {\r\n const shareUrl = 'https://vk.com/share.php';\r\n const params = {\r\n display: 'widget',\r\n title: button.dataset.title,\r\n description: button.dataset.url,\r\n image: button.dataset.media,\r\n url: button.dataset.url\r\n };\r\n\r\n // https%3A%2F%2Fvk.com%2Fshare.php%3Furl%3Dhttps%253A%252F%252Fdaf.localhost.efocus.local%252Fen%252Ftrucks%2523.W6ypESJzxFI.vk%26title%3DThis%2Bis%2Bthe%2Bdefault%2Bshare%2Bbar%2Bdescription%26description%3D%26image%3Dhttps%253A%252F%252Fdaf.localhost.efocus.local%253A443%252F-%252Fmedia%252Fdaf%252Fimages%252Fnews%252Finternational-truck-of-the-year-2018-daf-new-xf-new-cf-1920.jpg&display=widget\r\n return `${shareUrl}?${querystring.stringify(params)}`;\r\n }\r\n}\r\n\r\n// register to Component Handler\r\nwindow.ComponentHandler.register({\r\n constructor: ShareBar,\r\n classAsString: 'ShareBar',\r\n cssClass: 'js-share-bar'\r\n});\r\n\r\nexport default ShareBar;"],"names":["hasOwnProperty","obj","prop","Object","prototype","call","module","exports","qs","sep","eq","options","length","regexp","split","maxKeys","len","i","kstr","vstr","k","v","x","replace","idx","indexOf","substr","decodeURIComponent","Array","isArray","push","stringifyPrimitive","isFinite","name","undefined","keys","map","ks","encodeURIComponent","join","filter","Boolean","decode","parse","encode","stringify","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","window","ComponentHandler","register","constructor","element","this","$element","$shareButtons","windowObjectReference","init","from","querySelectorAll","forEach","button","url","dataset","service","createFacebookUrl","createTwitterUrl","createLinkedInUrl","createGooglePlusUrl","createPinterestUrl","createVKontakteUrl","addEventListener","e","preventDefault","openPopup","title","dualScreenLeft","screenLeft","screenX","dualScreenTop","screenTop","screenY","width","innerWidth","document","documentElement","clientWidth","screen","innerHeight","clientHeight","height","closed","open","focus","params","u","querystring","text","related","description","media","display","image","classAsString","cssClass"],"sourceRoot":""}