webeditor2
Version:
webEditor2 - 基于javascript和css开发的 web 富文本编辑器, 轻量、简洁、易用、开源免费
2 lines • 82.2 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.webEditor=t()}(this,function(){"use strict";function e(e){var t=void 0;return t=document.createElement("div"),t.innerHTML=e,t.children}function t(e){return!!e&&(e instanceof HTMLCollection||e instanceof NodeList)}function n(e){var n=document.querySelectorAll(e);return t(n)?n:[n]}function i(o){if(o){if(o instanceof i)return o;this.selector=o;var r=o.nodeType,A=[];9===r?A=[o]:1===r?A=[o]:t(o)||o instanceof Array?A=o:"string"==typeof o&&(o=o.replace("/\n/mg","").trim(),A=0===o.indexOf("<")?e(o):n(o));var a=A.length;if(!a)return this;var c=void 0;for(c=0;c<a;c++)this[c]=A[c];this.length=a}}function o(e){return new i(e)}function r(e,t){var n=void 0;for(n in e)if(e.hasOwnProperty(n)&&!1===t.call(e,n,e[n]))break}function A(e,t){var n=void 0,i=void 0,o=e.length||0;for(n=0;n<o&&(i=e[n],!1!==t.call(e,i,n));n++);}function a(e){return e+Math.random().toString().slice(2)}function c(e){return null==e?"":e.replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""")}function l(e){return"function"==typeof e}function s(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-bold"><i/>\n </div>'),this.type="click",this._active=!1}function d(e,t){var n=this,i=e.editor;this.menu=e,this.opt=t;var r=o('<div class="w-e-droplist"></div>'),A=t.$title,a=void 0;A&&(a=A.html(),a=W(i,a),A.html(a),A.addClass("w-e-dp-title"),r.append(A));var c=t.list||[],l=t.type||"list",s=t.onClick||Z,d=o('<ul class="'+("list"===l?"w-e-list":"w-e-block")+'"></ul>');r.append(d),c.forEach(function(e){var t=e.$elem,r=t.html();r=W(i,r),t.html(r);var A=e.value,a=o('<li class="w-e-item"></li>');t&&(a.append(t),d.append(a),a.on("click",function(e){s(A),n.hideTimeoutId=setTimeout(function(){n.hide()},0)}))}),r.on("mouseleave",function(e){n.hideTimeoutId=setTimeout(function(){n.hide()},0)}),this.$container=r,this._rendered=!1,this._show=!1}function u(e){var t=this;this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-header"><i/></div>'),this.type="droplist",this._active=!1,this.droplist=new d(this,{width:100,$title:o("<p>设置标题</p>"),type:"list",list:[{$elem:o("<h1>H1</h1>"),value:"<h1>"},{$elem:o("<h2>H2</h2>"),value:"<h2>"},{$elem:o("<h3>H3</h3>"),value:"<h3>"},{$elem:o("<h4>H4</h4>"),value:"<h4>"},{$elem:o("<h5>H5</h5>"),value:"<h5>"},{$elem:o("<p>正文</p>"),value:"<p>"}],onClick:function(e){t._command(e)}})}function p(e,t){this.menu=e,this.opt=t}function h(e){this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-link"><i/></div>'),this.type="panel",this._active=!1}function f(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-italic"><i/>\n </div>'),this.type="click",this._active=!1}function g(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-redo"><i/>\n </div>'),this.type="click",this._active=!1}function m(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-strikethrough"><i/>\n </div>'),this.type="click",this._active=!1}function w(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-underline"><i/>\n </div>'),this.type="click",this._active=!1}function v(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-undo"><i/>\n </div>'),this.type="click",this._active=!1}function b(e){var t=this;this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-list2"><i/></div>'),this.type="droplist",this._active=!1,this.droplist=new d(this,{width:120,$title:o("<p>设置列表</p>"),type:"list",list:[{$elem:o('<span><i class="w-e-icon-list-numbered"></i> 有序列表</span>'),value:"insertOrderedList"},{$elem:o('<span><i class="w-e-icon-list2"></i> 无序列表</span>'),value:"insertUnorderedList"}],onClick:function(e){t._command(e)}})}function E(e){var t=this;this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-paragraph-left"><i/></div>'),this.type="droplist",this._active=!1,this.droplist=new d(this,{width:100,$title:o("<p>对齐方式</p>"),type:"list",list:[{$elem:o('<span><i class="w-e-icon-paragraph-left"></i> 靠左</span>'),value:"justifyLeft"},{$elem:o('<span><i class="w-e-icon-paragraph-center"></i> 居中</span>'),value:"justifyCenter"},{$elem:o('<span><i class="w-e-icon-paragraph-right"></i> 靠右</span>'),value:"justifyRight"}],onClick:function(e){t._command(e)}})}function x(e){var t=this;this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-pencil2"><i/></div>'),this.type="droplist";var n=e.config,i=n.colors||[];this._active=!1,this.droplist=new d(this,{width:120,$title:o("<p>文字颜色</p>"),type:"inline-block",list:i.map(function(e){return{$elem:o('<i style="color:'+e+';" class="w-e-icon-pencil2"></i>'),value:e}}),onClick:function(e){t._command(e)}})}function y(e){var t=this;this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-paint-brush"><i/></div>'),this.type="droplist";var n=e.config,i=n.colors||[];this._active=!1,this.droplist=new d(this,{width:120,$title:o("<p>背景色</p>"),type:"inline-block",list:i.map(function(e){return{$elem:o('<i style="color:'+e+';" class="w-e-icon-paint-brush"></i>'),value:e}}),onClick:function(e){t._command(e)}})}function B(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-quotes-left"><i/>\n </div>'),this.type="click",this._active=!1}function C(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <i class="w-e-icon-terminal"><i/>\n </div>'),this.type="panel",this._active=!1}function I(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <img src="data:image/png;base64,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" class="menu-face">\n </div>'),this.type="panel",this._active=!1}function Q(e){this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-table2"><i/></div>'),this.type="panel",this._active=!1}function k(e){this.editor=e,this.$elem=o('<div class="w-e-menu"><i class="w-e-icon-play"><i/></div>'),this.type="panel",this._active=!1}function D(e){this.editor=e;var t=a("w-e-img");this.$elem=o('<div class="w-e-menu" id="'+t+'"><img src="data:image/png;base64,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" class="menu-image"></div>'),e.imgMenuId=t,this.type="panel",this._active=!1}function R(e){this.editor=e,this.$elem=o('<div class="w-e-menu">\n <img src="data:image/png;base64,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" class="menu-comlang">\n </div>'),this.type="panel",this._active=!1}function M(e){this.editor=e,this.menus={}}function U(e){var t=e.clipboardData||e.originalEvent&&e.originalEvent.clipboardData,n=void 0;return n=null==t?window.clipboardData&&window.clipboardData.getData("text"):t.getData("text/plain"),c(n)}function N(e,t){var n=e.clipboardData||e.originalEvent&&e.originalEvent.clipboardData,i=void 0,o=void 0;if(null==n?i=window.clipboardData&&window.clipboardData.getData("text"):(i=n.getData("text/plain"),o=n.getData("text/html")),!o&&i&&(o="<p>"+c(i)+"</p>"),o){var r=o.split("</html>");return 2===r.length&&(o=r[0]),o=o.replace(/<(meta|script|link).+?>/gim,""),o=o.replace(/<!--.*?-->/gm,""),o=o.replace(/\s?data-.+?=('|").+?('|")/gim,""),o=t?o.replace(/\s?(class|style)=('|").+?('|")/gim,""):o.replace(/\s?class=('|").+?('|")/gim,"")}}function F(e){var t=[];if(U(e))return t;var n=e.clipboardData||e.originalEvent&&e.originalEvent.clipboardData||{},i=n.items;return i?(r(i,function(e,n){/image/i.test(n.type)&&t.push(n.getAsFile())}),t):t}function S(e){var t=[];return(e.childNodes()||[]).forEach(function(e){var n=void 0,i=e.nodeType;if(3===i&&(n=e.textContent),1===i){n={},n.tag=e.nodeName.toLowerCase();for(var r=[],A=e.attributes||{},a=A.length||0,c=0;c<a;c++){var l=A[c];r.push({name:l.name,value:l.value})}n.attrs=r,n.children=S(o(e))}t.push(n)}),t}function H(e){this.editor=e}function Y(e){this.editor=e}function L(e){this.editor=e,this._currentRange=null}function T(e){this.editor=e,this._time=0,this._isShow=!1,this._isRender=!1,this._timeoutId=0,this.$textContainer=e.$textContainerElem,this.$bar=o('<div class="w-e-progress"></div>')}function P(e){this.editor=e}function J(e,t){if(null==e)throw new Error("错误:初始化编辑器时候未传入任何参数,请查阅文档");this.id="webEditor-"+K++,this.toolbarSelector=e,this.textSelector=t,this.customConfig={}}var z=[];i.prototype={constructor:i,forEach:function(e){var t=void 0;for(t=0;t<this.length;t++){var n=this[t];if(!1===e.call(n,n,t))break}return this},clone:function(e){var t=[];return this.forEach(function(n){t.push(n.cloneNode(!!e))}),o(t)},get:function(e){var t=this.length;return e>=t&&(e%=t),o(this[e])},first:function(){return this.get(0)},last:function(){var e=this.length;return this.get(e-1)},on:function(e,t,n){n||(n=t,t=null);var i=[];return i=e.split(/\s+/),this.forEach(function(e){i.forEach(function(i){if(i){if(z.push({elem:e,type:i,fn:n}),!t)return void e.addEventListener(i,n);e.addEventListener(i,function(e){var i=e.target;i.matches(t)&&n.call(i,e)})}})})},off:function(e,t){return this.forEach(function(n){n.removeEventListener(e,t)})},attr:function(e,t){return null==t?this[0].getAttribute(e):this.forEach(function(n){n.setAttribute(e,t)})},addClass:function(e){return e?this.forEach(function(t){var n=void 0;t.className?(n=t.className.split(/\s/),n=n.filter(function(e){return!!e.trim()}),n.indexOf(e)<0&&n.push(e),t.className=n.join(" ")):t.className=e}):this},removeClass:function(e){return e?this.forEach(function(t){var n=void 0;t.className&&(n=t.className.split(/\s/),n=n.filter(function(t){return!(!(t=t.trim())||t===e)}),t.className=n.join(" "))}):this},css:function(e,t){var n=e+":"+t+";";return this.forEach(function(t){var i=(t.getAttribute("style")||"").trim(),o=void 0,r=[];i?(o=i.split(";"),o.forEach(function(e){var t=e.split(":").map(function(e){return e.trim()});2===t.length&&r.push(t[0]+":"+t[1])}),r=r.map(function(t){return 0===t.indexOf(e)?n:t}),r.indexOf(n)<0&&r.push(n),t.setAttribute("style",r.join("; "))):t.setAttribute("style",n)})},show:function(){return this.css("display","block")},hide:function(){return this.css("display","none")},children:function(){var e=this[0];return e?o(e.children):null},childNodes:function(){var e=this[0];return e?o(e.childNodes):null},append:function(e){return this.forEach(function(t){e.forEach(function(e){t.appendChild(e)})})},remove:function(){return this.forEach(function(e){if(e.remove)e.remove();else{var t=e.parentElement;t&&t.removeChild(e)}})},isContain:function(e){var t=this[0],n=e[0];return t.contains(n)},getSizeData:function(){return this[0].getBoundingClientRect()},getNodeName:function(){return this[0].nodeName},find:function(e){return o(this[0].querySelectorAll(e))},text:function(e){return e?this.forEach(function(t){t.innerHTML=e}):this[0].innerHTML.replace(/<.*?>/g,function(){return""})},html:function(e){var t=this[0];return null==e?t.innerHTML:(t.innerHTML=e,this)},val:function(){return this[0].value.trim()},focus:function(){return this.forEach(function(e){e.focus()})},parent:function(){return o(this[0].parentElement)},parentUntil:function(e,t){var n=document.querySelectorAll(e),i=n.length;if(!i)return null;var r=t||this[0];if("BODY"===r.nodeName)return null;var A=r.parentElement,a=void 0;for(a=0;a<i;a++)if(A===n[a])return o(A);return this.parentUntil(e,A)},equal:function(e){return 1===e.nodeType?this[0]===e:this[0]===e[0]},insertBefore:function(e){var t=o(e),n=t[0];return n?this.forEach(function(e){n.parentNode.insertBefore(e,n)}):this},insertAfter:function(e){var t=o(e),n=t[0];return n?this.forEach(function(e){var t=n.parentNode;t.lastChild===n?t.appendChild(e):t.insertBefore(e,n.nextSibling)}):this}},o.offAll=function(){z.forEach(function(e){var t=e.elem,n=e.type,i=e.fn;t.removeEventListener(n,i)})};var j={menus:["head","bold","italic","underline","strikeThrough","foreColor","backColor","link","list","justify","quote","emoticon","image","table","video","code","undo","redo"],colors:["#000000","#eeece0","#1c487f","#4d80bf","#c24f4a","#8baa4a","#7b5ba1","#46acc8","#f9963b","#ffffff"],emotions:[{title:null,type:"image",content:function(){for(var e=[],t=0;t<51;t++){var n={alt:"",src:"http://pics.sc.chinaz.com/Files/pic/faces/85//"+(t+1)+".gif"};e.push(n)}return e}()}],zIndex:1e4,debug:!1,linkCheck:function(e,t){return!0},linkImgCheck:function(e){return!0},pasteFilterStyle:!0,pasteTextHandle:function(e){return e},showLinkImg:!0,linkImgCallback:function(e){},uploadImgMaxSize:5242880,uploadImgShowBase64:!1,uploadFileName:"",uploadImgParams:{},uploadImgHeaders:{},withCredentials:!1,uploadImgTimeout:1e4,uploadImgHooks:{before:function(e,t,n){},success:function(e,t,n){},fail:function(e,t,n){},error:function(e,t){},timeout:function(e,t){}},qiniu:!1},O={_ua:navigator.userAgent,isWebkit:function(){return/webkit/i.test(this._ua)},isIE:function(){return"ActiveXObject"in window}};s.prototype={constructor:s,onClick:function(e){var t=this.editor,n=t.selection.isSelectionEmpty();n&&t.selection.createEmptyRange(),t.cmd.do("bold"),n&&(t.selection.collapseRange(),t.selection.restoreSelection())},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t.cmd.queryCommandState("bold")?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}};var W=function(e,t){var n=e.config.langArgs||[],i=t;return n.forEach(function(e){var t=e.reg,n=e.val;t.test(i)&&(i=i.replace(t,function(){return n}))}),i},Z=function(){};d.prototype={constructor:d,show:function(){this.hideTimeoutId&&clearTimeout(this.hideTimeoutId);var e=this.menu,t=e.$elem,n=this.$container;if(!this._show){if(this._rendered)n.show();else{var i=t.getSizeData().height||0,o=this.opt.width||100;n.css("margin-top",i+"px").css("width",o+"px"),t.append(n),this._rendered=!0}this._show=!0}},hide:function(){this.showTimeoutId&&clearTimeout(this.showTimeoutId);var e=this.$container;this._show&&(e.hide(),this._show=!1)}},u.prototype={constructor:u,_command:function(e){var t=this.editor,n=t.selection.getSelectionContainerElem();t.$textElem.equal(n)||t.cmd.do("formatBlock",e)},tryChangeActive:function(e){var t=this.editor,n=this.$elem,i=/^h/i,o=t.cmd.queryCommandValue("formatBlock");i.test(o)?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}};var G=function(){},X=[];p.prototype={constructor:p,show:function(){var e=this,t=this.menu;if(!(X.indexOf(t)>=0)){var n=t.editor,i=o("body"),r=n.$toolbarElem,A=this.opt,a=o('<div class="w-e-panel-container"></div>'),c=(A.width,o('<i class="w-e-icon-close w-e-panel-close"></i>'));a.append(c),c.on("click",function(){e.hide()});var l=o('<ul class="w-e-panel-tab-title"></ul>'),s=o('<div class="w-e-panel-tab-content"></div>');a.append(l).append(s);var d=(A.height,A.tabs||[]),u=[],p=[];d.forEach(function(e,t){if(e){var i=e.title||"",r=e.tpl||"";i=W(n,i),r=W(n,r);var A=o('<li class="w-e-item">'+i+"</li>");i?l.append(A):(l.remove(),c.remove());var a=o(r);s.append(a),A._index=t,u.push(A),p.push(a),0===t?(A._active=!0,A.addClass("w-e-active")):a.hide(),A.on("click",function(e){A._active||(u.forEach(function(e){e._active=!1,e.removeClass("w-e-active")}),p.forEach(function(e){e.hide()}),A._active=!0,A.addClass("w-e-active"),a.show())})}}),a.on("click",function(e){e.stopPropagation()}),i.on("click",function(t){e.hide()}),r.append(a),d.forEach(function(t,n){if(t){(t.events||[]).forEach(function(t){var i=t.selector,o=t.type,r=t.fn||G;p[n].find(i).on(o,function(t){t.stopPropagation(),r(t)&&e.hide()})})}});var h=a.find("input[type=text],textarea");h.length&&h.get(0).focus(),this.$container=a,this._hideOtherPanels(),X.push(t)}},hide:function(){var e=this.menu,t=this.$container;t&&t.remove(),X=X.filter(function(t){return t!==e})},_hideOtherPanels:function(){X.length&&X.forEach(function(e){var t=e.panel||{};t.hide&&t.hide()})}},h.prototype={constructor:h,onClick:function(e){var t=this.editor,n=void 0;if(this._active){
if(!(n=t.selection.getSelectionContainerElem()))return;t.selection.createRangeByElem(n),t.selection.restoreSelection(),this._createPanel(n.text(),n.attr("href"))}else t.selection.isSelectionEmpty()?this._createPanel("",""):this._createPanel(t.selection.getSelectionText(),"")},_createPanel:function(e,t){var n=this,i=a("input-link"),r=a("input-text"),A=a("btn-ok"),c=a("btn-del"),l=this._active?"inline-block":"none",s=new p(this,{width:300,tabs:[{title:"链接",tpl:'<div>\n <input id="'+r+'" type="text" class="block" value="'+e+'" placeholder="链接文字"/></td>\n <input id="'+i+'" type="text" class="block" value="'+t+'" placeholder="http://..."/></td>\n <div class="w-e-button-container">\n <button id="'+A+'" class="right">插入</button>\n <button id="'+c+'" class="gray right" style="display:'+l+'">删除链接</button>\n </div>\n </div>',events:[{selector:"#"+A,type:"click",fn:function(){var e=o("#"+i),t=o("#"+r),A=e.val(),a=t.val();return n._insertLink(a,A),!0}},{selector:"#"+c,type:"click",fn:function(){return n._delLink(),!0}}]}]});s.show(),this.panel=s},_delLink:function(){if(this._active){var e=this.editor;if(e.selection.getSelectionContainerElem()){var t=e.selection.getSelectionText();e.cmd.do("insertHTML","<span>"+t+"</span>")}}},_insertLink:function(e,t){var n=this.editor,i=n.config,o=i.linkCheck,r=!0;o&&"function"==typeof o&&(r=o(e,t)),!0===r?n.cmd.do("insertHTML",'<a href="'+t+'" target="_blank">'+e+"</a>"):alert(r)},tryChangeActive:function(e){var t=this.editor,n=this.$elem,i=t.selection.getSelectionContainerElem();i&&("A"===i.getNodeName()?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active")))}},f.prototype={constructor:f,onClick:function(e){var t=this.editor,n=t.selection.isSelectionEmpty();n&&t.selection.createEmptyRange(),t.cmd.do("italic"),n&&(t.selection.collapseRange(),t.selection.restoreSelection())},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t.cmd.queryCommandState("italic")?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},g.prototype={constructor:g,onClick:function(e){this.editor.cmd.do("redo")}},m.prototype={constructor:m,onClick:function(e){var t=this.editor,n=t.selection.isSelectionEmpty();n&&t.selection.createEmptyRange(),t.cmd.do("strikeThrough"),n&&(t.selection.collapseRange(),t.selection.restoreSelection())},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t.cmd.queryCommandState("strikeThrough")?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},w.prototype={constructor:w,onClick:function(e){var t=this.editor,n=t.selection.isSelectionEmpty();n&&t.selection.createEmptyRange(),t.cmd.do("underline"),n&&(t.selection.collapseRange(),t.selection.restoreSelection())},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t.cmd.queryCommandState("underline")?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},v.prototype={constructor:v,onClick:function(e){this.editor.cmd.do("undo")}},b.prototype={constructor:b,_command:function(e){var t=this.editor,n=t.$textElem;if(t.selection.restoreSelection(),!t.cmd.queryCommandState(e)){t.cmd.do(e);var i=t.selection.getSelectionContainerElem();if("LI"===i.getNodeName()&&(i=i.parent()),!1!==/^ol|ul$/i.test(i.getNodeName())&&!i.equal(n)){var o=i.parent();o.equal(n)||(i.insertAfter(o),o.remove())}}},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t.cmd.queryCommandState("insertUnOrderedList")||t.cmd.queryCommandState("insertOrderedList")?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},E.prototype={constructor:E,_command:function(e){this.editor.cmd.do(e)}},x.prototype={constructor:x,_command:function(e){this.editor.cmd.do("foreColor",e)}},y.prototype={constructor:y,_command:function(e){this.editor.cmd.do("backColor",e)}},B.prototype={constructor:B,onClick:function(e){var t=this.editor,n=t.selection.getSelectionContainerElem(),i=n.getNodeName();if(!O.isIE())return void("BLOCKQUOTE"===i?t.cmd.do("formatBlock","<P>"):t.cmd.do("formatBlock","<BLOCKQUOTE>"));var r=void 0,A=void 0;if("P"===i)return r=n.text(),A=o("<blockquote>"+r+"</blockquote>"),A.insertAfter(n),void n.remove();"BLOCKQUOTE"===i&&(r=n.text(),A=o("<p>"+r+"</p>"),A.insertAfter(n),n.remove())},tryChangeActive:function(e){var t=this.editor,n=this.$elem,i=/^BLOCKQUOTE$/i,o=t.cmd.queryCommandValue("formatBlock");i.test(o)?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},C.prototype={constructor:C,onClick:function(e){var t=this.editor,n=t.selection.getSelectionStartElem(),i=t.selection.getSelectionEndElem(),r=t.selection.isSelectionEmpty(),A=t.selection.getSelectionText(),a=void 0;return n.equal(i)?r?void(this._active?this._createPanel(n.html()):this._createPanel()):(a=o("<code>"+A+"</code>"),t.cmd.do("insertElem",a),t.selection.createRangeByElem(a,!1),void t.selection.restoreSelection()):void t.selection.restoreSelection()},_createPanel:function(e){var t=this;e=e||"";var n=e?"edit":"new",i=a("texxt"),r=a("btn"),A=new p(this,{width:500,tabs:[{title:"插入代码",tpl:'<div>\n <textarea id="'+i+'" style="height:145px;;">'+e+'</textarea>\n <div class="w-e-button-container">\n <button id="'+r+'" class="right">插入</button>\n </div>\n <div>',events:[{selector:"#"+r,type:"click",fn:function(){var e=o("#"+i),r=e.val()||e.html();return r=c(r),"new"===n?t._insertCode(r):t._updateCode(r),!0}}]}]});A.show(),this.panel=A},_insertCode:function(e){this.editor.cmd.do("insertHTML","<pre><code>"+e+"</code></pre><p><br></p>")},_updateCode:function(e){var t=this.editor,n=t.selection.getSelectionContainerElem();n&&(n.html(e),t.selection.restoreSelection())},tryChangeActive:function(e){var t=this.editor,n=this.$elem,i=t.selection.getSelectionContainerElem();if(i){var o=i.parent();"CODE"===i.getNodeName()&&"PRE"===o.getNodeName()?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}}},I.prototype={constructor:I,onClick:function(){this._createPanel()},_createPanel:function(){var e=this,t=this.editor,n=t.config,i=n.emotions||[],r=[];i.forEach(function(t){var n=t.type,i=t.content||[],A="";"emoji"===n&&i.forEach(function(e){e&&(A+='<span class="w-e-item">'+e+"</span>")}),"image"===n&&i.forEach(function(e){var t=e.src,n=e.alt;t&&(A+='<span class="w-e-item"><img class="custom-face" src="'+t+'" alt="'+n+'" title="'+n+'" data-w-e="1"/></span>')}),r.push({title:t.title,tpl:'<div class="w-e-emoticon-container">'+A+"</div>",events:[{selector:"span.w-e-item",type:"click",fn:function(t){var n=t.target,i=o(n),r=i.getNodeName(),A=void 0;return A="IMG"===r?i.parent().html():"<span>"+i.html()+"</span>",e._insert(A),!0}}]})});var A=new p(this,{width:300,height:200,tabs:r});A.show(),this.panel=A},_insert:function(e){this.editor.cmd.do("insertHTML",e)}},Q.prototype={constructor:Q,onClick:function(){this._active?this._createEditPanel():this._createInsertPanel()},_createInsertPanel:function(){var e=this,t=a("btn"),n=a("row"),i=a("col"),r=new p(this,{width:250,tabs:[{title:"插入表格",tpl:'<div>\n <p style="text-align:left; padding:5px 0;">\n 创建\n <input id="'+n+'" type="text" value="5" style="width:40px;text-align:center;"/>\n 行\n <input id="'+i+'" type="text" value="5" style="width:40px;text-align:center;"/>\n 列的表格\n </p>\n <div class="w-e-button-container">\n <button id="'+t+'" class="right">插入</button>\n </div>\n </div>',events:[{selector:"#"+t,type:"click",fn:function(){var t=parseInt(o("#"+n).val()),r=parseInt(o("#"+i).val());return t&&r&&t>0&&r>0&&e._insert(t,r),!0}}]}]});r.show(),this.panel=r},_insert:function(e,t){var n=void 0,i=void 0,o='<table border="0" width="100%" cellpadding="0" cellspacing="0">';for(n=0;n<e;n++){if(o+="<tr>",0===n)for(i=0;i<t;i++)o+="<th> </th>";else for(i=0;i<t;i++)o+="<td> </td>";o+="</tr>"}o+="</table><p><br></p>";var r=this.editor;r.cmd.do("insertHTML",o),r.cmd.do("enableObjectResizing",!1),r.cmd.do("enableInlineTableEditing",!1)},_createEditPanel:function(){var e=this,t=a("add-row"),n=a("add-col"),i=a("del-row"),o=a("del-col"),r=a("del-table");new p(this,{width:320,tabs:[{title:"编辑表格",tpl:'<div>\n <div class="w-e-button-container">\n <button id="'+t+'" class="left">增加行</button>\n <button id="'+i+'" class="red left">删除行</button>\n <button id="'+n+'" class="left">增加列</button>\n <button id="'+o+'" class="red left">删除列</button>\n </div>\n <div class="w-e-button-container">\n <button id="'+r+'" class="gray left">删除表格</button>\n </dv>\n </div>',events:[{selector:"#"+t,type:"click",fn:function(){return e._addRow(),!0}},{selector:"#"+n,type:"click",fn:function(){return e._addCol(),!0}},{selector:"#"+i,type:"click",fn:function(){return e._delRow(),!0}},{selector:"#"+o,type:"click",fn:function(){return e._delCol(),!0}},{selector:"#"+r,type:"click",fn:function(){return e._delTable(),!0}}]}]}).show()},_getLocationData:function(){var e={},t=this.editor,n=t.selection.getSelectionContainerElem();if(n){var i=n.getNodeName();if("TD"===i||"TH"===i){var o=n.parent(),r=o.children(),A=r.length;r.forEach(function(t,i){if(t===n[0])return e.td={index:i,elem:t,length:A},!1});var a=o.parent(),c=a.children(),l=c.length;return c.forEach(function(t,n){if(t===o[0])return e.tr={index:n,elem:t,length:l},!1}),e}}},_addRow:function(){var e=this._getLocationData();if(e){var t=e.tr,n=o(t.elem),i=e.td,r=i.length,A=document.createElement("tr"),a="",c=void 0;for(c=0;c<r;c++)a+="<td> </td>";A.innerHTML=a,o(A).insertAfter(n)}},_addCol:function(){var e=this._getLocationData();if(e){var t=e.tr,n=e.td,i=n.index;o(t.elem).parent().children().forEach(function(e){var t=o(e),n=t.children(),r=n.get(i),A=r.getNodeName().toLowerCase();o(document.createElement(A)).insertAfter(r)})}},_delRow:function(){var e=this._getLocationData();if(e){o(e.tr.elem).remove()}},_delCol:function(){var e=this._getLocationData();if(e){var t=e.tr,n=e.td,i=n.index;o(t.elem).parent().children().forEach(function(e){o(e).children().get(i).remove()})}},_delTable:function(){var e=this.editor,t=e.selection.getSelectionContainerElem();if(t){var n=t.parentUntil("table");n&&n.remove()}},tryChangeActive:function(e){var t=this.editor,n=this.$elem,i=t.selection.getSelectionContainerElem();if(i){var o=i.getNodeName();"TD"===o||"TH"===o?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}}},k.prototype={constructor:k,onClick:function(){this._createPanel()},_createPanel:function(){var e=this,t=a("text-val"),n=a("btn"),i=new p(this,{width:350,tabs:[{title:"插入视频",tpl:'<div>\n <input id="'+t+'" type="text" class="block" placeholder="格式如:<iframe src=... ></iframe>"/>\n <div class="w-e-button-container">\n <button id="'+n+'" class="right">插入</button>\n </div>\n </div>',events:[{selector:"#"+n,type:"click",fn:function(){var n=o("#"+t),i=n.val().trim();return i&&e._insert(i),!0}}]}]});i.show(),this.panel=i},_insert:function(e){this.editor.cmd.do("insertHTML",e+"<p><br></p>")}},D.prototype={constructor:D,onClick:function(){this.editor.config.qiniu||(this._active?this._createEditPanel():this._createInsertPanel())},_createEditPanel:function(){var e=this.editor,t=a("width-30"),n=a("width-50"),i=a("width-100"),o=a("del-btn"),r=[{title:"编辑图片",tpl:'<div>\n <div class="w-e-button-container" style="border-bottom:1px solid #f1f1f1;padding-bottom:5px;margin-bottom:5px;">\n <span style="float:left;font-size:14px;margin:4px 5px 0 5px;color:#333;">最大宽度:</span>\n <button id="'+t+'" class="left">30%</button>\n <button id="'+n+'" class="left">50%</button>\n <button id="'+i+'" class="left">100%</button>\n </div>\n <div class="w-e-button-container">\n <button id="'+o+'" class="gray left">删除图片</button>\n </dv>\n </div>',events:[{selector:"#"+t,type:"click",fn:function(){var t=e._selectedImg;return t&&t.css("max-width","30%"),!0}},{selector:"#"+n,type:"click",fn:function(){var t=e._selectedImg;return t&&t.css("max-width","50%"),!0}},{selector:"#"+i,type:"click",fn:function(){var t=e._selectedImg;return t&&t.css("max-width","100%"),!0}},{selector:"#"+o,type:"click",fn:function(){var t=e._selectedImg;return t&&t.remove(),!0}}]}],A=new p(this,{width:300,tabs:r});A.show(),this.panel=A},_createInsertPanel:function(){var e=this.editor,t=e.uploadImg,n=e.config,i=a("up-trigger"),r=a("up-file"),A=a("link-url"),c=a("link-btn"),l=[{title:"上传图片",tpl:'<div class="w-e-up-img-container">\n <div id="'+i+'" class="w-e-up-btn">\n <i class="w-e-icon-upload2"></i>\n </div>\n <div style="display:none;">\n <input id="'+r+'" type="file" multiple="multiple" accept="image/jpg,image/jpeg,image/png,image/gif,image/bmp"/>\n </div>\n </div>',events:[{selector:"#"+i,type:"click",fn:function(){var e=o("#"+r),t=e[0];if(!t)return!0;t.click()}},{selector:"#"+r,type:"change",fn:function(){var e=o("#"+r),n=e[0];if(!n)return!0;var i=n.files;return i.length&&t.uploadImg(i),!0}}]},{title:"网络图片",tpl:'<div>\n <input id="'+A+'" type="text" class="block" placeholder="图片链接"/></td>\n <div class="w-e-button-container">\n <button id="'+c+'" class="right">插入</button>\n </div>\n </div>',events:[{selector:"#"+c,type:"click",fn:function(){var e=o("#"+A),n=e.val().trim();return n&&t.insertLinkImg(n),!0}}]}],s=[];(n.uploadImgShowBase64||n.uploadImgServer||n.customUploadImg)&&window.FileReader&&s.push(l[0]),n.showLinkImg&&s.push(l[1]);var d=new p(this,{width:300,tabs:s});d.show(),this.panel=d},tryChangeActive:function(e){var t=this.editor,n=this.$elem;t._selectedImg?(this._active=!0,n.addClass("w-e-active")):(this._active=!1,n.removeClass("w-e-active"))}},R.prototype={constructor:R,onClick:function(){this._createPanel()},_createPanel:function(){var e=this,t=this.editor,n=t.config,i=n.comLanguageTions||[],r=[],A=[];i.content.forEach(function(e){A.push('<li class="w-e-language-li">'+e+"</li>")}),r.push({title:i.title,tpl:'<ul class="w-e-language">'+A.join("")+"</ul>",events:[{selector:"li.w-e-language-li",type:"click",fn:function(t){var n=t.target,i=o(n),r=void i.getNodeName();return r=i.html(),e._insert(r),!0}}]});var a=new p(this,{width:300,height:200,tabs:r});a.show(),this.panel=a},_insert:function(e){this.editor.cmd.do("insertHTML",e)}};var V={};V.bold=s,V.head=u,V.link=h,V.italic=f,V.redo=g,V.strikeThrough=m,V.underline=w,V.undo=v,V.list=b,V.justify=E,V.foreColor=x,V.backColor=y,V.quote=B,V.code=C,V.emoticon=I,V.table=Q,V.video=k,V.image=D,V.comlanguage=R,M.prototype={constructor:M,init:function(){var e=this,t=this.editor;((t.config||{}).menus||[]).forEach(function(n){var i=V[n];i&&"function"==typeof i&&(e.menus[n]=new i(t))}),this._addToToolbar(),this._bindEvent()},_addToToolbar:function(){var e=this.editor,t=e.$toolbarElem,n=this.menus,i=e.config,o=i.zIndex+1;r(n,function(e,n){var i=n.$elem;i&&(i.css("z-index",o),t.append(i))})},_bindEvent:function(){var e=this.menus,t=this.editor;r(e,function(e,n){var i=n.type;if(i){var o=n.$elem,r=n.droplist;n.panel;"click"===i&&n.onClick&&o.on("click",function(e){null!=t.selection.getRange()&&n.onClick(e)}),"droplist"===i&&r&&o.on("mouseenter",function(e){null!=t.selection.getRange()&&(r.showTimeoutId=setTimeout(function(){r.show()},200))}).on("mouseleave",function(e){r.hideTimeoutId=setTimeout(function(){r.hide()},0)}),"panel"===i&&n.onClick&&o.on("click",function(e){e.stopPropagation(),null!=t.selection.getRange()&&n.onClick(e)})}})},changeActive:function(){r(this.menus,function(e,t){t.tryChangeActive&&setTimeout(function(){t.tryChangeActive()},100)})}},H.prototype={constructor:H,init:function(){this._bindEvent()},clear:function(){this.html("<p><br></p>")},html:function(e){var t=this.editor,n=t.$textElem,i=void 0;if(null==e)return i=n.html(),i=i.replace(/\u200b/gm,""),i;n.html(e),t.initSelection()},getJSON:function(){return S(this.editor.$textElem)},text:function(e){var t=this.editor,n=t.$textElem,i=void 0;if(null==e)return i=n.text(),i=i.replace(/\u200b/gm,""),i;n.text("<p>"+e+"</p>"),t.initSelection()},append:function(e){var t=this.editor;t.$textElem.append(o(e)),t.initSelection()},_bindEvent:function(){this._saveRangeRealTime(),this._enterKeyHandle(),this._clearHandle(),this._pasteHandle(),this._tabHandle(),this._imgHandle(),this._dragHandle()},_saveRangeRealTime:function(){function e(e){t.selection.saveRange(),t.menus.changeActive()}var t=this.editor,n=t.$textElem;n.on("keyup",e),n.on("mousedown",function(t){n.on("mouseleave",e)}),n.on("mouseup",function(t){e(),n.off("mouseleave",e)})},_enterKeyHandle:function(){function e(e){var t=o("<p><br></p>");t.insertBefore(e),i.selection.createRangeByElem(t,!0),i.selection.restoreSelection(),e.remove()}function t(t){var n=i.selection.getSelectionContainerElem(),o=n.parent();if("<code><br></code>"===o.html())return void e(n);if(o.equal(r)){"P"!==n.getNodeName()&&(n.text()||e(n))}}function n(e){var t=i.s