芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/optimyar/wp-content/plugins/wpdiscuz/assets/js/wpd-editor.min.js
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)?t+=e.alt.length:e.classList.contains("wpdem-sticker")?t+=e.alt.length:t+=e.src.length}),t}update(){let t=this.calculate(),e=parseInt(this.quill.container.id.substring(this.quill.container.id.lastIndexOf("-")+1))?this.replymaxcount:this.commentmaxcount;if(e>0&&t>=e&&this.quill.deleteText(e,t),e>0){let i=e-(t-1);this.container.innerText=i>=0?i:0,t+10>e?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 e=`#${this.editorToolbarPrefix}-${this.uniqueid}`;wpdiscuzEditorOptions.modules.toolbar=e,wpdiscuzEditorOptions.modules.counter.uniqueID=this.uniqueid;let i=new Quill(this.container,wpdiscuzEditorOptions);i.on("editor-change",(t,...e)=>{null!==e[0]&&(this.currentEditor=i,this.container=i.container.id)}),i.clipboard.addMatcher("a",(t,e)=>t.getAttribute("href")!==t.innerHTML?e:new(Quill.import("delta"))([{insert:t.innerHTML}])),i.clipboard.addMatcher("img",(t,e)=>{let i=Quill.import("delta"),r=t.getAttribute("src");return new i(/^data:image\/.+;base64/.test(r)?[{insert:""}]:[{insert:r}])}),Array.from(document.querySelectorAll(`${e} button`)).forEach(t=>{t.onclick=()=>{this.currentEditor=i,this.container=i.container.id;let e=t.dataset.wpde_button_name;void 0!==e&&"string"==typeof e&&""!==e.trim()&&this._handlers.has(e)&&this._handlers.get(e)(this.currentEditor,this.uniqueid)}}),this._bindTextEditor(i),this._editors.set(this.uniqueid,i),document.getElementById(`${this.editorWraperPrefix}-${this.uniqueid}`).style.display=""}let r=0;document.getElementsByClassName("wpd-thread-info").length&&(r=parseInt(document.getElementsByClassName("wpd-thread-info")[0].getAttribute("data-comments-count")));let n=r?"wc_comment_join_text":"wc_be_the_first_text";return this.currentEditor.root.setAttribute("data-placeholder",wpdiscuzAjaxObj.applyFilterOnPhrase(wpdiscuzEditorOptions[n],n,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"),r=document.getElementById("wpd-editor-source-code"),n=document.getElementById("wpd-editor-uid");e.style.display="block",i.style.display="block",n.value=t.container.id,r.value=t.root.innerHTML}),this.addButtonEventHandler(this.spoiler,t=>{let e=prompt(this.spoilerPromtTitle);if(null===e)return;let i=` [spoiler title="${e}"] `,r=" [/spoiler] ",n=t.getSelection();null===n&&(n={index:t.getLength()-1,length:0}),0===n.length?(t.insertText(n.index,i+r,Quill.sources.USER),t.setSelection(n.index+i.length,Quill.sources.USER)):(t.insertText(n.index,i),t.insertText(n.index+i.length+n.length,r,Quill.sources.USER),t.setSelection(n.index+i.length+n.length+r.length,Quill.sources.USER))})}}