primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 6.5 kB
JavaScript
this.primereact=this.primereact||{},this.primereact.editor=function(e,t,r,n){"use strict";function l(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=l(t);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},o.apply(this,arguments)}function c(e){return c="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},c(e)}function u(e,t){if("object"!==c(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==c(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function i(e){var t=u(e,"string");return"symbol"===c(t)?t:String(t)}function s(e,t,r){return(t=i(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var m={defaultProps:{__TYPE:"Editor",id:null,value:null,style:null,className:null,placeholder:null,readOnly:!1,modules:null,formats:null,theme:"snow",showHeader:!0,headerTemplate:null,onTextChange:null,onSelectionChange:null,onLoad:null,maxLength:null,children:void 0},getProps:function(e){return n.ObjectUtils.getMergedProps(e,m.defaultProps)},getOtherProps:function(e){return n.ObjectUtils.getDiffProps(e,m.defaultProps)}};function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){s(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d=function(){try{return Quill}catch(e){return null}}(),b=a.memo(a.forwardRef((function(e,t){var l=m.getProps(e),c=a.useRef(null),u=a.useRef(null),i=a.useRef(null),s=a.useRef(null),f=a.useRef(!1);r.useMountEffect((function(){if(!f.current){var e={modules:p({toolbar:!!l.showHeader&&i.current},l.modules),placeholder:l.placeholder,readOnly:l.readOnly,theme:l.theme,formats:l.formats};d?(s.current=new Quill(u.current,e),b(),s.current&&s.current.getModule("toolbar")&&l.onLoad&&l.onLoad(s.current)):import("quill").then((function(t){t&&n.DomHandler.isExist(u.current)&&(s.current=t.default?new t.default(u.current,e):new t(u.current,e),b())})).then((function(){s.current&&s.current.getModule("toolbar")&&l.onLoad&&l.onLoad(s.current)})),f.current=!0}}));var b=function(){l.value&&s.current.setContents(s.current.clipboard.convert(l.value)),s.current.on("text-change",(function(e,t,r){var a=u.current.children[0],o=a?a.innerHTML:null,c=s.current.getText();if("<p><br></p>"===o&&(o=null),"api"===r){var i=u.current.children[0],m=document.createElement("div");if(m.innerHTML=l.value||"",n.DomHandler.isEqualElement(i,m))return}if(l.maxLength){var f=s.current.getLength();f>l.maxLength&&s.current.deleteText(l.maxLength,f)}l.onTextChange&&l.onTextChange({htmlValue:o,textValue:c,delta:e,source:r})})),s.current.on("selection-change",(function(e,t,r){l.onSelectionChange&&l.onSelectionChange({range:e,oldRange:t,source:r})}))};r.useUpdateEffect((function(){s.current&&!s.current.hasFocus()&&(l.value?s.current.setContents(s.current.clipboard.convert(l.value)):s.current.setText(""))}),[l.value]),a.useImperativeHandle(t,(function(){return{props:l,getQuill:function(){return s.current},getElement:function(){return c.current},getContent:function(){return u.current},getToolbar:function(){return i.current}}}));var v=m.getOtherProps(l),g=n.classNames("p-component p-editor-container",l.className),y=!1===l.showHeader?null:l.headerTemplate?a.createElement("div",{ref:i,className:"p-editor-toolbar"},l.headerTemplate):a.createElement("div",{ref:i,className:"p-editor-toolbar"},a.createElement("span",{className:"ql-formats"},a.createElement("select",{className:"ql-header",defaultValue:"0"},a.createElement("option",{value:"1"},"Heading"),a.createElement("option",{value:"2"},"Subheading"),a.createElement("option",{value:"0"},"Normal")),a.createElement("select",{className:"ql-font"},a.createElement("option",null),a.createElement("option",{value:"serif"}),a.createElement("option",{value:"monospace"}))),a.createElement("span",{className:"ql-formats"},a.createElement("button",{type:"button",className:"ql-bold","aria-label":"Bold"}),a.createElement("button",{type:"button",className:"ql-italic","aria-label":"Italic"}),a.createElement("button",{type:"button",className:"ql-underline","aria-label":"Underline"})),a.createElement("span",{className:"ql-formats"},a.createElement("select",{className:"ql-color"}),a.createElement("select",{className:"ql-background"})),a.createElement("span",{className:"ql-formats"},a.createElement("button",{type:"button",className:"ql-list",value:"ordered","aria-label":"Ordered List"}),a.createElement("button",{type:"button",className:"ql-list",value:"bullet","aria-label":"Unordered List"}),a.createElement("select",{className:"ql-align"},a.createElement("option",{defaultValue:!0}),a.createElement("option",{value:"center"}),a.createElement("option",{value:"right"}),a.createElement("option",{value:"justify"}))),a.createElement("span",{className:"ql-formats"},a.createElement("button",{type:"button",className:"ql-link","aria-label":"Insert Link"}),a.createElement("button",{type:"button",className:"ql-image","aria-label":"Insert Image"}),a.createElement("button",{type:"button",className:"ql-code-block","aria-label":"Insert Code Block"})),a.createElement("span",{className:"ql-formats"},a.createElement("button",{type:"button",className:"ql-clean","aria-label":"Remove Styles"}))),h=a.createElement("div",{ref:u,className:"p-editor-content",style:l.style});return a.createElement("div",o({id:l.id,ref:c,className:g},v),y,h)})));return b.displayName="Editor",e.Editor=b,Object.defineProperty(e,"__esModule",{value:!0}),e}({},React,primereact.hooks,primereact.utils);