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.2 kB
JavaScript
;var e=require("primevue/utils"),t=require("primevue/basecomponent"),r=require("primevue/editor/style"),o=require("vue");function l(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(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=l(t),a=l(r),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 r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return(t=d(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e){var t=f(e,"string");return"symbol"===u(t)?t:String(t)}function f(e,t){if("object"!==u(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!==u(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var b=function(){try{return window.Quill}catch(e){return null}}(),g={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))}},mounted:function(){var t=this,r={modules:m({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,r),this.initQuill(),this.handleLoad()):Promise.resolve().then((function(){return n(require("quill"))})).then((function(o){o&&e.DomHandler.isExist(t.$refs.editorElement)&&(t.quill=o.default?new o.default(t.$refs.editorElement,r):new o(t.$refs.editorElement,r),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,r,o){if("user"===o){var l=e.$refs.editorElement.children[0].innerHTML,n=e.quill.getText().trim();"<p><br></p>"===l&&(l=""),e.$emit("update:modelValue",l),e.$emit("text-change",{htmlValue:l,textValue:n,delta:t,source:o,instance:e.quill})}})),this.quill.on("selection-change",(function(t,r,o){var l=e.$refs.editorElement.children[0].innerHTML,n=e.quill.getText().trim();e.$emit("selection-change",{htmlValue:l,textValue:n,range:t,oldRange:r,source:o,instance:e.quill})}))},handleLoad:function(){this.quill&&this.quill.getModule("toolbar")&&this.$emit("load",{instance:this.quill})}}};g.render=function(e,t,r,l,n,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:n.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)},module.exports=g;