{"version":3,"file":"js/235-61ab61172fb6020cc2aa.chunk.js","mappings":"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","sources":["webpack://agra/./node_modules/vue-loader/dist/exportHelper.js","webpack://agra/./app/javascript/components/buttons/primary-button.vue","webpack://agra/./app/javascript/components/buttons/primary-button.vue?ee67","webpack://agra/./app/javascript/embedly/embedly-element.vue","webpack://agra/./app/javascript/embedly/embedly-image.vue","webpack://agra/./app/javascript/embedly/embedly-placeholder.vue","webpack://agra/./app/javascript/embedly/embedly-placeholder.vue?ee57","webpack://agra/./app/javascript/embedly/embedly-privacy-mixin.js","webpack://agra/./app/javascript/embedly/embedly-image.vue?c60b","webpack://agra/./app/javascript/embedly/embedly-video.vue","webpack://agra/./app/javascript/embedly/embedly-video.vue?1480","webpack://agra/./app/javascript/embedly/embedly-element.vue?7cad"],"sourcesContent":["\"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  <button type=\"button\" :disabled=\"disabled\" class=\"btn btn-primary\" @click=\"$emit('click')\">\n    <slot>\n      {{ label }}\n    </slot>\n  </button>\n</template>\n\n<script>\nimport { inject } from 'vue'\n\nexport default {\n  props: {\n    disabled: {\n      type: Boolean,\n      required: false,\n      default: false\n    },\n    label: {\n      type: String,\n      required: false,\n      default: function() { return inject('i18n').t('administrative.save') }\n    }\n  },\n\n  emits: ['click']\n}\n\n</script>\n","import { render } from \"./primary-button.vue?vue&type=template&id=fa1dbc0e\"\nimport script from \"./primary-button.vue?vue&type=script&lang=js\"\nexport * from \"./primary-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  <embedly-video v-if=\"isVideo\"\n                 :embedly-iframe-html=\"embedlyResponse.html\"\n                 :embedly-thumbnail-url=\"embedlyResponse.thumbnail_url\"\n                 :provider=\"embedlyResponse.provider_name\"\n                 :bypass-placeholder=\"bypassPlaceholder\" />\n\n  <embedly-image v-else-if=\"isImage\"\n                 :embedly-thumbnail-url=\"embedlyResponse.url\"\n                 :img-style=\"embedlyResponse.style\"\n                 :title=\"embedlyResponse.title\"\n                 :height=\"embedlyResponse.height\"\n                 :width=\"embedlyResponse.width\"\n                 :bypass-placeholder=\"bypassPlaceholder\" />\n\n  <div v-else v-html=\"embedlyResponse.html\" />\n</template>\n\n<script>\nimport EmbedlyImage from './embedly-image'\nimport EmbedlyVideo from './embedly-video'\n\nexport default {\n  components: { EmbedlyImage, EmbedlyVideo },\n\n  props: {\n    bypassPlaceholder: {\n      type: Boolean,\n      required: true\n    },\n    embedlyPrivacyMode: {\n      type: Boolean,\n      required: true\n    },\n    embedlyResponse: {\n      type: Object,\n      required: true\n    }\n  },\n\n  computed: {\n    isVideo() {\n      return this.embedlyResponse.type === 'video'\n    },\n\n    isImage() {\n      return this.embedlyResponse.type === 'photo'\n    }\n  }\n}\n</script>\n","<template>\n  <div>\n    <embedly-placeholder v-if=\"showPlaceholder\" @click=\"revealImage\" />\n\n    <a v-else :href=\"embedlyThumbnailUrl\" target=\"_blank\" rel=\"noopener noreferrer\">\n      <img class=\"img-fluid\" :style=\"imgStyle\" :src=\"imageSrc\" :alt=\"title\">\n    </a>\n  </div>\n</template>\n\n<script>\nimport EmbedlyPlaceholder from './embedly-placeholder'\nimport embedlyPrivacyMixin from './embedly-privacy-mixin'\n\nexport default {\n  components: { EmbedlyPlaceholder },\n\n  mixins: [ embedlyPrivacyMixin],\n\n  props: {\n    bypassPlaceholder: {\n      type: Boolean,\n      required: true\n    },\n    imgStyle: {\n      type: String,\n      required: false\n    },\n    title: {\n      type: String,\n      required: false\n    }\n  },\n\n  data() {\n    return {\n      showPlaceholder: this.agraConfiguration.embedly.privacyMode && !this.bypassPlaceholder\n    }\n  },\n\n  computed: {\n    imageSrc() {\n      if (this.agraConfiguration.embedly.privacyMode) {\n        // Show the image we have downloaded from Embedly via our proxy, if we have it.\n        return this.proxiedThumbnailUrl\n      } else {\n        // Fetch the image from Embedly\n        return this.embedlyThumbnailUrl\n      }\n    }\n  },\n\n  methods: {\n    revealImage() {\n      this.showPlaceholder = false\n    }\n  }\n}\n</script>\n","<template>\n  <div class=\"embedly-placeholder\" @click=\"$emit('click')\">\n    <img v-if=\"placeholderImageUrl\" :src=\"placeholderImageUrl\" class=\"img-fluid\" @click=\"$emit('click')\">\n\n    <div v-else class=\"p-3 bg-primary-dark text-on-primary-dark\">\n      {{ i18n.t('public.embedly.click_to_show') }}\n    </div>\n  </div>\n</template>\n\n<script>\nexport default {\n  emits: ['click'],\n\n  computed: {\n    placeholderImageUrl() {\n      return this.agraConfiguration.embedly.placeholderImageUrl\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.embedly-placeholder {\n  cursor: pointer;\n}\n</style>\n","import { render } from \"./embedly-placeholder.vue?vue&type=template&id=5066bb37&scoped=true\"\nimport script from \"./embedly-placeholder.vue?vue&type=script&lang=js\"\nexport * from \"./embedly-placeholder.vue?vue&type=script&lang=js\"\n\nimport \"./embedly-placeholder.vue?vue&type=style&index=0&id=5066bb37&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-5066bb37\"]])\n\nexport default __exports__","export default {\n  props: {\n    embedlyThumbnailUrl: {\n      type: String,\n      required: true\n    }\n  },\n\n  computed: {\n    // Extract root url which is 'url' param of the full thumbnail url\n    thumbnailRootUrl() {\n      if (this.embedlyThumbnailUrl) {\n        const fullUrl = new URL(this.embedlyThumbnailUrl)\n        return fullUrl.searchParams.get('url')\n      }\n      return null\n    },\n\n    proxiedThumbnailUrl() {\n      const tokyoHost = window.Agra.Configuration.tokyoUrlBase\n      return `${tokyoHost}/cached_url/embedly_thumbnail?url=${encodeURIComponent(this.thumbnailRootUrl)}`\n    }\n  }\n}\n","import { render } from \"./embedly-image.vue?vue&type=template&id=cbe27702\"\nimport script from \"./embedly-image.vue?vue&type=script&lang=js\"\nexport * from \"./embedly-image.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  <div>\n    <div v-if=\"showIframe\" class=\"ratio ratio-16x9\">\n      <iframe :src=\"iframeSrcSkippingEmbedly\" />\n    </div>\n    <template v-else>\n      <embedly-placeholder v-if=\"showPlaceholder\" @click=\"revealIframe\" />\n\n      <div v-else-if=\"proxiedThumbnailUrl\" class=\"d-flex align-items-center justify-content-center\" @click=\"revealIframe\">\n        <img class=\"thumbnail\" :src=\"proxiedThumbnailUrl\" width=\"100%\">\n        <!-- eslint-disable-next-line vue/singleline-html-element-content-newline -->\n        <primary-button type=\"button\" class=\"load-button\">\n          {{ loadVideoButtonText }}\n        </primary-button>\n      </div>\n    </template>\n  </div>\n</template>\n\n<script>\nimport EmbedlyPlaceholder from './embedly-placeholder'\nimport embedlyPrivacyMixin from './embedly-privacy-mixin'\nimport PrimaryButton from '../components/buttons/primary-button.vue'\n\nexport default {\n  components: { EmbedlyPlaceholder, PrimaryButton },\n\n  mixins: [ embedlyPrivacyMixin],\n\n  props: {\n    bypassPlaceholder: {\n      type: Boolean,\n      required: true\n    },\n    embedlyIframeHtml: {\n      type: String,\n      required: true\n    },\n    provider: {\n      type: String,\n      required: true\n    }\n  },\n\n  data() {\n    return {\n      showIframe: !this.agraConfiguration.embedly.privacyMode,\n      showPlaceholder: this.agraConfiguration.embedly.privacyMode && !this.bypassPlaceholder\n    }\n  },\n\n  computed: {\n    iframeSrcSkippingEmbedly() {\n      // Extract the URL of the video on its original provider host\n      // from the Embedly iframe code. Therefore, we avoid making a request to\n      // any Embedly host for loading the video inside the iframe.\n      const el = document.createElement('div')\n      el.innerHTML = this.embedlyIframeHtml\n      const fullUrl = el.firstChild.src\n      return new URL(fullUrl).searchParams.get('src')\n    },\n\n    loadVideoButtonText() {\n      return this.i18n.t('components.embedly.video.load', {provider: this.provider})\n    }\n  },\n\n  methods: {\n    revealIframe() {\n      this.showIframe = true\n    }\n  }\n}\n</script>\n\n<style scoped lang=\"scss\">\n  .thumbnail {\n    cursor: pointer;\n  }\n\n  .load-button {\n    position: absolute;\n    z-index: 2;\n  }\n</style>\n","import { render } from \"./embedly-video.vue?vue&type=template&id=5cf495e8&scoped=true\"\nimport script from \"./embedly-video.vue?vue&type=script&lang=js\"\nexport * from \"./embedly-video.vue?vue&type=script&lang=js\"\n\nimport \"./embedly-video.vue?vue&type=style&index=0&id=5cf495e8&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-5cf495e8\"]])\n\nexport default __exports__","import { render } from \"./embedly-element.vue?vue&type=template&id=31b38b00\"\nimport script from \"./embedly-element.vue?vue&type=script&lang=js\"\nexport * from \"./embedly-element.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__"],"names":["exports","sfc","props","target","__vccOpts","key","val","disabled","type","Boolean","required","default","label","String","inject","t","emits","_createElementBlock","$props","class","onClick","_cache","$event","_ctx","$emit","_renderSlot","$slots","_createTextVNode","_toDisplayString","_hoisted_1","computed","placeholderImageUrl","this","agraConfiguration","embedly","$options","src","_hoisted_2","i18n","embedlyThumbnailUrl","thumbnailRootUrl","URL","searchParams","get","proxiedThumbnailUrl","window","Agra","Configuration","tokyoUrlBase","encodeURIComponent","components","EmbedlyPlaceholder","mixins","embedlyPrivacyMixin","bypassPlaceholder","imgStyle","title","data","showPlaceholder","privacyMode","imageSrc","methods","revealImage","$data","_createBlock","_component_embedly_placeholder","href","rel","_createElementVNode","style","_normalizeStyle","alt","PrimaryButton","embedlyIframeHtml","provider","showIframe","iframeSrcSkippingEmbedly","el","document","createElement","innerHTML","fullUrl","firstChild","loadVideoButtonText","revealIframe","EmbedlyImage","EmbedlyVideo","_Fragment","args","width","_hoisted_3","_createVNode","_component_primary_button","_withCtx","_","_createCommentVNode","embedlyPrivacyMode","embedlyResponse","Object","isVideo","isImage","_component_embedly_video","html","thumbnail_url","provider_name","_component_embedly_image","url","height"],"sourceRoot":""}