{"version":3,"file":"js/4892-4c6003171fcc16e531f3.chunk.js","mappings":"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","sources":["webpack://agra/./app/javascript/images/icons/ sync ^\\.\\/.*$","webpack://agra/./app/javascript/share/campaign/bluesky-mixin.js","webpack://agra/./app/javascript/share/campaign/click-tracking-mixin.js","webpack://agra/./app/javascript/share/campaign/email-mixin.js","webpack://agra/./app/javascript/share/campaign/facebook-mixin.js","webpack://agra/./app/javascript/share/campaign/messenger-mixin.js","webpack://agra/./app/javascript/share/campaign/buttons/button-base.vue","webpack://agra/./app/javascript/share/campaign/buttons/button-base.vue?1395","webpack://agra/./app/javascript/share/campaign/buttons/bluesky-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/bluesky-button.vue?b0c5","webpack://agra/./app/javascript/share/campaign/buttons/email-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/email-button.vue?ea25","webpack://agra/./app/javascript/share/campaign/buttons/facebook-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/facebook-button.vue?9d8f","webpack://agra/./app/javascript/share/campaign/buttons/messenger-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/messenger-button.vue?7666","webpack://agra/./app/javascript/share/campaign/buttons/twitter-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/twitter-button.vue?fef4","webpack://agra/./app/javascript/share/campaign/buttons/web-share-api-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/web-share-api-button.vue?2b99","webpack://agra/./app/javascript/share/campaign/buttons/whatsapp-button.vue","webpack://agra/./app/javascript/share/campaign/buttons/whatsapp-button.vue?eb30","webpack://agra/./app/javascript/share/campaign/share-mixin.js","webpack://agra/./app/javascript/share/campaign/sharing-options-mixin.js","webpack://agra/./app/javascript/share/campaign/twitter-mixin.js","webpack://agra/./app/javascript/share/campaign/web-share-api-mixin.js","webpack://agra/./app/javascript/share/campaign/whatsapp-mixin.js","webpack://agra/./node_modules/vue-loader/dist/exportHelper.js","webpack://agra/./app/javascript/components/sharing/copy-url.vue","webpack://agra/./app/javascript/components/sharing/copy-url.vue?e1bb","webpack://agra/./node_modules/uuid/dist/esm-browser/native.js","webpack://agra/./node_modules/uuid/dist/esm-browser/rng.js","webpack://agra/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://agra/./node_modules/uuid/dist/esm-browser/v4.js"],"sourcesContent":["var map = {\n\t\"./bluesky.svg\": 42140,\n\t\"./facebook.svg\": 66677,\n\t\"./google-sign-in.svg\": 25558,\n\t\"./mail.svg\": 24836,\n\t\"./messenger-black.svg\": 68476,\n\t\"./messenger.svg\": 6830,\n\t\"./settings.svg\": 25714,\n\t\"./web-share-api.svg\": 29356,\n\t\"./whatsapp.svg\": 50519,\n\t\"./x-twitter.svg\": 29313\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 68593;","import ClickTracking from '@/share/campaign/click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'Bluesky'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n      const url = this.urlWithShareClickToken(this.sharingOptions.href, shareClickToken)\n      this.openShareBox(url)\n    },\n\n    openShareBox(url) {\n      window.open(url, 'sharer', 'toolbar=0,status=0,width=626,height=436')\n    },\n\n    urlWithShareClickToken(url, shareClickToken) {\n      if (shareClickToken !== null) {\n        // The original URL ends with a \"text\" parameter that includes some optional text followed by the\n        // URL that the person is sharing. We want to edit that internal URL to add the \"share\" parameter to it.\n        // The easiest way to do that, since we know it's at the end of the last parameter, is to just\n        // stick the URL-encoded \"&share=foo\" on the end of the outer URL. When the \"text\" parameter is decoded,\n        // this will result in the inner URL having the \"share\" parameter set.\n        // This is kind of janky, but there aren't a lot of better options since the shared URL is within text\n        // rather than separated into a parameter of its own.\n        return url + encodeURIComponent(`&share=${shareClickToken}`)\n      }\n      return url\n    }\n  }\n}\n","import ajax from '@/helpers/ajax'\nimport { trackShareOpen } from '@/analytics/track'\nimport { v4 as uuid } from 'uuid'\n\nexport default {\n  methods: {\n    trackEvent(shareClickToken) {\n      const entityType = this.sharingOptions.entityType\n      const entitySlug = this.sharingOptions.entitySlug\n      const shareClicksPath = this.sharingOptions.shareClicksPath\n\n      // Tell other Javascript on the page\n      document.dispatchEvent(new Event('agra:share-button-clicked'))\n\n      // Track analytics\n      trackShareOpen(this.channelNameForAnalytics, entityType, entitySlug)\n\n      // If applicable, return shareClickToken, and create ShareClick asynchronously\n      if (shareClicksPath) {\n        if (!shareClickToken) {\n          shareClickToken = uuid()\n        }\n        ajax.post({\n          url: shareClicksPath,\n          data: {\n            token: shareClickToken\n          }\n        })\n        return shareClickToken\n      }\n      return null\n    },\n\n    urlWithShareClickTokenInInnerUrl(url, shareClickToken, innerUrlParamName) {\n      if (shareClickToken === null) {\n        return url\n      }\n\n      const urlObj = new URL(url)\n\n      // add the share_click_id param to inner url param\n      const searchParams = new URLSearchParams(urlObj.search.slice(1))\n      let innerUrl = searchParams.get(innerUrlParamName)\n\n      innerUrl += `&share=${shareClickToken}`\n\n      urlObj.searchParams.set(innerUrlParamName, innerUrl)\n      return urlObj.href\n    }\n  }\n}\n","import ajax from '@/helpers/ajax'\nimport ClickTracking from './click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'Email'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n\n      ajax.get({\n        url: this.sharingOptions.emailShareDataHref,\n        params: {\n          share_click_token: shareClickToken\n        },\n        successHandler: ({ subject, body }) => {\n          window.location.assign(`mailto:?subject=${encodeURIComponent(subject)}&body=${encodeURIComponent(body)}`)\n        }\n      })\n    }\n  }\n}\n","import ClickTracking from '@/share/campaign/click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'Facebook'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n      const url = this.urlWithShareClickTokenInInnerUrl(this.sharingOptions.href, shareClickToken, 'u')\n      this.openShareBox(url)\n    },\n\n    openShareBox(url) {\n      window.open(url, 'sharer', 'toolbar=0,status=0,width=626,height=436')\n    }\n  }\n}\n","import ClickTracking from '@/share/campaign/click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'Messenger'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n      const url = this.urlWithShareClickTokenInInnerUrl(this.sharingOptions.href, shareClickToken, 'link')\n      window.open(url)\n    }\n  }\n}\n","<template>\n  <button v-bind=\"$attrs\" type=\"button\" role=\"button\" :title=\"title\"\n          class=\"button-base btn share btn-lg d-flex justify-content-start align-items-center\"\n          @click=\"$emit('click')\">\n    <slot name=\"icon\">\n      <img :src=\"iconPath\" class=\"share-icon\" :class=\"`${medium}-icon`\">\n    </slot>\n    <span>{{ text }}</span>\n  </button>\n</template>\n\n<script>\nexport default {\n  props: {\n    iconFilename: {\n      type: String,\n      required: false\n    },\n\n    label: {\n      type: String,\n      required: false\n    },\n\n    medium: {\n      type: String,\n      required: true\n    },\n\n    title: {\n      type: String,\n      required: true\n    }\n  },\n\n  emits: ['click'],\n\n  computed: {\n    iconPath() {\n      const filename = this.iconFilename || `${this.medium}.svg`\n      return require(`@/images/icons/${filename}`)\n    },\n\n    text() {\n      return this.label || this.i18n.t(`public.social.share_on_${this.medium}`)\n    }\n  }\n}\n</script>\n\n<style scoped lang=\"scss\">\n  @use \"~common_styles/breakpoints\" as breakpoints;\n\n  .button-base {\n    text-transform: unset;\n  }\n\n  ::v-deep(.share-icon) {\n    width: 22px;\n  }\n\n  span {\n    text-align: left;\n\n    @include breakpoints.screen-md-only {\n      font-size: 1rem;\n    }\n  }\n</style>\n","import { render } from \"./button-base.vue?vue&type=template&id=56f8ab8c&scoped=true\"\nimport script from \"./button-base.vue?vue&type=script&lang=js\"\nexport * from \"./button-base.vue?vue&type=script&lang=js\"\n\nimport \"./button-base.vue?vue&type=style&index=0&id=56f8ab8c&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-56f8ab8c\"]])\n\nexport default __exports__","<template>\n  <button-base medium=\"bluesky\" :title=\"i18n.t('public.social.share_on_bluesky')\" class=\"bluesky\"\n               @click=\"handleClick\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport BlueskyMixin from '@/share/campaign/bluesky-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [BlueskyMixin]\n}\n</script>\n","import { render } from \"./bluesky-button.vue?vue&type=template&id=40293ba8\"\nimport script from \"./bluesky-button.vue?vue&type=script&lang=js\"\nexport * from \"./bluesky-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <button-base class=\"email\"\n               :title=\"i18n.t('public.social.share_on_email')\"\n               medium=\"email\"\n               @click=\"handleClick\">\n    <template #icon>\n      <img src=\"@/images/icons/mail.svg\" class=\"share-icon mail-icon\">\n    </template>\n  </button-base>\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport EmailMixin from '@/share/campaign/email-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [EmailMixin]\n}\n</script>\n\n<style scoped lang=\"scss\">\n// Override height to avoid squeezing the image\n.share-icon {\n  height: auto;\n}\n</style>\n","import { render } from \"./email-button.vue?vue&type=template&id=330e7f2d&scoped=true\"\nimport script from \"./email-button.vue?vue&type=script&lang=js\"\nexport * from \"./email-button.vue?vue&type=script&lang=js\"\n\nimport \"./email-button.vue?vue&type=style&index=0&id=330e7f2d&scoped=true&lang=scss\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-330e7f2d\"]])\n\nexport default __exports__","<template>\n  <button-base medium=\"facebook\" :title=\"i18n.t('public.social.share_on_facebook')\" class=\"facebook\"\n               @click=\"handleClick\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport FacebookMixin from '@/share/campaign/facebook-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [FacebookMixin]\n}\n</script>\n\n<style lang=\"scss\" scoped>\n  $facebook-blue: #1977f2;\n  .btn.facebook {\n    background-color: $facebook-blue;\n    color: white;\n    border-color: $facebook-blue;\n  }\n</style>\n","import { render } from \"./facebook-button.vue?vue&type=template&id=7e38eb27&scoped=true\"\nimport script from \"./facebook-button.vue?vue&type=script&lang=js\"\nexport * from \"./facebook-button.vue?vue&type=script&lang=js\"\n\nimport \"./facebook-button.vue?vue&type=style&index=0&id=7e38eb27&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-7e38eb27\"]])\n\nexport default __exports__","<template>\n  <button-base medium=\"messenger\" :title=\"i18n.t('public.social.share_on_messenger')\"\n               icon-filename=\"messenger-black.svg\" class=\"messenger d-md-none\" @click=\"handleClick\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport MessengerMixin from '@/share/campaign/messenger-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [MessengerMixin]\n}\n</script>\n","import { render } from \"./messenger-button.vue?vue&type=template&id=75b80aaa\"\nimport script from \"./messenger-button.vue?vue&type=script&lang=js\"\nexport * from \"./messenger-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <button-base medium=\"twitter\" :title=\"i18n.t('public.social.share_on_twitter')\" class=\"twitter\"\n               icon-filename=\"x-twitter.svg\" @click=\"handleClick\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport TwitterMixin from '@/share/campaign/twitter-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [TwitterMixin]\n}\n</script>\n","import { render } from \"./twitter-button.vue?vue&type=template&id=416eed3e\"\nimport script from \"./twitter-button.vue?vue&type=script&lang=js\"\nexport * from \"./twitter-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <button-base medium=\"web-share-api\" :label=\"label\" :title=\"label\" :aria-label=\"label\" class=\"web-share-api\"\n               @click=\"launchShare\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport { inject } from 'vue'\nimport WebShareApiMixin from '@/share/campaign/web-share-api-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [WebShareApiMixin],\n\n  props: {\n    label: {\n      type: String,\n      required: false,\n      default() { return inject('i18n').t('social.share_anywhere') }\n    }\n  }\n}\n</script>\n","import { render } from \"./web-share-api-button.vue?vue&type=template&id=1690d11c\"\nimport script from \"./web-share-api-button.vue?vue&type=script&lang=js\"\nexport * from \"./web-share-api-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n  <button-base medium=\"whatsapp\" :title=\"i18n.t('public.social.share_on_whatsapp')\" class=\"whatsapp\"\n               @click=\"handleClick\" />\n</template>\n\n<script>\nimport ButtonBase from './button-base'\nimport WhatsappMixin from '@/share/campaign/whatsapp-mixin'\n\nexport default {\n  components: { ButtonBase },\n\n  mixins: [WhatsappMixin]\n}\n</script>\n","import { render } from \"./whatsapp-button.vue?vue&type=template&id=08b77b26\"\nimport script from \"./whatsapp-button.vue?vue&type=script&lang=js\"\nexport * from \"./whatsapp-button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"../../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BlueskyButton from './buttons/bluesky-button'\nimport CopyUrl from '@/components/sharing/copy-url'\nimport EmailButton from './buttons/email-button'\nimport FacebookButton from './buttons/facebook-button'\nimport MessengerButton from './buttons/messenger-button'\nimport SharingOptionsMixin from './sharing-options-mixin'\nimport TwitterButton from './buttons/twitter-button'\nimport WebShareApiButton from './buttons/web-share-api-button'\nimport webShareSupportedUtil from '@/utils/web-share-supported'\nimport WhatsappButton from './buttons/whatsapp-button'\n\nexport default {\n  components: {\n    BlueskyButton, CopyUrl, EmailButton, FacebookButton, MessengerButton, TwitterButton, WebShareApiButton,\n    WhatsappButton\n  },\n\n  mixins: [SharingOptionsMixin],\n\n  computed: {\n    webShareSupported() {\n      return webShareSupportedUtil()\n    }\n  }\n}\n","import camelCase from 'lodash/camelCase'\nimport capitalize from 'lodash/capitalize'\nimport { objectKeysToCamelCase } from '@/helpers/transform-object-keys'\n\nexport default {\n  props: {\n    sharing: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    formattedSharing() {\n      return objectKeysToCamelCase(this.sharing)\n    },\n\n    webShareApiButtonLabel() {\n      return this.formattedSharing.webShareApi.buttonLabel\n    }\n  },\n\n  methods: {\n    shareButtonComponentForChannel(channel) {\n      return `${capitalize(channel.medium)}Button`\n    },\n\n    sharingOptionsForChannel(channel) {\n      return this.formattedSharing[camelCase(channel.kind)]\n    }\n  }\n}\n","import ClickTracking from '@/share/campaign/click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'X (Twitter)'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n      const url = this.urlWithShareClickTokenInInnerUrl(this.sharingOptions.href, shareClickToken, 'url')\n      const popup = window.open('about:blank', 'sharer', 'toolbar=0,status=0,width=626,height=436')\n      popup.location.href = url\n    }\n  }\n}\n","import ajax from '@/helpers/ajax'\nimport { objectKeysToCamelCase } from '@/helpers/transform-object-keys'\nimport { trackShareOpen } from '@/analytics/track'\nimport { v4 as uuid } from 'uuid'\n\nconst WEB_SHARE_MEDIUM = 'web_share'\n\nexport default {\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  data() {\n    return {\n      sharingOptionsCaseConverted: objectKeysToCamelCase(this.sharingOptions),\n      shareClickCreated: false,\n      shareClickToken: uuid()\n    }\n  },\n\n  computed: {\n    urlWithShareClickToken() {\n      const urlObj = new URL(this.sharingOptionsCaseConverted.shareUrl)\n      urlObj.searchParams.append('share', this.shareClickToken)\n      return urlObj.toString()\n    }\n  },\n\n  methods: {\n    launchShare() {\n      this.trackShareClick()\n\n      navigator.share({\n        url: this.urlWithShareClickToken,\n        text: this.sharingOptionsCaseConverted.shareText\n      }).catch((error) => {\n        if (error.name === 'AbortError') {\n          // This means the user cancelled the share. This is not a problem we need to handle.\n        } else {\n          // Something else went wrong. Treat this as an error.\n          throw error\n        }\n      })\n    },\n\n    trackShareClick() {\n      if (!this.shareClickCreated) {\n        ajax.post({\n          url: this.sharingOptionsCaseConverted.shareClicksPath,\n          data: {\n            token: this.shareClickToken,\n            medium: WEB_SHARE_MEDIUM\n          },\n          successHandler: () => {\n            trackShareOpen(WEB_SHARE_MEDIUM, this.sharingOptionsCaseConverted.entityType, this.sharingOptionsCaseConverted.entitySlug)\n            this.shareClickCreated = true\n          }\n        })\n      }\n    }\n  }\n}\n","import ClickTracking from '@/share/campaign/click-tracking-mixin'\n\nexport default {\n  mixins: [ClickTracking],\n\n  props: {\n    sharingOptions: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    channelNameForAnalytics() {\n      return 'WhatsApp'\n    }\n  },\n\n  methods: {\n    handleClick() {\n      const shareClickToken = this.trackEvent()\n      const url = this.urlWithShareClickToken(this.sharingOptions.href, shareClickToken)\n      window.open(url)\n    },\n\n    urlWithShareClickToken(url, shareClickToken) {\n      if (shareClickToken !== null) {\n        // The original URL ends with a \"text\" parameter that includes some optional text followed by the\n        // URL that the person is sharing. We want to edit that internal URL to add the \"share\" parameter to it.\n        // The easiest way to do that, since we know it's at the end of the last parameter, is to just\n        // stick the URL-encoded \"&share=foo\" on the end of the outer URL. When the \"text\" parameter is decoded,\n        // this will result in the inner URL having the \"share\" parameter set.\n        // This is kind of janky, but there aren't a lot of better options since the shared URL is within text\n        // rather than separated into a parameter of its own.\n        return url + encodeURIComponent(`&share=${shareClickToken}`)\n      }\n      return url\n    }\n  }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n    const target = sfc.__vccOpts || sfc;\n    for (const [key, val] of props) {\n        target[key] = val;\n    }\n    return target;\n};\n","<template>\n  <div class=\"input-group\">\n    <input :id=\"inputId\" type=\"text\" :class=\"['form-control share copy-url-field', {'form-control-lg': useLargeControls}, inputAdditionalCssClasses]\"\n           readonly=\"true\" :value=\"urlWithShareClickToken()\" @focus=\"trackShareFocus\">\n    <button ref=\"copyUrlButton\" type=\"button\" :data-clipboard-target=\"inputUrlSelector\"\n            :class=\"['btn share copy-url', {'btn-lg': useLargeControls}, buttonAdditionalCssClasses]\">\n      {{ copyButtonLabel }}\n    </button>\n  </div>\n</template>\n\n<script>\nimport ClipboardJS from 'clipboard'\nimport { trackShareOpen } from '../../analytics/track'\nimport { nextTick } from 'vue'\nimport {v4 as uuid} from 'uuid'\nimport ajax from '../../helpers/ajax'\n\nexport default {\n  props: {\n    buttonAdditionalCssClasses: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    entitySlug: {\n      type: String,\n      required: true\n    },\n    entityType: {\n      type: String,\n      required: true\n    },\n    inputAdditionalCssClasses: {\n      type: String,\n      required: false,\n      default: ''\n    },\n    inputId: {\n      type: String,\n      default: 'url-field'\n    },\n    shareClicksPath: {\n      type: String,\n      required: true\n    },\n    url: {\n      type: String,\n      required: true\n    },\n    useLargeControls: {\n      type: Boolean,\n      default: false\n    }\n  },\n\n  data() {\n    return {\n      copiedUrl: false,\n      shareClickCreated: false,\n      shareClickToken: uuid()\n    }\n  },\n\n  computed: {\n    copyButtonLabel() {\n      if (this.copiedUrl) {\n        return this.i18n.t('social.copied')\n      } else {\n        return this.i18n.t('public.social.share_on_rawlink')\n      }\n    },\n\n    inputUrlSelector() {\n      return `#${this.inputId}`\n    }\n  },\n\n  mounted() {\n    nextTick(() => {\n      const clipboardOptions = {\n        // Define a custom function for text to be copied to clipboard so we can append the share click token\n        text: () => {\n          this.trackShareClick()\n          this.copiedUrl = true\n          setTimeout(() => {\n            this.copiedUrl = false\n          }, 1800)\n\n          return this.urlWithShareClickToken()\n        }\n      }\n\n      // clipboard requires setting the 'container' option when it's used in a Bootstrap modal:\n      // https://clipboardjs.com/#advanced-usage\n      const parentModal = this.$refs.copyUrlButton.closest('.modal')\n      if (parentModal) {\n        clipboardOptions['container'] = parentModal\n      }\n\n      new ClipboardJS('button.copy-url', clipboardOptions)\n    })\n  },\n\n  methods: {\n    trackShareFocus() {\n      this.trackShareClick()\n    },\n\n    trackShareClick() {\n      if (!this.shareClickCreated) {\n        ajax.post({\n          url: this.shareClicksPath,\n          data: {\n            token: this.shareClickToken,\n            medium: 'rawlink'\n          },\n          successHandler: () => {\n            trackShareOpen('rawlink', this.entityType, this.entitySlug)\n            this.shareClickCreated = true\n          }\n        })\n      }\n    },\n\n    urlWithShareClickToken() {\n      const urlObj = new URL(this.url)\n      urlObj.searchParams.append('share', this.shareClickToken)\n\n      return urlObj.toString()\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n  @use \"~common_styles/breakpoints\" as breakpoints;\n\n  .copy-url-field {\n    color: #999999;\n    border-color: #e2e2e2;\n  }\n\n  .copy-url {\n    // Set fixed width to avoid button changing size when switching label after copying\n    width: 150px;\n\n    text-transform: unset;\n    padding: 1rem;\n    font-size: 1rem;\n\n    &.btn-lg {\n      @include breakpoints.screen-md-up {\n        width: 200px;\n      }\n    }\n  }\n</style>\n","import { render } from \"./copy-url.vue?vue&type=template&id=626beffa&scoped=true\"\nimport script from \"./copy-url.vue?vue&type=script&lang=js\"\nexport * from \"./copy-url.vue?vue&type=script&lang=js\"\n\nimport \"./copy-url.vue?vue&type=style&index=0&id=626beffa&lang=scss&scoped=true\"\n\nimport exportComponent from \"../../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-626beffa\"]])\n\nexport default __exports__","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n    if (!getRandomValues) {\n        if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n            throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n        }\n        getRandomValues = crypto.getRandomValues.bind(crypto);\n    }\n    return getRandomValues(rnds8);\n}\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n    byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n    return (byteToHex[arr[offset + 0]] +\n        byteToHex[arr[offset + 1]] +\n        byteToHex[arr[offset + 2]] +\n        byteToHex[arr[offset + 3]] +\n        '-' +\n        byteToHex[arr[offset + 4]] +\n        byteToHex[arr[offset + 5]] +\n        '-' +\n        byteToHex[arr[offset + 6]] +\n        byteToHex[arr[offset + 7]] +\n        '-' +\n        byteToHex[arr[offset + 8]] +\n        byteToHex[arr[offset + 9]] +\n        '-' +\n        byteToHex[arr[offset + 10]] +\n        byteToHex[arr[offset + 11]] +\n        byteToHex[arr[offset + 12]] +\n        byteToHex[arr[offset + 13]] +\n        byteToHex[arr[offset + 14]] +\n        byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n    const uuid = unsafeStringify(arr, offset);\n    if (!validate(uuid)) {\n        throw TypeError('Stringified UUID is invalid');\n    }\n    return uuid;\n}\nexport default stringify;\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n    if (native.randomUUID && !buf && !options) {\n        return native.randomUUID();\n    }\n    options = options || {};\n    const rnds = options.random ?? options.rng?.() ?? rng();\n    if (rnds.length < 16) {\n        throw new Error('Random bytes length must be >= 16');\n    }\n    rnds[6] = (rnds[6] & 0x0f) | 0x40;\n    rnds[8] = (rnds[8] & 0x3f) | 0x80;\n    if (buf) {\n        offset = offset || 0;\n        if (offset < 0 || offset + 16 > buf.length) {\n            throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n        }\n        for (let i = 0; i < 16; ++i) {\n            buf[offset + i] = rnds[i];\n        }\n        return buf;\n    }\n    return unsafeStringify(rnds);\n}\nexport default v4;\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","mixins","ClickTracking","props","sharingOptions","type","required","computed","channelNameForAnalytics","methods","handleClick","shareClickToken","this","trackEvent","url","urlWithShareClickToken","href","openShareBox","window","open","encodeURIComponent","entityType","entitySlug","shareClicksPath","document","dispatchEvent","Event","trackShareOpen","uuid","ajax","post","data","token","urlWithShareClickTokenInInnerUrl","innerUrlParamName","urlObj","URL","innerUrl","URLSearchParams","search","slice","get","searchParams","set","emailShareDataHref","params","share_click_token","successHandler","subject","body","location","assign","iconFilename","String","label","medium","title","emits","iconPath","filename","require","text","i18n","t","_createElementBlock","_mergeProps","_ctx","$attrs","role","$props","class","onClick","_cache","$event","$emit","_renderSlot","$slots","_createElementVNode","src","$options","_normalizeClass","_hoisted_2","_createTextVNode","_toDisplayString","_hoisted_1","components","ButtonBase","BlueskyMixin","_createBlock","_component_button_base","EmailMixin","icon","_withCtx","_imports_0","_","FacebookMixin","MessengerMixin","TwitterMixin","WebShareApiMixin","default","inject","launchShare","WhatsappMixin","BlueskyButton","CopyUrl","EmailButton","FacebookButton","MessengerButton","TwitterButton","WebShareApiButton","WhatsappButton","SharingOptionsMixin","webShareSupported","webShareSupportedUtil","sharing","formattedSharing","objectKeysToCamelCase","webShareApiButtonLabel","webShareApi","buttonLabel","shareButtonComponentForChannel","channel","capitalize","sharingOptionsForChannel","camelCase","kind","WEB_SHARE_MEDIUM","sharingOptionsCaseConverted","shareClickCreated","shareUrl","append","toString","trackShareClick","navigator","share","shareText","catch","error","name","sfc","target","__vccOpts","key","val","buttonAdditionalCssClasses","inputAdditionalCssClasses","inputId","useLargeControls","Boolean","copiedUrl","copyButtonLabel","inputUrlSelector","mounted","nextTick","clipboardOptions","setTimeout","parentModal","$refs","copyUrlButton","closest","ClipboardJS","trackShareFocus","readonly","value","onFocus","args","ref","_hoisted_3","randomUUID","crypto","bind","getRandomValues","rnds8","Uint8Array","byteToHex","i","push","unsafeStringify","arr","offset","toLowerCase","options","buf","rnds","random","rng","length","RangeError"],"sourceRoot":""}