{"version":3,"file":"38-V1DFu.js","sources":["../../../../node_modules/vue-socials/dist/esm/utils/getFormattedWindowFeatures.js","../../../../node_modules/vue-socials/dist/esm/utils/getPopupClientRect.js","../../../../node_modules/vue-socials/dist/esm/utils/inspect.js","../../../../node_modules/vue-socials/dist/esm/mixins/BaseSocial/BaseSocial.js","../../../../node_modules/vue-socials/dist/esm/utils/getSerialisedParams.js","../../../../node_modules/vue-socials/dist/esm/utils/getSeparatedList.js","../../../../node_modules/vue-socials/dist/esm/components/SFacebook/SFacebook.js","../../../../node_modules/vue-socials/dist/esm/components/SLinkedIn/SLinkedIn.js","../../../../node_modules/vue-socials/dist/esm/components/STwitter/STwitter.js","../../../../node_modules/vue-socials/dist/esm/components/SWhatsApp/SWhatsApp.js"],"sourcesContent":["/**\n * A simple function to format object to window.open() string features.\n * It formats all values to a number.\n * @example { width: 500, menubar: true, toolbar: false } => 'width=500,menubar=1,toolbar=0'\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Window_features\n */\nfunction getFormattedWindowFeatures(object) {\n var keys = Object.keys(object);\n return keys.map(function (key) {\n return \"\".concat(key, \"=\").concat(Number(object[key]));\n }).join(',');\n}\n\nexport default getFormattedWindowFeatures;\n","/**\n * A simple function to get window client rect.\n * It works with minimized windows, user zoom, and dual-screen.\n * @link http://www.xtf.dk/2011/08/center-new-popup-window-even-on.html\n */\nfunction getPopupClientRect(width, height) {\n var systemZoom = window.innerWidth / window.screen.availWidth;\n var finalWidth = width / systemZoom;\n var finalHeight = height / systemZoom;\n var left = (window.innerWidth - width) / 2 / systemZoom + window.screenLeft;\n var top = (window.innerHeight - height) / 2 / systemZoom + window.screenTop;\n return {\n width: finalWidth,\n height: finalHeight,\n top: top,\n left: left\n };\n}\n\nexport default getPopupClientRect;\n","/**\n * Convenience inspection utilities\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\nfunction isArray(value) {\n return Array.isArray(value);\n} // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport { isArray, isUndefined };\n","import { defineComponent, markRaw, h } from 'vue';\nimport getFormattedWindowFeatures from '../../utils/getFormattedWindowFeatures.js';\nimport getPopupClientRect from '../../utils/getPopupClientRect.js';\nimport { isUndefined } from '../../utils/inspect.js';\n\n/**\n * Hey!\n *\n * Base socials mixin used for every social component\n * which have share window. It provides a method for window.open()\n * and has props for window features. Also has a method for component render.\n */\nvar DEFAULT_WINDOW_FEATURES = {\n width: 600,\n height: 540\n};\n/**\n * Wrapper around Vue mixin to pass parameters inside.\n * We use multiple parameters instead of a single object because\n * it causes problems with tree-shaking. I don't know why.\n * A little bit inconvenient, but overall OK :)\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\nfunction BaseSocials(name, customWindowFeatures, customShareOptions, customAriaLabel, isShareOptionsRequired, isWindowFeaturesRequired) {\n return /* #__PURE__ */defineComponent({\n props: {\n /**\n * Requested features of the new window\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Window_features\n */\n windowFeatures: {\n type: Object,\n default: function _default() {\n return customWindowFeatures || DEFAULT_WINDOW_FEATURES;\n },\n required: isWindowFeaturesRequired\n },\n\n /**\n * Share parameters for social network\n */\n shareOptions: {\n type: Object,\n default: function _default() {\n return customShareOptions || {};\n },\n required: isShareOptionsRequired || true\n },\n\n /**\n * Use native link behavior instead of window.open()\n */\n useNativeBehavior: {\n type: Boolean,\n default: false\n }\n },\n data: function data() {\n return {\n dialog: markRaw({\n shareDialog: null,\n shareDialogCloseIntervalId: undefined\n })\n };\n },\n emits: ['click', 'popup-block', 'popup-open', 'popup-close', 'popup-focus'],\n\n /**\n * Make sure interval has been cleared\n */\n beforeUnmount: function beforeUnmount() {\n window.clearInterval(this.dialog.shareDialogCloseIntervalId);\n },\n computed: {\n /**\n * Merge default and user window features\n */\n mergedWindowFeatures: function mergedWindowFeatures() {\n var windowFeatures = this.windowFeatures;\n /**\n * We use `Object.assign` instead of the spread operator\n * to prevent adding the polyfill (about 150 bytes gzipped)\n */\n\n return Object.assign({}, DEFAULT_WINDOW_FEATURES, windowFeatures);\n },\n\n /**\n * Calculate the aria-label for a link.\n * It replaces @s in a string with a social network name.\n */\n ariaLabel: function ariaLabel() {\n var $attrs = this.$attrs;\n var target = $attrs.target;\n var label = customAriaLabel || 'Share this with @s.';\n\n if (target === '_blank' || isUndefined(target)) {\n label += ' (opens in new window)';\n }\n\n return label.replace(/@s/g, name);\n }\n },\n methods: {\n /**\n * Create new share popup from url\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Syntax\n */\n openShareDialog: function openShareDialog(url) {\n var _this$dialog$shareDia,\n _this = this;\n\n var mergedWindowFeatures = this.mergedWindowFeatures;\n var _mergedWindowFeatures = mergedWindowFeatures.width,\n width = _mergedWindowFeatures === void 0 ? DEFAULT_WINDOW_FEATURES.width : _mergedWindowFeatures,\n _mergedWindowFeatures2 = mergedWindowFeatures.height,\n height = _mergedWindowFeatures2 === void 0 ? DEFAULT_WINDOW_FEATURES.height : _mergedWindowFeatures2;\n var shareDialogClientRect = getPopupClientRect(width, height);\n var formattedFeatures = getFormattedWindowFeatures(Object.assign({}, mergedWindowFeatures, shareDialogClientRect));\n /**\n * If the pointer to the window object in memory does not exist\n * or if such pointer exists but the window was closed\n */\n\n if (this.dialog.shareDialog === null || (_this$dialog$shareDia = this.dialog.shareDialog) !== null && _this$dialog$shareDia !== void 0 && _this$dialog$shareDia.closed) {\n /**\n * then create it. The new window will be created and\n * will be brought on top of any other window.\n */\n this.dialog.shareDialog = window.open(url, '_blank', formattedFeatures);\n /**\n * If window.open has been blocked – emit 'block' event and then do nothing\n * If not – emit 'open' event\n */\n\n if (!this.dialog.shareDialog) {\n this.$emit('popup-block');\n return;\n }\n\n this.$emit('popup-open');\n /**\n * window.onbeforeunload event didn't work because of Same Origin Policy\n * So we check if it has been closed every 300 ms\n * @link https://atashbahar.com/post/2010-04-27-detect-when-a-javascript-popup-window-gets-closed\n */\n\n this.dialog.shareDialogCloseIntervalId = window.setInterval(function () {\n var _this$dialog$shareDia2;\n\n if (_this.dialog.shareDialog === null || (_this$dialog$shareDia2 = _this.dialog.shareDialog) !== null && _this$dialog$shareDia2 !== void 0 && _this$dialog$shareDia2.closed) {\n window.clearInterval(_this.dialog.shareDialogCloseIntervalId);\n\n _this.$emit('popup-close');\n /**\n * Unset reference to the popup window\n * @link https://web.dev/detached-window-memory-leaks/#solution-unset-references\n */\n\n\n _this.dialog.shareDialog = null;\n }\n }, 300);\n } else {\n /**\n * else the window reference must exist and the window\n * is not closed; therefore, we can bring it back on top of any other\n * window with the focus() method. There would be no need to re-create\n * the window or to reload the referenced resource.\n */\n this.dialog.shareDialog.focus();\n this.$emit('popup-focus');\n }\n },\n\n /**\n * Create new share component\n */\n generateComponent: function generateComponent(url) {\n var _this2 = this,\n _this$$slots$default,\n _this$$slots;\n\n return h('a', {\n href: url,\n target: '_blank',\n rel: 'nofollow noopener noreferrer',\n 'aria-label': this.ariaLabel,\n onClick: function onClick(event) {\n if (!_this2.useNativeBehavior) {\n event.preventDefault();\n\n _this2.openShareDialog(url);\n }\n\n _this2.$emit('click');\n }\n }, (_this$$slots$default = (_this$$slots = this.$slots).default) === null || _this$$slots$default === void 0 ? void 0 : _this$$slots$default.call(_this$$slots));\n }\n }\n });\n}\n\nexport default BaseSocials;\nexport { DEFAULT_WINDOW_FEATURES };\n","/**\n * A simple function to format object to GET parameters.\n * It skips undefined, null, and NaN values.\n * @example { foo: 'bar', bar: undefined, foobar: 'foo bar', } => '?foo=bar&foobar=foo%20bar'\n * @example { foo: null, bar: undefined, foobar: NaN, } => ''\n */\nfunction getSerialisedParams(object) {\n var params = Object.entries(object).filter(function (param) {\n return param[1] !== undefined && param[1] !== null && !Number.isNaN(param[1]) && param[1] !== '';\n }).map(function (param) {\n return \"\".concat(encodeURIComponent(param[0]), \"=\").concat(encodeURIComponent(String(param[1])));\n });\n return params.length > 0 ? \"?\".concat(params.join('&')) : '';\n}\n\nexport default getSerialisedParams;\n","import { isArray } from './inspect.js';\n\n/**\n * A simple function to format array to a comma-separated list.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any\n\nfunction getSeparatedList(array) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n\n if (isArray(array)) {\n return array.join(separator);\n }\n\n return '';\n}\n\nexport default getSeparatedList;\n","import { defineComponent } from 'vue';\nimport BaseSocials from '../../mixins/BaseSocial/BaseSocial.js';\nimport getSerialisedParams from '../../utils/getSerialisedParams.js';\n\n/**\n * Hey!\n *\n * SFacebook component used for Facebook social network.\n * @link https://www.facebook.com/\n * @example https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgithub.com%2F"e=Quote&hashtag=%23Github\n */\n/**\n * Share parameters for link\n * @link https://developers.facebook.com/docs/workplace/sharing/share-dialog/\n */\n\nvar SFacebook = /* #__PURE__ */defineComponent({\n name: 'SFacebook',\n mixins: [BaseSocials('Facebook', {\n width: 685,\n height: 600\n })],\n computed: {\n networkURL: function networkURL() {\n var BASE_URL = 'https://www.facebook.com/sharer/sharer.php';\n var shareOptions = this.shareOptions;\n var url = shareOptions.url,\n quote = shareOptions.quote,\n hashtag = shareOptions.hashtag;\n return \"\".concat(BASE_URL).concat(getSerialisedParams({\n u: url,\n quote: quote,\n hashtag: hashtag\n }));\n }\n },\n render: function render() {\n return this.generateComponent(this.networkURL);\n }\n});\n\nexport default SFacebook;\n","import { defineComponent } from 'vue';\nimport BaseSocials from '../../mixins/BaseSocial/BaseSocial.js';\nimport getSerialisedParams from '../../utils/getSerialisedParams.js';\n\n/**\n * Hey!\n *\n * SLinkedIn component used for LinkedIn social network\n * @link https://www.linkedin.com\n */\n/**\n * Share parameters for link\n * @link https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/plugins/share-plugin\n */\n\nvar SLinkedIn = /* #__PURE__ */defineComponent({\n name: 'SLinkedIn',\n mixins: [BaseSocials('LinkedIn')],\n computed: {\n networkURL: function networkURL() {\n var BASE_URL = 'https://www.linkedin.com/sharing/share-offsite/';\n var shareOptions = this.shareOptions;\n var url = shareOptions.url;\n var serialisedParams = getSerialisedParams({\n url: url\n });\n return \"\".concat(BASE_URL).concat(serialisedParams);\n }\n },\n render: function render() {\n return this.generateComponent(this.networkURL);\n }\n});\n\nexport default SLinkedIn;\n","import { defineComponent } from 'vue';\nimport BaseSocials from '../../mixins/BaseSocial/BaseSocial.js';\nimport getSerialisedParams from '../../utils/getSerialisedParams.js';\nimport getSeparatedList from '../../utils/getSeparatedList.js';\n\n/**\n * Hey!\n *\n * STwitter component used for Twitter social network\n * @link https://twitter.com/\n */\n/**\n * Share parameters for link\n * @link https://developer.twitter.com/en/docs/twitter-for-websites/tweet-button/overview\n */\n\nvar STwitter = /* #__PURE__ */defineComponent({\n name: 'STwitter',\n mixins: [BaseSocials('Twitter', undefined, undefined, undefined, false)],\n computed: {\n networkURL: function networkURL() {\n var BASE_URL = 'https://twitter.com/intent/tweet';\n var shareOptions = this.shareOptions;\n var text = shareOptions.text,\n url = shareOptions.url,\n hashtags = shareOptions.hashtags,\n via = shareOptions.via;\n var serialisedParams = getSerialisedParams({\n text: text,\n url: url,\n hashtags: getSeparatedList(hashtags),\n via: via\n });\n return \"\".concat(BASE_URL).concat(serialisedParams);\n }\n },\n render: function render() {\n return this.generateComponent(this.networkURL);\n }\n});\n\nexport default STwitter;\n","import { defineComponent } from 'vue';\nimport BaseSocials from '../../mixins/BaseSocial/BaseSocial.js';\nimport getSerialisedParams from '../../utils/getSerialisedParams.js';\n\n/**\n * Hey!\n *\n * SWhatsApp component used for WhatsApp social network\n * @link https://whatsapp.com\n */\n/**\n * Share parameters for link\n * @link https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat\n */\n\nvar SWhatsApp = /* #__PURE__ */defineComponent({\n name: 'SWhatsApp',\n mixins: [BaseSocials('WhatsApp')],\n computed: {\n networkURL: function networkURL() {\n var BASE_URL = 'https://api.whatsapp.com/send';\n var shareOptions = this.shareOptions;\n var number = shareOptions.number,\n text = shareOptions.text;\n var serialisedParams = getSerialisedParams({\n phone: number,\n text: text\n });\n return \"\".concat(BASE_URL).concat(serialisedParams);\n }\n },\n render: function render() {\n return this.generateComponent(this.networkURL);\n }\n});\n\nexport default SWhatsApp;\n"],"names":["getFormattedWindowFeatures","object","keys","key","getPopupClientRect","width","height","systemZoom","finalWidth","finalHeight","left","top","isArray","value","isUndefined","DEFAULT_WINDOW_FEATURES","BaseSocials","name","customWindowFeatures","customShareOptions","customAriaLabel","isShareOptionsRequired","isWindowFeaturesRequired","defineComponent","markRaw","windowFeatures","$attrs","target","label","url","_this$dialog$shareDia","_this","mergedWindowFeatures","_mergedWindowFeatures","_mergedWindowFeatures2","shareDialogClientRect","formattedFeatures","_this$dialog$shareDia2","_this2","_this$$slots$default","_this$$slots","h","event","getSerialisedParams","params","param","getSeparatedList","array","separator","SFacebook","BASE_URL","shareOptions","quote","hashtag","SLinkedIn","serialisedParams","STwitter","text","hashtags","via","SWhatsApp","number"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}