UNPKG

@tinymce/tinymce-vue

Version:

Official TinyMCE Vue 3 Component

2 lines (1 loc) 5.2 kB
var Editor=function(y){"use strict";function n(n){return-1!==t.map(function(n){return n.toLowerCase()}).indexOf(n.toLowerCase())}function g(n){var e;return"function"==typeof(null===(e=n.options)||void 0===e?void 0:e.set)&&n.options.isRegistered("disabled")}function e(){return{listeners:[],scriptId:D("tiny-script"),scriptLoaded:!1}}function C(){var n="undefined"!=typeof window?window:global;return n&&n.tinymce?n.tinymce:null}function S(n,e){var t;"function"==typeof(null===(t=n.mode)||void 0===t?void 0:t.set)?n.mode.set(e):n.setMode(e)}var o,h=function(){return(h=Object.assign||function(n){for(var e,t=1,o=arguments.length;t<o;t++)for(var i in e=arguments[t])Object.prototype.hasOwnProperty.call(e,i)&&(n[i]=e[i]);return n}).apply(this,arguments)},t=["onActivate","onAddUndo","onBeforeAddUndo","onBeforeExecCommand","onBeforeGetContent","onBeforeRenderUI","onBeforeSetContent","onBeforePaste","onBlur","onChange","onClearUndos","onClick","onContextMenu","onCommentChange","onCompositionEnd","onCompositionStart","onCompositionUpdate","onCopy","onCut","onDblclick","onDeactivate","onDirty","onDrag","onDragDrop","onDragEnd","onDragGesture","onDragOver","onDrop","onExecCommand","onFocus","onFocusIn","onFocusOut","onGetContent","onHide","onInit","onInput","onKeyDown","onKeyPress","onKeyUp","onLoadContent","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onNodeChange","onObjectResizeStart","onObjectResized","onObjectSelected","onPaste","onPostProcess","onPostRender","onPreProcess","onProgressState","onRedo","onRemove","onReset","onSaveContent","onSelectionChange","onSetAttrib","onSetContent","onShow","onSubmit","onUndo","onVisualAid"],b=function(t,o,i){Object.keys(o).filter(n).forEach(function(n){var e=o[n];"function"==typeof e&&("onInit"===n?e(t,i):i.on(n.substring(2),function(n){return e(n,i)}))})},w=function(t,n,o,e){var i=t.modelEvents||null,i=Array.isArray(i)?i.join(" "):i;y.watch(e,function(n,e){o&&"string"==typeof n&&n!==e&&n!==o.getContent({format:t.outputFormat})&&o.setContent(n)}),o.on(i||"change input undo redo",function(){n.emit("update:modelValue",o.getContent({format:t.outputFormat}))})},i=0,D=function(n){var e=Date.now();return n+"_"+Math.floor(1e9*Math.random())+ ++i+String(e)},E=function(n){return void 0===n||""===n?[]:Array.isArray(n)?n:n.split(" ")},A=(o=e(),{load:function(n,e,t){o.scriptLoaded?t():(o.listeners.push(t),n.getElementById(o.scriptId)||function(n,e,t,o){var i=e.createElement("script");i.referrerPolicy="origin",i.type="application/javascript",i.id=n,i.src=t;function r(){i.removeEventListener("load",r),o()}i.addEventListener("load",r),e.head&&e.head.appendChild(i)}(o.scriptId,n,e,function(){o.listeners.forEach(function(n){return n()}),o.scriptLoaded=!0}))},reinitialize:function(){o=e()}}),r={apiKey:String,licenseKey:String,cloudChannel:String,id:String,init:Object,initialValue:String,inline:Boolean,modelEvents:[String,Array],plugins:[String,Array],tagName:String,toolbar:[String,Array],modelValue:String,disabled:Boolean,readonly:Boolean,tinymceScriptSrc:String,outputFormat:{type:String,validator:function(n){return"html"===n||"text"===n}}},M={selector:void 0,target:void 0};return y.defineComponent({props:r,setup:function(u,l){function t(){var n,e,a=(n=p,f?function(){return null!=c&&c.value?c.value:""}:function(){return n?v:m}),t=h(h({},o),{disabled:u.disabled,readonly:u.readonly,target:r.value,plugins:(t=o.plugins,e=u.plugins,E(t).concat(E(e))),toolbar:u.toolbar||o.toolbar,inline:s,license_key:u.licenseKey,setup:function(r){g(d=r)||!0!==u.disabled||S(d,"readonly"),r.on("init",function(n){return e=n,t=u,o=l,i=c,(n=r).setContent(a()),o.attrs["onUpdate:modelValue"]&&w(t,o,n,i),void b(e,o.attrs,n);var e,t,o,i}),"function"==typeof o.setup&&o.setup(r)}});null!==(e=r.value)&&"textarea"===e.tagName.toLowerCase()&&(r.value.style.visibility=""),C().init(t),p=!1}var o=u.init?h(h({},u.init),M):h({},M),n=y.toRefs(u),e=n.disabled,i=n.readonly,c=n.modelValue,n=n.tagName,r=y.ref(null),d=null,a=u.id||D("tiny-vue"),s=u.init&&u.init.inline||u.inline,f=!!l.attrs["onUpdate:modelValue"],p=!0,v=u.initialValue||"",m="";y.watch(i,function(n){null!==d&&S(d,n?"readonly":"design")}),y.watch(e,function(n){null!==d&&(g(d)?d.options.set("disabled",n):S(d,n?"readonly":"design"))}),y.watch(n,function(n){var e;d&&(f||(m=d.getContent()),null!==(e=C())&&void 0!==e&&e.remove(d),y.nextTick(t))}),y.onMounted(function(){var n,e;null!==C()?t():r.value&&r.value.ownerDocument&&(e=u.cloudChannel||"7",n=u.apiKey||"no-api-key",e=null==u.tinymceScriptSrc?"https://cdn.tiny.cloud/1/".concat(n,"/tinymce/").concat(e,"/tinymce.min.js"):u.tinymceScriptSrc,A.load(r.value.ownerDocument,e,t))}),y.onBeforeUnmount(function(){null!==C()&&C().remove(d)}),s||(y.onActivated(function(){p||t()}),y.onDeactivated(function(){var n;d&&(f||(m=d.getContent()),null!==(n=C())&&void 0!==n&&n.remove(d))}));return l.expose({rerender:function(n){var e;d&&(m=d.getContent(),null!==(e=C())&&void 0!==e&&e.remove(d),o=h(h(h({},o),n),M),y.nextTick(t))},getEditor:function(){return d}}),function(){return s?(n=y.h,e=r,t=u.tagName,n(t||"div",{id:a,ref:e})):(0,y.h)("textarea",{id:a,visibility:"hidden",ref:r});var n,e,t}}})}(Vue);