UNPKG

froala-editor

Version:

The next generation Javascript WYSIWYG HTML rich text editor made by devs for devs. High performance and modern design make it easy to use for developers and loved by users.

7 lines (6 loc) 62.8 kB
/*! * froala_editor v4.5.2 (https://www.froala.com/wysiwyg-editor) * License https://froala.com/wysiwyg-editor/terms/ * Copyright 2014-2025 Froala Labs */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function($e){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=Array(t);a<t;a++)l[a]=e[a];return l}function Te(e){return function t(e){if(Array.isArray(e))return r(e)}(e)||function a(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function l(e,t){if(e){if("string"==typeof e)return r(e,t);var a={}.toString.call(e).slice(8,-1);return"Object"===a&&e.constructor&&(a=e.constructor.name),"Map"===a||"Set"===a?Array.from(e):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?r(e,t):void 0}}(e)||function n(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}$e=$e&&$e.hasOwnProperty("default")?$e["default"]:$e,Object.assign($e.POPUP_TEMPLATES,{"table.insert":"[_BUTTONS_][_ROWS_COLUMNS_]","table.edit":"[_BUTTONS_]","table.colors":"[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]"}),Object.assign($e.DEFAULTS,{tableInsertMaxSize:10,tableEditButtons:["tableHeader","tableFooter","tableRemove","tableRows","tableColumns","tableStyle","-","tableCells","tableCellBackground","tableCellVerticalAlign","tableCellHorizontalAlign","tableCellStyle"],tableInsertButtons:["tableBack","|"],tableResizer:!0,tableDefaultWidth:"100%",tableResizerOffset:5,tableResizingLimit:30,tableColorsButtons:["tableBack","|"],tableColors:["#61BD6D","#1ABC9C","#54ACD2","#2C82C9","#9365B8","#475577","#CCCCCC","#41A85F","#00A885","#3D8EB9","#2969B0","#553982","#28324E","#000000","#F7DA64","#FBA026","#EB6B56","#E25041","#A38F84","#EFEFEF","#FFFFFF","#FAC51C","#F37934","#D14841","#B8312F","#7C706B","#D1D5D8","REMOVE"],tableColorsStep:7,tableCellStyles:{"fr-highlighted":"Highlighted","fr-thick":"Thick"},tableStyles:{"fr-dashed-borders":"Dashed Borders","fr-alternate-rows":"Alternate Rows"},tableCellMultipleStyles:!0,tableMultipleStyles:!0,tableInsertHelper:!0,keepTextFormatOnTable:!1,tableInsertHelperOffset:15}),$e.PLUGINS.table=function(A){var x,f,r,o,l,n,y,O=A.$,s={};function g(){var e=T();if(e){var t=A.popups.get("table.edit");if(t||(t=h()),t){A.popups.setContainer("table.edit",A.$sc);var a=k(e),l=a.left+(a.right-a.left)/2,n=a.bottom;A.popups.show("table.edit",l,n,a.bottom-a.top,!0),A.edit.isDisabled()&&(A.$el.removeClass("fr-no-selection"),A.edit.on(),A.button.bulkRefresh(),A.selection.setAtEnd(A.$el.find(".fr-selected-cell").last().get(0)),A.selection.restore())}}}function i(){var e=T();if(e){var t=A.popups.get("table.colors");t||(t=function o(){var e="";0<A.opts.tableColorsButtons.length&&(e='<div class="fr-buttons fr-tabs">'.concat(A.button.buildList(A.opts.tableColorsButtons),"</div>"));var t="";A.opts.colorsHEXInput&&(t='<div class="fr-color-hex-layer fr-table-colors-hex-layer fr-active fr-layer" id="fr-table-colors-hex-layer-'.concat(A.id,'"><div class="fr-input-line"><input maxlength="7" id="fr-table-colors-hex-layer-text-').concat(A.id,'" type="text" placeholder="').concat(A.language.translate("HEX Color"),'" tabIndex="1" aria-required="true"></div><div class="fr-action-buttons"><button type="button" class="fr-command fr-submit" data-cmd="tableCellBackgroundCustomColor" tabIndex="2" role="button">').concat(A.language.translate("OK"),"</button></div></div>"));var a={buttons:e,colors:function n(){for(var e='<div class="fr-color-set fr-table-colors">',t=0;t<A.opts.tableColors.length;t++)0!==t&&t%A.opts.tableColorsStep==0&&(e+="<br>"),"REMOVE"!=A.opts.tableColors[t]?e+='<span class="fr-command" style="background: '.concat(A.opts.tableColors[t],';" tabIndex="-1" role="button" data-cmd="tableCellBackgroundColor" data-param1="').concat(A.opts.tableColors[t],'"><span class="fr-sr-only">').concat(A.language.translate("Color")," ").concat(A.opts.tableColors[t],"&nbsp;&nbsp;&nbsp;</span></span>"):e+='<span class="fr-command" data-cmd="tableCellBackgroundColor" tabIndex="-1" role="button" data-param1="REMOVE" title="'.concat(A.language.translate("Clear Formatting"),'">').concat(A.icon.create("tableColorRemove"),'<span class="fr-sr-only">').concat(A.language.translate("Clear Formatting"),"</span></span>");return e+="</div>"}(),custom_color:t},l=A.popups.create("table.colors",a);return A.events.$on(A.$wp,"scroll.table-colors",function(){A.popups.isVisible("table.colors")&&i()}),function r(u){A.events.on("popup.tab",function(e){var t=O(e.currentTarget);if(!A.popups.isVisible("table.colors")||!t.is("span"))return!0;var a=e.which,l=!0;if($e.KEYCODE.TAB==a){var n=u.find(".fr-buttons");l=!A.accessibility.focusToolbar(n,!!e.shiftKey)}else if($e.KEYCODE.ARROW_UP==a||$e.KEYCODE.ARROW_DOWN==a||$e.KEYCODE.ARROW_LEFT==a||$e.KEYCODE.ARROW_RIGHT==a){var r=t.parent().find("span.fr-command"),o=r.index(t),s=A.opts.colorsStep,i=Math.floor(r.length/s),f=o%s,c=Math.floor(o/s),d=c*s+f,p=i*s;$e.KEYCODE.ARROW_UP==a?d=((d-s)%p+p)%p:$e.KEYCODE.ARROW_DOWN==a?d=(d+s)%p:$e.KEYCODE.ARROW_LEFT==a?d=((d-1)%p+p)%p:$e.KEYCODE.ARROW_RIGHT==a&&(d=(d+1)%p);var h=O(r.get(d));A.events.disableBlur(),h.focus(),l=!1}else $e.KEYCODE.ENTER==a&&(A.button.exec(t),l=!1);return!1===l&&(e.preventDefault(),e.stopPropagation()),l},!0)}(l),l}()),A.popups.setContainer("table.colors",A.$sc);var a=k(e),l=(a.left+a.right)/2,n=a.bottom;!function r(){var e=A.popups.get("table.colors"),t=A.$el.find(".fr-selected-cell").first(),a=A.helpers.RGBToHex(t.css("background-color")),l=e.find(".fr-table-colors-hex-layer input");e.find(".fr-selected-color").removeClass("fr-selected-color fr-active-item"),e.find('span[data-param1="'.concat(a,'"]')).addClass("fr-selected-color fr-active-item"),l.val(a).trigger("change")}(),A.popups.show("table.colors",l,n,a.bottom-a.top,!0)}}function c(){0===oe().length&&A.toolbar.enable()}function p(e){if(e)return A.popups.onHide("table.insert",function(){A.popups.get("table.insert").find('.fr-table-size .fr-select-table-size > span[data-row="1"][data-col="1"]').trigger("mouseover")}),!0;var t="";0<A.opts.tableInsertButtons.length&&(t='<div class="fr-buttons fr-tabs">'.concat(A.button.buildList(A.opts.tableInsertButtons),"</div>"));var a={buttons:t,rows_columns:function r(){for(var e='<div class="fr-table-size"><div class="fr-table-size-info">1 &times; 1</div><div class="fr-select-table-size">',t=1;t<=A.opts.tableInsertMaxSize;t++){for(var a=1;a<=A.opts.tableInsertMaxSize;a++){var l="inline-block";2<t&&!A.helpers.isMobile()&&(l="none");var n="fr-table-cell ";1==t&&1==a&&(n+=" hover"),e+='<span class="fr-command '.concat(n,'" tabIndex="-1" data-cmd="tableInsert" data-row="').concat(t,'" data-col="').concat(a,'" data-param1="').concat(t,'" data-param2="').concat(a,'" style="display: ').concat(l,';" role="button"><span></span><span class="fr-sr-only">').concat(t," &times; ").concat(a,"&nbsp;&nbsp;&nbsp;</span></span>")}e+='<div class="new-line"></div>'}return e+="</div></div>"}()},l=A.popups.create("table.insert",a);return A.events.$on(l,"mouseover",".fr-table-size .fr-select-table-size .fr-table-cell",function(e){d(O(e.currentTarget))},!0),function n(e){A.events.$on(e,"focus","[tabIndex]",function(e){var t=O(e.currentTarget);d(t)}),A.events.on("popup.tab",function(e){var t=O(e.currentTarget);if(!A.popups.isVisible("table.insert")||!t.is("span, a"))return!0;var a,l=e.which;if($e.KEYCODE.ARROW_UP==l||$e.KEYCODE.ARROW_DOWN==l||$e.KEYCODE.ARROW_LEFT==l||$e.KEYCODE.ARROW_RIGHT==l){if(t.is("span.fr-table-cell")){var n=t.parent().find("span.fr-table-cell"),r=n.index(t),o=A.opts.tableInsertMaxSize,s=r%o,i=Math.floor(r/o);$e.KEYCODE.ARROW_UP==l?i=Math.max(0,i-1):$e.KEYCODE.ARROW_DOWN==l?i=Math.min(A.opts.tableInsertMaxSize-1,i+1):$e.KEYCODE.ARROW_LEFT==l?s=Math.max(0,s-1):$e.KEYCODE.ARROW_RIGHT==l&&(s=Math.min(A.opts.tableInsertMaxSize-1,s+1));var f=i*o+s,c=O(n.get(f));d(c),A.events.disableBlur(),c.focus(),a=!1}}else $e.KEYCODE.ENTER==l&&(A.button.exec(t),a=!1);return!1===a&&(e.preventDefault(),e.stopPropagation()),a},!0)}(l),l}function d(e){var t=e.data("row");null!==t&&(t=parseInt(t));var a=e.data("col");null!==a&&(a=parseInt(a));var l=e.parent();l.siblings(".fr-table-size-info").html("".concat(t," &times; ").concat(a)),l.find("> span").removeClass("hover fr-active-item");for(var n=1;n<=A.opts.tableInsertMaxSize;n++)for(var r=0;r<=A.opts.tableInsertMaxSize;r++){var o=l.find('> span[data-row="'.concat(n,'"][data-col="').concat(r,'"]'));n<=t&&r<=a?o.addClass("hover"):n<=t+1||n<=2&&!A.helpers.isMobile()?o.css("display","inline-block"):2<n&&!A.helpers.isMobile()&&o.css("display","none")}e.addClass("fr-active-item")}function h(e){if(e)return A.popups.onHide("table.edit",c),!0;if(0<A.opts.tableEditButtons.length){var t={buttons:'<div class="fr-buttons">'.concat(A.button.buildList(A.opts.tableEditButtons),"</div>")},a=A.popups.create("table.edit",t);return A.events.$on(A.$wp,"scroll.table-edit",function(){A.popups.isVisible("table.edit")&&g()}),a}return!1}function e(){s[A.id]||(s[A.id]=O(document.createElement("div")).attr("class","fr-table-selector").html('<a role="button" tabIndex="-1" title="'.concat(A.language.translate("Select Table"),'"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="').concat($e.SVG.tableSelectorIcon,'"/></svg></a>')));var r=A.language.translate("The content you are pasting does not contain a table.\nPlease ensure the copied content is in table format.");A.events.on("paste.before",function(e,t){if(A.$el.find("table.fr-table-selected").length){var a=t||e&&e.clipboardData;if(a&&a.items){var l=(a||window.clipboardData).getData("text/html")||"";if(!l||-1===l.indexOf("<table"))return alert(r),e.preventDefault(),e.stopPropagation(),!1}}return!0}),A.events.on("html.beforeInsert",function(e){var t=A.$el.find("table.fr-table-selected");if(t.length){var a=function n(e){var t=A.doc.createElement("div");t.innerHTML=e;for(var a=t.firstChild;a;){var l=a.nextSibling;(a.nodeType===Node.TEXT_NODE&&""===a.textContent.replace(/\u200b/g,"").trim()||a.nodeType===Node.COMMENT_NODE||"SPAN"===a.tagName&&""===a.textContent.replace(/\u200b/g,"").trim())&&a.remove(),a=l}return 1===t.childNodes.length&&"TABLE"===t.childNodes[0].tagName&&t.childNodes[0]}(e);return a?(function m(e,t){for(var a=t.get(0),l=a.rows[0].cells[0],n=l&&l.parentNode?l.parentNode.rowIndex:0,r=l?l.cellIndex:0,o=a.rows,s=e.rows,i=0;i<e.rows.length;i++){if(!o[n+i])for(var f=o[o.length-1].cells.length,c=a.insertRow(),d=0;d<f;d++)c.insertCell();for(var p=o[n+i],h=0;h<e.rows[i].cells.length;h++){if(!p.cells[r+h])for(var u=0;u<o.length;u++)o[u].insertCell();var g=p.cells[r+h],b=s[i].cells[h];g.outerHTML=b.outerHTML}}}(a,t),A.keys.positionCaret(),A.events.trigger("html.inserted")):alert(r),!1}return!0}),A.events.on("mousedown",function(){q()}),A.events.$on(O(A.o_win),"resize",function(){var e=A.$el.find("table.fr-table-selected");e.length?J(e):q()}),A.events.on("commands.undo commands.redo commands.before",function(e){/^align/.test(e)||q()});var e=null,t=null;A.events.on("snapshot.before",function(){t=A.$el.find("table.fr-table-selection-hover"),e=A.$el.find("table.fr-table-selected"),t.removeClass("fr-table-selection-hover"),e.removeClass("fr-table-selected")}),A.events.on("snapshot.after",function(){e&&e.addClass("fr-table-selected"),t&&t.addClass("fr-table-selection-hover")}),A.events.$on(s[A.id],"click",function(){var e=A.$el.find("table.fr-table-selection-hover");if(e.length){A.$el.find("table.fr-table-selected").removeClass("fr-table-selected"),s[A.id].addClass("fr-table-selector-active-selected"),e.addClass("fr-table-selected"),e.removeClass("fr-table-selection-hover");var t=A.doc.createRange();A.selection.get().removeAllRanges(),t.setStart(e.get(0),0),t.setEnd(e.get(0),0),A.selection.get().addRange(t),A.$el.focus()}}),A.events.on("destroy",function(){q(),s[A.id]=null})}function b(e){var t={startTag:"",closeTag:""};return A.opts.keepTextFormatOnTable&&(t=u(function s(e){var t=new Set,a=e.textContent,l=0,n=[e.firstChild];for(;0<n.length;){var r=n.pop();if(r&&(t.has(r)||(0===l&&a!==r.textContent&&(a=r.textContent,l++),t.add(r)),r.hasChildNodes()))for(var o=0;o<r.childNodes.length;){if(3===r.childNodes[o].nodeType)return Te(t);if(r.childNodes[o].textContent){if(0===l&&r.childNodes[o].textContent!==a){a=r.childNodes[o].textContent,n.push(r.childNodes[o]),l++;break}r.childNodes[o].textContent===a&&n.push(r.childNodes[o])}o++}}return Te(t)}(e).reverse())),{startTag:t.startTag,closeTag:t.closeTag}}function u(e){var t="",a="",l=["br","#text","#comment","font"];if(0<e.length)for(var n=e.length-1;0<=n;n--){var r=e[n],o=A.node.isBlock(r),s=l.indexOf(r.nodeName.toLowerCase());if(!o&&s<0){var i=r.style,f="";if(i&&i.length){for(var c=0;c<i.length;c++)f+=i[c]+": "+i[i[c]].replace(/"/gi,"")+"; ";f=f.trim()}t+=f?"<"+r.nodeName.toLowerCase()+' style="'+f+'">':"<"+r.nodeName.toLowerCase()+">",a="</"+r.nodeName.toLowerCase()+">"+a}}return{startTag:t,closeTag:a}}function m(){if(0<oe().length){var e=se();A.selection.setBefore(e.get(0))||A.selection.setAfter(e.get(0)),A.selection.restore(),A.popups.hide("table.edit"),A.opts.trackChangesEnabled?(A.track_changes.removedTable(e),_()):e.remove(),A.toolbar.enable()}}function v(e){var t=se();if(0<t.length){if(0<A.$el.find("thead .fr-selected-cell").length&&"above"==e||0<A.$el.find("tfoot td.fr-selected-cell").length&&"below"==e)return;var a,l,n,r=T(),o=I(r);if(null==o)return;l="above"==e?o.min_i:o.max_i;var s="<tr>";for(a=0;a<r[l].length;a++)if("below"==e&&l<r.length-1&&r[l][a]==r[l+1][a]||"above"==e&&0<l&&r[l][a]==r[l-1][a]){if(0===a||0<a&&r[l][a]!=r[l][a-1]){var i=O(r[l][a]);i.attr("rowspan",parseInt(i.attr("rowspan"),10)+1)}}else{var f=O(r[l][a]);if("TH"==f.attr("tagName").toUpperCase())s+='<th style="'+f.attr("style")+'" ><br></th>';else{var c=b(r[l][a]);s+='<td style="'+f.attr("style")+'" >'+c.startTag+"<br>"+c.closeTag+"</td>"}}s+="</tr>",n=0<A.$el.find("thead .fr-selected-cell").length&&"below"==e||0<A.$el.find("tfoot td.fr-selected-cell").length&&"above"==e?O(t.find("tbody").not(t.find("> table tbody"))):O(t.find("tr").not(t.find("> table tr")).get(l)),"below"==e?"TBODY"==n.attr("tagName")?n.prepend(s):n[0].parentNode&&n[0].insertAdjacentHTML("afterend",s):"above"==e&&("TBODY"==n.attr("tagName")?n.append(s):n.before(s),A.popups.isVisible("table.edit")&&g())}}function C(e,t,a){var l,n,r,o,s,i=0,f=T(a);if(e<(t=Math.min(t,f[0].length-1)))for(n=e;n<=t;n++)if(!(e<n&&f[0][n]==f[0][n-1])&&1<(o=Math.min(parseInt(f[0][n].getAttribute("colspan"),10)||1,t-e+1))&&f[0][n]==f[0][n+1])for(i=o-1,l=1;l<f.length;l++)if(f[l][n]!=f[l-1][n]){for(r=n;r<n+o;r++)if(f[l][r]!==undefined)if(1<(s=parseInt(f[l][r].getAttribute("colspan"),10)||1)&&f[l][r]==f[l][r+1])r+=i=Math.min(i,s-1);else if(!(i=Math.max(0,i-1)))break;if(!i)break}i&&E(f,i,"colspan",0,f.length-1,e,t)}function w(e,t,a){var l,n,r,o,s,i=0,f=T(a);if(e<(t=Math.min(t,f.length-1)))for(l=e;l<=t;l++)if(!(e<l&&f[l][0]==f[l-1][0])&&f[l][0]!==undefined&&1<(o=Math.min(parseInt(f[l][0].getAttribute("rowspan"),10)||1,t-e+1))&&f[l][0]==f[l+1][0])for(i=o-1,n=1;n<f[0].length;n++)if(f[l][n]!=f[l][n-1]){for(r=l;r<l+o;r++)if(f[r][n]!==undefined)if(1<(s=parseInt(f[r][n].getAttribute("rowspan"),10)||1)&&f[r][n]==f[r+1][n])r+=i=Math.min(i,s-1);else if(!(i=Math.max(0,i-1)))break;if(!i)break}i&&E(f,i,"rowspan",e,t,0,f[0].length-1)}function E(e,t,a,l,n,r,o){var s,i,f;for(s=l;s<=n;s++)for(i=r;i<=o;i++)l<s&&e[s][i]==e[s-1][i]||r<i&&e[s][i]==e[s][i-1]||e[s][i]!==undefined&&1<(f=parseInt(e[s][i].getAttribute(a),10)||1)&&(1<f-t?e[s][i].setAttribute(a,f-t):e[s][i].removeAttribute(a))}function R(e,t,a,l,n){w(e,t,n),C(a,l,n)}function t(e){var t=A.$el.find(".fr-selected-cell");"REMOVE"!=e?t.css("background-color",A.helpers.HEXtoRGB(e)):t.css("background-color",""),g()}function $(e){e.style.removeProperty("border"),e.style.removeProperty("border-top"),e.style.removeProperty("border-bottom"),e.style.removeProperty("border-left"),e.style.removeProperty("border-right")}function T(e){var f=[];if(null==(e=e||null)&&0<oe().length&&(e=se()),e){if(!e.find("tr").html().match(/xl[0-9]+/gi))for(var t=e.find("tr:empty"),a=t.length-1;0<=a;a--)O(t[a]).remove();e.find("tr").not(e.find("> table tr")).each(function(s,e){var t=O(e),i=0;t.find("> th, > td").each(function(e,t){for(var a=O(t),l=parseInt(a.attr("colspan"),10)||1,n=parseInt(a.attr("rowspan"),10)||1,r=s;r<s+n;r++)for(var o=i;o<i+l;o++)f[r]||(f[r]=[]),f[r][o]?i++:f[r][o]=t;i+=l})})}return f}function D(e,t){for(var a=0;a<t.length;a++)for(var l=0;l<t[a].length;l++)if(t[a][l]==e)return{row:a,col:l}}function S(e,t,a){for(var l=e+1,n=t+1;l<a.length;){if(a[l][t]!=a[e][t]){l--;break}l++}for(l==a.length&&l--;n<a[e].length;){if(a[e][n]!=a[e][t]){n--;break}n++}return n==a[e].length&&n--,{row:l,col:n}}function N(){A.el.querySelector(".fr-cell-fixed")&&A.el.querySelector(".fr-cell-fixed").classList.remove("fr-cell-fixed"),A.el.querySelector(".fr-cell-handler")&&A.el.querySelector(".fr-cell-handler").classList.remove("fr-cell-handler")}function _(){var e=A.$el.find(".fr-selected-cell");0<e.length&&e.each(function(){var e=O(this);e.removeClass("fr-selected-cell"),""===e.attr("class")&&e.removeAttr("class")}),N()}function M(){A.events.disableBlur(),A.selection.clear(),A.$el.addClass("fr-no-selection"),A.$el.blur(),A.events.enableBlur()}function I(e){var t=A.$el.find(".fr-selected-cell");if(0<t.length){var a,l=e.length,n=0,r=e[0].length,o=0;for(a=0;a<t.length;a++){var s=D(t[a],e),i=S(s.row,s.col,e);l=Math.min(s.row,l),n=Math.max(i.row,n),r=Math.min(s.col,r),o=Math.max(i.col,o)}return{min_i:l,max_i:n,min_j:r,max_j:o}}return null}function k(e){var t=I(e);if(null!=t){var a=O(e[t.min_i][t.min_j]),l=O(e[t.min_i][t.max_j]),n=O(e[t.max_i][t.min_j]);return{left:a.length&&a.offset().left,right:l.length&&l.offset().left+l.outerWidth(),top:a.length&&a.offset().top,bottom:n.length&&n.offset().top+n.outerHeight()}}}function K(e,t){if(O(e).is(t))_(),O(e).addClass("fr-selected-cell");else{M(),A.edit.off();var a=T(),l=D(e,a),n=D(t,a);if(!l||!n)return;var r=function h(e,t,a,l,n){var r,o,s,i,f=e,c=t,d=a,p=l;for(r=f;r<=c;r++)(1<(parseInt(O(n[r][d]).attr("rowspan"),10)||1)||1<(parseInt(O(n[r][d]).attr("colspan"),10)||1))&&(i=S((s=D(n[r][d],n)).row,s.col,n),f=Math.min(s.row,f),c=Math.max(i.row,c),d=Math.min(s.col,d),p=Math.max(i.col,p)),(1<(parseInt(O(n[r][p]).attr("rowspan"),10)||1)||1<(parseInt(O(n[r][p]).attr("colspan"),10)||1))&&(i=S((s=D(n[r][p],n)).row,s.col,n),f=Math.min(s.row,f),c=Math.max(i.row,c),d=Math.min(s.col,d),p=Math.max(i.col,p));for(o=d;o<=p;o++)(1<(parseInt(O(n[f][o]).attr("rowspan"),10)||1)||1<(parseInt(O(n[f][o]).attr("colspan"),10)||1))&&(i=S((s=D(n[f][o],n)).row,s.col,n),f=Math.min(s.row,f),c=Math.max(i.row,c),d=Math.min(s.col,d),p=Math.max(i.col,p)),(1<(parseInt(O(n[c][o]).attr("rowspan"),10)||1)||1<(parseInt(O(n[c][o]).attr("colspan"),10)||1))&&(i=S((s=D(n[c][o],n)).row,s.col,n),f=Math.min(s.row,f),c=Math.max(i.row,c),d=Math.min(s.col,d),p=Math.max(i.col,p));return f==e&&c==t&&d==a&&p==l?{min_i:e,max_i:t,min_j:a,max_j:l}:h(f,c,d,p,n)}(Math.min(l.row,n.row),Math.max(l.row,n.row),Math.min(l.col,n.col),Math.max(l.col,n.col),a);_(),e.classList.add("fr-cell-fixed"),t.classList.add("fr-cell-handler");for(var o=r.min_i;o<=r.max_i;o++)for(var s=r.min_j;s<=r.max_j;s++)O(e).closest("table").is(O(a[o][s]).closest("table"))&&O(a[o][s]).addClass("fr-selected-cell")}}function L(e){var t=null,a=O(e.target);return"TD"==e.target.tagName||"TH"==e.target.tagName?t=e.target:0<a.closest("th",a.closest("thead")[0]).length?t=a.closest("th",a.closest("thead")[0]).get(0):0<a.closest("td",a.closest("tr")[0]).length&&(t=a.closest("td",a.closest("tr")[0]).get(0)),-1===A.$el.html.toString().search(t)?null:t}function B(){_(),A.popups.hide("table.edit")}function F(e){var t=L(e);if("false"==O(t).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable"))return!0;if(0<oe().length&&!t&&B(),!A.edit.isDisabled()||A.popups.isVisible("table.edit"))if(1!=e.which||1==e.which&&A.helpers.isMac()&&e.ctrlKey)(3==e.which||1==e.which&&A.helpers.isMac()&&e.ctrlKey)&&t&&B();else if(o=!0,t){0<oe().length&&!e.shiftKey&&B(),e.stopPropagation(),A.events.trigger("image.hideResizer"),A.events.trigger("video.hideResizer"),r=!0;var a=t.tagName.toLowerCase();e.shiftKey&&0<A.$el.find("".concat(a,".fr-selected-cell")).length?O(A.$el.find("".concat(a,".fr-selected-cell")).closest("table")).is(O(t).closest("table"))?K(l,t):M():((A.keys.ctrlKey(e)||e.shiftKey)&&"TD"===e.currentTarget.tagName&&(1<oe().length||0===O(t).find(A.selection.element()).length&&!O(t).is(A.selection.element()))&&M(),l=t,0<A.opts.tableEditButtons.length&&K(l,l))}}function z(e){if(!A.edit.isDisabled()&&A.popups.areVisible())return!0;var t=L(e);if(1===oe().length&&null===t&&(A.toolbar.enable(),_()),(1===oe().length&&t&&"TD"!==t.tagName&&"TH"!==t.tagName||!r&&!A.$tb.is(e.target)&&!A.$tb.is(O(e.target).closest(".fr-toolbar")))&&(A.toolbar.enable(),_()),("BODY"===e.target.tagName||"HTML"===e.target.tagName)&&!t&&0<oe().length&&A.toolbar.enable(),!(1!=e.which||1==e.which&&A.helpers.isMac()&&e.ctrlKey)){if(o=!1,r)if(r=!1,L(e)||1!=oe().length)if(0<oe().length){if(A.browser.mozilla&&!A.selection.isCollapsed()){var a=oe()[oe().length-1],l=A.doc.createRange();A.selection.get().removeAllRanges(),l.setStart(a,0),l.setEnd(a,0),l.collapse(),A.selection.get().addRange(l)}A.selection.isCollapsed()?(g(),A.toolbar.enable()):(_(),A.edit.on())}else oe().length||(A.$el.removeClass("fr-no-selection"),A.edit.on());else _();if(y){y=!1,x.removeClass("fr-moving"),A.$el.removeClass("fr-no-selection"),A.edit.on();var n=parseFloat(x.css("left"))+A.opts.tableResizerOffset+A.$wp.offset().left;A.opts.iframe&&(n-=A.$iframe.offset().left),x.data("release-position",n),x.removeData("max-left"),x.removeData("max-right"),function R(){var e=x.data("origin"),t=x.data("release-position");if(e!==t){var a=x.data("first"),l=x.data("second"),n=x.data("table"),r=n.outerWidth();if(A.undo.canDo()||A.undo.saveStep(),null!=a&&null!=l){var o,s,i,f=T(n),c=[],d=[],p=[],h=[];for(o=0;o<f.length;o++)s=O(f[o][a]),i=O(f[o][l]),c[o]=s.outerWidth(),p[o]=i.outerWidth(),d[o]=c[o]/r*100,h[o]=p[o]/r*100;for(o=0;o<f.length;o++)if(s=O(f[o][a]),i=O(f[o][l]),f[o][a]!=f[o][l]){var u=(d[o]*(c[o]+t-e)/c[o]).toFixed(4);s.css("width",u+"%"),i.css("width",(d[o]+h[o]-u).toFixed(4)+"%")}}else{var g,b=n.parent(),m=parseFloat(b.css("padding-left")),v=parseFloat(b.css("padding-right")),C=m+v,w=r/(b.width()-C)*100,E=(parseInt(n.css("margin-left"),10)||0)/b.width()*100,y=(parseInt(n.css("margin-right"),10)||0)/b.width()*100;"rtl"==A.opts.direction&&0===l||"rtl"!=A.opts.direction&&0!==l?(g=(r+t-e)/r*w,n.css("margin-right","calc(100% - ".concat(Math.round(g).toFixed(4),"% - ").concat(Math.round(E).toFixed(4),"%)"))):("rtl"==A.opts.direction&&0!==l||"rtl"!=A.opts.direction&&0===l)&&(g=(r-t+e)/r*w,n.css("margin-left","calc(100% - ".concat(Math.round(g).toFixed(4),"% - ").concat(Math.round(y).toFixed(4),"%)"))),n.css("width","".concat(Math.round(g).toFixed(4),"%"))}A.selection.restore(),A.undo.saveStep(),A.events.trigger("table.resized",[n.get(0)])}x.removeData("origin"),x.removeData("release-position"),x.removeData("first"),x.removeData("second"),x.removeData("table")}(),V()}}}function Y(e){if((!(O(e.currentTarget).is(O(e.originalEvent.relatedTarget))||e.currentTarget.contains(e.originalEvent.relatedTarget)||e.originalEvent.relatedTarget&&e.originalEvent.relatedTarget.contains(e.currentTarget))||e.currentTarget.querySelector("input, textarea"))&&(A.events.$on(O("input, textarea"),"click",ie),!0===r&&0<A.opts.tableEditButtons.length)){if(O(e.currentTarget).closest("table").is(se()))return void K(l,e.currentTarget);"TD"!==e.currentTarget.tagName&&"TH"!==e.currentTarget.tagName&&M()}}function W(e,t,a,l){for(var n,r=t;r!=A.el&&"TD"!=r.tagName&&"TH"!=r.tagName&&("up"==l?n=r.previousElementSibling:"down"==l&&(n=r.nextElementSibling),!n);)r=r.parentNode;"TD"==r.tagName||"TH"==r.tagName?function o(e,t){for(var a=e;a&&"TABLE"!=a.tagName&&a.parentNode!=A.el;)a=a.parentNode;if(a&&"TABLE"==a.tagName){var l=T(O(a));"up"==t?H(D(e,l),a,l):"down"==t&&P(D(e,l),a,l)}}(r,l):n&&("up"==l&&A.selection.setAtEnd(n),"down"==l&&A.selection.setAtStart(n))}function H(e,t,a){0<O(".tribute-container").length&&"none"!=O(".tribute-container").css("display")||(0<e.row?A.selection.setAtEnd(a[e.row-1][e.col]):W(0,t,0,"up"))}function P(e,t,a){if(!(0<O(".tribute-container").length&&"none"!=O(".tribute-container").css("display"))){var l=parseInt(a[e.row][e.col].getAttribute("rowspan"),10)||1;e.row<a.length-l?A.selection.setAtStart(a[e.row+l][e.col]):W(0,t,0,"down")}}function V(){x&&(x.find("div").css("opacity",0),x.css("top",0),x.css("left",0),x.css("height",0),x.find("div").css("height",0),x.hide())}function j(){f&&f.removeClass("fr-visible").css("left","-9999px")}function a(e,t){var a,l=O(t);l&&(a=l.closest("table"));var n=a.parent();if(t&&"TD"!=t.tagName&&"TH"!=t.tagName&&(0<l.closest("td").length?t=l.closest("td"):0<l.closest("th").length&&(t=l.closest("th"))),!t||"TD"!=t.tagName&&"TH"!=t.tagName)x&&l.get(0)!=x.get(0)&&l.parent().get(0)!=x.get(0)&&A.core.sameInstance(x)&&V();else{if(l=O(t),0===A.$el.find(l).length)return!1;var r=l.offset().left-1,o=r+l.outerWidth();if(Math.abs(e.pageX-r)<=A.opts.tableResizerOffset||Math.abs(o-e.pageX)<=A.opts.tableResizerOffset){var s,i,f,c,d,p=T(a),h=D(t,p),u=S(h.row,h.col,p),g=a.offset().top,b=a.outerHeight()-1;"rtl"!=A.opts.direction?e.pageX-r<=A.opts.tableResizerOffset?(f=r,0<h.col?(c=r-ee(h.col-1,p)+A.opts.tableResizingLimit,d=r+ee(h.col,p)-A.opts.tableResizingLimit,s=h.col-1,i=h.col):(s=null,i=0,c=a.offset().left-1-parseInt(a.css("margin-left"),10),d=a.offset().left-1+a.width()-p[0].length*A.opts.tableResizingLimit)):o-e.pageX<=A.opts.tableResizerOffset&&(f=o,u.col<p[u.row].length&&p[u.row][u.col+1]?(c=o-ee(u.col,p)+A.opts.tableResizingLimit,d=o+ee(u.col+1,p)-A.opts.tableResizingLimit,s=u.col,i=u.col+1):(s=u.col,i=null,c=a.offset().left-1+p[0].length*A.opts.tableResizingLimit,d=n.offset().left-1+n.width()+parseFloat(n.css("padding-left")))):o-e.pageX<=A.opts.tableResizerOffset?(f=o,0<h.col?(c=o-ee(h.col,p)+A.opts.tableResizingLimit,d=o+ee(h.col-1,p)-A.opts.tableResizingLimit,s=h.col,i=h.col-1):(s=null,i=0,c=a.offset().left+p[0].length*A.opts.tableResizingLimit,d=n.offset().left-1+n.width()+parseFloat(n.css("padding-left")))):e.pageX-r<=A.opts.tableResizerOffset&&(f=r,u.col<p[u.row].length&&p[u.row][u.col+1]?(c=r-ee(u.col+1,p)+A.opts.tableResizingLimit,d=r+ee(u.col,p)-A.opts.tableResizingLimit,s=u.col+1,i=u.col):(s=u.col,i=null,c=n.offset().left+parseFloat(n.css("padding-left")),d=a.offset().left-1+a.width()-p[0].length*A.opts.tableResizingLimit)),x||function E(){A.shared.$table_resizer||(A.shared.$table_resizer=O(document.createElement("div")).attr("class","fr-table-resizer").html("<div></div>")),x=A.shared.$table_resizer,A.events.$on(x,"mousedown",function(e){return!A.core.sameInstance(x)||(0<oe().length&&B(),1==e.which?(A.selection.save(),y=!0,x.addClass("fr-moving"),M(),A.edit.off(),x.find("div").css("opacity",1),!1):void 0)}),A.events.$on(x,"mousemove",function(e){if(!A.core.sameInstance(x))return!0;y&&(A.opts.iframe&&(e.pageX-=A.$iframe.offset().left),ae(e))});var t=function t(e){y&&z(e)};window.addEventListener("mouseup",t,!0),A.events.on("destroy",function(){window.removeEventListener("mouseup",t,!0)},!0),A.events.on("shared.destroy",function(){x.html("").removeData().remove(),x=null},!0),A.events.on("destroy",function(){A.$el.find(".fr-selected-cell").removeClass("fr-selected-cell"),O("body").first().append(x.hide())},!0)}(),x.data("table",a),x.data("first",s),x.data("second",i),x.data("instance",A),A.$wp.append(x);var m=f-A.win.pageXOffset-A.opts.tableResizerOffset-A.$wp.offset().left,v=g-A.$wp.offset().top+A.$wp.scrollTop();if(A.opts.iframe){var C=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top")),w=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-left"));m+=A.$iframe.offset().left+w,v+=A.$iframe.offset().top+C,c+=A.$iframe.offset().left,d+=A.$iframe.offset().left}x.data("max-left",c),x.data("max-right",d),x.data("origin",f-A.win.pageXOffset),x.css("top",v),x.css("left",m),x.css("height",b),x.find("div").css("height",b),x.css("padding-left",A.opts.tableResizerOffset),x.css("padding-right",A.opts.tableResizerOffset),x.show()}else A.core.sameInstance(x)&&V()}}function X(e,t){if(A.$box.find(".fr-line-breaker").isVisible())return!1;f||ne(),A.$box.append(f),f.data("instance",A);var a,l=O(t).find("tr").first(),n=e.pageX,r=0,o=0;if(A.opts.iframe){var s=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top")),i=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-left"));r+=A.$iframe.offset().left-A.helpers.scrollLeft()+i,o+=A.$iframe.offset().top-A.helpers.scrollTop()+s}l.find("th, td").each(function(){var e=O(this);return e.offset().left<=n&&n<e.offset().left+e.outerWidth()/2?(a=parseInt(f.find("a").css("width"),10),f.css("top",o+e.offset().top-A.$box.offset().top-a-5),f.css("left",r+e.offset().left-A.$box.offset().left-a/2),f.data("selected-cell",e),f.data("position","before"),f.addClass("fr-visible"),!1):e.offset().left+e.outerWidth()/2<=n&&n<e.offset().left+e.outerWidth()?(a=parseInt(f.find("a").css("width"),10),f.css("top",o+e.offset().top-A.$box.offset().top-a-5),f.css("left",r+e.offset().left-A.$box.offset().left+e.outerWidth()-a/2),f.data("selected-cell",e),f.data("position","after"),f.addClass("fr-visible"),!1):void 0})}function G(e,t){if(A.$box.find(".fr-line-breaker").isVisible())return!1;f||ne(),A.$box.append(f),f.data("instance",A);var a,l=O(t),n=e.pageY,r=0,o=0;if(A.opts.iframe){var s=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top")),i=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-left"));r+=A.$iframe.offset().left-A.helpers.scrollLeft()+i,o+=A.$iframe.offset().top-A.helpers.scrollTop()+s}l.find("tr").each(function(){var e=O(this);a=parseInt(f.find("a").css("width"),10);var t=r+e.offset().left-A.$box.offset().left;return t=0!==A.$box.offset().left?t-a-5:t+a-5,e.offset().top<=n&&n<e.offset().top+e.outerHeight()/2?(f.css("top",o+e.offset().top-A.$box.offset().top-a/2),f.css("left",t),f.data("selected-cell",e.find("td").first()),f.data("position","above"),f.addClass("fr-visible"),!1):e.offset().top+e.outerHeight()/2<=n&&n<e.offset().top+e.outerHeight()?(f.css("top",o+e.offset().top-A.$box.offset().top+e.outerHeight()-a/2),f.css("left",t),f.data("selected-cell",e.find("td").first()),f.data("position","below"),f.addClass("fr-visible"),!1):void 0})}function U(){s[A.id]&&(s[A.id].css("top",-9999),s[A.id].css("left",-9999),s[A.id].removeClass("fr-table-selector-active-selected"),s[A.id].removeClass("fr-table-selector-active"),s[A.id].addClass("fr-table-selector-inactive"),A.$el.find("table.fr-table-selection-hover").removeClass("fr-table-selection-hover"))}function q(){var e=A.$el.find("table.fr-table-selected");e.removeClass("fr-table-selected"),e.removeClass("fr-table-selection-hover"),U()}function J(e){A.$box.append(s[A.id]),s[A.id].data("instance",A);var t=e.offset().left-A.$box.offset().left+16,a=e.offset().top-A.$box.offset().top-s[A.id].outerHeight();if(A.opts.iframe){var l=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top")),n=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-left"));t+=A.$iframe.offset().left-A.helpers.scrollLeft()+n,a+=A.$iframe.offset().top-A.helpers.scrollTop()+l}s[A.id].css("top",a),s[A.id].css("left",t)}function Z(e){n=null;var t=A.doc.elementFromPoint(e.pageX-A.win.pageXOffset,e.pageY-A.win.pageYOffset);A.opts.tableResizer&&(!A.popups.areVisible()||A.popups.areVisible()&&A.popups.isVisible("table.edit"))&&a(e,t),!A.opts.tableInsertHelper||A.popups.areVisible()||A.$tb.hasClass("fr-inline")&&A.$tb.isVisible()||function r(e,t){if(0===oe().length){var a,l,n;if(t&&("HTML"==t.tagName||"BODY"==t.tagName||A.node.isElement(t)))for(a=1;a<=A.opts.tableInsertHelperOffset;a++){if(l=A.doc.elementFromPoint(e.pageX-A.win.pageXOffset,e.pageY-A.win.pageYOffset+a),O(l).hasClass("fr-tooltip"))return!0;if(l&&("TH"==l.tagName||"TD"==l.tagName||"TABLE"==l.tagName)&&(O(l).parents(".fr-wrapper").length||A.opts.iframe)&&"false"!=O(l).closest("table").attr("contenteditable"))return X(e,O(l).closest("table")),!0;if(n=A.doc.elementFromPoint(e.pageX-A.win.pageXOffset+a,e.pageY-A.win.pageYOffset),O(n).hasClass("fr-tooltip"))return!0;if(n&&("TH"==n.tagName||"TD"==n.tagName||"TABLE"==n.tagName)&&(O(n).parents(".fr-wrapper").length||A.opts.iframe)&&"false"!=O(n).closest("table").attr("contenteditable"))return G(e,O(n).closest("table")),!0}A.core.sameInstance(f)&&j()}}(e,t),function o(e,t){var a=O(t),l=A.$el.find("table.fr-table-selection-hover"),n=A.$el.find("table.fr-table-selected");if(A.node.isElement(t)||A.node.isElement(a.parents(".fr-view").first().get(0))||A.core.sameInstance(a)||A.core.sameInstance(a.parents("div.fr-table-selector"))){if(!a.parents(".fr-table-selector").length){var r=a.closest("table").filter(function(){return!(!A.$el||!A.$el.length)&&A.$el.get(0).contains(this)});r.length?(J(r),s[A.id].addClass("fr-table-selector-active"),s[A.id].removeClass("fr-table-selector-inactive"),l.removeClass("fr-table-selection-hover"),n.length&&s[A.id].toggleClass("fr-table-selector-active-selected",n.get(0)===r.get(0)),r.addClass("fr-table-selection-hover")):l.length&&Math.abs(l.offset().top-e.pageY)<16||s[A.id].hasClass("fr-table-selector-inactive")||U()}}else n.length||U()}(e,t)}function Q(){if(y){var e=x.data("table").offset().top-A.win.pageYOffset;if(A.opts.iframe){var t=A.helpers.getPX(A.$wp.find(".fr-iframe").css("padding-top"));e+=A.$iframe.offset().top-A.helpers.scrollTop()+t}x.css("top",e)}}function ee(e,t){var a,l=O(t[0][e]).outerWidth();for(a=1;a<t.length;a++)l=Math.min(l,O(t[a][e]).outerWidth());return l}function te(e,t,a){var l,n=0;for(l=e;l<=t;l++)n+=ee(l,a);return n}function ae(e){if(1<oe().length&&o&&M(),!1===o&&!1===r&&!1===y)n&&clearTimeout(n),A.edit.isDisabled()&&!A.popups.isVisible("table.edit")||(n=setTimeout(Z,30,e));else if(y){var t=e.pageX-A.win.pageXOffset;A.opts.iframe&&(t+=A.$iframe.offset().left);var a=x.data("max-left"),l=x.data("max-right");a<=t&&t<=l?x.css("left",t-A.opts.tableResizerOffset-A.$wp.offset().left):t<a&&parseFloat(x.css("left"),10)>a-A.opts.tableResizerOffset?x.css("left",a-A.opts.tableResizerOffset-A.$wp.offset().left):l<t&&parseFloat(x.css("left"),10)<l-A.opts.tableResizerOffset&&x.css("left",l-A.opts.tableResizerOffset-A.$wp.offset().left)}else o&&j()}function le(e){A.node.isEmpty(e.get(0))?A.opts.keepTextFormatOnTable&&A.browser.mozilla?e.append($e.MARKERS):e.prepend($e.MARKERS):e.prepend($e.START_MARKER).append($e.END_MARKER)}function ne(){A.shared.$ti_helper||(A.shared.$ti_helper=O(document.createElement("div")).attr("class","fr-insert-helper").html('<a class="fr-floating-btn" role="button" tabIndex="-1" title="'.concat(A.language.translate("Insert"),'"><svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg"><path d="M22,16.75 L16.75,16.75 L16.75,22 L15.25,22.000 L15.25,16.75 L10,16.75 L10,15.25 L15.25,15.25 L15.25,10 L16.75,10 L16.75,15.25 L22,15.25 L22,16.75 Z"/></svg></a>')),A.events.bindClick(A.shared.$ti_helper,"a",function(){var e=f.data("selected-cell"),t=f.data("position"),a=f.data("instance")||A;"before"==t?(A.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertColumn(t),e.removeClass("fr-selected-cell"),A.undo.saveStep()):"after"==t?(A.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertColumn(t),e.removeClass("fr-selected-cell"),A.undo.saveStep()):"above"==t?(A.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertRow(t),e.removeClass("fr-selected-cell"),A.undo.saveStep()):"below"==t&&(A.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertRow(t),e.removeClass("fr-selected-cell"),A.undo.saveStep()),j()}),A.events.on("shared.destroy",function(){A.shared.$ti_helper.html("").removeData().remove(),A.shared.$ti_helper=null},!0),A.events.$on(A.shared.$ti_helper,"mousemove",function(e){e.stopPropagation()},!0),A.events.$on(O(A.o_win),"scroll",function(){j()},!0),A.events.$on(A.$wp,"scroll",function(){j()},!0)),f=A.shared.$ti_helper,A.events.on("destroy",function(){f=null}),A.tooltip.bind(A.$box,".fr-insert-helper > a.fr-floating-btn")}function re(){l=null,clearTimeout(n)}function oe(){return A.el.querySelectorAll(".fr-selected-cell")}function se(){var e=oe();if(e.length){for(var t=e[0];t&&"TABLE"!=t.tagName&&t.parentNode!=A.el;)t=t.parentNode;return t&&"TABLE"==t.tagName?O(t):O([])}return O([])}function ie(){r=!1}return{_init:function fe(){if(!A.$wp)return!1;if(A.helpers.isMobile()&&(A.events.$on(A.$el,"mousedown",F),A.events.$on(A.$win,"mouseup",z)),!A.helpers.isMobile()){y=r=o=!1,A.events.$on(A.$el,"mousedown",F),A.popups.onShow("image.edit",function(){_(),r=o=!1}),A.popups.onShow("link.edit",function(){_(),r=o=!1}),A.events.$on(A.$el,"mouseover","th, td",Y),A.events.$on(A.$win,"mouseup",z),A.opts.iframe&&A.events.$on(O(A.o_win),"mouseup",z),A.events.$on(A.$win,"mousemove",ae),A.events.$on(O(A.o_win),"scroll",Q),A.events.on("contentChanged",function(){0<oe().length&&(g(),A.$el.find("img").on("load.selected-cells",function(){O(this).off("load.selected-cells"),0<oe().length&&g()}))}),A.events.$on(O(A.o_win),"resize",function(){_()}),A.events.on("toolbar.esc",function(){if(0<oe().length)return A.events.disableBlur(),A.events.focus(),!1},!0),A.events.$on(O(A.o_win),"keydown",function(){o&&r&&(r=o=!1,A.$el.removeClass("fr-no-selection"),A.edit.on(),A.selection.setAtEnd(A.$el.find(".fr-selected-cell").last().get(0)),A.selection.restore(),_())}),A.events.$on(A.$el,"keydown",function(e){e.shiftKey?!1===function o(e){var t=oe();if(null!=t&&0<t.length){var a,l=T(),n=e.which,r=D(1==t.length?a=t[0]:(a=A.el.querySelector(".fr-cell-fixed"),A.el.querySelector(".fr-cell-handler")),l);if($e.KEYCODE.ARROW_RIGHT==n){if(r.col<l[0].length-1)return K(a,l[r.row][r.col+1]),!1}else if($e.KEYCODE.ARROW_DOWN==n){if(r.row<l.length-1)return K(a,l[r.row+1][r.col]),!1}else if($e.KEYCODE.ARROW_LEFT==n){if(0<r.col)return K(a,l[r.row][r.col-1]),!1}else if($e.KEYCODE.ARROW_UP==n&&0<r.row)return K(a,l[r.row-1][r.col]),!1}}(e)&&setTimeout(function(){g()},0):function s(e){var t=e.which,a=A.selection.blocks();if(a.length&&("P"!==(a=a[0]).tagName&&"DIV"!==a.tagName||(a=a.parentNode),"TD"==a.tagName||"TH"==a.tagName)){for(var l=a;l&&"TABLE"!=l.tagName&&l.parentNode!=A.el;)l=l.parentNode;if(l&&"TABLE"==l.tagName&&($e.KEYCODE.ARROW_LEFT==t||$e.KEYCODE.ARROW_UP==t||$e.KEYCODE.ARROW_RIGHT==t||$e.KEYCODE.ARROW_DOWN==t)&&(0<oe().length&&B(),A.browser.webkit&&($e.KEYCODE.ARROW_UP==t||$e.KEYCODE.ARROW_DOWN==t))){var n=A.selection.ranges(0).startContainer;if(n.nodeType==Node.TEXT_NODE&&($e.KEYCODE.ARROW_UP==t&&(n.previousSibling&&"BR"!==n.previousSibling.tagName||n.previousSibling&&"BR"===n.previousSibling.tagName&&n.previousSibling.previousSibling)||$e.KEYCODE.ARROW_DOWN==t&&(n.nextSibling&&"BR"!==n.nextSibling.tagName||n.nextSibling&&"BR"===n.nextSibling.tagName&&n.nextSibling.nextSibling)))return;e.preventDefault(),e.stopPropagation();var r=T(O(l)),o=D(a,r);return $e.KEYCODE.ARROW_UP==t?H(o,l,r):$e.KEYCODE.ARROW_DOWN==t&&P(o,l,r),A.selection.restore(),!1}}}(e)}),A.events.on("keydown",function(e){if(!1===function l(e){if(e.which==$e.KEYCODE.TAB){var t;if(0<oe().length)t=A.$el.find(".fr-selected-cell").last();else{var a=A.selection.element();"TD"==a.tagName||"TH"==a.tagName?t=O(a):a!=A.el&&(0<O(a).parentsUntil(A.$el,"td").length?t=O(a).parents("td").first():0<O(a).parentsUntil(A.$el,"th").length&&(t=O(a).parents("th").first()))}if(t)return e.preventDefault(),!!(0===A.selection.get().focusOffset&&0<O(A.selection.element()).parentsUntil(A.$el,"ol, ul").length&&(0<O(A.selection.element()).closest("li").prev().length||O(A.selection.element()).is("li")&&0<O(A.selection.element()).prev().length))||(B(),e.shiftKey?0<t.prev().length?le(t.prev()):0<t.closest("tr").length&&0<t.closest("tr").prev().length?le(t.closest("tr").prev().find("td").last()):0<t.closest("tbody").length&&0<t.closest("table").find("thead tr").length&&le(t.closest("table").find("thead tr th").last()):0<t.next().length?le(t.next()):0<t.closest("tr").length&&0<t.closest("tr").next().length?le(t.closest("tr").next().find("td").first()):0<t.closest("thead").length&&0<t.closest("table").find("tbody tr").length?le(t.closest("table").find("tbody tr td").first()):(t.addClass("fr-selected-cell"),v("below"),_(),le(t.closest("tr").next().find("td").first())),A.selection.restore(),!1)}}(e))return!1;if(e.which==$e.KEYCODE.ESC&&q(),A.$el.find("table.fr-table-selected").length){if(!e.ctrlKey&&!e.metaKey)return e.preventDefault(),e.stopPropagation(),!1;"a"===e.key&&q()}var t=oe();if(0<t.length){if(0<t.length&&A.keys.ctrlKey(e)&&e.which==$e.KEYCODE.A)return _(),A.popups.isVisible("table.edit")&&A.popups.hide("table.edit"),t=[],!0;if(e.which==$e.KEYCODE.ESC&&A.popups.isVisible("table.edit"))return _(),A.popups.hide("table.edit"),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!(t=[]);if(1<t.length&&(e.which==$e.KEYCODE.BACKSPACE||e.which==$e.KEYCODE.DELETE)){A.undo.saveStep();for(var a=0;a<t.length;a++)O(t[a]).html("<br>"),a==t.length-1&&O(t[a]).prepend($e.MARKERS);return A.selection.restore(),A.undo.saveStep(),!(t=[])}if(1<t.length&&e.which!=$e.KEYCODE.F10&&!A.keys.isBrowserAction(e))return e.preventDefault(),!(t=[])}else if(!(t=[])===function n(e){if(e.altKey&&e.which==$e.KEYCODE.SPACE){var t,a=A.selection.element();if("TD"==a.tagName||"TH"==a.tagName?t=a:0<O(a).closest("td").length?t=O(a).closest("td").get(0):0<O(a).closest("th").length&&(t=O(a).closest("th").get(0)),t)return e.preventDefault(),K(t,t),g(),!1}}(e))return!1},!0);var t=null,a=[];A.events.on("html.beforeGet",function(){a=oe();for(var e=0;e<a.length;e++)a[e].className=(a[e].className||"").replace(/fr-selected-cell/g,"");(t=A.$el.find("table.fr-table-selected"))&&t.length&&t.removeClass("fr-table-selected")}),A.events.on("html.afterGet",function(){for(var e=0;e<a.length;e++)a[e].className=(a[e].className?a[e].className.trim()+" ":"")+"fr-selected-cell";a=[],t&&t.length&&t.addClass("fr-table-selected")});var c=!1,d=["applytextColor","bold","italic","underline","strikeThrough","subscript","superscript","fontFamily","fontSize","applybackgroundColor","inlineClass","inlineStyle","alignLeft","alignCenter","formatOLSimple","alignRight","alignJustify","formatOL","formatUL","paragraphFormat","paragraphStyle","lineHeight","outdent","indent","quote","clearFormatting"];A.events.on("commands.before",function(e,t){if(!c&&1<oe().length&&-1!==d.indexOf(e)){A.undo.saveStep(),A.selection.save(),A.$el.find(".fr-marker").removeClass("fr-marker").addClass("fr-marker-placeholder");var a=$e.COMMANDS[e].undo;$e.COMMANDS[e].undo=!1,c=!0;for(var l={},n=0;n<oe().length;n++){var r=oe()[n],o=r.closest("tr").rowIndex;l[o]||(l[o]=[]),l[o].push(r)}for(var s in l){var i=l[s];A.selection.get().removeAllRanges();var f=A.doc.createRange();f.setStartBefore(i[0]),f.setEndAfter(i[i.length-1]),A.selection.get().addRange(f),A.commands.exec(e,[t])}return A.$el.find(".fr-marker-placeholder").addClass("fr-marker").removeClass("fr-marker-placeholder"),A.selection.restore(),A.undo.saveStep(),$e.COMMANDS[e].undo=a,c=!1}}),p(!0),h(!0),e()}A.events.on("destroy",re)},insert:function ce(e,t){var a,l,n=function f(){var e={startTag:"",closeTag:""};if(A.opts.keepTextFormatOnTable){var t=O(A.selection.element().firstChild).parentsUntil(A.$el);e=u(t)}return{startTag:e.startTag,closeTag:e.closeTag}}(),r="<table "+(A.opts.tableDefaultWidth?'style="width: '+A.opts.tableDefaultWidth+';" ':"")+'class="fr-inserted-table"><tbody>',o=100/t;for(a=0;a<e;a++){for(r+="<tr>",l=0;l<t;l++)r+="<td"+(A.opts.tableDefaultWidth?' style="width: '+o.toFixed(4)+'%;"':"")+">"+n.startTag,0===a&&0===l&&(r+=$e.MARKERS),r+="<br>"+n.closeTag+"</td>";r+="</tr>"}if(r+="</tbody></table>",A.opts.trackChangesEnabled){A.edit.on(),A.events.focus(!0),A.selection.restore(),A.undo.saveStep(),A.markers.insert(),A.html.wrap();var s=A.$el.find(".fr-marker");A.node.isLastSibling(s)&&s.parent().hasClass("fr-deletable")&&s.insertAfter(s.parent()),s.replaceWith(r),A.selection.clear()}else A.html.insert(r);A.selection.restore();var i=A.$el.find(".fr-inserted-table");i.removeClass("fr-inserted-table"),A.events.trigger("table.inserted",[i.get(0)])},remove:m,insertRow:v,deleteRow:function de(){var e=se();if(0<e.length){var t,a,l,n=T(),r=I(n);if(null==r)return;if(0===r.min_i&&r.max_i==n.length-1)m();else{for(t=r.max_i;t>=r.min_i;t--){for(l=O(e.find("tr").not(e.find("> table tr")).get(t)),a=0;a<n[t].length;a++)if(0===a||n[t][a]!=n[t][a-1]){var o=O(n[t][a]);if(1<parseInt(o.attr("rowspan"),10)){var s=parseInt(o.attr("rowspan"),10)-1;1==s?o.removeAttr("rowspan"):o.attr("rowspan",s)}if(t<n.length-1&&n[t][a]==n[t+1][a]&&(0===t||n[t][a]!=n[t-1][a])){for(var i=n[t][a],f=a;0<f&&n[t][f]==n[t][f-1];)f--;0===f?O(e.find("tr").not(e.find("> table tr")).get(t+1)).prepend(i):O(n[t+1][f-1])[0].parentNode&&O(n[t+1][f-1])[0].insertAdjacentElement("afterend",i)}}var c=l.parent();l.remove(),0===c.find("tr").length&&c.remove(),n=T(e)}R(0,n.length-1,0,n[0].length-1,e),0<r.min_i?A.selection.setAtEnd(n[r.min_i-1][0]):A.selection.setAtEnd(n[0][0]),A.selection.restore(),A.popups.hide("table.edit")}}},insertColumn:function pe(c){var e=se();if(0<e.length){var d,p=T(),t=I(p);d="before"==c?t.min_j:t.max_j;var a,h=100/p[0].length,u=100/(p[0].length+1);e.find("th, td").each(function(){(a=O(this)).data("old-width",a.outerWidth()/e.outerWidth()*100)}),e.find("tr").not(e.find("> table tr")).each(function(e){for(var t,a=O(this),l=0,n=0;l-1<d;){if(!(t=a.find("> th, > td").get(n))){t=null;break}t==p[e][l]?(l+=parseInt(O(t).attr("colspan"),10)||1,n++):(l+=parseInt(O(p[e][l]).attr("colspan"),10)||1,"after"==c&&(t=0===n?-1:a.find("> th, > td").get(n-1)))}var r=O(t);if("after"==c&&d<l-1||"before"==c&&0<d&&p[e][d]==p[e][d-1]){if(0===e||0<e&&p[e][d]!=p[e-1][d]){var o=parseInt(r.attr("colspan"),10)+1;r.attr("colspan",o),r.css("width",(r.data("old-width")*u/h+u).toFixed(4)+"%"),r.removeData("old-width")}}else{var s,i=(r.get(0)||"").tagName;if(0<a.find("th").length&&"TH"===i)s='<th style="width: '.concat(u.toFixed(4),'%;"><br></th>');else{var f=b(p[e][d]);s='<td style="'.concat(r.attr("style"),"; width: ").concat(u.toFixed(4),'%;">')+f.startTag+"<br>"+f.closeTag+"</td>"}O(s).append("<br>"),O(s).css("width","".concat(u.toFixed(4),"%")),-1==t?a.prepend(s):null==t?a.append(s):"before"==c?r.before(s):"after"==c&&r.after(s)}}),e.find("th, td").each(function(){(a=O(this)).data("old-width")&&(a.css("width",(a.data("old-width")*u/h).toFixed(4)+"%"),a.removeData("old-width"))}),A.popups.isVisible("table.edit")&&g()}},deleteColumn:function he(){var e=se();if(0<e.length){var t,a,l,n=T(),r=I(n);if(null==r)return;if(0===r.min_j&&r.max_j==n[0].length-1)m();else{var o=0;for(t=0;t<n.length;t++)for(a=0;a<n[0].length;a++)(l=O(n[t][a])).hasClass("fr-selected-cell")||(l.data("old-width",l.outerWidth()/e.outerWidth()*100),(a<r.min_j||a>r.max_j)&&(o+=l.outerWidth()/e.outerWidth()*100));for(o/=n.length,a=r.max_j;a>=r.min_j;a--)for(t=0;t<n.length;t++)if(0===t||n[t][a]!=n[t-1][a])if(l=O(n[t][a]),1<(parseInt(l.attr("colspan"),10)||1)){var s=parseInt(l.attr("colspan"),10)-1;1==s?l.removeAttr("colspan"):l.attr("colspan",s),l.css("width",(100*(l.data("old-width")-ee(a,n))/o).toFixed(4)+"%"),l.removeData("old-width")}else{var i=O(l.parent().get(0));l.remove(),0===i.find("> th, > td").length&&(0===i.prev().length||0===i.next().length||i.prev().find("> th[rowspan], > td[rowspan]").length<i.prev().find("> th, > td").length)&&i.remove()}R(0,n.length-1,0,n[0].length-1,e),0<r.min_j?A.selection.setAtEnd(n[r.min_i][r.min_j-1]):A.selection.setAtEnd(n[r.min_i][0]),A.selection.restore(),A.popups.hide("table.edit"),e.find("th, td").each(function(){(l=O(this)).data("old-width")&&(l.css("width",(100*l.data("old-width")/o).toFixed(4)+"%"),l.removeData("old-width"))})}}},mergeCells:function ue(){if(1<oe().length&&(0===A.$el.find("th.fr-selected-cell").length||0===A.$el.find("td.fr-selected-cell").length)){N();var e,t,a=I(T());if(null==a)return;var l=A.$el.find(".fr-selected-cell"),n=O(l[0]),r=n.parent().find(".fr-selected-cell"),o=n.closest("table"),s=n.html(),i=0;for(e=0;e<r.length;e++)i+=O(r[e]).outerWidth();for(n.css("width",Math.min(100,i/o.outerWidth()*100).toFixed(4)+"%"),a.min_j<a.max_j&&n.attr("colspan",a.max_j-a.min_j+1),a.min_i<a.max_i&&n.attr("rowspan",a.max_i-a.min_i+1),e=1;e<l.length;e++)"<br>"!=(t=O(l[e])).html()&&""!==t.html()&&(s+="<br>".concat(t.html())),t.remove();n.html(s),A.selection.setAtEnd(n.get(0)),A.selection.restore(),A.toolbar.enable(),w(a.min_i,a.max_i,o);var f=o.find("tr:empty");for(e=f.length-1;0<=e;e--)O(f[e]).remove();C(a.min_j,a.max_j,o),g()}},splitCellVertically:function ge(){if(1==oe().length){var e=A.$el.find(".fr-selected-cell"),t=parseInt(e.attr("colspan"),10)||1,a=e.parent().outerWidth(),l=e.outerWidth(),n=e.clone().html("<br>"),r=T(),o=D(e.get(0),r);if(1<t){var s=Math.ceil(t/2);l=te(o.col,o.col+s-1,r)/a*100;var i=te(o.col+s,o.col+t-1,r)/a*100;1<s?e.attr("colspan",s):e.removeAttr("colspan"),1<t-s?n.attr("colspan",t-s):n.removeAttr("colspan"),e.css("width",l.toFixed(4)+"%"),n.css("width",i.toFixed(4)+"%")}else{var f;for(f=0;f<r.length;f++)if(0===f||r[f][o.col]!=r[f-1][o.col]){var c=O(r[f][o.col]);if(!c.is(e)){var d=(parseInt(c.attr("colspan"),10)||1)+1;c.attr("colspan",d)}}l=l/a*100/2,e.css("width","".concat(l.toFixed(4),"%")),n.css("width","".concat(l.toFixed(4),"%"))}e[0].parentNode&&e[0].insertAdjacentElement("afterend",n[0]),_(),A.popups.hide("table.edit")}},splitCellHorizontally:function be(){if(1==oe().length){var e=A.$el.find(".fr-selected-cell"),t=e.parent(),a=e.closest("table"),l=parseInt(e.attr("rowspan"),10),n=T(),r=D(e.get(0),n),o=e.clone().html("<br>");if(1<l){var s=Math.ceil(l/2);1<s?e.attr("rowspan",s):e.removeAttr("rowspan"),1<l-s?o.attr("rowspan",l-s):o.removeAttr