{"version":3,"file":"likely.min.js","mappings":"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","sources":["webpack://likely/webpack/universalModuleDefinition","webpack://likely/./source/config.js","webpack://likely/./source/dom.js","webpack://likely/./source/history.js","webpack://likely/./source/likely-commonjs.js","webpack://likely/./source/likely.js","webpack://likely/./source/service.js","webpack://likely/./source/services/facebook.js","webpack://likely/./source/services/odnoklassniki.js","webpack://likely/./source/services/pinterest.js","webpack://likely/./source/services/reddit.js","webpack://likely/./source/services/vkontakte.js","webpack://likely/./source/services/index.js","webpack://likely/./source/services/linkedin.js","webpack://likely/./source/services/telegram.js","webpack://likely/./source/services/twitter.js","webpack://likely/./source/services/viber.js","webpack://likely/./source/services/whatsapp.js","webpack://likely/./source/utils.js","webpack://likely/./source/connectButtonToService.js","webpack://likely/./source/button.js","webpack://likely/./source/widget.js","webpack://likely/webpack/bootstrap","webpack://likely/webpack/runtime/define property getters","webpack://likely/webpack/runtime/global","webpack://likely/webpack/runtime/hasOwnProperty shorthand","webpack://likely/webpack/runtime/make namespace object","webpack://likely/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"likely\"] = factory();\n\telse\n\t\troot[\"likely\"] = factory();\n})(typeof self !== 'undefined' ? self : this, () => {\nreturn ","/**\n * Configuration\n */\n\nexport default {\n name: 'likely',\n prefix: 'likely__',\n};\n","import { isBrowserEnv } from './utils';\n\nconst fakeWindow = {};\n\nexport const global = isBrowserEnv ? window : fakeWindow;\n\nconst div = isBrowserEnv ? document.createElement('div') : {};\n\n/**\n * Wrap SVG coords from data object into SVG tag\n * @param {String} coords\n * @returns {String}\n */\nexport const wrapSVG = (coords) =>\n '';\n\n/**\n * Create node from HTML\n * @param {String} html\n * @returns {Node}\n */\nexport const createNode = (html) => {\n div.innerHTML = html;\n\n return div.children[0];\n};\n\n/**\n * Load JSONP script. It gets executed after the main one is finished.\n * @param {String} url\n */\nexport const loadJSONP = (url) => {\n const script = document.createElement('script');\n const head = document.head;\n\n script.type = 'text/javascript';\n script.src = url;\n\n head.appendChild(script);\n head.removeChild(script);\n};\n\n/**\n * Find first node by selector\n * @param {String} selector\n * @param {Node} [node]\n * @returns {Node}\n */\nexport const find = (selector, node) => (node || document).querySelector(selector);\n\n/**\n * Find all nodes by selector\n * @param {String} selector\n * @param {Node} [node]\n * @returns {Node[]}\n */\nexport const findAll = (selector, node) => Array.prototype.slice.call((node || document).querySelectorAll(selector));\n/**\n * Open the popup\n * @param {String} url\n * @param {String} winId\n * @param {Number} width,\n * @param {Number} height\n * @returns {Object|null}\n */\nexport const openPopup = (url, winId, width, height) => {\n const left = Math.round(screen.width / 2 - width / 2);\n let top = 0;\n\n if (screen.height > height) {\n top = Math.round(screen.height / 3 - height / 2);\n }\n\n const options = 'left=' + left +\n ',top=' + top +\n ',width=' + width +\n ',height=' + height +\n ',personalbar=0,toolbar=0,scrollbars=1,resizable=1';\n\n const win = window.open(url, winId, options);\n\n if (!win) {\n location.href = url;\n return null;\n }\n\n win.focus();\n\n return win;\n};\n","const callbacks = [];\nconst handleUrlChange = () => {\n callbacks.forEach((callback) => {\n callback();\n });\n};\n\nconst setupHistoryWatcher = () => {\n const pushState = window.history.pushState;\n window.history.pushState = function () {\n // browser should change the url first\n setTimeout(handleUrlChange, 0);\n return pushState.apply(window.history, arguments);\n };\n\n const replaceState = window.history.replaceState;\n window.history.replaceState = function () {\n // browser should change the url first\n setTimeout(handleUrlChange, 0);\n return replaceState.apply(window.history, arguments);\n };\n\n window.addEventListener('popstate', handleUrlChange);\n};\n\nlet isWatchingHistory = false;\n\n\n/**\n * Monitoring tool for catching url changes for re-initiating widged with a new url\n * @param {Function} callback\n */\nconst history = {\n onUrlChange(callback) {\n if (!isWatchingHistory) {\n setupHistoryWatcher();\n isWatchingHistory = true;\n }\n\n callbacks.push(callback);\n },\n};\n\nexport default history;\n","// This module is an entry point for CommonJS modules.\n// It’s written with CommonJS imports and exports to make possible doing `module.exports = likely`.\n// This is required so that users work with `require('likely')`, not `require('likely').default`\nconst { getBools, getDefaultUrl, mergeToNew } = require('./utils');\nconst Likely = require('./widget').default;\nconst config = require('./config').default;\nconst { findAll } = require('./dom');\nconst history = require('./history').default;\nconst services = require('./services').default;\n\n/**\n * @param {Node} node\n * @param {Object} options\n * @private\n * @returns {Likely}\n */\nconst initWidget = (node, options) => {\n const fullOptions = options || {};\n const defaults = {\n counters: true,\n timeout: 1e3,\n zeroes: false,\n title: document.title,\n url: getDefaultUrl(),\n };\n\n const realOptions = mergeToNew(defaults, fullOptions, getBools(node));\n const widget = node[config.name];\n if (widget) {\n widget.update(realOptions);\n }\n else {\n // Attaching widget to the node object for future re-initializations\n node[config.name] = new Likely(node, realOptions);\n }\n\n return widget;\n};\n\nconst likely = {\n /**\n * Initiate Likely buttons on load\n * @param {Node|Array|Object} [nodes] a particular node or an array of widgets,\n * if not specified,\n * tries to init all the widgets\n * @param {Object} [options] additional options for each widget\n */\n initiate(nodes, options) {\n let realNodes;\n let realOptions;\n\n if (Array.isArray(nodes)) {\n // An array of nodes was passed\n realNodes = nodes;\n realOptions = options;\n }\n else if (nodes instanceof Node) {\n // A single node was passed\n realNodes = [nodes];\n realOptions = options;\n }\n else {\n // Options were passed, or the function was called without arguments\n realNodes = findAll(`.${config.name}`);\n realOptions = nodes;\n }\n\n this.maintainStoredData(realOptions);\n\n initWidgets();\n history.onUrlChange(initWidgets);\n\n function initWidgets() {\n realNodes.forEach((node) => {\n initWidget(node, realOptions);\n });\n }\n },\n\n /**\n * Reset stored broadcasters if forceUpdate is requested\n * @param {Object} realOptions\n */\n maintainStoredData(realOptions) {\n if (realOptions && realOptions.forceUpdate) {\n // Object.values() is not supported by IE\n Object.keys(services).forEach((serviceName) => {\n services[serviceName].resetBroadcasters();\n });\n }\n },\n};\n\nmodule.exports = likely;\n","// This module is an entry point when `likely.js` is just dropped into the browser.\n// It’s written with CommonJS imports and exports to make possible doing `module.exports = likely`.\n// This is required so that users work with `window.likely`, not `window.likely.default`\n\nrequire('./index.styl');\nconst likely = require('./likely-commonjs.js');\n\nwindow.addEventListener('load', () => {\n likely.initiate();\n});\n\nmodule.exports = likely;\n","import { global } from './dom';\n\nfunction fetchXHR(updateBroadcaster) {\n const xhr = new XMLHttpRequest();\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n const convertedNumber = typeof this.convertNumber === 'function' ? this.convertNumber(xhr.responseText) : xhr.responseText;\n updateBroadcaster.trigger(convertedNumber);\n }\n };\n xhr.open('GET', updateBroadcaster.url, true);\n xhr.send();\n}\n\nfunction resetBroadcasters() {\n this.broadcastersByUrl = {};\n}\n\n/**\n * Set default values on service option object\n * @param {Object} options\n */\nexport default (options) => {\n // __likelyFetchMock is used for UI testing and is set on window\n // because this function is executed right when Likely is loaded.\n // There’s currently no way to do `likely.__likelyFetchMock = ...`\n // before running this method.\n options.fetch = global.__likelyFetchMock || options.fetch || fetchXHR;\n options.urlCallback = options.urlCallback || (()=>{ /* no-op */ });\n options.knownParams = options.knownParams || [];\n options.openPopup = options.openPopup === undefined ? true : options.openPopup;\n options.resetBroadcasters = resetBroadcasters;\n options.resetBroadcasters();\n};\n","/**\n * Facebook service provider\n * Share doc: https://developers.facebook.com/docs/workplace/sharing/share-dialog/\n * Counter doc: https://developers.facebook.com/docs/graph-api/reference/v8.0/engagement\n *\n * For hackers: the access token below is public, heavily restricted and doesn't allow to access anything of value\n */\n\nexport default {\n counterUrl: 'https://graph.facebook.com/?id={url}&access_token=1729830587180291|102e6d79cda2fa63b65c99c039eed12a&fields=og_object%7Bengagement%7Bcount%7D%7D',\n convertNumber: (data) => {\n const graphQlData = JSON.parse(data).og_object;\n return (graphQlData ? graphQlData.engagement.count : 0);\n },\n popupWidth: 555,\n popupHeight: 555,\n popupUrl: 'https://www.facebook.com/sharer.php?u={url}',\n knownParams: ['url', 'hashtag', 'counter'],\n svgIconPath: '16.000,8.049 C16.000,3.629 12.418,0.047 8.000,0.047 C3.582,0.047 -0.000,3.629 -0.000,8.049 C-0.000,12.043 2.925,15.353 6.750,15.953 L6.750,10.362 L4.719,10.362 L4.719,8.049 L6.750,8.049 L6.750,6.286 C6.750,4.280 7.944,3.173 9.772,3.173 C10.647,3.173 11.563,3.329 11.563,3.329 L11.563,5.298 L10.554,5.298 C9.560,5.298 9.250,5.915 9.250,6.548 L9.250,8.049 L11.469,8.049 L11.114,10.362 L9.250,10.362 L9.250,15.953 C13.075,15.353 16.000,12.043 16.000,8.049',\n};\n","import { renameKey } from '../utils';\n/**\n * Odnoklassniki service provider\n * Docs: https://apiok.ru/en/ext/like\n * https://connect.ok.ru/connect.js\n */\n\nexport default {\n counterUrl: 'https://connect.ok.ru/dk?st.cmd=extLike&tp=json&ref={url}',\n convertNumber: (json) => JSON.parse(json).count,\n urlCallback() {\n renameKey(this.widget.dataset, 'imageurl', 'imageUrl');\n },\n popupWidth: 588,\n popupHeight: 296,\n popupUrl: 'https://connect.ok.ru/offer?url={url}&title={title}',\n knownParams: ['url', 'title', 'imageurl', 'counter'],\n svgIconPath: '12.1,10.6c-0.7,0.5-1.5,0.8-2.4,1l2.3,2.3c0.5,0.5,0.5,1.2,0,1.7c-0.5,0.5-1.2,0.5-1.7,0L8,13.4l-2.3,2.3 C5.5,15.9,5.2,16,4.9,16c-0.3,0-0.6-0.1-0.9-0.4c-0.5-0.5-0.5-1.2,0-1.7l2.3-2.3c-0.8-0.2-1.7-0.5-2.4-1C3.4,10.3,3.2,9.6,3.5,9 c0.4-0.6,1.1-0.7,1.7-0.4c1.7,1.1,3.9,1.1,5.6,0c0.6-0.4,1.3-0.2,1.7,0.4C12.8,9.5,12.6,10.3,12.1,10.6z M8,8.3 c-2.3,0-4.1-1.9-4.1-4.1C3.9,1.8,5.7,0,8,0c2.3,0,4.1,1.9,4.1,4.1C12.1,6.4,10.3,8.3,8,8.3z M8,2.4c-1,0-1.7,0.8-1.7,1.7 c0,0.9,0.8,1.7,1.7,1.7c0.9,0,1.7-0.8,1.7-1.7C9.7,3.2,9,2.4,8,2.4',\n};\n","/**\n * Pinterest service provider\n * Docs: https://developers.pinterest.com/docs/widgets/save/\n * https://stackoverflow.com/questions/9951045/pinterest-api-documentation\n */\n\nexport default {\n counterUrl: 'https://api.pinterest.com/v1/urls/count.json?url={url}&callback=jsonp',\n convertNumber: (jsonpStr) => {\n const json = jsonpStr.slice(6, jsonpStr.length - 1);\n return JSON.parse(json).count;\n },\n popupUrl: 'https://pinterest.com/pin/create/button/?url={url}&description={title}',\n popupWidth: 750,\n popupHeight: 750,\n knownParams: ['url', 'title', 'media', 'counter'],\n svgIconPath: '7.99 0c-4.417 0-8 3.582-8 8 0 3.39 2.11 6.284 5.086 7.45-.07-.633-.133-1.604.028-2.295.145-.624.938-3.977.938-3.977s-.24-.48-.24-1.188c0-1.112.645-1.943 1.448-1.943.683 0 1.012.512 1.012 1.127 0 .686-.437 1.713-.663 2.664-.19.796.398 1.446 1.184 1.446 1.422 0 2.515-1.5 2.515-3.664 0-1.915-1.377-3.255-3.343-3.255-2.276 0-3.612 1.707-3.612 3.472 0 .688.265 1.425.595 1.826.065.08.075.15.055.23-.06.252-.195.796-.222.907-.035.146-.116.177-.268.107-1-.465-1.624-1.926-1.624-3.1 0-2.523 1.835-4.84 5.287-4.84 2.775 0 4.932 1.977 4.932 4.62 0 2.757-1.74 4.976-4.152 4.976-.81 0-1.573-.42-1.834-.92l-.498 1.903c-.18.695-.668 1.566-.994 2.097.75.232 1.544.357 2.37.357 4.417 0 8-3.582 8-8s-3.583-8-8-8',\n};\n","/**\n * Reddit service provider\n * Share doc: https://www.reddit.com/dev/api#POST_api_submit + https://stackoverflow.com/a/32533431\n * Counter doc: https://www.reddit.com/dev/api/#GET_search\n * Scores are in `child.data.score` and are number of up-votes minus number of down-votes for an URL submitted to Reddit\n * Displayed counter is calculated as sum of counts for the 5 most upvoted posts for this url.\n */\nexport default {\n counterUrl: 'https://www.reddit.com/search.json?q=url:{url}&sort=top&type=link&limit=5',\n convertNumber: (response) => {\n const parsedResponse = JSON.parse(response);\n let totalUpvotes = 0;\n parsedResponse.data.children.forEach((child) => {\n if (child.data && child.data.score) {\n totalUpvotes += child.data.score;\n }\n });\n return totalUpvotes;\n },\n popupUrl: 'https://reddit.com/submit?url={url}&title={title}',\n popupWidth: 785,\n popupHeight: 550,\n knownParams: ['url', 'title', 'counter'],\n svgIconPath: '15.936 8.186 C 15.936 7.227 15.159 6.45 14.2 6.45 C 13.732 6.45 13.308 6.636 12.995 6.937 C 11.808 6.08 10.173 5.527 8.352 5.464 L 9.143 1.742 L 11.727 2.291 C 11.758 2.949 12.296 3.473 12.961 3.473 C 13.646 3.473 14.202 2.918 14.202 2.233 C 14.202 1.548 13.646 0.992 12.961 0.992 C 12.474 0.992 12.057 1.276 11.854 1.685 L 8.968 1.071 C 8.888 1.054 8.804 1.069 8.735 1.114 C 8.666 1.159 8.617 1.23 8.6 1.31 L 7.717 5.462 C 5.869 5.514 4.207 6.068 3.005 6.934 C 2.693 6.634 2.271 6.45 1.804 6.45 C 0.845 6.45 0.068 7.227 0.068 8.186 C 0.068 8.892 0.489 9.498 1.094 9.769 C 1.067 9.942 1.052 10.117 1.052 10.295 C 1.052 12.966 4.162 15.132 7.998 15.132 C 11.834 15.132 14.944 12.966 14.944 10.295 C 14.944 10.118 14.929 9.944 14.903 9.773 C 15.511 9.503 15.936 8.894 15.936 8.186 Z M 4.031 9.427 C 4.031 8.743 4.588 8.186 5.272 8.186 C 5.955 8.186 6.512 8.743 6.512 9.427 C 6.512 10.11 5.955 10.667 5.272 10.667 C 4.588 10.667 4.031 10.11 4.031 9.427 Z M 10.947 12.704 C 10.101 13.549 8.478 13.615 8.001 13.615 C 7.524 13.615 5.902 13.549 5.057 12.704 C 4.931 12.578 4.931 12.375 5.057 12.249 C 5.182 12.124 5.386 12.124 5.511 12.249 C 6.045 12.783 7.186 12.972 8.001 12.972 C 8.817 12.972 9.958 12.783 10.493 12.249 C 10.619 12.124 10.822 12.124 10.947 12.249 C 11.073 12.375 11.073 12.578 10.947 12.704 Z M 10.729 10.667 C 10.045 10.667 9.488 10.11 9.488 9.427 C 9.488 8.743 10.045 8.186 10.729 8.186 C 11.413 8.186 11.969 8.743 11.969 9.427 C 11.969 10.11 11.413 10.667 10.729 10.667',\n};\n","/**\n * VK service provider\n * Doc: https://vk.com/dev/widget_share\n * (Switch to Russian language, the English docs are incomplete)\n * VK own implementation: https://vk.com/js/api/share.js\n */\n\nimport { interpolateUrl, registerGlobalCallback } from '../utils';\nimport { loadJSONP } from '../dom';\n\nconst vkontakte = {\n popupWidth: 650,\n popupHeight: 570,\n counterUrl: 'https://vk.com/share.php?act=count&url={url}&index={index}',\n fetch(broadcaster) {\n const index = Object.keys(this.broadcastersByUrl).length - 1;\n loadJSONP(interpolateUrl(broadcaster.url, { index: index }));\n },\n popupUrl: 'https://vk.com/share.php?url={url}&title={title}',\n knownParams: ['url', 'title', 'image', 'comment', 'counter'],\n svgIconPath: '8.71453 12.9837C3.24794 12.9837 0.129919 9.23611 0 3H2.73828C2.82823 7.57714 4.84693 9.51592 6.44591 9.91565V3H9.02439V6.94751C10.6034 6.77762 12.2622 4.97876 12.8218 3H15.4003C14.9705 5.43847 13.1717 7.23734 11.8925 7.97687C13.1717 8.5765 15.2205 10.1455 16 12.9837H13.1617C12.5521 11.0849 11.0331 9.61584 9.02439 9.41597V12.9837H8.71453',\n};\n\n// Script, returned by VK, calls this method with two arguments\nregisterGlobalCallback('VK.Share.count', (index, count) => {\n const broadcasters = vkontakte.broadcastersByUrl;\n broadcasters[Object.keys(broadcasters)[index]].trigger(count);\n});\n\nexport default vkontakte;\n","/**\n * Social network services aggregated together\n */\nimport Service from '../service';\n\nimport facebook from './facebook';\nimport linkedin from './linkedin';\nimport odnoklassniki from './odnoklassniki';\nimport pinterest from './pinterest';\nimport reddit from './reddit';\nimport telegram from './telegram';\nimport twitter from './twitter';\nimport viber from './viber';\nimport vkontakte from './vkontakte';\nimport whatsapp from './whatsapp';\n\nconst services = {\n facebook,\n linkedin,\n odnoklassniki,\n pinterest,\n reddit,\n telegram,\n twitter,\n viber,\n vkontakte,\n whatsapp,\n};\n\nObject.entries(services).forEach((entry) => {\n const [serviceName, serviceObj] = entry;\n Service(serviceObj);\n serviceObj.name = serviceName;\n});\n\nexport default services;\n","/**\n * LinkedIn service provider\n * Doc: https://stackoverflow.com/questions/33426752/linkedin-share-post-url\n */\n\nexport default {\n popupUrl: 'https://www.linkedin.com/sharing/share-offsite/?url={url}',\n knownParams: ['url'],\n popupWidth: 600,\n popupHeight: 500,\n svgIconPath: '13.634,13.629 L11.263,13.629 L11.263,9.919 C11.263,9.035 11.247,7.896 10.030,7.896 C8.795,7.896 8.606,8.860 8.606,9.855 L8.606,13.629 L6.234,13.629 L6.234,6.000 L8.510,6.000 L8.510,7.043 L8.542,7.043 C9.006,6.250 9.869,5.777 10.788,5.811 C13.191,5.811 13.634,7.392 13.634,9.445 L13.634,13.629 ZM3.560,4.958 C2.800,4.958 2.184,4.343 2.184,3.583 C2.183,2.824 2.799,2.209 3.559,2.208 C4.319,2.208 4.935,2.823 4.935,3.583 L4.935,3.583 C4.936,4.342 4.320,4.957 3.560,4.958 M4.746,13.629 L2.372,13.629 L2.372,6.000 L4.745,6.000 L4.746,13.629 ZM14.816,0.007 L1.181,0.007 C0.536,0.000 0.008,0.516 -0.000,1.160 L-0.000,14.839 C0.007,15.484 0.536,16.000 1.181,15.993 L14.816,15.993 C15.461,16.000 15.991,15.484 16.000,14.839 L16.000,1.160 C15.991,0.515 15.461,-0.000 14.816,0.007',\n};\n","/**\n * Telegram service provider\n * Share doc: https://core.telegram.org/widgets/share\n */\n\nexport default {\n popupUrl: 'https://telegram.me/share/url?url={url}&text={title}',\n popupWidth: 485,\n popupHeight: 355,\n knownParams: ['url', 'title'],\n svgIconPath: '1.155 7.049 C 5.43 5.188 8.281 3.962 9.708 3.369 C 13.781 1.677 14.627 1.384 15.179 1.374 C 15.3 1.372 15.571 1.402 15.747 1.544 C 15.895 1.664 15.936 1.827 15.956 1.941 C 15.975 2.055 15.999 2.314 15.98 2.517 C 15.759 4.834 14.804 10.454 14.319 13.048 C 14.113 14.146 13.708 14.514 13.316 14.55 C 12.465 14.628 11.818 13.988 10.993 13.448 C 9.702 12.603 8.973 12.077 7.72 11.252 C 6.272 10.299 7.211 9.775 8.036 8.919 C 8.252 8.695 12.004 5.286 12.077 4.977 C 12.086 4.938 12.095 4.794 12.009 4.718 C 11.923 4.642 11.797 4.668 11.705 4.689 C 11.576 4.718 9.514 6.079 5.519 8.772 C 4.934 9.174 4.404 9.369 3.929 9.359 C 3.405 9.348 2.398 9.063 1.649 8.82 C 0.731 8.522 0.001 8.364 0.064 7.858 C 0.097 7.594 0.461 7.325 1.155 7.049',\n};\n","/**\n * Twitter service provider\n * Doc: https://developer.twitter.com/en/docs/twitter-for-websites/tweet-button/guides/parameter-reference1\n * Also mentions \"related\" param, but it doesn't seem to do any anything in 2020.\n */\n\nexport default {\n popupUrl: 'https://twitter.com/intent/tweet?url={url}&text={title}',\n popupWidth: 600,\n popupHeight: 450,\n urlCallback() {\n if (!/[.?:\\-–—]\\s*$/.test(this.options.title)) {\n this.options.title += ':';\n }\n },\n knownParams: ['url', 'title', 'via', 'hashtags'],\n svgIconPath: '15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058',\n};\n","/**\n * Viber service provider\n * Doc: https://developers.viber.com/docs/tools/share-button/\n */\n\nexport default {\n popupUrl: 'viber://forward?text={url}',\n urlCallback() {\n // Treat empty title string as absent title\n if (this.options.title) {\n this.options.url = this.options.title + '\\n' + this.options.url;\n delete this.options.title;\n }\n },\n openPopup: false,\n knownParams: ['url', 'title'],\n svgIconPath: '5.24 12.7 C 5.24 12.7 5.24 13.21 5.24 13.21 C 5.24 13.21 5.21 13.61 5.21 13.61 C 5.21 13.61 5.21 15.65 5.21 15.65 C 5.21 15.65 5.21 15.81 5.21 15.81 C 5.24 15.98 5.36 16.05 5.5 15.95 C 5.63 15.87 5.91 15.54 6.02 15.41 C 6.02 15.41 7.34 13.83 7.34 13.83 C 7.34 13.83 7.74 13.35 7.74 13.35 C 7.78 13.29 7.86 13.17 7.93 13.16 C 7.93 13.16 8.27 13.16 8.27 13.16 C 8.27 13.16 9.55 13.16 9.55 13.16 C 9.55 13.16 9.84 13.13 9.84 13.13 C 10.69 13.1 11.54 12.97 12.37 12.75 C 13.36 12.49 14.01 12.3 14.74 11.5 C 15.42 10.75 15.71 9.75 15.85 8.76 C 15.85 8.76 15.95 7.64 15.95 7.64 C 15.95 7.64 15.97 7.37 15.97 7.37 C 15.97 7.37 16 6.78 16 6.78 C 16 6.78 16 6.08 16 6.08 C 16 6.08 15.97 5.57 15.97 5.57 C 15.97 5.57 15.95 5.31 15.95 5.31 C 15.92 4.88 15.86 4.47 15.78 4.05 C 15.59 3.05 15.22 2.1 14.49 1.4 C 14.18 1.1 13.65 0.86 13.26 0.7 C 12.59 0.43 11.85 0.26 11.14 0.16 C 11.14 0.16 10.18 0.05 10.18 0.05 C 10.18 0.05 9.68 0.03 9.68 0.03 C 9.68 0.03 9.16 0.03 9.16 0.03 C 9.16 0.03 8.82 0 8.82 0 C 8.82 0 8.24 0.03 8.24 0.03 C 8.24 0.03 7.98 0.03 7.98 0.03 C 7.98 0.03 7.72 0.05 7.72 0.05 C 6.73 0.12 5.75 0.29 4.82 0.67 C 4.35 0.86 3.77 1.19 3.41 1.55 C 2.51 2.48 2.2 3.83 2.07 5.09 C 2.07 5.09 2.03 5.71 2.03 5.71 C 2.03 5.71 2.03 6.16 2.03 6.16 C 2.03 6.16 2 6.57 2 6.57 C 2 6.57 2 7.45 2 7.45 C 2 7.45 2.03 7.99 2.03 7.99 C 2.03 7.99 2.1 8.74 2.1 8.74 C 2.25 9.81 2.6 10.87 3.36 11.65 C 3.59 11.89 3.89 12.11 4.17 12.27 C 4.43 12.43 4.94 12.66 5.24 12.7 Z M 8.82 1.94 C 9.21 1.88 9.98 2.02 10.36 2.15 C 11.72 2.62 12.71 3.58 13.17 4.98 C 13.35 5.53 13.41 6.11 13.44 6.67 C 13.46 7.04 13.16 7.08 13.03 6.94 C 12.95 6.84 12.97 6.71 12.97 6.59 C 12.97 6.59 12.95 6.32 12.95 6.32 C 12.89 5.58 12.69 4.84 12.29 4.21 C 11.7 3.29 10.73 2.66 9.68 2.47 C 9.68 2.47 9.18 2.41 9.18 2.41 C 9.06 2.41 8.85 2.42 8.74 2.34 C 8.62 2.24 8.63 2.02 8.82 1.94 Z M 5.79 2.45 C 6.24 2.4 6.34 2.6 6.6 2.92 C 6.9 3.29 7.09 3.56 7.34 3.97 C 7.46 4.17 7.59 4.38 7.61 4.64 C 7.62 4.72 7.6 4.8 7.58 4.88 C 7.43 5.4 6.92 5.37 6.81 5.84 C 6.75 6.1 6.99 6.58 7.12 6.81 C 7.55 7.61 8.19 8.35 9.03 8.72 C 9.23 8.81 9.6 8.99 9.81 8.94 C 10.15 8.86 10.25 8.54 10.47 8.31 C 10.6 8.18 10.75 8.13 10.93 8.12 C 11.25 8.11 11.38 8.23 11.64 8.39 C 12.05 8.65 12.36 8.89 12.74 9.2 C 12.95 9.38 13.17 9.58 13.14 9.89 C 13.12 10.16 12.94 10.43 12.78 10.64 C 12.65 10.8 12.48 11 12.32 11.13 C 12.11 11.29 11.87 11.41 11.61 11.44 C 11.45 11.45 11.24 11.37 11.09 11.32 C 10.72 11.19 10.29 10.97 9.94 10.79 C 8.96 10.29 8.03 9.67 7.22 8.9 C 7.22 8.9 7.02 8.71 7.02 8.71 C 6.15 7.79 5.5 6.74 4.95 5.6 C 4.78 5.26 4.61 4.92 4.49 4.56 C 4.43 4.38 4.38 4.29 4.38 4.1 C 4.37 3.78 4.5 3.49 4.7 3.24 C 4.82 3.09 5.01 2.92 5.16 2.8 C 5.36 2.64 5.54 2.5 5.79 2.45 Z M 9.18 3.12 C 9.44 3.07 9.9 3.18 10.15 3.25 C 11.1 3.53 11.8 4.21 12.12 5.17 C 12.19 5.39 12.26 5.72 12.26 5.95 C 12.27 6.05 12.28 6.36 12.25 6.43 C 12.2 6.54 12.06 6.59 11.95 6.53 C 11.79 6.45 11.83 6.27 11.82 6.11 C 11.82 6.11 11.79 5.9 11.79 5.9 C 11.76 5.47 11.61 5.04 11.37 4.69 C 11.03 4.2 10.53 3.85 9.97 3.7 C 9.97 3.7 9.52 3.6 9.52 3.6 C 9.45 3.59 9.24 3.57 9.18 3.54 C 9.02 3.47 9 3.23 9.18 3.12 Z M 9.55 4.33 C 9.69 4.3 9.8 4.32 9.94 4.35 C 10.45 4.45 10.84 4.75 11.02 5.25 C 11.09 5.44 11.15 5.73 11.14 5.92 C 11.13 6.08 11.04 6.18 10.88 6.16 C 10.76 6.14 10.72 6.06 10.69 5.95 C 10.63 5.68 10.68 5.56 10.52 5.28 C 10.38 5.04 10.15 4.88 9.89 4.82 C 9.71 4.79 9.43 4.81 9.38 4.58 C 9.36 4.45 9.44 4.37 9.55 4.33',\n};\n","/**\n * WhatsApp service provider\n * Doc: https://faq.whatsapp.com/iphone/how-to-link-to-whatsapp-from-a-different-app\n */\n\nexport default {\n // %0D%0A% is the encoding for enter key\n popupUrl: 'https://api.whatsapp.com/send?text={title}%0D%0A%0D%0A{url}',\n\n // Sending on WhatsApp using manifest link instead of popup\n knownParams: ['url', 'title'],\n popupWidth: 600,\n popupHeight: 385,\n svgIconPath: '8.013,15.949 L8.009,15.949 C6.574,15.948 5.167,15.564 3.939,14.839 L3.647,14.666 L0.620,15.457 L1.428,12.517 L1.238,12.216 C0.438,10.947 0.015,9.481 0.016,7.976 C0.017,3.584 3.605,0.010 8.016,0.010 C10.152,0.011 12.160,0.841 13.669,2.347 C15.179,3.852 16.010,5.854 16.009,7.983 C16.008,12.375 12.420,15.949 8.013,15.949 ZM12.860,10.262 C12.800,10.162 12.639,10.103 12.399,9.983 C12.159,9.863 10.977,9.283 10.756,9.203 C10.536,9.124 10.376,9.084 10.215,9.323 C10.055,9.563 9.594,10.103 9.454,10.262 C9.314,10.422 9.174,10.442 8.933,10.322 C8.693,10.202 7.918,9.950 7.000,9.134 C6.285,8.499 5.803,7.714 5.663,7.475 C5.522,7.235 5.648,7.105 5.768,6.986 C5.876,6.878 6.008,6.706 6.129,6.566 C6.249,6.426 6.289,6.327 6.369,6.167 C6.449,6.007 6.409,5.867 6.349,5.747 C6.289,5.627 5.822,4.443 5.608,3.969 C5.428,3.570 5.238,3.562 5.067,3.555 C4.927,3.549 4.766,3.549 4.606,3.549 C4.446,3.549 4.185,3.609 3.965,3.849 C3.745,4.089 3.124,4.668 3.124,5.847 C3.124,7.026 3.985,8.165 4.105,8.324 C4.226,8.484 5.769,10.980 8.212,11.941 C10.243,12.739 10.656,12.580 11.097,12.540 C11.538,12.500 12.519,11.961 12.720,11.401 C12.920,10.842 12.920,10.362 12.860,10.262',\n};\n","const bool = { yes: true, no: false };\n\n/**\n * Polyfill Object.entries() for IE support\n * @param {Object} obj\n * @returns {Array} Keys and values presented as array\n */\nif (!Object.entries) {\n Object.entries = function (obj) {\n const ownProps = Object.keys(obj);\n let i = ownProps.length;\n const resArray = new Array(i);\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n return resArray;\n };\n}\n\n/**\n * Convert array-like object to array (for example DOMTokenList)\n * @param {Object} arrayLike\n * @returns {Array}\n */\nexport const toArray = (arrayLike) => Array.prototype.slice.call(arrayLike);\n\n/**\n * Merge given dictionaries (objects) into one object.\n * Iterates across the arguments, the last one gets priority.\n * @returns {Object}\n */\nexport const mergeToNew = function () {\n const newObject = {};\n const args = Array.prototype.slice.call(arguments); // eslint-disable-line no-undef\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n\n if (arg) {\n for (const key in arg) {\n if (Object.prototype.hasOwnProperty.call(arg, key)) {\n newObject[key] = arg[key];\n }\n }\n }\n }\n\n return newObject;\n};\n\n/**\n * Extend one (target) object by other (subject)\n * @param {Object} target\n * @param {Object} subject\n * @returns {Object} Extended target\n */\nexport const extendWith = (target, subject) => {\n for (const key in subject) {\n if (Object.prototype.hasOwnProperty.call(subject, key)) {\n target[key] = subject[key];\n }\n }\n return target;\n};\n\n/**\n * Return node.dataset or plain object for IE10 without setters\n * based on https://gist.github.com/brettz9/4093766#file_html5_dataset.js\n *\n * @param {Node} node\n * @returns {Object}\n */\nexport const getDataset = (node) => {\n if (typeof node.dataset === 'object') {\n return node.dataset;\n }\n\n let i;\n const dataset = {};\n const attributes = node.attributes;\n let attribute;\n let attributeName;\n\n const toUpperCase = (n0) => n0.charAt(1).toUpperCase();\n\n for (i = attributes.length - 1; i >= 0; i--) {\n attribute = attributes[i];\n if (attribute && attribute.name && (/^data-\\w[\\w-]*$/).test(attribute.name)) {\n attributeName = attribute.name.substr(5).replace(/-./g, toUpperCase);\n dataset[attributeName] = attribute.value;\n }\n }\n\n return dataset;\n};\n\n/**\n * Convert \"yes\" and \"no\" to true and false.\n * @param {Node} node\n * @returns {Object}\n */\nexport const getBools = (node) => {\n const result = {};\n const data = getDataset(node);\n\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n const value = data[key];\n\n result[key] = (value in bool) ? bool[value] : value;\n }\n }\n\n return result;\n};\n\n/**\n * Map object keys in string to its values\n * @param {String} text\n * @param {Object} data\n * @returns {String}\n */\nexport const interpolateStr = (text, data) => {\n return text ? text.replace(/\\{([^}]+)}/g, function (value, key) {\n return key in data ? data[key] : value;\n }) : '';\n};\n\n/**\n * Map object keys in URL to its values\n * @param {String} text\n * @param {Object} data\n * @returns {String}\n */\nexport const interpolateUrl = (text, data) => {\n for (const key in data) {\n if (Object.prototype.hasOwnProperty.call(data, key)) {\n data[key] = encodeURIComponent(data[key]);\n }\n }\n return interpolateStr(text, data);\n};\n/**\n * Set value in object using dot-notation\n * @param {String} key\n * @param {Object} value\n */\nexport const registerGlobalCallback = (key, value) => {\n const frags = key.split('.');\n let last = null;\n let object = global;\n\n frags.forEach((key, index) => {\n if (typeof object[key] === 'undefined') {\n object[key] = {};\n }\n\n if (index !== frags.length - 1) {\n object = object[key]; // eslint-disable-line no-param-reassign\n }\n\n last = key;\n });\n\n object[last] = value;\n};\n\n/**\n * Returns default url for likely.\n * It could be href from \n * if presents in the document, or the current url of the page otherwise\n * @returns {String}\n */\nexport const getDefaultUrl = () => {\n const link = document.querySelector('link[rel=\"canonical\"]');\n\n if (link) {\n return link.href;\n }\n return window.location.href.replace(window.location.hash, '');\n};\n\n/**\n * Is code run in browser or on server.\n */\nexport const isBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined' && document.createElement;\n\n/**\n * Renames a key in an object, using ES6 syntax\n * @param {Object} obj\n * @param {String} oldKey\n * @param {String} newKey\n */\nexport const renameKey = (obj, oldKey, newKey) => {\n if (Object.prototype.hasOwnProperty.call(obj, oldKey)) {\n delete Object.assign(obj, { [newKey]: obj[oldKey] })[oldKey];\n }\n};\n","import { interpolateUrl } from './utils';\n\n/**\n * Class for preventing duplicated requests from the similar buttons, which encapsulates:\n * 1. Callbacks for all buttons that share the same value.\n * 2. Prepared service counter URL.\n * 3. Value, returned from this URL\n * @param {String} counterUrl\n * @param {String} pageUrl\n */\nfunction UpdateBroadcaster(counterUrl, pageUrl) {\n this.url = interpolateUrl(counterUrl, { url: pageUrl });\n this.setters = [];\n this.value = undefined;\n}\n\n/**\n * Connects new related button with its callback.\n * @param {Function} buttonSetter\n */\nUpdateBroadcaster.prototype.register = function (buttonSetter) {\n this.setters.push(buttonSetter);\n if (this.value) {\n buttonSetter(this.value);\n }\n};\n\n/**\n * Distributes obtained value to all buttons that share it\n * @param {Integer} value\n */\nUpdateBroadcaster.prototype.trigger = function (value) {\n this.value = value;\n this.setters.forEach((buttonSetter) => {\n buttonSetter(value);\n });\n};\n\n/**\n * Find or create an appropriate instance of UpdateBroadcaster\n * @param {Function} buttonSetter\n * @param {Object} options\n */\nexport default (buttonSetter, options) => {\n let broadcaster = options.service.broadcastersByUrl[options.url];\n if (!broadcaster) {\n broadcaster = new UpdateBroadcaster(options.service.counterUrl, options.url);\n options.service.broadcastersByUrl[options.url] = broadcaster;\n options.service.fetch(broadcaster);\n }\n broadcaster.register(buttonSetter);\n};\n","import { createNode, find, findAll, openPopup, wrapSVG } from './dom';\nimport { extendWith, getDataset, interpolateStr, interpolateUrl, mergeToNew, toArray } from './utils';\n\nimport config from './config';\nimport connectButtonToService from './connectButtonToService';\nimport services from './services';\n\nconst htmlSpan = '{content}';\n\n/**\n * Separate social link widget\n * @param {Node} widget\n * @param {Likely} likely\n * @param {Object} options\n */\nclass LikelyButton {\n constructor(widget, likely, options) {\n this.widget = widget;\n this.likely = likely;\n this.options = mergeToNew(options);\n this.detectService();\n if (this.isConnected()) {\n this.detectParams();\n }\n }\n\n /**\n * Whether the button was successfully connected to a service\n * @returns {Boolean}\n */\n isConnected() {\n return this.options.service !== undefined;\n }\n\n /**\n * If purpose of the buttond\n * @returns {Boolean}\n */\n isUnrecognized() {\n return !this.isConnected() && !this.options.foreign;\n }\n\n /**\n * Make button ready for usage\n */\n prepare() {\n if (this.isConnected()) {\n this.initHtml();\n this.registerAsCounted();\n }\n }\n\n /**\n * Update the counter\n * @param {Object} options\n */\n update(options) {\n const className = `.${config.prefix}counter`;\n const counters = findAll(className, this.widget);\n extendWith(this.options, mergeToNew({ forceUpdate: false }, options));\n counters.forEach((node) => {\n node.parentNode.removeChild(node);\n });\n this.wireClick();\n this.registerAsCounted();\n }\n\n /**\n * Attach a service based on given button classes\n */\n detectService() {\n const classes = toArray(this.widget.classList);\n // Array.prototype.filter()[0] instead of Array.prototype.find() for IE support\n const serviceName = classes.filter((className) => Object.prototype.hasOwnProperty.call(services, className))[0];\n if (serviceName) {\n this.options.service = services[serviceName];\n }\n else if (classes.includes('likely__widget')) {\n this.options.foreign = true;\n }\n }\n\n /**\n * Merge params from data-* attributes into options hash map\n */\n detectParams() {\n const options = this.options;\n this.data = getDataset(this.widget);\n if (this.data.counter) {\n options.staticCounter = this.data.counter;\n }\n if (this.data.url) {\n options.url = this.data.url;\n }\n if (this.data.title) {\n options.title = this.data.title;\n }\n }\n\n /**\n * Initiate button's HTML\n */\n initHtml() {\n const oldWidget = this.widget;\n const text = oldWidget.innerHTML;\n\n // Rebuilding widget tag from div to \n const newWidget = document.createElement('a');\n newWidget.innerHTML = oldWidget.innerHTML;\n newWidget.className = oldWidget.className;\n\n // Preserve accessibility attributes\n if (oldWidget.getAttribute('role') !== undefined) {\n newWidget.setAttribute('role', oldWidget.getAttribute('role'));\n }\n if (oldWidget.getAttribute('aria-label') !== undefined) {\n newWidget.setAttribute('aria-label', oldWidget.getAttribute('aria-label'));\n }\n\n oldWidget.parentNode.replaceChild(newWidget, oldWidget);\n this.widget = newWidget;\n const widget = this.widget;\n\n widget.classList.remove(this.options.service.name);\n widget.className += `${this.className('widget')}`;\n\n this.wireClick();\n\n const button = interpolateStr(htmlSpan, {\n className: this.className('button'),\n content: text,\n });\n\n const icon = interpolateStr(htmlSpan, {\n className: this.className('icon'),\n content: wrapSVG(this.options.service.svgIconPath),\n });\n\n widget.innerHTML = icon + button;\n }\n\n wireClick() {\n const completeUrl = this.buildUrl(this.options);\n this.widget.setAttribute('href', completeUrl);\n this.widget.addEventListener('click', this.shareClick(completeUrl).bind(this));\n }\n\n /**\n * Perform fetching and displaying counter\n */\n registerAsCounted() {\n const options = this.options;\n if (options.counters && options.service.counterUrl) {\n if (options.staticCounter) {\n this.setDisplayedCounter(options.staticCounter);\n }\n else {\n connectButtonToService(this.setDisplayedCounter.bind(this), options);\n }\n }\n }\n\n /**\n * Combine a BEM-compliant classname\n * @param {String} className\n * @returns {String}\n */\n className(className) {\n const fullClass = config.prefix + className;\n\n return `${fullClass} ${fullClass}_${this.options.service.name}`;\n }\n\n /**\n * Set visible button counter to a value\n * @param {String} counterString\n */\n setDisplayedCounter(counterString) {\n const counterInt = parseInt(counterString, 10) || 0;\n const counterElement = find(`.${config.name}__counter`, this.widget);\n\n if (counterElement) {\n counterElement.parentNode.removeChild(counterElement);\n }\n\n const options = {\n className: this.className('counter'),\n content: counterInt,\n };\n\n if (!counterInt && !this.options.zeroes) {\n options.className += ` ${config.prefix}counter_empty`;\n options.content = '';\n }\n\n this.widget.appendChild(createNode(interpolateStr(htmlSpan, options)));\n\n this.likely.finalize();\n }\n\n /**\n * Construct URL for sharing\n * @param {Object} options\n * @returns {String}\n */\n buildUrl(options) {\n options.service.urlCallback.call(this);\n const url = interpolateUrl(options.service.popupUrl, {\n url: options.url,\n title: options.title,\n });\n\n const paramsArray = [];\n this.options.service.knownParams.forEach((item) => {\n if (item === 'url' || item === 'title' || item === 'counter') {\n return; // Ignore base params\n }\n if (item in this.data) {\n paramsArray.push(`${encodeURIComponent(item)}=${encodeURIComponent(this.data[item])}`);\n }\n });\n const paramsString = paramsArray.join('&');\n const delimiter = url.indexOf('?') === -1 ? '?' : '&';\n return paramsString === '' ? url : url + delimiter + paramsString;\n }\n\n\n /**\n * Click event listener\n * @param {String} completeUrl\n * @returns {Function}\n */\n shareClick(completeUrl) {\n return function (event) {\n const options = this.options;\n if (options.service.openPopup === true) {\n event.preventDefault();\n openPopup(\n completeUrl,\n config.prefix + this.options.service.name,\n options.service.popupWidth,\n options.service.popupHeight,\n );\n return false;\n }\n return true;\n };\n }\n}\nexport default LikelyButton;\n","import Button from './button';\n\nimport config from './config';\nimport { toArray } from './utils';\n\n/**\n * Main widget view\n * @param {Node} container\n * @param {Object} options\n */\nclass Likely {\n constructor(container, options) {\n this.container = container;\n this.options = options;\n\n this.countersLeft = 0;\n this.buttons = [];\n\n toArray(this.container.children).forEach(this.addButton.bind(this));\n\n // Temporary visibility hidden to prevent delays in rendering\n this.container.classList.add(`${config.name}_visible`);\n if (this.options.counters) {\n this.readyDelay = setTimeout(this.ready.bind(this), this.options.timeout);\n }\n else {\n this.ready();\n }\n this.materializeButtons();\n }\n\n /**\n * Add a button\n * @param {Node} node\n */\n addButton(node) {\n const button = new Button(node, this, this.options);\n if (button.isConnected()) {\n this.buttons.push(button);\n if (button.options.service.counterUrl) {\n this.countersLeft++;\n }\n }\n else if (button.isUnrecognized()) {\n console.warn('A button without a valid service detected, please check button classes.');\n }\n }\n\n /**\n * Show all the buttons\n */\n materializeButtons() {\n this.buttons.forEach((button) => button.prepare());\n }\n\n /**\n * Refresh all the buttons\n * @param {Object} options\n */\n update(options) {\n if (\n options.forceUpdate ||\n options.url && options.url !== this.options.url\n ) {\n this.countersLeft = this.buttons.length;\n\n this.buttons.forEach((button) => {\n button.update(options);\n });\n }\n }\n\n /**\n * Register the button as ready\n */\n finalize() {\n this.countersLeft--;\n\n if (this.countersLeft === 0) {\n clearTimeout(this.readyDelay);\n this.ready();\n }\n }\n\n /**\n * Display ready status\n */\n ready() {\n // Remove class_visible to prevent flickering\n this.container.classList.remove(`${config.name}_visible`);\n this.container.classList.add(`${config.name}_ready`);\n }\n}\n\nexport default Likely;\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","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(106);\n"],"names":["root","factory","exports","module","define","amd","self","this","name","prefix","global","isBrowserEnv","window","div","document","createElement","wrapSVG","coords","createNode","html","innerHTML","children","loadJSONP","url","script","head","type","src","appendChild","removeChild","find","selector","node","querySelector","findAll","Array","prototype","slice","call","querySelectorAll","openPopup","winId","width","height","left","Math","round","screen","top","options","win","open","focus","location","href","callbacks","handleUrlChange","forEach","callback","isWatchingHistory","onUrlChange","pushState","history","setTimeout","apply","arguments","replaceState","addEventListener","setupHistoryWatcher","push","_require","require","getBools","getDefaultUrl","mergeToNew","Likely","config","services","likely","initiate","nodes","realNodes","realOptions","initWidgets","fullOptions","defaults","counters","timeout","zeroes","title","widget","update","initWidget","isArray","Node","concat","maintainStoredData","forceUpdate","Object","keys","serviceName","resetBroadcasters","fetchXHR","updateBroadcaster","_this","xhr","XMLHttpRequest","onreadystatechange","readyState","status","convertedNumber","convertNumber","responseText","trigger","send","broadcastersByUrl","counterUrl","data","graphQlData","JSON","parse","og_object","engagement","count","popupWidth","popupHeight","popupUrl","knownParams","svgIconPath","json","urlCallback","renameKey","dataset","jsonpStr","length","response","parsedResponse","totalUpvotes","child","score","vkontakte","fetch","broadcaster","index","interpolateUrl","registerGlobalCallback","broadcasters","facebook","linkedin","odnoklassniki","pinterest","reddit","telegram","twitter","test","viber","whatsapp","entries","entry","_entry","_slicedToArray","serviceObj","undefined","bool","yes","no","obj","ownProps","i","resArray","toArray","arrayLike","newObject","args","arg","key","hasOwnProperty","extendWith","target","subject","getDataset","_typeof","attribute","attributes","toUpperCase","n0","charAt","substr","replace","value","result","interpolateStr","text","encodeURIComponent","frags","split","last","object","link","hash","oldKey","newKey","assign","_defineProperty","UpdateBroadcaster","pageUrl","setters","register","buttonSetter","htmlSpan","LikelyButton","_classCallCheck","detectService","isConnected","detectParams","service","foreign","initHtml","registerAsCounted","className","parentNode","wireClick","classes","classList","filter","includes","counter","staticCounter","oldWidget","newWidget","getAttribute","setAttribute","replaceChild","remove","button","content","icon","completeUrl","buildUrl","shareClick","bind","setDisplayedCounter","connectButtonToService","fullClass","counterString","counterInt","parseInt","counterElement","finalize","paramsArray","item","paramsString","join","delimiter","indexOf","event","preventDefault","container","countersLeft","buttons","addButton","add","readyDelay","ready","materializeButtons","Button","isUnrecognized","console","warn","prepare","clearTimeout","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","prop","r","Symbol","toStringTag"],"sourceRoot":""}