class wpdEditorCounter{constructor(t,e){this.quill=t,this.options=e,this.commentmaxcount=e.commentmaxcount,this.replymaxcount=e.replymaxcount,this.commentmincount=e.commentmincount,this.replymincount=e.replymincount,this.container=document.getElementById("wpd-editor-char-counter-"+e.uniqueID),this.submit=document.getElementById("wpd-field-submit-"+e.uniqueID),t.on("editor-change",this.update.bind(this)),this.update()}calculate(){let t=this.quill.getText().length,e=this.quill.container.id,i=Array.from(document.querySelectorAll(`#${e} .ql-editor img`));return i.length&&i.forEach((function(e){null!==e.src.match(/https\:\/\/s\.w\.org\/images\/core\/emoji/gi)||e.classList.contains("wpdem-sticker")?t+=e.alt.length:t+=e.src.length})),t}update(){let t=this.calculate(),e=t-1,i=this.quill.container.id.substring(this.quill.container.id.lastIndexOf("-")+1),n=parseInt(i)?this.replymaxcount:this.commentmaxcount;if(n>0&&t>=n&&this.quill.deleteText(n,t),n>0){let i=n-e;this.container.innerText=i>=0?i:0,t+10>n?this.container.classList.add("error"):this.container.classList.remove("error")}else this.container&&this.container.remove()}}Quill.register("modules/counter",wpdEditorCounter);let Link=Quill.import("formats/link");class wpdEditorLink extends Link{static create(t){let e=super.create(t);t=this.sanitize(t),e.setAttribute("href",t);let i=location.protocol+"//"+location.hostname;return(t.startsWith(i)||"#"===t.charAt(0)||"/"===t.charAt(0)&&"/"!==t.charAt(1))&&e.removeAttribute("target"),e}static sanitize(t){let e=super.sanitize(t),i=e.slice(0,e.indexOf(":"));return"#"!==e.charAt(0)&&"/"!==e.charAt(0)&&-1===this.PROTOCOL_WHITELIST.indexOf(i)&&(e="http://"+t),e}}Quill.register(wpdEditorLink,!0);class WpdEditor{constructor(){this.editorWraperPrefix="wpd-editor-wraper",this.textEditorContainer="ql-texteditor",this.textEditorPrefix="wc-textarea",this.editorToolbarPrefix="wpd-editor-toolbar",this.sourceCodeButtonName="sourcecode",this.spoiler="spoiler",this.spoilerPromtTitle=wpdiscuzAjaxObj.wc_spoiler_title,this._container="",this._uniqueid="",this.currentEditor=null,this._editors=new Map,this._handlers=new Map,this._initDefaults()}addButtonEventHandler(t,e){this._handlers.set(t,e)}set uniqueid(t){""!==t&&"string"==typeof t?this._uniqueid=t:""===t?this._uniqueid=this._findUniqueId():console.error("Incorrect uniqueid.")}get uniqueid(){return this._uniqueid}set container(t){""!==t&&"string"==typeof t?(this._container=t,this.uniqueid=this._findUniqueId()):console.error("Incorrect uniqueid.")}get container(){return this._container}createEditor(t){if(this.container=t,this._editors.has(this.uniqueid))this.currentEditor=this._editors.get(this.uniqueid);else{let t=`#${this.editorToolbarPrefix}-${this.uniqueid}`;wpdiscuzEditorOptions.modules.toolbar=t,wpdiscuzEditorOptions.modules.counter.uniqueID=this.uniqueid;let e=new Quill(this.container,wpdiscuzEditorOptions);e.on("editor-change",((t,...i)=>{null!==i[0]&&(this.currentEditor=e,this.container=e.container.id)})),e.clipboard.addMatcher("a",((t,e)=>t.getAttribute("href")===t.innerHTML?new(Quill.import("delta"))([{insert:t.innerHTML}]):e)),e.clipboard.addMatcher("img",((t,e)=>{let i=Quill.import("delta"),n=t.getAttribute("src");return/^data:image\/.+;base64/.test(n)?new i([{insert:""}]):new i([{insert:n}])})),Array.from(document.querySelectorAll(`${t} button`)).forEach((t=>{t.onclick=()=>{this.currentEditor=e,this.container=e.container.id;let i=t.dataset.wpde_button_name;void 0!==i&&"string"==typeof i&&""!==i.trim()&&this._handlers.has(i)&&this._handlers.get(i)(this.currentEditor,this.uniqueid)}})),this._bindTextEditor(e),this._editors.set(this.uniqueid,e),document.getElementById(`${this.editorWraperPrefix}-${this.uniqueid}`).style.display=""}let e=0;document.getElementsByClassName("wpd-thread-info").length&&(e=parseInt(document.getElementsByClassName("wpd-thread-info")[0].getAttribute("data-comments-count")));let i=e?"wc_comment_join_text":"wc_be_the_first_text";return this.currentEditor.root.setAttribute("data-placeholder",wpdiscuzAjaxObj.applyFilterOnPhrase(wpdiscuzEditorOptions[i],i,jQuery(t))),this.currentEditor}removeEditor(t){this.container=t,this._editors.has(this.uniqueid)&&this._editors.delete(this.uniqueid)}_bindTextEditor(t){let e=`${this.textEditorPrefix}-${this.uniqueid}`,i=document.getElementById(e);i&&(i.style.cssText="display: none;",t.addContainer(this.textEditorContainer).appendChild(i)),this.currentEditor=t}_findUniqueId(){return this.container.substring(this.container.lastIndexOf("-")+1)}_initDefaults(){this.addButtonEventHandler(this.sourceCodeButtonName,(t=>{document.getElementById(`${this.textEditorPrefix}-${this.uniqueid}`);let e=document.getElementById("wpd-editor-source-code-wrapper-bg"),i=document.getElementById("wpd-editor-source-code-wrapper"),n=document.getElementById("wpd-editor-source-code"),r=document.getElementById("wpd-editor-uid");e.style.display="block",i.style.display="block",r.value=t.container.id,n.value=t.root.innerHTML})),this.addButtonEventHandler(this.spoiler,(t=>{let e=prompt(this.spoilerPromtTitle);if(null===e)return;let i=` [spoiler title="${e}"] `,n=" [/spoiler] ",r=t.getSelection();null===r&&(r={index:t.getLength()-1,length:0}),0===r.length?(t.insertText(r.index,i+n,Quill.sources.USER),t.setSelection(r.index+i.length,Quill.sources.USER)):(t.insertText(r.index,i),t.insertText(r.index+i.length+r.length,n,Quill.sources.USER),t.setSelection(r.index+i.length+r.length+12,Quill.sources.USER))}))}}