{"version":3,"file":"component.mjs","sources":["../../../../../../../../packages/components/editor/src/plugins/component/component.ts"],"sourcesContent":["import {\n  camelize,\n  capitalize,\n  defineComponent,\n  getCurrentInstance,\n  h,\n  resolveComponent,\n} from 'vue'\nimport { compile } from '@vue/compiler-dom'\nimport * as runtimeDom from '@vue/runtime-dom'\nimport { NodeViewWrapper, nodeViewProps } from '@tiptap/vue-3'\n\nconst compileToFunction = (template: string) => {\n  const { code } = compile(template)\n  return new Function('Vue', code)(runtimeDom)\n}\n\nconst resolve = (registry: Record<string, any>, name: string) => {\n  return (\n    registry &&\n    (registry[name] ||\n      registry[camelize(name)] ||\n      registry[capitalize(camelize(name))])\n  )\n}\n\nconst isVueComponent = (registry: Record<string, any>, name: string) =>\n  !!resolve(registry, name)\n\nexport const Component = defineComponent({\n  name: 'Component',\n  inheritAttrs: false,\n  props: {\n    ...nodeViewProps,\n  },\n  setup(props) {\n    const instance = getCurrentInstance()\n\n    return () => {\n      const { node } = props\n\n      const attrs: Record<string, any> = { ...node.attrs.props }\n      const template = attrs.template\n      delete attrs.template\n\n      const isCustomTag = isVueComponent(\n        instance?.appContext?.components ?? {},\n        attrs.is\n      )\n      const parent = isCustomTag ? resolveComponent(attrs.is) : attrs.is\n      const child = {\n        render: compileToFunction(template),\n      }\n\n      const renderChild = () => {\n        return h(\n          parent,\n          { ...attrs },\n          isCustomTag\n            ? {\n                default: () => h(child),\n              }\n            : [h(child)]\n        )\n      }\n\n      return h(\n        NodeViewWrapper,\n        {\n          class: ['tiptap-extension-component', attrs['wrap-class']],\n        },\n        {\n          default: () => renderChild(),\n        }\n      )\n    }\n  },\n})\n"],"names":[],"mappings":";;;;;AAYA,MAAM,iBAAA,GAAoB,CAAC,QAAqB,KAAA;AAC9C,EAAA,MAAM,EAAE,IAAA,EAAS,GAAA,OAAA,CAAQ,QAAQ,CAAA,CAAA;AACjC,EAAA,OAAO,IAAI,QAAA,CAAS,KAAO,EAAA,IAAI,EAAE,UAAU,CAAA,CAAA;AAC7C,CAAA,CAAA;AAEA,MAAM,OAAA,GAAU,CAAC,QAAA,EAA+B,IAAiB,KAAA;AAC/D,EACE,OAAA,QAAA,KACC,QAAS,CAAA,IAAA,CAAA,IACR,QAAS,CAAA,QAAA,CAAS,IAAI,CAAA,CAAA,IACtB,QAAS,CAAA,UAAA,CAAW,QAAS,CAAA,IAAI,CAAC,CAAA,CAAA,CAAA,CAAA;AAExC,CAAA,CAAA;AAEA,MAAM,cAAA,GAAiB,CAAC,QAA+B,EAAA,IAAA,KACrD,CAAC,CAAC,OAAA,CAAQ,UAAU,IAAI,CAAA,CAAA;AAEnB,MAAM,YAAY,eAAgB,CAAA;AAAA,EACvC,IAAM,EAAA,WAAA;AAAA,EACN,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA;AAAA,IACL,GAAG,aAAA;AAAA,GACL;AAAA,EACA,MAAM,KAAO,EAAA;AACX,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AAEpC,IAAA,OAAO,MAAM;AAtCjB,MAAA,IAAA,EAAA,EAAA,EAAA,CAAA;AAuCM,MAAM,MAAA,EAAE,MAAS,GAAA,KAAA,CAAA;AAEjB,MAAA,MAAM,KAA6B,GAAA,EAAE,GAAG,IAAA,CAAK,MAAM,KAAM,EAAA,CAAA;AACzD,MAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAA;AACvB,MAAA,OAAO,KAAM,CAAA,QAAA,CAAA;AAEb,MAAA,MAAM,WAAc,GAAA,cAAA;AAAA,QAAA,CAClB,EAAU,GAAA,CAAA,EAAA,GAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAA,UAAA,KAAV,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAA,KAAtB,YAAoC,EAAC;AAAA,QACrC,KAAM,CAAA,EAAA;AAAA,OACR,CAAA;AACA,MAAA,MAAM,SAAS,WAAc,GAAA,gBAAA,CAAiB,KAAM,CAAA,EAAE,IAAI,KAAM,CAAA,EAAA,CAAA;AAChE,MAAA,MAAM,KAAQ,GAAA;AAAA,QACZ,MAAA,EAAQ,kBAAkB,QAAQ,CAAA;AAAA,OACpC,CAAA;AAEA,MAAA,MAAM,cAAc,MAAM;AACxB,QAAO,OAAA,CAAA;AAAA,UACL,MAAA;AAAA,UACA,EAAE,GAAG,KAAM,EAAA;AAAA,UACX,WACI,GAAA;AAAA,YACE,OAAA,EAAS,MAAM,CAAA,CAAE,KAAK,CAAA;AAAA,WAExB,GAAA,CAAC,CAAE,CAAA,KAAK,CAAC,CAAA;AAAA,SACf,CAAA;AAAA,OACF,CAAA;AAEA,MAAO,OAAA,CAAA;AAAA,QACL,eAAA;AAAA,QACA;AAAA,UACE,KAAO,EAAA,CAAC,4BAA8B,EAAA,KAAA,CAAM,YAAa,CAAA,CAAA;AAAA,SAC3D;AAAA,QACA;AAAA,UACE,OAAA,EAAS,MAAM,WAAY,EAAA;AAAA,SAC7B;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC;;;;"}