accessibleprimevue
Version:
Note: This is the forked version of the Primefaces/PrimeVue repository. Since V3 has reached its EOL this is use to fix identified accessibility bugs in the v3 version of primevue. PrimeVue is an open source UI library for Vue featuring a rich set of 80+
2 lines (1 loc) • 7.29 kB
JavaScript
var e=require("primevue/utils"),t=require("primevue/basecomponent"),r=require("primevue/editor/style"),l=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(r){if("default"!==r){var l=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,l.get?l:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=o(t),a=o(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 l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,l)}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){var l;return(t="symbol"==u(l=d(t,"string"))?l:String(l))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function d(e,t){if("object"!=u(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var l=r.call(e,t||"default");if("object"!=u(l))return l;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,inheritAttrs:!1,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,r={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,r),this.initQuill(),this.handleLoad()):Promise.resolve().then((function(){return n(require("quill"))})).then((function(l){l&&e.DomHandler.isExist(t.$refs.editorElement)&&(t.quill=l.default?new l.default(t.$refs.editorElement,r):new l(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,l){if("user"===l){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:l,instance:e.quill})}})),this.quill.on("selection-change",(function(t,r,l){var o=e.$refs.editorElement.children[0].innerHTML,n=e.quill.getText().trim();e.$emit("selection-change",{htmlValue:o,textValue:n,range:t,oldRange:r,source:l,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,r,o,n,i){return l.openBlock(),l.createElementBlock("div",l.mergeProps({class:e.cx("root")},e.ptmi("root")),[l.createElementVNode("div",l.mergeProps({ref:"toolbarElement",class:e.cx("toolbar")},e.ptm("toolbar")),[l.renderSlot(e.$slots,"toolbar",{},(function(){return[l.createElementVNode("span",l.mergeProps({class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("select",l.mergeProps({class:"ql-header",defaultValue:"0"},e.ptm("header")),[l.createElementVNode("option",l.mergeProps({value:"1"},e.ptm("option")),"Heading",16),l.createElementVNode("option",l.mergeProps({value:"2"},e.ptm("option")),"Subheading",16),l.createElementVNode("option",l.mergeProps({value:"0"},e.ptm("option")),"Normal",16)],16),l.createElementVNode("select",l.mergeProps({class:"ql-font"},e.ptm("font")),[l.createElementVNode("option",l.normalizeProps(l.guardReactiveProps(e.ptm("option"))),null,16),l.createElementVNode("option",l.mergeProps({value:"serif"},e.ptm("option")),null,16),l.createElementVNode("option",l.mergeProps({value:"monospace"},e.ptm("option")),null,16)],16)],16),l.createElementVNode("span",l.mergeProps({class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("button",l.mergeProps({class:"ql-bold",type:"button"},e.ptm("bold")),null,16),l.createElementVNode("button",l.mergeProps({class:"ql-italic",type:"button"},e.ptm("italic")),null,16),l.createElementVNode("button",l.mergeProps({class:"ql-underline",type:"button"},e.ptm("underline")),null,16)],16),(l.openBlock(),l.createElementBlock("span",l.mergeProps({key:n.reRenderColorKey,class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("select",l.mergeProps({class:"ql-color"},e.ptm("color")),null,16),l.createElementVNode("select",l.mergeProps({class:"ql-background"},e.ptm("background")),null,16)],16)),l.createElementVNode("span",l.mergeProps({class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("button",l.mergeProps({class:"ql-list",value:"ordered",type:"button"},e.ptm("list")),null,16),l.createElementVNode("button",l.mergeProps({class:"ql-list",value:"bullet",type:"button"},e.ptm("list")),null,16),l.createElementVNode("select",l.mergeProps({class:"ql-align"},e.ptm("select")),[l.createElementVNode("option",l.mergeProps({defaultValue:""},e.ptm("option")),null,16),l.createElementVNode("option",l.mergeProps({value:"center"},e.ptm("option")),null,16),l.createElementVNode("option",l.mergeProps({value:"right"},e.ptm("option")),null,16),l.createElementVNode("option",l.mergeProps({value:"justify"},e.ptm("option")),null,16)],16)],16),l.createElementVNode("span",l.mergeProps({class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("button",l.mergeProps({class:"ql-link",type:"button"},e.ptm("link")),null,16),l.createElementVNode("button",l.mergeProps({class:"ql-image",type:"button"},e.ptm("image")),null,16),l.createElementVNode("button",l.mergeProps({class:"ql-code-block",type:"button"},e.ptm("codeBlock")),null,16)],16),l.createElementVNode("span",l.mergeProps({class:"ql-formats"},e.ptm("formats")),[l.createElementVNode("button",l.mergeProps({class:"ql-clean",type:"button"},e.ptm("clean")),null,16)],16)]}))],16),l.createElementVNode("div",l.mergeProps({ref:"editorElement",class:e.cx("content"),style:e.editorStyle},e.ptm("content")),null,16)],16)},module.exports=b;
;