{"version":3,"file":"dep-0edb1ed5.mjs","sources":["../../src/iframe/index.vue"],"sourcesContent":["<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nexport default defineComponent({\n  name: 'TlbsIframe',\n  \n})\n</script>\n<template>\n  <div\n    ref=\"iframeContainer\"\n    class=\"iframe-container\"\n  >\n    <iframe\n      id=\"editor-js-iframe\"\n      ref=\"iframe\"\n      title=\"iframe\"\n      scrolling=\"no\"\n    />\n  </div>\n</template>\n\n<script setup lang=\"ts\" name=\"TlbsIframe\">\nimport { onMounted } from 'vue';\ninterface Props {\n  code: string;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n  code: '',\n});\n\n\nconst iframe = ref<HTMLIFrameElement>();\nconst iframeContainer = ref<HTMLElement>();\n\nconst runCode = (code = '') => {\n  if (!iframe.value) {\n    return;\n  }\n  const iFrameWindow = iframe.value.contentWindow;\n  let doc;\n  if (!iFrameWindow) return;\n  if (iFrameWindow.document) {\n    doc = iFrameWindow.document;\n  }\n  if (!doc) {\n    return;\n  }\n  doc.open();\n  doc.write(code);\n  doc.close();\n  // doc 写入新内容可能会导致事件绑定失败，需要重新绑定\n  iFrameWindow.removeEventListener('click', clickCallback);\n  iFrameWindow.addEventListener('click', clickCallback);\n};\n\nconst clickCallback = () => {\n  if (iframeContainer.value instanceof HTMLElement) {\n    iframeContainer.value?.click();\n  }\n};\n\nwatch(props, (newVal) => {\n  runCode(newVal.code);\n});\n\nonMounted(() => {\n  runCode(props.code);\n  // 点击iframe触发父节点点击事件\n  const iFrame = iframe.value;\n  if (!iFrame) return;\n  const iFrameWindow = iFrame.contentWindow || iFrame.contentDocument;\n  if (!iFrameWindow) return;\n  iFrameWindow.addEventListener('click', clickCallback);\n});\n</script>\n"],"names":["__default__","defineComponent","name","_defineComponent","_objectSpread","props","code","type","String","required","default","setup","__props","iFrameWindow","document","doc","open","write","close","removeEventListener","clickCallback","addEventListener","iframeContainer","value","HTMLElement","click","watch","newVal","runCode","onMounted","iFrame","iframe","contentWindow","contentDocument","_ctx","_cache","_openBlock","_createElementBlock","ref_key","ref","class","_createElementVNode","id","title","scrolling"],"mappings":";;;AAuBA,IAAAA,WAAA,GAAAC,eAAA,CAAA;AACAC,EAAAA,IAAA,EAAA,YAAA;AADA,CAAA,CAAA,CAAA;;AAGA,aAAA,eAAAC,eAAA,CAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EA1BkBJ,WA0BlB,CAAA,EAAA,EAAA,EAAA;AAzBAK,EAAAA,KAAA,EAAA;AACAC,IAAAA,IAAA,EAAA;AAAAC,MAAAA,IAAA,EAAAC,MAAA;AAAAC,MAAAA,QAAA,EAAA,IAAA;AAAAC,MAAAA,OAAA,EAAA,EAAA;AAAA,KAAA;GAwBA;;EAtBAC,KAAA,CAAAC,OAAA,EAAA;IACA,IAAAP,KAAA,GAAAO,OAAA,CAAA;;;;;;;;;;;;;yBAgB0C,OAAA;;MAQvC,IAAAC,YAAA,CAAAC,QAAA,EAAA;QACHC,GAAA,GAAAF,YAAA,CAAAC,QAAA,CAAA;AACA,OAAA;;MACA,IAAA,CAAAC,GAAA,EAAA;AACA,QAAA,OAAA;AACA,OAAA;;AACAA,MAAAA,GAAA,CAAAC,IAAA,EAAA,CAAA;MACAD,GAAA,CAAAE,KAAA,CAAAX,IAAA,CAAA,CAAA;AACAS,MAAAA,GAAA,CAAAG,KAAA,EAAA,CAAA;AACAL,MAAAA,YAAA,CAAAM,mBAAA,CAAA,OAAA,EAAAC,aAAA,CAAA,CAAA;AACAP,MAAAA,YAAA,CAAAQ,gBAAA,CAAA,OAAA,EAAAD,aAAA,CAAA,CAAA;;;IAEA,IAAAA,aAAA,GAAA,MAAA;AACA,MAAA,IAAAE,eAAA,CAAAC,KAAA,YAAAC,WAAA,EAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AACA,QAAA,CAAA,qBAAA,GAAAF,eAAA,CAAAC,KAAA,MAAA,IAAA,IAAA,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAAAE,KAAA,EAAA,CAAA;AACA,OAAA;KAHA,CAAA;;AAKAC,IAAAA,KAAA,CAAArB,KAAA,EAAAsB,MAAA,IAAA;AACAC,MAAAA,OAAA,CAAAD,MAAA,CAAArB,IAAA,CAAA,CAAA;AACA,KAFA,CAAA,CAAA;AAGAuB,IAAAA,SAAA,CAAA,MAAA;AACAD,MAAAA,OAAA,CAAAvB,KAAA,CAAAC,IAAA,CAAA,CAAA;AACA,MAAA,IAAAwB,MAAA,GAAAC,MAAA,CAAAR,KAAA,CAAA;MACA,IAAA,CAAAO,MAAA,EACA,OAAA;MACA,IAAAjB,YAAA,GAAAiB,MAAA,CAAAE,aAAA,IAAAF,MAAA,CAAAG,eAAA,CAAA;MACA,IAAA,CAAApB,YAAA,EACA,OAAA;AACAA,MAAAA,YAAA,CAAAQ,gBAAA,CAAA,OAAA,EAAAD,aAAA,CAAA,CAAA;AACA,KATA,CAAA,CAAA;AAUA,IAAA,OAAA,CAAAc,IAAA,EAAAC,MAAA,KAAA;AACA,MAAA,OAAAC,SAAA,EAAA,EAAAC,kBAAA,CAAA,KAAA,EAAA;AACAC,QAAAA,OAAA,EAAA,iBADA;AAEAC,QAAAA,GAAA,EAAAjB,eAFA;AAGAkB,QAAAA,KAAA,EAAA,kBAAA;AAHA,OAAA,EAIA,CACAC,kBAAA,CAAA,QAAA,EAAA;AACAC,QAAAA,EAAA,EAAA,kBADA;AAEAJ,QAAAA,OAAA,EAAA,QAFA;AAGAC,QAAAA,GAAA,EAAAR,MAHA;AAIAY,QAAAA,KAAA,EAAA,QAJA;AAKAC,QAAAA,SAAA,EAAA,IAAA;OALA,EAMA,IANA,EAMA,GANA,CADA,CAJA,EAYA,GAZA,CAAA,CAAA;KADA,CAAA;AAeA,GAAA;;AAhDA,CAAA,CAAA,CAAA;;;;;;;"}