{"version":3,"file":"IframeLoader-BgYCWl7b.js","sources":["../../../app/javascript/shared/components/ArticleSkeletonLoader.vue","../../../app/javascript/shared/components/IframeLoader.vue"],"sourcesContent":["<template>\n  <div class=\"p-4 space-y-6 bg-white dark:bg-slate-900\">\n    <div class=\"space-y-2 animate-loader-pulse\">\n      <div class=\"h-6 bg-slate-100 dark:bg-slate-700 rounded w-1/5\" />\n      <div class=\"h-10 bg-slate-100 dark:bg-slate-700 rounded w-3/5\" />\n    </div>\n    <div class=\"space-y-2 animate-loader-pulse\">\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded w-4/5\" />\n    </div>\n    <div class=\"space-y-2 animate-loader-pulse\">\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded w-3/5\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n    </div>\n    <div class=\"space-y-2 animate-loader-pulse\">\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded\" />\n      <div class=\"h-5 bg-slate-100 dark:bg-slate-700 rounded w-3/5\" />\n    </div>\n  </div>\n</template>\n","<script>\nimport ArticleSkeletonLoader from 'shared/components/ArticleSkeletonLoader.vue';\n\nexport default {\n  name: 'IframeLoader',\n  components: {\n    ArticleSkeletonLoader,\n  },\n  props: {\n    url: {\n      type: String,\n      default: '',\n    },\n  },\n  data() {\n    return {\n      isLoading: true,\n      showEmptyState: !this.url,\n    };\n  },\n  methods: {\n    handleIframeLoad() {\n      // Once loaded, the loading state is hidden\n      this.isLoading = false;\n    },\n    handleIframeError() {\n      // Hide the loading state and show the empty state when an error occurs\n      this.isLoading = false;\n      this.showEmptyState = true;\n    },\n  },\n};\n</script>\n\n<template>\n  <div class=\"relative overflow-hidden pb-1/2 h-full\">\n    <iframe\n      v-if=\"url\"\n      :src=\"url\"\n      class=\"absolute w-full h-full top-0 left-0\"\n      @load=\"handleIframeLoad\"\n      @error=\"handleIframeError\"\n    />\n    <ArticleSkeletonLoader\n      v-if=\"isLoading\"\n      class=\"absolute w-full h-full top-0 left-0\"\n    />\n    <div\n      v-if=\"showEmptyState\"\n      class=\"absolute w-full h-full top-0 left-0 flex justify-center items-center\"\n    >\n      <p>{{ $t('PORTAL.IFRAME_ERROR') }}</p>\n    </div>\n  </div>\n</template>\n"],"names":["_sfc_render","_ctx","_cache","_openBlock","_createElementBlock","_hoisted_1","_sfc_main","ArticleSkeletonLoader","_hoisted_2","$props","$options","args","_createCommentVNode","$data","_createBlock","_component_ArticleSkeletonLoader","_hoisted_3","_createElementVNode"],"mappings":"qLACE,SAAAA,EAAAC,EAAAC,EAAA,CADF,OAAAC,EAAA,EAAAC,EAAA,MAAAC,EAAAH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,mnCCGKI,EAAU,CACb,KAAM,eACN,WAAY,CACV,sBAAAC,CACD,EACD,MAAO,CACL,IAAK,CACH,KAAM,OACN,QAAS,EACV,CACF,EACD,MAAO,CACL,MAAO,CACL,UAAW,GACX,eAAgB,CAAC,KAAK,IAEzB,EACD,QAAS,CACP,kBAAmB,CAEjB,KAAK,UAAY,EAClB,EACD,mBAAoB,CAElB,KAAK,UAAY,GACjB,KAAK,eAAiB,EACvB,CACF,CACH,EAIOF,EAAA,CAAA,MAAM,wCAAwC,EAnCrDG,EAAA,CAAA,KAAA,KAAA,IAAA,EAiDM,MAAM,mIAdV,OAAAL,EAAA,EAAAC,EAkBM,MAlBNC,EAkBM,CAhBII,EAAG,SADXL,EAME,SAAA,CA1CN,IAAA,EAsCO,IAAKK,EAAG,IACT,MAAM,sCACL,2BAAMC,EAAgB,kBAAAA,EAAA,iBAAA,GAAAC,CAAA,GACtB,4BAAOD,EAAiB,mBAAAA,EAAA,kBAAA,GAAAC,CAAA,EAzC/B,EAAA,KAAA,GAAAH,CAAA,GAAAI,EAAA,GAAA,EAAA,EA4CYC,EAAS,eADjBC,EAGEC,EAAA,CA9CN,IAAA,EA6CM,MAAM,yCA7CZH,EAAA,GAAA,EAAA,EAgDYC,EAAc,gBADtBV,IAAAC,EAKM,MALNY,EAKM,CADJC,EAAsC,WAAhChB,EAAE,GAAA,qBAAA,CAAA,EAAA,CAAA,KAnDdW,EAAA,GAAA,EAAA"}