{"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":""}