jodit-vue
Version:
Vue wrapper for Jodit Editor
2 lines (1 loc) • 1.57 kB
JavaScript
(function(e,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("jodit"),require("vue")):typeof define=="function"&&define.amd?define(["exports","jodit","vue"],o):(e=typeof globalThis<"u"?globalThis:e||self,o(e.JoditVue={},e.Jodit,e.Vue))})(this,function(e,o,u){"use strict";const a=(t,s)=>{const n=t.__vccOpts||t;for(const[d,r]of s)n[d]=r;return n},l={name:"JoditEditor",props:{modelValue:{type:String,required:!0},buttons:{type:Array,default:null},extraButtons:{type:Array,default:null},config:{type:Object,default:()=>({})},plugins:{type:Array,default:()=>[]}},emits:["update:modelValue"],data:()=>({editor:null}),computed:{editorConfig(){const t={...this.config};return this.buttons&&(t.buttons=this.buttons,t.buttonsMD=this.buttons,t.buttonsSM=this.buttons,t.buttonsXS=this.buttons),this.extraButtons&&(t.extraButtons=this.extraButtons),t}},watch:{modelValue(t){this.editor.value!==t&&(this.editor.value=t)}},mounted(){this.plugins.length&&this.plugins.forEach(t=>{o.Jodit.plugins.add(t.name,t.callback)}),this.editor=o.Jodit.make(this.$el,this.editorConfig),this.editor.value=this.modelValue,this.editor.events.on("change",t=>this.$emit("update:modelValue",t))},beforeUnmount(){this.editor.destruct()}};function c(t,s,n,d,r,h){return u.openBlock(),u.createElementBlock("textarea")}const i=a(l,[["render",c]]),f={install:t=>{t.component("JoditEditor",i)}};Object.defineProperty(e,"Jodit",{enumerable:!0,get:()=>o.Jodit}),e.JoditEditor=i,e.JoditVue=i,e.default=f,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});