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