UNPKG

vue-email-editor

Version:

The excellent drag-n-drop email editor by [Unlayer](https://unlayer.com/embed) as a [Vue](https://vuejs.org/) _wrapper component_. This is the most powerful and developer friendly visual email builder for your app.

2 lines (1 loc) 3.13 kB
(function(n,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],s):(n=typeof globalThis<"u"?globalThis:n||self,s(n["vue-email-editor"]={},n.Vue))})(this,function(n,s){"use strict";const d={name:"vue-email-editor",version:"2.2.0",main:"dist/vue-email-editor.es.js",types:"dist/vue-email-editor.d.ts",exports:{".":{import:"./dist/vue-email-editor.es.js",require:"./dist/vue-email-editor.umd.js",types:"./dist/vue-email-editor.d.ts"}},scripts:{serve:"vue-cli-service serve",build:"vue-cli-service build",lint:"vue-cli-service lint","build-types":"vue-tsc --emitDeclarationOnly","build-bundle":"vite build && cd ./src/components && npm run build-types",release:"npm run build-bundle && npm publish"},dependencies:{"@unlayer/types":"^1.394.0"},peerDependencies:{vue:"^3.2.13"},devDependencies:{"@babel/types":"^7.24.7","@vitejs/plugin-vue":"^5.0.5","@vue/cli-plugin-typescript":"~5.0.0","@vue/cli-service":"~5.0.0",typescript:"^5.2.2",vite:"^5.3.1",vue:"^3.2.13","vue-dts-gen":"^0.3.0","vue-loader":"^17.4.2","vue-router":"^4.4.0","vue-template-compiler":"^2.7.16","vue-tsc":"^2.0.22"},files:["dist"]},u="https://editor.unlayer.com/embed.js?2",c=[];let l=!1;const m=e=>{const t=document.querySelectorAll("script");let i=!1;return t.forEach(o=>{o.src.includes(e)&&(i=!0)}),i},h=e=>{c.push(e)},a=()=>{if(l){let e;for(;e=c.shift();)e()}},v=(e,t=u)=>{if(h(e),m(t))a();else{const i=document.createElement("script");i.setAttribute("src",t),i.onload=()=>{l=!0,a()},document.head.appendChild(i)}};let f=0;const b=s.defineComponent({name:"EmailEditor",props:{editorId:String,minHeight:{type:String,default:"500px"},options:{type:Object,default:()=>({})},scriptUrl:String,appearance:Object,locale:String,projectId:Number,tools:Object},computed:{id(){return this.editorId||`editor-${++f}`}},setup(){return{editor:s.shallowRef(null),createSerializedEditor:i=>i?{...i,registerCallback:(o,r)=>{i.registerCallback(o,(p,S)=>{r(p,_=>{const D=s.toRaw(_);S(D)})})}}:null}},mounted(){v(this.loadEditor.bind(this),this.scriptUrl)},methods:{loadEditor(){var i;const e=s.toRaw(this.options)||{};this.appearance&&(e.appearance=s.toRaw(this.appearance)),this.locale&&(e.locale=this.locale),this.projectId&&(e.projectId=this.projectId),this.tools&&(e.tools=s.toRaw(this.tools));const t=unlayer.createEditor({...e,id:this.id,source:{name:d.name,version:d.version}});this.editor=this.createSerializedEditor(t),this.$emit("load"),(i=this.editor)==null||i.addEventListener("editor:ready",()=>{this.$emit("ready")})},exportHtml(e){var t;(t=this.editor)==null||t.exportHtml(e)},loadDesign(e){var t;(t=this.editor)==null||t.loadDesign(e)},saveDesign(e){var t;(t=this.editor)==null||t.saveDesign(e)}}}),y=(e,t)=>{const i=e.__vccOpts||e;for(const[o,r]of t)i[o]=r;return i},g=["id"];function j(e,t,i,o,r,p){return s.openBlock(),s.createElementBlock("div",{id:e.id,class:"unlayer-editor",style:s.normalizeStyle({minHeight:e.minHeight})},null,12,g)}const E=y(b,[["render",j],["__scopeId","data-v-95d7283d"]]);n.EmailEditor=E,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});