UNPKG

primevue

Version:

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc

2 lines (1 loc) 5.94 kB
import{DomHandler as t}from"primevue/utils";import e from"primevue/basecomponent";import l from"primevue/editor/style";import{openBlock as n,createElementBlock as o,mergeProps as i,createElementVNode as r,renderSlot as u,normalizeProps as a,guardReactiveProps as s}from"vue";var c={name:"BaseEditor",extends:e,props:{modelValue:String,placeholder:String,readonly:Boolean,formats:Array,editorStyle:null,modules:null},style:l,provide:function(){return{$parentInstance:this}},beforeMount:function(){var t;l.loadStyle({nonce:null===(t=this.$primevue)||void 0===t||null===(t=t.config)||void 0===t||null===(t=t.csp)||void 0===t?void 0:t.nonce})}};function p(t){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p(t)}function m(t,e){var l=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),l.push.apply(l,n)}return l}function d(t){for(var e=1;e<arguments.length;e++){var l=null!=arguments[e]?arguments[e]:{};e%2?m(Object(l),!0).forEach((function(e){f(t,e,l[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(l)):m(Object(l)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(l,e))}))}return t}function f(t,e,l){var n;return(e="symbol"==p(n=h(e,"string"))?n:String(n))in t?Object.defineProperty(t,e,{value:l,enumerable:!0,configurable:!0,writable:!0}):t[e]=l,t}function h(t,e){if("object"!=p(t)||!t)return t;var l=t[Symbol.toPrimitive];if(void 0!==l){var n=l.call(t,e||"default");if("object"!=p(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}var b=function(){try{return window.Quill}catch(t){return null}}(),y={name:"Editor",extends:c,emits:["update:modelValue","text-change","selection-change","load"],data:function(){return{reRenderColorKey:0}},quill:null,watch:{modelValue:function(t,e){t!==e&&this.quill&&!this.quill.hasFocus()&&(this.reRenderColorKey++,this.renderValue(t))},readonly:function(){this.handleReadOnlyChange()}},mounted:function(){var e=this,l={modules:d({toolbar:this.$refs.toolbarElement},this.modules),readOnly:this.readonly,theme:"snow",formats:this.formats,placeholder:this.placeholder};b?(this.quill=new b(this.$refs.editorElement,l),this.initQuill(),this.handleLoad()):import("quill").then((function(n){n&&t.isExist(e.$refs.editorElement)&&(e.quill=n.default?new n.default(e.$refs.editorElement,l):new n(e.$refs.editorElement,l),e.initQuill())})).then((function(){e.handleLoad()}))},beforeUnmount:function(){this.quill=null},methods:{renderValue:function(t){this.quill&&(t?this.quill.setContents(this.quill.clipboard.convert(t)):this.quill.setText(""))},initQuill:function(){var t=this;this.renderValue(this.modelValue),this.quill.on("text-change",(function(e,l,n){if("user"===n){var o=t.$refs.editorElement.children[0].innerHTML,i=t.quill.getText().trim();"<p><br></p>"===o&&(o=""),t.$emit("update:modelValue",o),t.$emit("text-change",{htmlValue:o,textValue:i,delta:e,source:n,instance:t.quill})}})),this.quill.on("selection-change",(function(e,l,n){var o=t.$refs.editorElement.children[0].innerHTML,i=t.quill.getText().trim();t.$emit("selection-change",{htmlValue:o,textValue:i,range:e,oldRange:l,source:n,instance:t.quill})}))},handleLoad:function(){this.quill&&this.quill.getModule("toolbar")&&this.$emit("load",{instance:this.quill})},handleReadOnlyChange:function(){this.quill&&this.quill.enable(!this.readonly)}}};y.render=function(t,e,l,c,p,m){return n(),o("div",i({class:t.cx("root")},t.ptm("root"),{"data-pc-name":"editor"}),[r("div",i({ref:"toolbarElement",class:t.cx("toolbar")},t.ptm("toolbar")),[u(t.$slots,"toolbar",{},(function(){return[r("span",i({class:"ql-formats"},t.ptm("formats")),[r("select",i({class:"ql-header",defaultValue:"0"},t.ptm("header")),[r("option",i({value:"1"},t.ptm("option")),"Heading",16),r("option",i({value:"2"},t.ptm("option")),"Subheading",16),r("option",i({value:"0"},t.ptm("option")),"Normal",16)],16),r("select",i({class:"ql-font"},t.ptm("font")),[r("option",a(s(t.ptm("option"))),null,16),r("option",i({value:"serif"},t.ptm("option")),null,16),r("option",i({value:"monospace"},t.ptm("option")),null,16)],16)],16),r("span",i({class:"ql-formats"},t.ptm("formats")),[r("button",i({class:"ql-bold",type:"button"},t.ptm("bold")),null,16),r("button",i({class:"ql-italic",type:"button"},t.ptm("italic")),null,16),r("button",i({class:"ql-underline",type:"button"},t.ptm("underline")),null,16)],16),(n(),o("span",i({key:p.reRenderColorKey,class:"ql-formats"},t.ptm("formats")),[r("select",i({class:"ql-color"},t.ptm("color")),null,16),r("select",i({class:"ql-background"},t.ptm("background")),null,16)],16)),r("span",i({class:"ql-formats"},t.ptm("formats")),[r("button",i({class:"ql-list",value:"ordered",type:"button"},t.ptm("list")),null,16),r("button",i({class:"ql-list",value:"bullet",type:"button"},t.ptm("list")),null,16),r("select",i({class:"ql-align"},t.ptm("select")),[r("option",i({defaultValue:""},t.ptm("option")),null,16),r("option",i({value:"center"},t.ptm("option")),null,16),r("option",i({value:"right"},t.ptm("option")),null,16),r("option",i({value:"justify"},t.ptm("option")),null,16)],16)],16),r("span",i({class:"ql-formats"},t.ptm("formats")),[r("button",i({class:"ql-link",type:"button"},t.ptm("link")),null,16),r("button",i({class:"ql-image",type:"button"},t.ptm("image")),null,16),r("button",i({class:"ql-code-block",type:"button"},t.ptm("codeBlock")),null,16)],16),r("span",i({class:"ql-formats"},t.ptm("formats")),[r("button",i({class:"ql-clean",type:"button"},t.ptm("clean")),null,16)],16)]}))],16),r("div",i({ref:"editorElement",class:t.cx("content"),style:t.editorStyle},t.ptm("content")),null,16)],16)};export{y as default};