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