UNPKG

suneditor

Version:

Pure JavaScript based WYSIWYG web editor

1 lines 224 kB
!function(e){var t={};function i(n){if(t[n])return t[n].exports;var l=t[n]={i:n,l:!1,exports:{}};return e[n].call(l.exports,l,l.exports,i),l.l=!0,l.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)i.d(n,l,function(t){return e[t]}.bind(null,l));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s="XJR1")}({"3FqI":function(e,t,i){},P6u4:function(e,t,i){"use strict";var n,l;n="undefined"!=typeof window?window:this,l=function(e,t){const i={toolbar:{default:"Default",save:"Save",font:"Font",formats:"Formats",fontSize:"Size",bold:"Bold",underline:"Underline",italic:"Italic",strike:"Strike",subscript:"Subscript",superscript:"Superscript",removeFormat:"Remove Format",fontColor:"Font Color",hiliteColor:"Highlight Color",indent:"Indent",outdent:"Outdent",align:"Align",alignLeft:"Align left",alignRight:"Align right",alignCenter:"Align center",alignJustify:"Align justify",list:"List",orderList:"Ordered list",unorderList:"Unordered list",horizontalRule:"Horizontal line",hr_solid:"Solid",hr_dotted:"Dotted",hr_dashed:"Dashed",table:"Table",link:"Link",image:"Image",video:"Video",fullScreen:"Full screen",showBlocks:"Show blocks",codeView:"Code view",undo:"Undo",redo:"Redo",preview:"Preview",print:"print",tag_p:"Paragraph",tag_div:"Normal (DIV)",tag_h:"Header",tag_blockquote:"Quote",tag_pre:"Code",template:"Template",lineHeight:"Line height",paragraphStyle:"Paragraph style",textStyle:"Text style"},dialogBox:{linkBox:{title:"Insert Link",url:"URL to link",text:"Text to display",newWindowCheck:"Open in new window"},imageBox:{title:"Insert image",file:"Select from files",url:"Image URL",altText:"Alternative text"},videoBox:{title:"Insert Video",url:"Media embed URL, YouTube"},caption:"Insert description",close:"Close",submitButton:"Submit",revertButton:"Revert",proportion:"Constrain proportions",basic:"Basic",left:"Left",right:"Right",center:"Center",width:"Width",height:"Height",size:"Size",ratio:"Ratio"},controller:{edit:"Edit",unlink:"Unlink",remove:"Remove",insertRowAbove:"Insert row above",insertRowBelow:"Insert row below",deleteRow:"Delete row",insertColumnBefore:"Insert column before",insertColumnAfter:"Insert column after",deleteColumn:"Delete column",resize100:"Resize 100%",resize75:"Resize 75%",resize50:"Resize 50%",resize25:"Resize 25%",autoSize:"Auto size",mirrorHorizontal:"Mirror, Horizontal",mirrorVertical:"Mirror, Vertical",rotateLeft:"Rotate left",rotateRight:"Rotate right",maxSize:"Max size",minSize:"Min size",tableHeader:"Table header",mergeCells:"Merge cells",splitCells:"Split Cells",HorizontalSplit:"Horizontal split",VerticalSplit:"Vertical split"},menu:{spaced:"Spaced",bordered:"Bordered",neon:"Neon",translucent:"Translucent",shadow:"Shadow"}};return void 0===t&&(e.SUNEDITOR_LANG||(e.SUNEDITOR_LANG={}),e.SUNEDITOR_LANG.en=i),i},"object"==typeof e.exports?e.exports=n.document?l(n,!0):function(e){if(!e.document)throw new Error("SUNEDITOR_LANG a window with a document");return l(e)}:l(n)},WUQj:function(e,t,i){},XJR1:function(e,t,i){"use strict";i.r(t);i("3FqI"),i("WUQj");var n={name:"colorPicker",add:function(e){const t=e.context;t.colorPicker={colorListHTML:"",_colorInput:"",_defaultColor:"#000",_styleProperty:"color",_currentColor:"",_colorList:[]};let i=this.createColorList(e.context.option,e.lang,this._makeColorList);t.colorPicker.colorListHTML=i,i=null},createColorList:function(e,t,i){const n=e.colorList&&0!==e.colorList.length?e.colorList:["#ff0000","#ff5e00","#ffe400","#abf200","#00d8ff","#0055ff","#6600ff","#ff00dd","#000000","#ffd8d8","#fae0d4","#faf4c0","#e4f7ba","#d4f4fa","#d9e5ff","#e8d9ff","#ffd9fa","#f1f1f1","#ffa7a7","#ffc19e","#faed7d","#cef279","#b2ebf4","#b2ccff","#d1b2ff","#ffb2f5","#bdbdbd","#f15f5f","#f29661","#e5d85c","#bce55c","#5cd1e5","#6699ff","#a366ff","#f261df","#8c8c8c","#980000","#993800","#998a00","#6b9900","#008299","#003399","#3d0099","#990085","#353535","#670000","#662500","#665c00","#476600","#005766","#002266","#290066","#660058","#222222"];let l=[],o='<div class="se-list-inner">';for(let e=0,t=n.length;e<t;e++)"string"==typeof n[e]&&(l.push(n[e]),e<t-1)||(l.length>0&&(o+='<div class="se-selector-color">'+i(l)+"</div>",l=[]),"object"==typeof n[e]&&(o+='<div class="se-selector-color">'+i(n[e])+"</div>"));return o+='<form class="se-submenu-form-group"><input type="text" maxlength="7" class="_se_color_picker_input" /><button type="submit" class="se-btn-primary se-tooltip _se_color_picker_submit"><i class="se-icon-checked"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+t.dialogBox.submitButton+'</span></span></button><button type="button" class="se-btn se-tooltip _se_color_picker_remove"><i class="se-icon-erase"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+t.toolbar.removeFormat+"</span></span></button></form></div>",o},_makeColorList:function(e){let t="";t+='<ul class="se-color-pallet">';for(let i,n=0,l=e.length;n<l;n++)i=e[n],"string"==typeof i&&(t+='<li><button type="button" data-value="'+i+'" title="'+i+'" style="background-color:'+i+';"></button></li>');return t+="</ul>",t},init:function(e,t){const i=this.plugins.colorPicker;let n=t||(i.getColorInNode.call(this,e)||this.context.colorPicker._defaultColor);n=i.isHexColor(n)?n:i.rgb2hex(n)||n;const l=this.context.colorPicker._colorList;if(l)for(let e=0,t=l.length;e<t;e++)n.toLowerCase()===l[e].getAttribute("data-value").toLowerCase()?this.util.addClass(l[e],"active"):this.util.removeClass(l[e],"active");i.setInputText.call(this,i.colorName2hex.call(this,n))},setCurrentColor:function(e){this.context.colorPicker._currentColor=e,this.context.colorPicker._colorInput.style.borderColor=e},setInputText:function(e){e=/^#/.test(e)?e:"#"+e,this.context.colorPicker._colorInput.value=e,this.plugins.colorPicker.setCurrentColor.call(this,e)},getColorInNode:function(e){let t="";const i=this.context.colorPicker._styleProperty;for(;e&&!this.util.isWysiwygDiv(e)&&0===t.length;)1===e.nodeType&&e.style[i]&&(t=e.style[i]),e=e.parentNode;return t},isHexColor:function(e){return/^#[0-9a-f]{3}(?:[0-9a-f]{3})?$/i.test(e)},rgb2hex:function(e){return(e=e.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i))&&4===e.length?"#"+("0"+parseInt(e[1],10).toString(16)).slice(-2)+("0"+parseInt(e[2],10).toString(16)).slice(-2)+("0"+parseInt(e[3],10).toString(16)).slice(-2):""},colorName2hex:function(e){if(/^#/.test(e))return e;var t=this.util.createElement("div");t.style.display="none",t.style.color=e;var i=this._w.getComputedStyle(this._d.body.appendChild(t)).color.match(/\d+/g).map((function(e){return parseInt(e,10)}));return this.util.removeItem(t),i.length>=3&&"#"+((1<<24)+(i[0]<<16)+(i[1]<<8)+i[2]).toString(16).substr(1)}},l={name:"dialog",add:function(e){const t=e.context;t.dialog={kind:"",updateModal:!1};let i=e.util.createElement("DIV");i.className="se-dialog sun-editor-common";let n=e.util.createElement("DIV");n.className="se-dialog-back",n.style.display="none";let l=e.util.createElement("DIV");l.className="se-dialog-inner",l.style.display="none",i.appendChild(n),i.appendChild(l),t.dialog.modalArea=i,t.dialog.back=n,t.dialog.modal=l,t.dialog.modal.addEventListener("click",this.onClick_dialog.bind(e)),t.element.relative.appendChild(i),i=null,n=null,l=null},onClick_dialog:function(e){e.stopPropagation(),(/se-dialog-inner/.test(e.target.className)||/close/.test(e.target.getAttribute("data-command")))&&this.plugins.dialog.close.call(this)},open:function(e,t){if(this.modalForm)return!1;this.plugins.dialog._bindClose&&(this._d.removeEventListener("keydown",this.plugins.dialog._bindClose),this.plugins.dialog._bindClose=null),this.plugins.dialog._bindClose=function(e){/27/.test(e.keyCode)&&this.plugins.dialog.close.call(this)}.bind(this),this._d.addEventListener("keydown",this.plugins.dialog._bindClose),this.context.dialog.updateModal=t,"full"===this.context.option.popupDisplay?this.context.dialog.modalArea.style.position="fixed":this.context.dialog.modalArea.style.position="absolute",this.context.dialog.kind=e,this.modalForm=this.context[e].modal;const i=this.context[e].focusElement;"function"==typeof this.plugins[e].on&&this.plugins[e].on.call(this,t),this.context.dialog.modalArea.style.display="block",this.context.dialog.back.style.display="block",this.context.dialog.modal.style.display="block",this.modalForm.style.display="block",i&&i.focus()},_bindClose:null,close:function(){this.plugins.dialog._bindClose&&(this._d.removeEventListener("keydown",this.plugins.dialog._bindClose),this.plugins.dialog._bindClose=null);const e=this.context.dialog.kind;this.modalForm.style.display="none",this.context.dialog.back.style.display="none",this.context.dialog.modalArea.style.display="none",this.context.dialog.kind="",this.context.dialog.updateModal=!1,this.plugins[e].init.call(this),this.modalForm=null,this.focus()}},o={name:"resizing",add:function(e){const t=e.context;t.resizing={_resizeClientX:0,_resizeClientY:0,_resize_plugin:"",_resize_w:0,_resize_h:0,_origin_w:0,_origin_h:0,_rotateVertical:!1,_resize_direction:"",_move_path:null,_isChange:!1};let i=this.setController_resize.call(e);t.resizing.resizeContainer=i,t.resizing.resizeDiv=i.querySelector(".se-modal-resize"),t.resizing.resizeDot=i.querySelector(".se-resize-dot"),t.resizing.resizeDisplay=i.querySelector(".se-resize-display");let n=this.setController_button.call(e);t.resizing.resizeButton=n,n.addEventListener("mousedown",(function(e){e.stopPropagation()}),!1);let l=t.resizing.resizeHandles=t.resizing.resizeDot.querySelectorAll("span");t.resizing.resizeButtonGroup=n.querySelector("._se_resizing_btn_group"),t.resizing.rotationButtons=n.querySelectorAll("._se_resizing_btn_group ._se_rotation"),t.resizing.percentageButtons=n.querySelectorAll("._se_resizing_btn_group ._se_percentage"),t.resizing.alignMenu=n.querySelector(".se-resizing-align-list"),t.resizing.alignMenuList=t.resizing.alignMenu.querySelectorAll("button"),t.resizing.alignButton=n.querySelector("._se_resizing_align_button"),t.resizing.alignButtonIcon=t.resizing.alignButton.querySelector("i"),t.resizing.autoSizeButton=n.querySelector("._se_resizing_btn_group ._se_auto_size"),t.resizing.captionButton=n.querySelector("._se_resizing_caption_button"),l[0].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[1].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[2].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[3].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[4].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[5].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[6].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),l[7].addEventListener("mousedown",this.onMouseDown_resize_handle.bind(e)),n.addEventListener("click",this.onClick_resizeButton.bind(e)),t.element.relative.appendChild(i),t.element.relative.appendChild(n),i=null,n=null,l=null},setController_resize:function(){const e=this.util.createElement("DIV");return e.className="se-resizing-container",e.style.display="none",e.innerHTML='<div class="se-modal-resize"></div><div class="se-resize-dot"><span class="tl"></span><span class="tr"></span><span class="bl"></span><span class="br"></span><span class="lw"></span><span class="th"></span><span class="rw"></span><span class="bh"></span><div class="se-resize-display"></div></div>',e},setController_button:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-controller se-controller-resizing",t.innerHTML='<div class="se-arrow se-arrow-up"></div><div class="se-btn-group _se_resizing_btn_group"><button type="button" data-command="percent" data-value="1" class="se-tooltip _se_percentage"><span>100%</span><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.resize100+'</span></span></button><button type="button" data-command="percent" data-value="0.75" class="se-tooltip _se_percentage"><span>75%</span><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.resize75+'</span></span></button><button type="button" data-command="percent" data-value="0.5" class="se-tooltip _se_percentage"><span>50%</span><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.resize50+'</span></span></button><button type="button" data-command="auto" class="se-tooltip _se_auto_size"><i class="se-icon-auto-size"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.autoSize+'</span></span></button><button type="button" data-command="rotate" data-value="-90" class="se-tooltip _se_rotation"><i class="se-icon-rotate-left"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.rotateLeft+'</span></span></button><button type="button" data-command="rotate" data-value="90" class="se-tooltip _se_rotation"><i class="se-icon-rotate-right"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.rotateRight+'</span></span></button></div><div class="se-btn-group"><button type="button" data-command="mirror" data-value="h" class="se-tooltip"><i class="se-icon-mirror-horizontal"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.mirrorHorizontal+'</span></span></button><button type="button" data-command="mirror" data-value="v" class="se-tooltip"><i class="se-icon-mirror-vertical"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.mirrorVertical+'</span></span></button><button type="button" data-command="onalign" class="se-tooltip _se_resizing_align_button"><i class="se-icon-align-justify"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.align+'</span></span></button><div class="se-btn-group-sub sun-editor-common se-list-layer se-resizing-align-list"><div class="se-list-inner"><ul class="se-list-basic"><li><button type="button" class="se-btn-list se-tooltip" data-command="align" data-value="basic"><i class="se-icon-align-justify"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.basic+'</span></span></button></li><li><button type="button" class="se-btn-list se-tooltip" data-command="align" data-value="left"><i class="se-icon-align-left"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.left+'</span></span></button></li><li><button type="button" class="se-btn-list se-tooltip" data-command="align" data-value="center"><i class="se-icon-align-center"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.center+'</span></span></button></li><li><button type="button" class="se-btn-list se-tooltip" data-command="align" data-value="right"><i class="se-icon-align-right"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.right+'</span></span></button></li></ul></div></div><button type="button" data-command="caption" class="se-tooltip _se_resizing_caption_button"><i class="se-icon-caption"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.caption+'</span></span></button><button type="button" data-command="revert" class="se-tooltip"><i class="se-icon-revert"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.dialogBox.revertButton+'</span></span></button><button type="button" data-command="update" class="se-tooltip"><i class="se-icon-modify"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.edit+'</span></span></button><button type="button" data-command="delete" class="se-tooltip"><i class="se-icon-delete"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.remove+"</span></span></button></div>",t},_module_getSizeX:function(e,t,i,n){return t||(t=e._element),i||(i=e._cover),n||(n=e._container),n&&i&&t?/%$/.test(t.style.width)?(this.util.getNumber(n.style.width,2)||100)+"%":t.style.width:""},_module_getSizeY:function(e,t,i,n){return t||(t=e._element),i||(i=e._cover),n||(n=e._container),n&&i&&t?this.util.getNumber(i.style.paddingBottom)>0&&!this.context.resizing._rotateVertical?i.style.height:/%$/.test(t.style.height)&&/%$/.test(t.style.width)?(this.util.getNumber(n.style.height,2)||100)+"%":t.style.height:""},_module_setModifyInputSize:function(e,t){const i=e._onlyPercentage&&this.context.resizing._rotateVertical;e.proportion.checked=e._proportionChecked="false"!==e._element.getAttribute("data-proportion");let n=i?"":this.plugins.resizing._module_getSizeX.call(this,e);if(n===e._defaultSizeX&&(n=""),e._onlyPercentage&&(n=this.util.getNumber(n,2)),e.inputX.value=n,t.setInputSize.call(this,"x"),!e._onlyPercentage){let t=i?"":this.plugins.resizing._module_getSizeY.call(this,e);t===e._defaultSizeY&&(t=""),e._onlyPercentage&&(t=this.util.getNumber(t,2)),e.inputY.value=t}e.inputX.disabled=!!i,e.inputY.disabled=!!i,e.proportion.disabled=!!i,t.setRatio.call(this)},_module_setInputSize:function(e,t){if(e._onlyPercentage)"x"===t&&e.inputX.value>100&&(e.inputX.value=100);else if(e.proportion.checked&&e._ratio&&/\d/.test(e.inputX.value)&&/\d/.test(e.inputY.value)){const i=e.inputX.value.replace(/\d+|\./g,"")||e.sizeUnit,n=e.inputY.value.replace(/\d+|\./g,"")||e.sizeUnit;if(i!==n)return;const l="%"===i?2:0;"x"===t?e.inputY.value=this.util.getNumber(e._ratioY*this.util.getNumber(e.inputX.value,l),l)+n:e.inputX.value=this.util.getNumber(e._ratioX*this.util.getNumber(e.inputY.value,l),l)+i}},_module_setRatio:function(e){const t=e.inputX.value,i=e.inputY.value;if(e.proportion.checked&&/\d+/.test(t)&&/\d+/.test(i)){if((t.replace(/\d+|\./g,"")||e.sizeUnit)!==(i.replace(/\d+|\./g,"")||e.sizeUnit))e._ratio=!1;else if(!e._ratio){const n=this.util.getNumber(t),l=this.util.getNumber(i);e._ratio=!0,e._ratioX=n/l,e._ratioY=l/n}}else e._ratio=!1},_module_sizeRevert:function(e){e._onlyPercentage?e.inputX.value=e._origin_w>100?100:e._origin_w:(e.inputX.value=e._origin_w,e.inputY.value=e._origin_h)},_module_saveCurrentSize:function(e){const t=this.plugins.resizing._module_getSizeX.call(this,e),i=this.plugins.resizing._module_getSizeY.call(this,e);e._element.setAttribute("data-size",t+","+i),e._videoRatio&&(e._videoRatio=i)},call_controller_resize:function(e,t){const i=this.context.resizing,n=this.context[t];i._resize_plugin=t;const l=i.resizeContainer,o=i.resizeDiv,s=this.util.getOffset(e,this.context.element.wysiwygFrame),a=i._rotateVertical=/^(90|270)$/.test(Math.abs(e.getAttribute("data-rotate")).toString()),r=a?e.offsetHeight:e.offsetWidth,c=a?e.offsetWidth:e.offsetHeight,d=s.top,u=s.left-this.context.element.wysiwygFrame.scrollLeft;l.style.top=d+"px",l.style.left=u+"px",l.style.width=r+"px",l.style.height=c+"px",o.style.top="0px",o.style.left="0px",o.style.width=r+"px",o.style.height=c+"px";let h=e.getAttribute("data-align")||"basic";h="none"===h?"basic":h;const p=this.util.getParentElement(e,this.util.isComponent),g=this.util.getParentElement(e,"FIGURE"),m=this.plugins.resizing._module_getSizeX.call(this,n,e,g,p)||"auto",f=n._onlyPercentage&&"image"===t?"":", "+(this.plugins.resizing._module_getSizeY.call(this,n,e,g,p)||"auto");this.util.changeTxt(i.resizeDisplay,this.lang.dialogBox[h]+" ("+m+f+")"),i.resizeButtonGroup.style.display=n._resizing?"":"none";const _=!n._resizing||n._resizeDotHide||n._onlyPercentage?"none":"flex",b=i.resizeHandles;for(let e=0,t=b.length;e<t;e++)b[e].style.display=_;if(n._resizing){const e=i.rotationButtons;e[0].style.display=e[1].style.display=n._rotation?"":"none"}const y=i.alignMenuList;this.util.removeClass(i.alignButtonIcon,"se-icon-align\\-[a-z]+"),this.util.addClass(i.alignButtonIcon,"se-icon-align-"+("basic"===h?"justify":h));for(let e=0,t=y.length;e<t;e++)y[e].getAttribute("data-value")===h?this.util.addClass(y[e],"on"):this.util.removeClass(y[e],"on");const v=i.percentageButtons,C=/%$/.test(e.style.width)&&/%$/.test(p.style.width)?this.util.getNumber(p.style.width)/100+"":"";for(let e=0,t=v.length;e<t;e++)v[e].getAttribute("data-value")===C?this.util.addClass(v[e],"active"):this.util.removeClass(v[e],"active");n._captionShow?(i.captionButton.style.display="",this.util.getChildElement(e.parentNode,"figcaption")?(this.util.addClass(i.captionButton,"active"),n._captionChecked=!0):(this.util.removeClass(i.captionButton,"active"),n._captionChecked=!1)):i.captionButton.style.display="none",this._resizingName=t,this.controllersOn(i.resizeContainer,i.resizeButton);const x=this.context.element.wysiwygFrame.offsetWidth-u-i.resizeButton.offsetWidth;i.resizeButton.style.top=c+d+60+"px",i.resizeButton.style.left=u+(x<0?x:0)+"px",i.resizeButton.firstElementChild.style.left=x<0?20-x+"px":"20px",i._resize_w=r,i._resize_h=c;const w=(e.getAttribute("origin-size")||"").split(",");return i._origin_w=w[0]||e.naturalWidth,i._origin_h=w[1]||e.naturalHeight,{w:r,h:c,t:d,l:u}},_closeAlignMenu:null,openAlignMenu:function(){this.util.addClass(this.context.resizing.alignButton,"on"),this.context.resizing.alignMenu.style.display="inline-table",this.plugins.resizing._closeAlignMenu=function(){this.util.removeClass(this.context.resizing.alignButton,"on"),this.context.resizing.alignMenu.style.display="none",this.removeDocEvent("mousedown",this.plugins.resizing._closeAlignMenu),this.plugins.resizing._closeAlignMenu=null}.bind(this),this.addDocEvent("mousedown",this.plugins.resizing._closeAlignMenu)},create_caption:function(){const e=this.util.createElement("FIGCAPTION");return e.setAttribute("contenteditable",!0),e.innerHTML="<div>"+this.lang.dialogBox.caption+"</div>",e},set_cover:function(e){const t=this.util.createElement("FIGURE");return t.appendChild(e),t},set_container:function(e,t){const i=this.util.createElement("DIV");return i.className="se-component "+t,i.setAttribute("contenteditable",!1),i.appendChild(e),i},onClick_resizeButton:function(e){e.stopPropagation();const t=e.target,i=t.getAttribute("data-command")||t.parentNode.getAttribute("data-command");if(!i)return;const n=t.getAttribute("data-value")||t.parentNode.getAttribute("data-value"),l=this.context.resizing._resize_plugin,o=this.context[l],s=o._element,a=this.plugins[l];if(e.preventDefault(),"function"!=typeof this.plugins.resizing._closeAlignMenu||(this.plugins.resizing._closeAlignMenu(),"onalign"!==i)){switch(i){case"auto":a.setAutoSize.call(this),a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l));break;case"percent":let e=this.plugins.resizing._module_getSizeY.call(this,o);if(this.context.resizing._rotateVertical){const t=s.getAttribute("data-percentage");t&&(e=t.split(",")[1])}this.plugins.resizing.resetTransform.call(this,s),a.setPercentSize.call(this,100*n,e),a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l));break;case"mirror":const t=s.getAttribute("data-rotate")||"0";let i=s.getAttribute("data-rotateX")||"",r=s.getAttribute("data-rotateY")||"";"h"===n&&!this.context.resizing._rotateVertical||"v"===n&&this.context.resizing._rotateVertical?r=r?"":"180":i=i?"":"180",s.setAttribute("data-rotateX",i),s.setAttribute("data-rotateY",r),this.plugins.resizing._setTransForm(s,t,i,r);break;case"rotate":const c=this.context.resizing,d=1*s.getAttribute("data-rotate")+1*n,u=this._w.Math.abs(d)>=360?0:d;s.setAttribute("data-rotate",u),c._rotateVertical=/^(90|270)$/.test(this._w.Math.abs(u).toString()),this.plugins.resizing.setTransformSize.call(this,s,null,null),a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l));break;case"onalign":this.plugins.resizing.openAlignMenu.call(this);break;case"align":const h="basic"===n?"none":n;a.setAlign.call(this,h,null,null,null),a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l));break;case"caption":const p=!o._captionChecked;if(a.openModify.call(this,!0),o._captionChecked=o.captionCheckEl.checked=p,"image"===l?a.update_image.call(this,!1,!1,!1):"video"===l&&(this.context.dialog.updateModal=!0,a.submitAction.call(this)),p){const e=this.util.getChildElement(o._caption,(function(e){return 3===e.nodeType}));e?this.setRange(e,0,e,e.textContent.length):o._caption.focus(),this.controllersOff()}else a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l)),a.openModify.call(this,!0);break;case"revert":a.setOriginSize.call(this),a.onModifyMode.call(this,s,this.plugins.resizing.call_controller_resize.call(this,s,l));break;case"update":a.openModify.call(this),this.controllersOff();break;case"delete":a.destroy.call(this)}this.history.push(!1)}},resetTransform:function(e){const t=(e.getAttribute("data-size")||e.getAttribute("data-origin")||"").split(",");this.context.resizing._rotateVertical=!1,e.style.maxWidth="",e.style.transform="",e.style.transformOrigin="",e.setAttribute("data-rotate",""),e.setAttribute("data-rotateX",""),e.setAttribute("data-rotateY",""),this.plugins[this.context.resizing._resize_plugin].setSize.call(this,t[0]?t[0]:"auto",t[1]?t[1]:"",!0)},setTransformSize:function(e,t,i){let n=e.getAttribute("data-percentage");const l=this.context.resizing._rotateVertical,o=1*e.getAttribute("data-rotate");let s="";if(n&&!l)n=n.split(","),"auto"===n[0]&&"auto"===n[1]?this.plugins[this.context.resizing._resize_plugin].setAutoSize.call(this):this.plugins[this.context.resizing._resize_plugin].setPercentSize.call(this,n[0],n[1]);else{const n=this.util.getParentElement(e,"FIGURE"),a=t||e.offsetWidth,r=i||e.offsetHeight,c=(l?r:a)+"px",d=(l?a:r)+"px";if(this.plugins[this.context.resizing._resize_plugin].cancelPercentAttr.call(this),this.plugins[this.context.resizing._resize_plugin].setSize.call(this,a+"px",r+"px",!0),n.style.width=c,n.style.height=this.context[this.context.resizing._resize_plugin]._caption?"":d,l){let e=a/2+"px "+a/2+"px 0",t=r/2+"px "+r/2+"px 0";s=90===o||-270===o?t:e}}e.style.transformOrigin=s,this.plugins.resizing._setTransForm(e,o.toString(),e.getAttribute("data-rotateX")||"",e.getAttribute("data-rotateY")||""),e.style.maxWidth=l?"none":"",this.plugins.resizing.setCaptionPosition.call(this,e)},_setTransForm:function(e,t,i,n){let l=(e.offsetWidth-e.offsetHeight)*(/-/.test(t)?1:-1),o="";if(/[1-9]/.test(t)&&(i||n))switch(o=i?"Y":"X",t){case"90":o=i&&n?"X":n?o:"";break;case"270":l*=-1,o=i&&n?"Y":i?o:"";break;case"-90":o=i&&n?"Y":i?o:"";break;case"-270":l*=-1,o=i&&n?"X":n?o:"";break;default:o=""}t%180==0&&(e.style.maxWidth=""),e.style.transform="rotate("+t+"deg)"+(i?" rotateX("+i+"deg)":"")+(n?" rotateY("+n+"deg)":"")+(o?" translate"+o+"("+l+"px)":"")},setCaptionPosition:function(e){const t=this.util.getChildElement(this.util.getParentElement(e,"FIGURE"),"FIGCAPTION");t&&(t.style.marginTop=(this.context.resizing._rotateVertical?e.offsetWidth-e.offsetHeight:0)+"px")},onMouseDown_resize_handle:function(e){const t=this.context.resizing,i=t._resize_direction=e.target.classList[0];e.stopPropagation(),e.preventDefault();const n=this.context.resizing._resize_plugin,l=this.context[n]._element,o=this.plugins[n];t._resizeClientX=e.clientX,t._resizeClientY=e.clientY,this.context.element.resizeBackground.style.display="block",t.resizeButton.style.display="none",t.resizeDiv.style.float=/l/.test(i)?"right":/r/.test(i)?"left":"none";const s=function(e){if("keydown"===e.type&&27!==e.keyCode)return;const i=t._isChange;t._isChange=!1,this.removeDocEvent("mousemove",a),this.removeDocEvent("mouseup",s),this.removeDocEvent("keydown",s),"keydown"===e.type?(this.controllersOff(),this.context.element.resizeBackground.style.display="none",this.plugins[this.context.resizing._resize_plugin].init.call(this)):(this.plugins.resizing.cancel_controller_resize.call(this),i&&this.history.push(!1)),o.onModifyMode.call(this,l,this.plugins.resizing.call_controller_resize.call(this,l,t._resize_plugin))}.bind(this),a=this.plugins.resizing.resizing_element.bind(this,t,i,this.context[t._resize_plugin]);this.addDocEvent("mousemove",a),this.addDocEvent("mouseup",s),this.addDocEvent("keydown",s)},resizing_element:function(e,t,i,n){const l=n.clientX,o=n.clientY;let s=i._element_w,a=i._element_h;const r=i._element_w+(/r/.test(t)?l-e._resizeClientX:e._resizeClientX-l),c=i._element_h+(/b/.test(t)?o-e._resizeClientY:e._resizeClientY-o),d=i._element_h/i._element_w*r;/t/.test(t)&&(e.resizeDiv.style.top=i._element_h-(/h/.test(t)?c:d)+"px"),/l/.test(t)&&(e.resizeDiv.style.left=i._element_w-r+"px"),/r|l/.test(t)&&(e.resizeDiv.style.width=r+"px",s=r),/^(t|b)[^h]$/.test(t)?(e.resizeDiv.style.height=d+"px",a=d):/^(t|b)h$/.test(t)&&(e.resizeDiv.style.height=c+"px",a=c),e._resize_w=s,e._resize_h=a,this.util.changeTxt(e.resizeDisplay,this._w.Math.round(s)+" x "+this._w.Math.round(a)),e._isChange=!0},cancel_controller_resize:function(){const e=this.context.resizing._rotateVertical;this.controllersOff(),this.context.element.resizeBackground.style.display="none";let t=this._w.Math.round(e?this.context.resizing._resize_h:this.context.resizing._resize_w),i=this._w.Math.round(e?this.context.resizing._resize_w:this.context.resizing._resize_h);if(!e&&!/%$/.test(t)){const e=16,n=this.context.element.wysiwygFrame.clientWidth-2*e-2;this.util.getNumber(t)>n&&(i=this._w.Math.round(i/t*n),t=n)}this.plugins[this.context.resizing._resize_plugin].setSize.call(this,t,i,!1),this.plugins[this.context.resizing._resize_plugin].init.call(this)}},s={name:"notice",add:function(e){const t=e.context;t.notice={};let i=e.util.createElement("DIV"),n=e.util.createElement("SPAN"),l=e.util.createElement("BUTTON");i.className="se-notice",l.className="close",l.setAttribute("aria-label","Close"),l.setAttribute("title",e.lang.dialogBox.close),l.innerHTML='<i aria-hidden="true" data-command="close" class="se-icon-cancel"></i>',i.appendChild(n),i.appendChild(l),t.notice.modal=i,t.notice.message=n,l.addEventListener("click",this.onClick_cancel.bind(e)),t.element.relative.insertBefore(i,t.element.editorArea),i=null},onClick_cancel:function(e){e.preventDefault(),e.stopPropagation(),this.plugins.notice.close.call(this)},open:function(e){this.context.notice.message.textContent=e,this.context.notice.modal.style.display="block"},close:function(){this.context.notice.modal.style.display="none"}},a={align:{name:"align",add:function(e,t){const i=e.context;i.align={_alignList:null,currentAlign:""};let n=this.setSubmenu.call(e),l=n.querySelector("ul");l.addEventListener("click",this.pickup.bind(e)),i.align._alignList=l.querySelectorAll("li button"),t.parentNode.appendChild(n),n=null,l=null},setSubmenu:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-list-layer",t.innerHTML='<div class="se-submenu se-list-inner se-list-align"><ul class="se-list-basic"><li><button type="button" class="se-btn-list se-btn-align" data-command="justifyleft" data-value="left" title="'+e.toolbar.alignLeft+'"><span class="se-icon-align-left"></span>'+e.toolbar.alignLeft+'</button></li><li><button type="button" class="se-btn-list se-btn-align" data-command="justifycenter" data-value="center" title="'+e.toolbar.alignCenter+'"><span class="se-icon-align-center"></span>'+e.toolbar.alignCenter+'</button></li><li><button type="button" class="se-btn-list se-btn-align" data-command="justifyright" data-value="right" title="'+e.toolbar.alignRight+'"><span class="se-icon-align-right"></span>'+e.toolbar.alignRight+'</button></li><li><button type="button" class="se-btn-list se-btn-align" data-command="justifyfull" data-value="justify" title="'+e.toolbar.alignJustify+'"><span class="se-icon-align-justify"></span>'+e.toolbar.alignJustify+"</button></li></ul></div>",t},on:function(){const e=this.context.align,t=e._alignList,i=this.commandMap.ALIGN.getAttribute("data-focus")||"left";if(i!==e.currentAlign){for(let e=0,n=t.length;e<n;e++)i===t[e].getAttribute("data-value")?this.util.addClass(t[e],"active"):this.util.removeClass(t[e],"active");e.currentAlign=i}},pickup:function(e){e.preventDefault(),e.stopPropagation();let t=e.target,i=null;for(;!i&&!/UL/i.test(t.tagName);)i=t.getAttribute("data-value"),t=t.parentNode;if(!i)return;const n=this.getSelectedElements();for(let e=0,t=n.length;e<t;e++)n[e].style.textAlign=i;this.submenuOff(),this.focus()}},font:{name:"font",add:function(e,t){const i=e.context;i.font={_fontList:null,currentFont:""};let n=this.setSubmenu.call(e);n.querySelector(".se-list-font-family").addEventListener("click",this.pickup.bind(e)),i.font._fontList=n.querySelectorAll("ul li button"),t.parentNode.appendChild(n),n=null},setSubmenu:function(){const e=this.context.option,t=this.lang,i=this.util.createElement("DIV");let n,l,o,s;i.className="se-list-layer";let a=e.font?e.font:["Arial","Comic Sans MS","Courier New","Impact","Georgia","tahoma","Trebuchet MS","Verdana"],r='<div class="se-submenu se-list-inner se-list-font-family"><ul class="se-list-basic"><li><button type="button" class="default_value se-btn-list" title="'+t.toolbar.default+'">('+t.toolbar.default+")</button></li>";for(o=0,s=a.length;o<s;o++)n=a[o],l=n.split(",")[0],r+='<li><button type="button" class="se-btn-list" data-value="'+n+'" data-txt="'+l+'" title="'+l+'" style="font-family:'+n+';">'+l+"</button></li>";return r+="</ul></div>",i.innerHTML=r,i},on:function(){const e=this.context.font,t=e._fontList,i=this.commandMap.FONT.textContent;if(i!==e.currentFont){for(let e=0,n=t.length;e<n;e++)i===t[e].getAttribute("data-value")?this.util.addClass(t[e],"active"):this.util.removeClass(t[e],"active");e.currentFont=i}},pickup:function(e){if(!/^BUTTON$/i.test(e.target.tagName))return!1;e.preventDefault(),e.stopPropagation();const t=e.target.getAttribute("data-value");if(t){const e=this.util.createElement("SPAN");e.style.fontFamily=t,this.nodeChange(e,["font-family"],null,null)}else this.nodeChange(null,["font-family"],["span"],!0);this.submenuOff()}},fontSize:{name:"fontSize",add:function(e,t){const i=e.context;i.fontSize={_sizeList:null,currentSize:""};let n=this.setSubmenu.call(e),l=n.querySelector("ul");l.addEventListener("click",this.pickup.bind(e)),i.fontSize._sizeList=l.querySelectorAll("li button"),t.parentNode.appendChild(n),n=null,l=null},setSubmenu:function(){const e=this.context.option,t=this.lang,i=this.util.createElement("DIV");i.className="se-submenu se-list-layer";const n=e.fontSize?e.fontSize:[8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72];let l='<div class="se-list-inner se-list-font-size"><ul class="se-list-basic"><li><button type="button" class="default_value se-btn-list" title="'+t.toolbar.default+'">('+t.toolbar.default+")</button></li>";for(let t,i=0,o=e.fontSizeUnit,s=n.length;i<s;i++)t=n[i],l+='<li><button type="button" class="se-btn-list" data-value="'+t+o+'" title="'+t+o+'" style="font-size:'+t+o+';">'+t+"</button></li>";return l+="</ul></div>",i.innerHTML=l,i},on:function(){const e=this.context.fontSize,t=e._sizeList,i=this.commandMap.SIZE.textContent;if(i!==e.currentSize){for(let e=0,n=t.length;e<n;e++)i===t[e].getAttribute("data-value")?this.util.addClass(t[e],"active"):this.util.removeClass(t[e],"active");e.currentSize=i}},pickup:function(e){if(!/^BUTTON$/i.test(e.target.tagName))return!1;e.preventDefault(),e.stopPropagation();const t=e.target.getAttribute("data-value");if(t){const e=this.util.createElement("SPAN");e.style.fontSize=t,this.nodeChange(e,["font-size"],null,null)}else this.nodeChange(null,["font-size"],["span"],!0);this.submenuOff()}},fontColor:{name:"fontColor",add:function(e,t){e.addModule([n]);const i=e.context;i.fontColor={previewEl:null,colorInput:null,colorList:null};let l=this.setSubmenu.call(e);i.fontColor.colorInput=l.querySelector("._se_color_picker_input"),i.fontColor.colorInput.addEventListener("keyup",this.onChangeInput.bind(e)),l.querySelector("._se_color_picker_submit").addEventListener("click",this.submit.bind(e)),l.querySelector("._se_color_picker_remove").addEventListener("click",this.remove.bind(e)),l.addEventListener("click",this.pickup.bind(e)),i.fontColor.colorList=l.querySelectorAll("li button"),t.parentNode.appendChild(l),l=null},setSubmenu:function(){const e=this.context.colorPicker.colorListHTML,t=this.util.createElement("DIV");return t.className="se-submenu se-list-layer",t.innerHTML=e,t},on:function(){const e=this.context.colorPicker,t=this.context.fontColor;e._colorInput=t.colorInput,e._defaultColor="#333333",e._styleProperty="color",e._colorList=t.colorList,this.plugins.colorPicker.init.call(this,this.getSelectionNode(),null)},onChangeInput:function(e){this.plugins.colorPicker.setCurrentColor.call(this,e.target.value)},submit:function(){this.plugins.fontColor.applyColor.call(this,this.context.colorPicker._currentColor)},pickup:function(e){e.preventDefault(),e.stopPropagation(),this.plugins.fontColor.applyColor.call(this,e.target.getAttribute("data-value"))},remove:function(){this.nodeChange(null,["color"],["span"],!0),this.submenuOff()},applyColor:function(e){if(!e)return;const t=this.util.createElement("SPAN");t.style.color=e,this.nodeChange(t,["color"],null,null),this.submenuOff()}},hiliteColor:{name:"hiliteColor",add:function(e,t){e.addModule([n]);const i=e.context;i.hiliteColor={previewEl:null,colorInput:null,colorList:null};let l=this.setSubmenu.call(e);i.hiliteColor.colorInput=l.querySelector("._se_color_picker_input"),i.hiliteColor.colorInput.addEventListener("keyup",this.onChangeInput.bind(e)),l.querySelector("._se_color_picker_submit").addEventListener("click",this.submit.bind(e)),l.querySelector("._se_color_picker_remove").addEventListener("click",this.remove.bind(e)),l.addEventListener("click",this.pickup.bind(e)),i.hiliteColor.colorList=l.querySelectorAll("li button"),t.parentNode.appendChild(l),l=null},setSubmenu:function(){const e=this.context.colorPicker.colorListHTML,t=this.util.createElement("DIV");return t.className="se-submenu se-list-layer",t.innerHTML=e,t},on:function(){const e=this.context.colorPicker,t=this.context.hiliteColor;e._colorInput=t.colorInput,e._defaultColor="#FFFFFF",e._styleProperty="backgroundColor",e._colorList=t.colorList,this.plugins.colorPicker.init.call(this,this.getSelectionNode(),null)},onChangeInput:function(e){this.plugins.colorPicker.setCurrentColor.call(this,e.target.value)},submit:function(){this.plugins.hiliteColor.applyColor.call(this,this.context.colorPicker._currentColor)},pickup:function(e){e.preventDefault(),e.stopPropagation(),this.plugins.hiliteColor.applyColor.call(this,e.target.getAttribute("data-value"))},remove:function(){this.nodeChange(null,["background-color"],["span"],!0),this.submenuOff()},applyColor:function(e){if(!e)return;const t=this.util.createElement("SPAN");t.style.backgroundColor=e,this.nodeChange(t,["background-color"],null,null),this.submenuOff()}},horizontalRule:{name:"horizontalRule",add:function(e,t){let i=this.setSubmenu.call(e);i.querySelector("ul").addEventListener("click",this.horizontalRulePick.bind(e)),t.parentNode.appendChild(i),i=null},setSubmenu:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-submenu se-list-layer",t.innerHTML='<div class="se-list-inner se-list-line"><ul class="se-list-basic"><li><button type="button" class="se-btn-list btn_line se-tooltip" data-command="horizontalRule" data-value="solid"><hr style="border-width: 1px 0 0; border-style: solid none none; border-color: black; border-image: initial; height: 1px;" /><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.hr_solid+'</span></span></button></li><li><button type="button" class="se-btn-list btn_line se-tooltip" data-command="horizontalRule" data-value="dotted"><hr style="border-width: 1px 0 0; border-style: dotted none none; border-color: black; border-image: initial; height: 1px;" /><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.hr_dotted+'</span></span></button></li><li><button type="button" class="se-btn-list btn_line se-tooltip" data-command="horizontalRule" data-value="dashed"><hr style="border-width: 1px 0 0; border-style: dashed none none; border-color: black; border-image: initial; height: 1px;" /><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.hr_dashed+"</span></span></button></li></ul></div>",t},appendHr:function(e){const t=this.util.createElement("HR");t.className=e,this.focus();let i=this.insertComponent(t,!1);this.setRange(i,0,i,0)},horizontalRulePick:function(e){e.preventDefault(),e.stopPropagation();let t=e.target,i=null;for(;!i&&!/UL/i.test(t.tagName);)i=t.getAttribute("data-value"),t=t.parentNode;i&&(this.plugins.horizontalRule.appendHr.call(this,"__se__"+i),this.submenuOff())}},list:{name:"list",add:function(e,t){const i=e.context;i.list={_list:null,currentList:""};let n=this.setSubmenu.call(e),l=n.querySelector("ul");l.addEventListener("click",this.pickup.bind(e)),i.list._list=l.querySelectorAll("li button"),t.parentNode.appendChild(n),n=null,l=null},setSubmenu:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-submenu se-list-layer",t.innerHTML='<div class="se-list-inner"><ul class="se-list-basic"><li><button type="button" class="se-btn-list se-tooltip" data-command="OL"><i class="se-icon-list-number"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.orderList+'</span></span></button></li><li><button type="button" class="se-btn-list se-tooltip" data-command="UL"><i class="se-icon-list-bullets"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.toolbar.unorderList+"</span></span></button></li></ul></div>",t},on:function(){const e=this.context.list,t=e._list,i=this.commandMap.LI.getAttribute("data-focus")||"";if(i!==e.currentList){for(let e=0,n=t.length;e<n;e++)i===t[e].getAttribute("data-command")?this.util.addClass(t[e],"active"):this.util.removeClass(t[e],"active");e.currentList=i}},pickup:function(e){e.preventDefault(),e.stopPropagation();let t=e.target,i="";for(;!i&&!/^UL$/i.test(t.tagName);)i=t.getAttribute("data-command"),t=t.parentNode;if(!i)return;const n=this.getSelectedElementsAndComponents();if(!n||0===n.length)return;let l=!0,o=null,s=null;const a=n[0],r=n[n.length-1];let c=!this.util.isListCell(a)&&!this.util.isComponent(a)||a.previousElementSibling?a.previousElementSibling:a.parentNode.previousElementSibling,d=!this.util.isListCell(r)&&!this.util.isComponent(r)||r.nextElementSibling?r.nextElementSibling:r.parentNode.nextElementSibling;for(let e=0,t=n.length;e<t;e++)if(!this.util.isList(this.util.getRangeFormatElement(n[e],function(t){return this.getRangeFormatElement(t)&&t!==n[e]}.bind(this.util)))){l=!1;break}if(!l||c&&i===c.tagName||d&&i===d.tagName){const e=c?c.parentNode:c,t=d?d.parentNode:d;c=e&&!this.util.isWysiwygDiv(e)&&e.nodeName===i?e:c,d=t&&!this.util.isWysiwygDiv(t)&&t.nodeName===i?t:d;const l=c&&c.tagName===i,a=d&&d.tagName===i;let r=l?c:this.util.createElement(i),u=null,h=null,p=null,g=null;const m=function(e){return!this.isComponent(e)&&!this.isList(e)}.bind(this.util);for(let e,t,o,s,a,c,d,g,f,_=0,b=n.length;_<b;_++)if(t=n[_],0!==t.childNodes.length||this.util.isIgnoreNodeChange(t)){if(s=n[_+1],a=t.parentNode,c=s?s.parentNode:null,o=this.util.isListCell(t),f=this.util.isRangeFormatElement(a)?a:null,d=o&&!this.util.isWysiwygDiv(a)?a.parentNode:a,g=o&&!this.util.isWysiwygDiv(a)?s?a.nextSibling:a:t.nextSibling,e=this.util.createElement("LI"),this.util.copyFormatAttributes(e,t),this.util.isComponent(t)){const i=/^HR$/i.test(t.nodeName);i||(e.innerHTML="<br>"),e.innerHTML+=t.outerHTML,i&&(e.innerHTML+="<br>")}else e.innerHTML=t.innerHTML;r.appendChild(e),s||(h=r),s&&d===c&&!this.util.isRangeFormatElement(g)||(u||(u=r),l&&s&&d===c||s&&this.util.isList(c)&&c===a||r.parentNode!==d&&d.insertBefore(r,g)),this.util.removeItem(t),l&&null===p&&(p=r.children.length-1),s&&this.util.getRangeFormatElement(c,m)!==this.util.getRangeFormatElement(a,m)&&(r=this.util.createElement(i)),f&&0===f.children.length&&this.util.removeItem(f)}else this.util.removeItem(t);p&&(u=u.children[p]),a&&(g=r.children.length-1,r.innerHTML+=d.innerHTML,h=r.children[g],this.util.removeItem(d)),o=s=this.util.getEdgeChildNodes(u.firstChild,h.lastChild)}else{const e=this.util.getRangeFormatElement(this.getSelectionNode()),t=e&&e.tagName===i;let l,a;const r=function(e){return!this.isComponent(e)}.bind(this.util);t||(a=this.util.createElement(i));for(let e,c,d=0,u=n.length;d<u;d++)if(c=this.util.getRangeFormatElement(n[d],r),c&&this.util.isList(c)){if(e)if(e!==c){const s=this.detachRangeFormatElement(l.r,l.f,a,!1,!0);o||(o=s),t||(a=this.util.createElement(i)),e=c,l={r:e,f:[this.util.getParentElement(n[d],"LI")]}}else l.f.push(this.util.getParentElement(n[d],"LI"));else e=c,l={r:e,f:[this.util.getParentElement(n[d],"LI")]};d===u-1&&(s=this.detachRangeFormatElement(l.r,l.f,a,!1,!0),o||(o=s))}}n.length>1?this.setRange(o.sc,0,s.ec,s.ec.textContent.length):this.setRange(o.ec,o.ec.textContent.length,s.ec,s.ec.textContent.length),this.submenuOff(),this.history.push(!1)}},table:{name:"table",add:function(e,t){const i=e.context;i.table={_element:null,_tdElement:null,_trElement:null,_trElements:null,_tableXY:[],_maxWidth:!0,resizeIcon:null,resizeText:null,headerButton:null,mergeButton:null,splitButton:null,splitMenu:null,maxText:e.lang.controller.maxSize,minText:e.lang.controller.minSize,_physical_cellCnt:0,_logical_cellCnt:0,_rowCnt:0,_rowIndex:0,_physical_cellIndex:0,_logical_cellIndex:0,_current_colSpan:0,_current_rowSpan:0};let n=this.setSubmenu.call(e),l=n.querySelector(".se-controller-table-picker");i.table.tableHighlight=n.querySelector(".se-table-size-highlighted"),i.table.tableUnHighlight=n.querySelector(".se-table-size-unhighlighted"),i.table.tableDisplay=n.querySelector(".se-table-size-display");let o=this.setController_table.call(e);i.table.tableController=o,i.table.resizeIcon=o.querySelector("._se_table_resize > i"),i.table.resizeText=o.querySelector("._se_table_resize > span > span"),i.table.headerButton=o.querySelector("._se_table_header"),o.addEventListener("mousedown",(function(e){e.stopPropagation()}),!1);let s=this.setController_tableEditor.call(e);i.table.resizeDiv=s,i.table.splitMenu=s.querySelector(".se-btn-group-sub"),i.table.mergeButton=s.querySelector("._se_table_merge_button"),i.table.splitButton=s.querySelector("._se_table_split_button"),s.addEventListener("mousedown",(function(e){e.stopPropagation()}),!1),l.addEventListener("mousemove",this.onMouseMove_tablePicker.bind(e)),l.addEventListener("click",this.appendTable.bind(e)),s.addEventListener("click",this.onClick_tableController.bind(e)),o.addEventListener("click",this.onClick_tableController.bind(e)),t.parentNode.appendChild(n),i.element.relative.appendChild(s),i.element.relative.appendChild(o),n=null,l=null,s=null,o=null},setSubmenu:function(){const e=this.util.createElement("DIV");return e.className="se-submenu se-selector-table",e.innerHTML='<div class="se-table-size"><div class="se-table-size-picker se-controller-table-picker"></div><div class="se-table-size-highlighted"></div><div class="se-table-size-unhighlighted"></div></div><div class="se-table-size-display">1 x 1</div>',e},setController_table:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-controller se-controller-table",t.innerHTML='<div><div class="se-btn-group"><button type="button" data-command="resize" class="se-tooltip _se_table_resize"><i class="se-icon-expansion"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.maxSize+'</span></span></button><button type="button" data-command="header" class="se-tooltip _se_table_header"><i class="se-icon-table-header"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.tableHeader+'</span></span></button><button type="button" data-command="remove" class="se-tooltip"><i class="se-icon-delete"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.remove+"</span></span></button></div></div>",t},setController_tableEditor:function(){const e=this.lang,t=this.util.createElement("DIV");return t.className="se-controller se-controller-table-cell",t.innerHTML='<div class="se-arrow se-arrow-up"></div><div><div class="se-btn-group"><button type="button" data-command="insert" data-value="row" data-option="up" class="se-tooltip"><i class="se-icon-insert-row-above"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.insertRowAbove+'</span></span></button><button type="button" data-command="insert" data-value="row" data-option="down" class="se-tooltip"><i class="se-icon-insert-row-below"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.insertRowBelow+'</span></span></button><button type="button" data-command="delete" data-value="row" class="se-tooltip"><i class="se-icon-delete-row"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.deleteRow+'</span></span></button><button type="button" data-command="merge" class="_se_table_merge_button se-tooltip" disabled><i class="se-icon-merge-cell"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.mergeCells+'</span></span></button></div></div><div><div class="se-btn-group"><button type="button" data-command="insert" data-value="cell" data-option="left" class="se-tooltip"><i class="se-icon-insert-column-left"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.insertColumnBefore+'</span></span></button><button type="button" data-command="insert" data-value="cell" data-option="right" class="se-tooltip"><i class="se-icon-insert-column-right"></i><span class="se-tooltip-inner"><span class="se-tooltip-text">'+e.controller.insertColumnAfter+'</span></span></button><button type="button" data-command="d