@firestitch/froala
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.
1 lines • 53.1 kB
JavaScript
!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(Z){"use strict";Z=Z&&Z.hasOwnProperty("default")?Z.default:Z,Object.assign(Z.POPUP_TEMPLATES,{"table.insert":"[_BUTTONS_][_ROWS_COLUMNS_]","table.edit":"[_BUTTONS_]","table.colors":"[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]"}),Object.assign(Z.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,tableInsertHelperOffset:15}),Z.PLUGINS.table=function(M){var N,S,w,C,l,I,K,k=M.$;function E(){var e,t,a=B();a&&(M.popups.get("table.edit")||o())&&(M.popups.setContainer("table.edit",M.$sc),e=(a=O(a)).left+(a.right-a.left)/2,t=a.bottom,M.popups.show("table.edit",e,t,a.bottom-a.top,!0),M.edit.isDisabled())&&(M.$el.removeClass("fr-no-selection"),M.edit.on(),M.button.bulkRefresh(),M.selection.setAtEnd(M.$el.find(".fr-selected-cell").last().get(0)),M.selection.restore())}function a(){0===V().length&&M.toolbar.enable()}function n(e){return e?(M.popups.onHide("table.insert",function(){M.popups.get("table.insert").find('.fr-table-size .fr-select-table-size > span[data-row="1"][data-col="1"]').trigger("mouseover")}),!0):(e="",e={buttons:e=0<M.opts.tableInsertButtons.length?'<div class="fr-buttons fr-tabs">'.concat(M.button.buildList(M.opts.tableInsertButtons),"</div>"):e,rows_columns:function(){for(var e='<div class="fr-table-size"><div class="fr-table-size-info">1 × 1</div><div class="fr-select-table-size">',t=1;t<=M.opts.tableInsertMaxSize;t++){for(var a=1;a<=M.opts.tableInsertMaxSize;a++){var l="inline-block",n=(2<t&&!M.helpers.isMobile()&&(l="none"),"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," × ").concat(a," </span></span>")}e+='<div class="new-line"></div>'}return e+"</div></div>"}()},e=M.popups.create("table.insert",e),M.events.$on(e,"mouseover",".fr-table-size .fr-select-table-size .fr-table-cell",function(e){s(k(e.currentTarget))},!0),M.events.$on(e,"focus","[tabIndex]",function(e){s(k(e.currentTarget))}),M.events.on("popup.tab",function(e){var t,a,l,n,o,r=k(e.currentTarget);return!M.popups.isVisible("table.insert")||!r.is("span, a")||(t=e.which,Z.KEYCODE.ARROW_UP==t||Z.KEYCODE.ARROW_DOWN==t||Z.KEYCODE.ARROW_LEFT==t||Z.KEYCODE.ARROW_RIGHT==t?r.is("span.fr-table-cell")&&(l=(n=(o=r.parent().find("span.fr-table-cell")).index(r))%(a=M.opts.tableInsertMaxSize),n=Math.floor(n/a),Z.KEYCODE.ARROW_UP==t?n=Math.max(0,n-1):Z.KEYCODE.ARROW_DOWN==t?n=Math.min(M.opts.tableInsertMaxSize-1,n+1):Z.KEYCODE.ARROW_LEFT==t?l=Math.max(0,l-1):Z.KEYCODE.ARROW_RIGHT==t&&(l=Math.min(M.opts.tableInsertMaxSize-1,l+1)),s(o=k(o.get(n*a+l))),M.events.disableBlur(),o.focus(),n=!1):Z.KEYCODE.ENTER==t&&(M.button.exec(r),n=!1),!1===n&&(e.preventDefault(),e.stopPropagation()),n)},!0),e)}function s(e){var t=e.data("row"),a=(null!==t&&(t=parseInt(t)),e.data("col")),l=(null!==a&&(a=parseInt(a)),e.parent());l.siblings(".fr-table-size-info").html("".concat(t," × ").concat(a)),l.find("> span").removeClass("hover fr-active-item");for(var n=1;n<=M.opts.tableInsertMaxSize;n++)for(var o=0;o<=M.opts.tableInsertMaxSize;o++){var r=l.find('> span[data-row="'.concat(n,'"][data-col="').concat(o,'"]'));n<=t&&o<=a?r.addClass("hover"):n<=t+1||n<=2&&!M.helpers.isMobile()?r.css("display","inline-block"):2<n&&!M.helpers.isMobile()&&r.css("display","none")}e.addClass("fr-active-item")}function o(e){return e?(M.popups.onHide("table.edit",a),!0):0<M.opts.tableEditButtons.length&&(e={buttons:'<div class="fr-buttons">'.concat(M.button.buildList(M.opts.tableEditButtons),"</div>")},e=M.popups.create("table.edit",e),M.events.$on(M.$wp,"scroll.table-edit",function(){M.popups.isVisible("table.edit")&&E()}),e)}function f(){var e;0<V().length&&(e=u(),M.selection.setBefore(e.get(0))||M.selection.setAfter(e.get(0)),M.selection.restore(),M.popups.hide("table.edit"),M.opts.trackChangesEnabled?(M.track_changes.removedTable(e),R()):e.remove(),M.toolbar.enable())}function r(e){var t=u();if(0<t.length&&!(0<M.$el.find("thead .fr-selected-cell").length&&"above"==e||0<M.$el.find("tfoot td.fr-selected-cell").length&&"below"==e)){var a=B(),l=b(a);if(null!=l){for(var n,o="above"==e?l.min_i:l.max_i,r="<tr>",s=0;s<a[o].length;s++)"below"==e&&o<a.length-1&&a[o][s]==a[o+1][s]||"above"==e&&0<o&&a[o][s]==a[o-1][s]?(0===s||0<s&&a[o][s]!=a[o][s-1])&&(n=k(a[o][s])).attr("rowspan",parseInt(n.attr("rowspan"),10)+1):r+='<td style="'+k(a[o][s]).attr("style")+'" ><br></td>';r+="</tr>",l=0<M.$el.find("thead .fr-selected-cell").length&&"below"==e||0<M.$el.find("tfoot td.fr-selected-cell").length&&"above"==e?k(t.find("tbody").not(t.find("> table tbody"))):k(t.find("tr").not(t.find("> table tr")).get(o)),"below"==e?"TBODY"==l.attr("tagName")?l.prepend(r):l[0].parentNode&&l[0].insertAdjacentHTML("afterend",r):"above"==e&&("TBODY"==l.attr("tagName")?l.append(r):l.before(r),M.popups.isVisible("table.edit"))&&E()}}}function d(e,t,a){var l,n,o,r,s,i=0,c=B(a);if(e<(t=Math.min(t,c[0].length-1)))for(n=e;n<=t;n++)if(!(e<n&&c[0][n]==c[0][n-1])&&1<(r=Math.min(parseInt(c[0][n].getAttribute("colspan"),10)||1,t-e+1))&&c[0][n]==c[0][n+1])for(i=r-1,l=1;l<c.length;l++)if(c[l][n]!=c[l-1][n]){for(o=n;o<n+r;o++)if(void 0!==c[l][o])if(1<(s=parseInt(c[l][o].getAttribute("colspan"),10)||1)&&c[l][o]==c[l][o+1])o+=i=Math.min(i,s-1);else if(!(i=Math.max(0,i-1)))break;if(!i)break}i&&h(c,i,"colspan",0,c.length-1,e,t)}function p(e,t,a){var l,n,o,r,s,i=0,c=B(a);if(e<(t=Math.min(t,c.length-1)))for(l=e;l<=t;l++)if(!(e<l&&c[l][0]==c[l-1][0])&&void 0!==c[l][0]&&1<(r=Math.min(parseInt(c[l][0].getAttribute("rowspan"),10)||1,t-e+1))&&c[l][0]==c[l+1][0])for(i=r-1,n=1;n<c[0].length;n++)if(c[l][n]!=c[l][n-1]){for(o=l;o<l+r;o++)if(void 0!==c[o][n])if(1<(s=parseInt(c[o][n].getAttribute("rowspan"),10)||1)&&c[o][n]==c[o+1][n])o+=i=Math.min(i,s-1);else if(!(i=Math.max(0,i-1)))break;if(!i)break}i&&h(c,i,"rowspan",e,t,0,c[0].length-1)}function h(e,t,a,l,n,o,r){for(var s,i,c=l;c<=n;c++)for(s=o;s<=r;s++)l<c&&e[c][s]==e[c-1][s]||o<s&&e[c][s]==e[c][s-1]||void 0!==e[c][s]&&1<(i=parseInt(e[c][s].getAttribute(a),10)||1)&&(1<i-t?e[c][s].setAttribute(a,i-t):e[c][s].removeAttribute(a))}function g(e,t,a,l,n){p(e,t,n),d(a,l,n)}function t(e){var t=M.$el.find(".fr-selected-cell");"REMOVE"!=e?t.css("background-color",M.helpers.HEXtoRGB(e)):t.css("background-color",""),E()}function m(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 B(e){var c=[];if(e=null==(e=e||null)&&0<V().length?u():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--)k(t[a]).remove();e.findVisible("tr").not(e.find("> table tr")).each(function(s,e){var e=k(e),i=0;e.find("> th, > td").each(function(e,t){for(var a=k(t),l=parseInt(a.attr("colspan"),10)||1,n=parseInt(a.attr("rowspan"),10)||1,o=s;o<s+n;o++)for(var r=i;r<i+l;r++)c[o]||(c[o]=[]),c[o][r]?i++:c[o][r]=t;i+=l})})}return c}function Y(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 F(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 v(){M.el.querySelector(".fr-cell-fixed")&&M.el.querySelector(".fr-cell-fixed").classList.remove("fr-cell-fixed"),M.el.querySelector(".fr-cell-handler")&&M.el.querySelector(".fr-cell-handler").classList.remove("fr-cell-handler")}function R(){var e=M.$el.find(".fr-selected-cell");0<e.length&&e.each(function(){var e=k(this);e.removeClass("fr-selected-cell"),""===e.attr("class")&&e.removeAttr("class")}),v()}function z(){M.events.disableBlur(),M.selection.clear(),M.$el.addClass("fr-no-selection"),M.$el.blur(),M.events.enableBlur()}function b(e){var t=M.$el.find(".fr-selected-cell");if(0<t.length){for(var a=e.length,l=0,n=e[0].length,o=0,r=0;r<t.length;r++)var s=Y(t[r],e),i=F(s.row,s.col,e),a=Math.min(s.row,a),l=Math.max(i.row,l),n=Math.min(s.col,n),o=Math.max(i.col,o);return{min_i:a,max_i:l,min_j:n,max_j:o}}return null}function O(e){var t,a,l=b(e);if(null!=l)return t=k(e[l.min_i][l.min_j]),a=k(e[l.min_i][l.max_j]),e=k(e[l.max_i][l.min_j]),{left:t.length&&t.offset().left,right:a.length&&a.offset().left+a.outerWidth(),top:t.length&&t.offset().top,bottom:e.length&&e.offset().top+e.outerHeight()}}function i(e,t){if(k(e).is(t))R(),k(e).addClass("fr-selected-cell");else{z(),M.edit.off();var a=B(),l=Y(e,a),n=Y(t,a);if(l&&n){var o=function e(t,a,l,n,o){for(var r,s,i,c=t,f=a,d=l,p=n,h=c;h<=f;h++)(1<(parseInt(k(o[h][d]).attr("rowspan"),10)||1)||1<(parseInt(k(o[h][d]).attr("colspan"),10)||1))&&(i=F((s=Y(o[h][d],o)).row,s.col,o),c=Math.min(s.row,c),f=Math.max(i.row,f),d=Math.min(s.col,d),p=Math.max(i.col,p)),(1<(parseInt(k(o[h][p]).attr("rowspan"),10)||1)||1<(parseInt(k(o[h][p]).attr("colspan"),10)||1))&&(i=F((s=Y(o[h][p],o)).row,s.col,o),c=Math.min(s.row,c),f=Math.max(i.row,f),d=Math.min(s.col,d),p=Math.max(i.col,p));for(r=d;r<=p;r++)(1<(parseInt(k(o[c][r]).attr("rowspan"),10)||1)||1<(parseInt(k(o[c][r]).attr("colspan"),10)||1))&&(i=F((s=Y(o[c][r],o)).row,s.col,o),c=Math.min(s.row,c),f=Math.max(i.row,f),d=Math.min(s.col,d),p=Math.max(i.col,p)),(1<(parseInt(k(o[f][r]).attr("rowspan"),10)||1)||1<(parseInt(k(o[f][r]).attr("colspan"),10)||1))&&(i=F((s=Y(o[f][r],o)).row,s.col,o),c=Math.min(s.row,c),f=Math.max(i.row,f),d=Math.min(s.col,d),p=Math.max(i.col,p));return c==t&&f==a&&d==l&&p==n?{min_i:t,max_i:a,min_j:l,max_j:n}:e(c,f,d,p,o)}(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);R(),e.classList.add("fr-cell-fixed"),t.classList.add("fr-cell-handler");for(var r=o.min_i;r<=o.max_i;r++)for(var s=o.min_j;s<=o.max_j;s++)k(e).closest("table").is(k(a[r][s]).closest("table"))&&k(a[r][s]).addClass("fr-selected-cell")}}}function A(e){var t=null,a=k(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===M.$el.html.toString().search(t)?null:t}function W(){R(),M.popups.hide("table.edit")}function y(e){var t,a=A(e);if("false"==k(a).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable"))return!0;0<V().length&&!a&&W(),M.edit.isDisabled()&&!M.popups.isVisible("table.edit")||(1!=e.which||1==e.which&&M.helpers.isMac()&&e.ctrlKey?(3==e.which||1==e.which&&M.helpers.isMac()&&e.ctrlKey)&&a&&W():(C=!0,a&&(0<V().length&&!e.shiftKey&&W(),e.stopPropagation(),M.events.trigger("image.hideResizer"),M.events.trigger("video.hideResizer"),w=!0,t=a.tagName.toLowerCase(),e.shiftKey&&0<M.$el.find("".concat(t,".fr-selected-cell")).length?k(M.$el.find("".concat(t,".fr-selected-cell")).closest("table")).is(k(a).closest("table"))?i(l,a):z():((M.keys.ctrlKey(e)||e.shiftKey)&&"TD"===e.currentTarget.tagName&&(1<V().length||0===k(a).find(M.selection.element()).length&&!k(a).is(M.selection.element()))&&z(),l=a,0<M.opts.tableEditButtons.length&&i(l,l)))))}function e(e){if(!M.edit.isDisabled()&&M.popups.areVisible())return!0;var t=A(e);if(1===V().length&&null===t&&(M.toolbar.enable(),R()),(1===V().length&&t&&"TD"!==t.tagName&&"TH"!==t.tagName||!w&&!M.$tb.is(e.target)&&!M.$tb.is(k(e.target).closest(".fr-toolbar")))&&(M.toolbar.enable(),R()),("BODY"===e.target.tagName||"HTML"===e.target.tagName)&&!t&&0<V().length&&M.toolbar.enable(),!(1!=e.which||1==e.which&&M.helpers.isMac()&&e.ctrlKey)&&(C=!1,w&&(w=!1,A(e)||1!=V().length?0<V().length?M.selection.isCollapsed()?(E(),M.toolbar.enable()):(R(),M.edit.on()):V().length||(M.$el.removeClass("fr-no-selection"),M.edit.on()):R()),K)){K=!1,N.removeClass("fr-moving"),M.$el.removeClass("fr-no-selection"),M.edit.on();var t=parseFloat(N.css("left"))+M.opts.tableResizerOffset+M.$wp.offset().left,a=(M.opts.iframe&&(t-=M.$iframe.offset().left),N.data("release-position",t),N.removeData("max-left"),N.removeData("max-right"),N.data("origin")),l=N.data("release-position");if(a!==l){var n=N.data("first"),o=N.data("second"),e=N.data("table"),r=e.outerWidth();if(M.undo.canDo()||M.undo.saveStep(),null!=n&&null!=o){for(var s=B(e),i=[],c=[],f=[],d=[],p=0;p<s.length;p++)g=k(s[p][n]),b=k(s[p][o]),i[p]=g.outerWidth(),f[p]=b.outerWidth(),c[p]=i[p]/r*100,d[p]=f[p]/r*100;for(p=0;p<s.length;p++){var h,g=k(s[p][n]),b=k(s[p][o]);s[p][n]!=s[p][o]&&(h=(c[p]*(i[p]+l-a)/i[p]).toFixed(4),g.css("width",h+"%"),b.css("width",(c[p]+d[p]-h).toFixed(4)+"%"))}}else{var u,t=e.parent(),m=r/t.width()*100,v=(parseInt(e.css("margin-left"),10)||0)/t.width()*100,t=(parseInt(e.css("margin-right"),10)||0)/t.width()*100;"rtl"==M.opts.direction&&0===o||"rtl"!=M.opts.direction&&0!==o?(u=(r+l-a)/r*m,e.css("margin-right","calc(100% - ".concat(Math.round(u).toFixed(4),"% - ").concat(Math.round(v).toFixed(4),"%)"))):("rtl"==M.opts.direction&&0!==o||"rtl"!=M.opts.direction&&0===o)&&(u=(r-l+a)/r*m,e.css("margin-left","calc(100% - ".concat(Math.round(u).toFixed(4),"% - ").concat(Math.round(t).toFixed(4),"%)"))),e.css("width","".concat(Math.round(u).toFixed(4),"%"))}M.selection.restore(),M.undo.saveStep(),M.events.trigger("table.resized",[e.get(0)])}N.removeData("origin"),N.removeData("release-position"),N.removeData("first"),N.removeData("second"),N.removeData("table"),L()}}function $(e){if(!(k(e.currentTarget).is(k(e.originalEvent.relatedTarget))||e.currentTarget.contains(e.originalEvent.relatedTarget)||e.originalEvent.relatedTarget&&e.originalEvent.relatedTarget.contains(e.currentTarget))&&(M.events.$on(k("input"),"click",J),!0===w)&&0<M.opts.tableEditButtons.length){if(k(e.currentTarget).closest("table").is(u())){if("TBODY"===e.currentTarget.parentElement.parentElement.tagName&&"TD"==e.currentTarget.tagName&&0===M.$el.find("th.fr-selected-cell").length&&0===M.$el.find("tfoot td.fr-selected-cell").length)return void i(l,e.currentTarget);if("TFOOT"===e.currentTarget.parentElement.parentElement.tagName&&"TD"==e.currentTarget.tagName&&0===M.$el.find("tbody td.fr-selected-cell").length)return void i(l,e.currentTarget);if("TH"==e.currentTarget.tagName&&0===M.$el.find("td.fr-selected-cell").length)return void i(l,e.currentTarget)}"TD"!==e.currentTarget.tagName&&"TH"!==e.currentTarget.tagName&&z()}}function D(e,t,a,l){for(var n,o=t;o!=M.el&&"TD"!=o.tagName&&"TH"!=o.tagName&&("up"==l?n=o.previousElementSibling:"down"==l&&(n=o.nextElementSibling),!n);)o=o.parentNode;if("TD"==o.tagName||"TH"==o.tagName){for(var r,t=o,s=l,i=t;i&&"TABLE"!=i.tagName&&i.parentNode!=M.el;)i=i.parentNode;i&&"TABLE"==i.tagName&&(r=B(k(i)),"up"==s?x(Y(t,r),i,r):"down"==s&&_(Y(t,r),i,r))}else n&&("up"==l&&M.selection.setAtEnd(n),"down"==l)&&M.selection.setAtStart(n)}function x(e,t,a){0<k(".tribute-container").length&&"none"!=k(".tribute-container").css("display")||(0<e.row?M.selection.setAtEnd(a[e.row-1][e.col]):D(0,t,0,"up"))}function _(e,t,a){var l;0<k(".tribute-container").length&&"none"!=k(".tribute-container").css("display")||(l=parseInt(a[e.row][e.col].getAttribute("rowspan"),10)||1,e.row<a.length-l?M.selection.setAtStart(a[e.row+l][e.col]):D(0,t,0,"down"))}function L(){N&&(N.find("div").css("opacity",0),N.css("top",0),N.css("left",0),N.css("height",0),N.find("div").css("height",0),N.hide())}function H(){S&&S.removeClass("fr-visible").css("left","-9999px")}function T(e){I=null;var t,a,l,n,o,r,s,i,c,f,d,p,h,g,b,u,m,v,w,C,E,R,A,O,y,$=M.doc.elementFromPoint(e.pageX-M.win.pageXOffset,e.pageY-M.win.pageYOffset);if(M.opts.tableResizer&&(!M.popups.areVisible()||M.popups.areVisible()&&M.popups.isVisible("table.edit"))&&(t=e,p=k(a=$),h=p.closest("table"),g=h.parent(),a&&"TD"!=a.tagName&&"TH"!=a.tagName&&(0<p.closest("td").length?a=p.closest("td"):0<p.closest("th").length&&(a=p.closest("th"))),!a||"TD"!=a.tagName&&"TH"!=a.tagName?N&&p.get(0)!=N.get(0)&&p.parent().get(0)!=N.get(0)&&M.core.sameInstance(N)&&L():(p=k(a),0!==M.$el.find(p).length&&(p=(d=p.offset().left-1)+p.outerWidth(),Math.abs(t.pageX-d)<=M.opts.tableResizerOffset||Math.abs(p-t.pageX)<=M.opts.tableResizerOffset?(x=F((f=Y(a,a=B(h))).row,f.col,a),i=h.offset().top,c=h.outerHeight()-1,"rtl"!=M.opts.direction?t.pageX-d<=M.opts.tableResizerOffset?(o=d,0<f.col?(r=d-P(f.col-1,a)+M.opts.tableResizingLimit,s=d+P(f.col,a)-M.opts.tableResizingLimit,l=f.col-1,n=f.col):(l=null,n=0,r=h.offset().left-1-parseInt(h.css("margin-left"),10),s=h.offset().left-1+h.width()-a[0].length*M.opts.tableResizingLimit)):p-t.pageX<=M.opts.tableResizerOffset&&(o=p,x.col<a[x.row].length&&a[x.row][x.col+1]?(r=p-P(x.col,a)+M.opts.tableResizingLimit,s=p+P(x.col+1,a)-M.opts.tableResizingLimit,l=x.col,n=x.col+1):(l=x.col,n=null,r=h.offset().left-1+a[0].length*M.opts.tableResizingLimit,s=g.offset().left-1+g.width()+parseFloat(g.css("padding-left")))):p-t.pageX<=M.opts.tableResizerOffset?(o=p,0<f.col?(r=p-P(f.col,a)+M.opts.tableResizingLimit,s=p+P(f.col-1,a)-M.opts.tableResizingLimit,l=f.col,n=f.col-1):(l=null,n=0,r=h.offset().left+a[0].length*M.opts.tableResizingLimit,s=g.offset().left-1+g.width()+parseFloat(g.css("padding-left")))):t.pageX-d<=M.opts.tableResizerOffset&&(o=d,x.col<a[x.row].length&&a[x.row][x.col+1]?(r=d-P(x.col+1,a)+M.opts.tableResizingLimit,s=d+P(x.col,a)-M.opts.tableResizingLimit,l=x.col+1,n=x.col):(l=x.col,n=null,r=g.offset().left+parseFloat(g.css("padding-left")),s=h.offset().left-1+h.width()-a[0].length*M.opts.tableResizingLimit)),N||(M.shared.$table_resizer||(M.shared.$table_resizer=k(document.createElement("div")).attr("class","fr-table-resizer").html("<div></div>")),N=M.shared.$table_resizer,M.events.$on(N,"mousedown",function(e){return!M.core.sameInstance(N)||(0<V().length&&W(),1==e.which?(M.selection.save(),K=!0,N.addClass("fr-moving"),z(),M.edit.off(),N.find("div").css("opacity",1),!1):void 0)}),M.events.$on(N,"mousemove",function(e){if(!M.core.sameInstance(N))return!0;K&&(M.opts.iframe&&(e.pageX-=M.$iframe.offset().left),X(e))}),M.events.on("shared.destroy",function(){N.html("").removeData().remove(),N=null},!0),M.events.on("destroy",function(){M.$el.find(".fr-selected-cell").removeClass("fr-selected-cell"),k("body").first().append(N.hide())},!0)),N.data("table",h),N.data("first",l),N.data("second",n),N.data("instance",M),M.$wp.append(N),p=o-M.win.pageXOffset-M.opts.tableResizerOffset-M.$wp.offset().left,f=i-M.$wp.offset().top+M.$wp.scrollTop(),M.opts.iframe&&(t=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-top")),d=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-left")),p+=M.$iframe.offset().left+d,f+=M.$iframe.offset().top+t,r+=M.$iframe.offset().left,s+=M.$iframe.offset().left),N.data("max-left",r),N.data("max-right",s),N.data("origin",o-M.win.pageXOffset),N.css("top",f),N.css("left",p),N.css("height",c),N.find("div").css("height",c),N.css("padding-left",M.opts.tableResizerOffset),N.css("padding-right",M.opts.tableResizerOffset),N.show()):M.core.sameInstance(N)&&L()))),!(!M.opts.tableInsertHelper||M.popups.areVisible()||M.$tb.hasClass("fr-inline")&&M.$tb.isVisible())){var D=e,x=$;if(0===V().length){if(x&&("HTML"==x.tagName||"BODY"==x.tagName||M.node.isElement(x)))for(b=1;b<=M.opts.tableInsertHelperOffset;b++){if(T=M.doc.elementFromPoint(D.pageX-M.win.pageXOffset,D.pageY-M.win.pageYOffset+b),k(T).hasClass("fr-tooltip"))return;if(T&&("TH"==T.tagName||"TD"==T.tagName||"TABLE"==T.tagName)&&(k(T).parents(".fr-wrapper").length||M.opts.iframe)&&"false"!=k(T).closest("table").attr("contenteditable")){var _=D;var T=k(T).closest("table");M.$box.find(".fr-line-breaker").isVisible()||(S||U(),M.$box.append(S),S.data("instance",M),T=k(T).find("tr").first(),m=_.pageX,w=v=0,M.opts.iframe&&(_=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-top")),C=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-left")),v+=M.$iframe.offset().left-M.helpers.scrollLeft()+C,w+=M.$iframe.offset().top-M.helpers.scrollTop()+_),T.find("th, td").each(function(){var e=k(this);return e.offset().left<=m&&m<e.offset().left+e.outerWidth()/2?(u=parseInt(S.find("a").css("width"),10),S.css("top",w+e.offset().top-M.$box.offset().top-u-5),S.css("left",v+e.offset().left-M.$box.offset().left-u/2),S.data("selected-cell",e),S.data("position","before"),S.addClass("fr-visible"),!1):e.offset().left+e.outerWidth()/2<=m&&m<e.offset().left+e.outerWidth()?(u=parseInt(S.find("a").css("width"),10),S.css("top",w+e.offset().top-M.$box.offset().top-u-5),S.css("left",v+e.offset().left-M.$box.offset().left+e.outerWidth()-u/2),S.data("selected-cell",e),S.data("position","after"),S.addClass("fr-visible"),!1):void 0}));return}if(C=M.doc.elementFromPoint(D.pageX-M.win.pageXOffset+b,D.pageY-M.win.pageYOffset),k(C).hasClass("fr-tooltip"))return;if(C&&("TH"==C.tagName||"TD"==C.tagName||"TABLE"==C.tagName)&&(k(C).parents(".fr-wrapper").length||M.opts.iframe)&&"false"!=k(C).closest("table").attr("contenteditable")){_=D;T=k(C).closest("table");M.$box.find(".fr-line-breaker").isVisible()||(S||U(),M.$box.append(S),S.data("instance",M),T=k(T),R=_.pageY,O=A=0,M.opts.iframe&&(_=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-top")),y=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-left")),A+=M.$iframe.offset().left-M.helpers.scrollLeft()+y,O+=M.$iframe.offset().top-M.helpers.scrollTop()+_),T.find("tr").each(function(){var e=k(this),t=(E=parseInt(S.find("a").css("width"),10),A+e.offset().left-M.$box.offset().left),t=0!==M.$box.offset().left?t-E-5:t+E-5;return e.offset().top<=R&&R<e.offset().top+e.outerHeight()/2?(S.css("top",O+e.offset().top-M.$box.offset().top-E/2),S.css("left",t),S.data("selected-cell",e.find("td").first()),S.data("position","above"),S.addClass("fr-visible"),!1):e.offset().top+e.outerHeight()/2<=R&&R<e.offset().top+e.outerHeight()?(S.css("top",O+e.offset().top-M.$box.offset().top+e.outerHeight()-E/2),S.css("left",t),S.data("selected-cell",e.find("td").first()),S.data("position","below"),S.addClass("fr-visible"),!1):void 0}));return}}M.core.sameInstance(S)&&H()}}}function j(){var e,t;K&&(e=N.data("table").offset().top-M.win.pageYOffset,M.opts.iframe&&(t=M.helpers.getPX(M.$wp.find(".fr-iframe").css("padding-top")),e+=M.$iframe.offset().top-M.helpers.scrollTop()+t),N.css("top",e))}function P(e,t){for(var a=k(t[0][e]).outerWidth(),l=1;l<t.length;l++)a=Math.min(a,k(t[l][e]).outerWidth());return a}function G(e,t,a){for(var l=0,n=e;n<=t;n++)l+=P(n,a);return l}function X(e){var t,a;1<V().length&&C&&z(),!1===C&&!1===w&&!1===K?(I&&clearTimeout(I),M.edit.isDisabled()&&!M.popups.isVisible("table.edit")||(I=setTimeout(T,30,e))):K?(e=e.pageX-M.win.pageXOffset,M.opts.iframe&&(e+=M.$iframe.offset().left),t=N.data("max-left"),a=N.data("max-right"),t<=e&&e<=a?N.css("left",e-M.opts.tableResizerOffset-M.$wp.offset().left):e<t&&parseFloat(N.css("left"),10)>t-M.opts.tableResizerOffset?N.css("left",t-M.opts.tableResizerOffset-M.$wp.offset().left):a<e&&parseFloat(N.css("left"),10)<a-M.opts.tableResizerOffset&&N.css("left",a-M.opts.tableResizerOffset-M.$wp.offset().left)):C&&H()}function c(e){M.node.isEmpty(e.get(0))?e.prepend(Z.MARKERS):e.prepend(Z.START_MARKER).append(Z.END_MARKER)}function U(){M.shared.$ti_helper||(M.shared.$ti_helper=k(document.createElement("div")).attr("class","fr-insert-helper").html('<a class="fr-floating-btn" role="button" tabIndex="-1" title="'.concat(M.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>')),M.events.bindClick(M.shared.$ti_helper,"a",function(){var e=S.data("selected-cell"),t=S.data("position"),a=S.data("instance")||M;"before"==t||"after"==t?(M.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertColumn(t),e.removeClass("fr-selected-cell"),M.undo.saveStep()):"above"!=t&&"below"!=t||(M.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertRow(t),e.removeClass("fr-selected-cell"),M.undo.saveStep()),H()}),M.events.on("shared.destroy",function(){M.shared.$ti_helper.html("").removeData().remove(),M.shared.$ti_helper=null},!0),M.events.$on(M.shared.$ti_helper,"mousemove",function(e){e.stopPropagation()},!0),M.events.$on(k(M.o_win),"scroll",function(){H()},!0),M.events.$on(M.$wp,"scroll",function(){H()},!0)),S=M.shared.$ti_helper,M.events.on("destroy",function(){S=null}),M.tooltip.bind(M.$box,".fr-insert-helper > a.fr-floating-btn")}function q(){l=null,clearTimeout(I)}function V(){return M.el.querySelectorAll(".fr-selected-cell")}function u(){var e=V();if(e.length){for(var t=e[0];t&&"TABLE"!=t.tagName&&t.parentNode!=M.el;)t=t.parentNode;return t&&"TABLE"==t.tagName?k(t):k([])}return k([])}function J(e){w=!1}return{_init:function(){if(!M.$wp)return!1;var t;M.helpers.isMobile()&&(M.events.$on(M.$el,"mousedown",y),M.events.$on(M.$win,"mouseup",e)),M.helpers.isMobile()||(K=w=C=!1,M.events.$on(M.$el,"mousedown",y),M.popups.onShow("image.edit",function(){R(),w=C=!1}),M.popups.onShow("link.edit",function(){R(),w=C=!1}),M.events.on("commands.mousedown",function(e){0<e.parents(".fr-toolbar").length&&R()}),M.events.$on(M.$el,"mouseover","th, td",$),M.events.$on(M.$win,"mouseup",e),M.opts.iframe&&M.events.$on(k(M.o_win),"mouseup",e),M.events.$on(M.$win,"mousemove",X),M.events.$on(k(M.o_win),"scroll",j),M.events.on("contentChanged",function(){0<V().length&&(E(),M.$el.find("img").on("load.selected-cells",function(){k(this).off("load.selected-cells"),0<V().length&&E()}))}),M.events.$on(k(M.o_win),"resize",function(){R()}),M.events.on("toolbar.esc",function(){if(0<V().length)return M.events.disableBlur(),M.events.focus(),!1},!0),M.events.$on(k(M.o_win),"keydown",function(){C&&w&&(w=C=!1,M.$el.removeClass("fr-no-selection"),M.edit.on(),M.selection.setAtEnd(M.$el.find(".fr-selected-cell").last().get(0)),M.selection.restore(),R())}),M.events.$on(M.$el,"keydown",function(e){if(e.shiftKey)!1===function(e){var t=V();if(null!=t&&0<t.length){var a,l=B(),e=e.which,t=Y(1==t.length?a=t[0]:(a=M.el.querySelector(".fr-cell-fixed"),M.el.querySelector(".fr-cell-handler")),l);if(Z.KEYCODE.ARROW_RIGHT==e){if(t.col<l[0].length-1)return i(a,l[t.row][t.col+1]),!1}else if(Z.KEYCODE.ARROW_DOWN==e){if(t.row<l.length-1)return i(a,l[t.row+1][t.col]),!1}else if(Z.KEYCODE.ARROW_LEFT==e){if(0<t.col)return i(a,l[t.row][t.col-1]),!1}else if(Z.KEYCODE.ARROW_UP==e&&0<t.row)return i(a,l[t.row-1][t.col]),!1}}(e)&&setTimeout(function(){E()},0);else{var t=e.which,a=M.selection.blocks();if(a.length&&("TD"==(a="P"!==(a=a[0]).tagName&&"DIV"!==a.tagName?a:a.parentNode).tagName||"TH"==a.tagName)){for(var l,n=a;n&&"TABLE"!=n.tagName&&n.parentNode!=M.el;)n=n.parentNode;!n||"TABLE"!=n.tagName||Z.KEYCODE.ARROW_LEFT!=t&&Z.KEYCODE.ARROW_UP!=t&&Z.KEYCODE.ARROW_RIGHT!=t&&Z.KEYCODE.ARROW_DOWN!=t||(0<V().length&&W(),!M.browser.webkit)||Z.KEYCODE.ARROW_UP!=t&&Z.KEYCODE.ARROW_DOWN!=t||(l=M.selection.ranges(0).startContainer).nodeType==Node.TEXT_NODE&&(Z.KEYCODE.ARROW_UP==t&&(l.previousSibling&&"BR"!==l.previousSibling.tagName||l.previousSibling&&"BR"===l.previousSibling.tagName&&l.previousSibling.previousSibling)||Z.KEYCODE.ARROW_DOWN==t&&(l.nextSibling&&"BR"!==l.nextSibling.tagName||l.nextSibling&&"BR"===l.nextSibling.tagName&&l.nextSibling.nextSibling))||(e.preventDefault(),e.stopPropagation(),e=Y(a,l=B(k(n))),Z.KEYCODE.ARROW_UP==t?x(e,n,l):Z.KEYCODE.ARROW_DOWN==t&&_(e,n,l),M.selection.restore())}}}),M.events.on("keydown",function(e){if(!1===function(e){var t,a;if(e.which==Z.KEYCODE.TAB&&(0<V().length?t=M.$el.find(".fr-selected-cell").last():"TD"==(a=M.selection.element()).tagName||"TH"==a.tagName?t=k(a):a!=M.el&&(0<k(a).parentsUntil(M.$el,"td").length?t=k(a).parents("td").first():0<k(a).parentsUntil(M.$el,"th").length&&(t=k(a).parents("th").first())),t))return e.preventDefault(),!!(0===M.selection.get().focusOffset&&0<k(M.selection.element()).parentsUntil(M.$el,"ol, ul").length&&(0<k(M.selection.element()).closest("li").prev().length||k(M.selection.element()).is("li")&&0<k(M.selection.element()).prev().length))||(W(),e.shiftKey?0<t.prev().length?c(t.prev()):0<t.closest("tr").length&&0<t.closest("tr").prev().length?c(t.closest("tr").prev().find("td").last()):0<t.closest("tbody").length&&0<t.closest("table").find("thead tr").length&&c(t.closest("table").find("thead tr th").last()):0<t.next().length?c(t.next()):0<t.closest("tr").length&&0<t.closest("tr").next().length?c(t.closest("tr").next().find("td").first()):0<t.closest("thead").length&&0<t.closest("table").find("tbody tr").length?c(t.closest("table").find("tbody tr td").first()):(t.addClass("fr-selected-cell"),r("below"),R(),c(t.closest("tr").next().find("td").first())),M.selection.restore(),!1)}(e))return!1;var t=V();if(0<t.length){if(0<t.length&&M.keys.ctrlKey(e)&&e.which==Z.KEYCODE.A)return R(),M.popups.isVisible("table.edit")&&M.popups.hide("table.edit"),!0;if(e.which==Z.KEYCODE.ESC&&M.popups.isVisible("table.edit"))return R(),M.popups.hide("table.edit"),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),!1;if(1<t.length&&(e.which==Z.KEYCODE.BACKSPACE||e.which==Z.KEYCODE.DELETE)){M.undo.saveStep();for(var a=0;a<t.length;a++)k(t[a]).html("<br>"),a==t.length-1&&k(t[a]).prepend(Z.MARKERS);return M.selection.restore(),M.undo.saveStep(),!1}return 1<t.length&&e.which!=Z.KEYCODE.F10&&!M.keys.isBrowserAction(e)?(e.preventDefault(),!1):void 0}return!(t=[])!==function(e){if(e.altKey&&e.which==Z.KEYCODE.SPACE){var t,a=M.selection.element();if("TD"==a.tagName||"TH"==a.tagName?t=a:0<k(a).closest("td").length?t=k(a).closest("td").get(0):0<k(a).closest("th").length&&(t=k(a).closest("th").get(0)),t)return e.preventDefault(),i(t,t),E(),!1}}(e)&&void 0},!0),t=[],M.events.on("html.beforeGet",function(){t=V();for(var e=0;e<t.length;e++)t[e].className=(t[e].className||"").replace(/fr-selected-cell/g,"")}),M.events.on("html.afterGet",function(){for(var e=0;e<t.length;e++)t[e].className=(t[e].className?t[e].className.trim()+" ":"")+"fr-selected-cell";t=[]}),n(!0),o(!0)),M.events.on("destroy",q)},insert:function(e,t){for(var a,l="<table "+(M.opts.tableDefaultWidth?'style="width: '+M.opts.tableDefaultWidth+';" ':"")+'class="fr-inserted-table"><tbody>',n=100/t,o=0;o<e;o++){for(l+="<tr>",a=0;a<t;a++)l+="<td"+(M.opts.tableDefaultWidth?' style="width: '+n.toFixed(4)+'%;"':"")+">",0===o&&0===a&&(l+=Z.MARKERS),l+="<br></td>";l+="</tr>"}l+="</tbody></table>",M.opts.trackChangesEnabled?(M.edit.on(),M.events.focus(!0),M.selection.restore(),M.undo.saveStep(),M.markers.insert(),M.html.wrap(),r=M.$el.find(".fr-marker"),M.node.isLastSibling(r)&&r.parent().hasClass("fr-deletable")&&r.insertAfter(r.parent()),r.replaceWith(l),M.selection.clear()):M.html.insert(l),M.selection.restore();var r=M.$el.find(".fr-inserted-table");r.removeClass("fr-inserted-table"),M.events.trigger("table.inserted",[r.get(0)])},remove:f,insertRow:r,deleteRow:function(){var e=u();if(0<e.length){var t,a,l,n=B(),o=b(n);if(null!=o)if(0===o.min_i&&o.max_i==n.length-1)f();else{for(t=o.max_i;t>=o.min_i;t--){for(l=k(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 r,s=k(n[t][a]);if(1<parseInt(s.attr("rowspan"),10)&&(1==(r=parseInt(s.attr("rowspan"),10)-1)?s.removeAttr("rowspan"):s.attr("rowspan",r)),t<n.length-1&&n[t][a]==n[t+1][a]&&(0===t||n[t][a]!=n[t-1][a])){for(var s=n[t][a],i=a;0<i&&n[t][i]==n[t][i-1];)i--;0===i?k(e.find("tr").not(e.find("> table tr")).get(t+1)).prepend(s):k(n[t+1][i-1])[0].parentNode&&k(n[t+1][i-1])[0].insertAdjacentElement("afterend",s)}}var c=l.parent();l.remove(),0===c.find("tr").length&&c.remove(),n=B(e)}g(0,n.length-1,0,n[0].length-1,e),0<o.min_i?M.selection.setAtEnd(n[o.min_i-1][0]):M.selection.setAtEnd(n[0][0]),M.selection.restore(),M.popups.hide("table.edit")}}},insertColumn:function(s){var i,e,c,t,f,d,a=u();0<a.length&&(e=b(i=B()),c="before"==s?e.min_j:e.max_j,f=100/i[0].length,d=100/(i[0].length+1),a.find("th, td").each(function(){(t=k(this)).data("old-width",t.outerWidth()/a.outerWidth()*100)}),a.find("tr").not(a.find("> table tr")).each(function(e){for(var t,a=k(this),l=0,n=0;l-1<c;){if(!(t=a.find("> th, > td").get(n))){t=null;break}t==i[e][l]?(l+=parseInt(k(t).attr("colspan"),10)||1,n++):(l+=parseInt(k(i[e][l]).attr("colspan"),10)||1,"after"==s&&(t=0===n?-1:a.find("> th, > td").get(n-1)))}var o,r=k(t);"after"==s&&c<l-1||"before"==s&&0<c&&i[e][c]==i[e][c-1]?(0===e||0<e&&i[e][c]!=i[e-1][c])&&(o=parseInt(r.attr("colspan"),10)+1,r.attr("colspan",o),r.css("width",(r.data("old-width")*d/f+d).toFixed(4)+"%"),r.removeData("old-width")):(o=0<a.find("th").length?'<th style="width: '.concat(d.toFixed(4),'%;"><br></th>'):'<td style="width: '.concat(d.toFixed(4),'%;"><br></td>'),-1==t?a.prepend(o):null==t?a.append(o):"before"==s?r.before(o):"after"==s&&r[0].parentNode&&r[0].insertAdjacentHTML("afterend",o))}),a.find("th, td").each(function(){(t=k(this)).data("old-width")&&(t.css("width",(t.data("old-width")*d/f).toFixed(4)+"%"),t.removeData("old-width"))}),M.popups.isVisible("table.edit"))&&E()},deleteColumn:function(){var e=u();if(0<e.length){var t,a,l=B(),n=b(l);if(null!=n)if(0===n.min_j&&n.max_j==l[0].length-1)f();else{for(var o,r=0,s=0;s<l.length;s++)for(t=0;t<l[0].length;t++)!(a=k(l[s][t])).hasClass("fr-selected-cell")&&(a.data("old-width",a.outerWidth()/e.outerWidth()*100),t<n.min_j||t>n.max_j)&&(r+=a.outerWidth()/e.outerWidth()*100);for(r/=l.length,t=n.max_j;t>=n.min_j;t--)for(s=0;s<l.length;s++)0!==s&&l[s][t]==l[s-1][t]||(a=k(l[s][t]),1<(parseInt(a.attr("colspan"),10)||1)?(1==(o=parseInt(a.attr("colspan"),10)-1)?a.removeAttr("colspan"):a.attr("colspan",o),a.css("width",(100*(a.data("old-width")-P(t,l))/r).toFixed(4)+"%"),a.removeData("old-width")):(o=k(a.parent().get(0)),a.remove(),0===o.find("> th, > td").length&&(0===o.prev().length||0===o.next().length||o.prev().find("> th[rowspan], > td[rowspan]").length<o.prev().find("> th, > td").length)&&o.remove()));g(0,l.length-1,0,l[0].length-1,e),0<n.min_j?M.selection.setAtEnd(l[n.min_i][n.min_j-1]):M.selection.setAtEnd(l[n.min_i][0]),M.selection.restore(),M.popups.hide("table.edit"),e.find("th, td").each(function(){(a=k(this)).data("old-width")&&(a.css("width",(100*a.data("old-width")/r).toFixed(4)+"%"),a.removeData("old-width"))})}}},mergeCells:function(){if(1<V().length&&(0===M.$el.find("th.fr-selected-cell").length||0===M.$el.find("td.fr-selected-cell").length)){v();var e,t=b(B());if(null!=t){for(var a=M.$el.find(".fr-selected-cell"),l=k(a[0]),n=l.parent().find(".fr-selected-cell"),o=l.closest("table"),r=l.html(),s=0,i=0;i<n.length;i++)s+=k(n[i]).outerWidth();for(l.css("width",Math.min(100,s/o.outerWidth()*100).toFixed(4)+"%"),t.min_j<t.max_j&&l.attr("colspan",t.max_j-t.min_j+1),t.min_i<t.max_i&&l.attr("rowspan",t.max_i-t.min_i+1),i=1;i<a.length;i++)"<br>"!=(e=k(a[i])).html()&&""!==e.html()&&(r+="<br>".concat(e.html())),e.remove();l.html(r),M.selection.setAtEnd(l.get(0)),M.selection.restore(),M.toolbar.enable(),p(t.min_i,t.max_i,o);var c=o.find("tr:empty");for(i=c.length-1;0<=i;i--)k(c[i]).remove();d(t.min_j,t.max_j,o),E()}}},splitCellVertically:function(){if(1==V().length){var e=M.$el.find(".fr-selected-cell"),t=parseInt(e.attr("colspan"),10)||1,a=e.parent().outerWidth(),l=e.outerWidth(),n=e.clone().html("<br>"),o=B(),r=Y(e.get(0),o);if(1<t){var s=Math.ceil(t/2),l=G(r.col,r.col+s-1,o)/a*100,i=G(r.col+s,r.col+t-1,o)/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{for(var c,f,d=0;d<o.length;d++)0!==d&&o[d][r.col]==o[d-1][r.col]||(c=k(o[d][r.col])).is(e)||(f=(parseInt(c.attr("colspan"),10)||1)+1,c.attr("colspan",f));e.css("width","".concat((l=l/a*100/2).toFixed(4),"%")),n.css("width","".concat(l.toFixed(4),"%"))}e[0].parentNode&&e[0].insertAdjacentElement("afterend",n[0]),R(),M.popups.hide("table.edit")}},splitCellHorizontally:function(){if(1==V().length){var e=M.$el.find(".fr-selected-cell"),t=e.parent(),a=e.closest("table"),l=parseInt(e.attr("rowspan"),10),n=B(),o=Y(e.get(0),n),r=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?r.attr("rowspan",l-s):r.removeAttr("rowspan");for(var i=o.row+s,c=0===o.col?o.col:o.col-1;0<=c&&(n[i][c]==n[i][c-1]||0<i&&n[i][c]==n[i-1][c]);)c--;-1==c?k(a.find("tr").not(a.find("> table tr")).get(i)).prepend(r):k(n[i][c])[0].parentNode&&k(n[i][c])[0].insertAdjacentElement("afterend",r[0])}else{for(var f,l=k(document.createElement("tr")).append(r),d=0;d<n[0].length;d++)0!==d&&n[o.row][d]==n[o.row][d-1]||(f=k(n[o.row][d])).is(e)||f.attr("rowspan",(parseInt(f.attr("rowspan"),10)||1)+1);t[0].parentNode&&t[0].insertAdjacentElement("afterend",l[0])}R(),M.popups.hide("table.edit")}},addHeader:function(){var e=u();if(0<e.length&&0===e.find("> th").length){var t,a="<thead><tr>",l=0,l=e.find("tr").first().find("> th").length;for(e.find("tr").first().find("> td").each(function(){var e=k(this);l+=parseInt(e.attr("colspan"),10)||1}),t=0;t<l;t++)a+="<th><br></th>";e.prepend(a+="</tr></thead>"),E()}},addFooter:function(){var e=u();if(0<e.length&&0===e.find("tfoot").length){var t,a="<tfoot><tr>",l=0,n="> td";for(0<e.find("thead").length&&(n="> th"),e.find("tr").first().find(n).each(function(){var e=k(this);l+=parseInt(e.attr("colspan"),10)||1}),t=0;t<l;t++)a+="<td><br></td>";e.append(a+="</tr></tfoot>"),E()}},removeHeader:function(){var e=u(),t=e.find("> thead");0<(t=k(t)).length&&(0===e.find("tbody tr").length?f():(t.remove(),0<V().length?E():(M.popups.hide("table.edit"),(t=e.find("tbody tr").first().find("td").first().get(0))&&(M.selection.setAtEnd(t),M.selection.restore()))))},removeFooter:function(){var e=u(),t=e.find("tfoot");0<t.length&&(0===e.find("tbody tr").length?f():(t.remove(),0<V().length?E():(M.popups.hide("table.edit"),(t=e.find("tbody tr").first().find("td").first().get(0))&&(M.selection.setAtEnd(t),M.selection.restore()))))},setBackground:t,showInsertPopup:function(){var e,t,a=M.$tb.find('.fr-command[data-cmd="insertTable"]');(M.popups.get("table.insert")||n()).hasClass("fr-active")||(M.popups.refresh("table.insert"),M.popups.setContainer("table.insert",M.$tb),e=(t=M.button.getPosition(a)).left,t=t.top,M.popups.show("table.insert",e,t,a.outerHeight()))},showEditPopup:E,showColorsPopup:function e(){var t,a,l,c,n,o,r=B();r&&(M.popups.get("table.colors")||(n="",0<M.opts.tableColorsButtons.length&&(n='<div class="fr-buttons fr-tabs">'.concat(M.button.buildList(M.opts.tableColorsButtons),"</div>")),o="",M.opts.colorsHEXInput&&(o='<div class="fr-color-hex-layer fr-table-colors-hex-layer fr-active fr-layer" id="fr-table-colors-hex-layer-'.concat(M.id,'"><div class="fr-input-line"><input maxlength="7" id="fr-table-colors-hex-layer-text-').concat(M.id,'" type="text" placeholder="').concat(M.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(M.language.translate("OK"),"</button></div></div>")),n={buttons:n,colors:function(){for(var e='<div class="fr-color-set fr-table-colors">',t=0;t<M.opts.tableColors.length;t++)0!==t&&t%M.opts.tableColorsStep==0&&(e+="<br>"),"REMOVE"!=M.opts.tableColors[t]?e+='<span class="fr-command" style="background: '.concat(M.opts.tableColors[t],';" tabIndex="-1" role="button" data-cmd="tableCellBackgroundColor" data-param1="').concat(M.opts.tableColors[t],'"><span class="fr-sr-only">').concat(M.language.translate("Color")," ").concat(M.opts.tableColors[t]," </span></span>"):e+='<span class="fr-command" data-cmd="tableCellBackgroundColor" tabIndex="-1" role="button" data-param1="REMOVE" title="'.concat(M.language.translate("Clear Formatting"),'">').concat(M.icon.create("tableColorRemove"),'<span class="fr-sr-only">').concat(M.language.translate("Clear Formatting"),"</span></span>");return e+"</div>"}(),custom_color:o},o=M.popups.create("table.colors",n),M.events.$on(M.$wp,"scroll.table-colors",function(){M.popups.isVisible("table.colors")&&e()}),c=o,M.events.on("popup.tab",function(e){var t,a,l,n,o,r,s,i=k(e.currentTarget);return!M.popups.isVisible("table.colors")||!i.is("span")||(t=e.which,a=!0,Z.KEYCODE.TAB==t?(l=c.find(".fr-buttons"),a=!M.accessibility.focusToolbar(l,!!e.shiftKey)):Z.KEYCODE.ARROW_UP==t||Z.KEYCODE.ARROW_DOWN==t||Z.KEYCODE.ARROW_LEFT==t||Z.KEYCODE.ARROW_RIGHT==t?(o=(l=i.parent().find("span.fr-command")).index(i),n=M.opts.colorsStep,s=Math.floor(l.length/n),r=o%n,o=Math.floor(o/n)*n+r,r=s*n,Z.KEYCODE.ARROW_UP==t?o=((o-n)%r+r)%r:Z.KEYCODE.ARROW_DOWN==t?o=(o+n)%r:Z.KEYCODE.ARROW_LEFT==t?o=((o-1)%r+r)%r:Z.KEYCODE.ARROW_RIGHT==t&&(o=(o+1)%r),s=k(l.get(o)),M.events.disableBlur(),s.focus(),a=!1):Z.KEYCODE.ENTER==t&&(M.button.exec(i),a=!1),!1===a&&(e.preventDefault(),e.stopPropagation()),a)},!0)),M.popups.setContainer("table.colors",M.$sc),o=((n=O(r)).left+n.right)/2,r=n.bottom,t=M.popups.get("table.colors"),a=M.$el.find(".fr-selected-cell").first(),a=M.helpers.RGBToHex(a.css("background-color")),l=t.find(".fr-table-colors-hex-layer input"),t.find(".fr-selected-color").removeClass("fr-selected-color fr-active-item"),t.find('span[data-param1="'.concat(a,'"]')).addClass("fr-selected-color fr-active-item"),l.val(a).trigger("change"),M.popups.show("table.colors",o,r,n.bottom-n.top,!0))},back:function(){0<V().length?E():(M.popups.hide("table.insert"),M.toolbar.showInline())},verticalAlign:function(e){M.$el.find(".fr-selected-cell").css("vertical-align",e)},horizontalAlign:function(e){M.$el.find(".fr-selected-cell").css("text-align",e)},applyStyle:function(e,t,a,l){0<t.length&&(M.opts.useClasses||("TABLE"===t.get(0).tagName?function e(t,a){var l=t.childNodes;if(0<l.length)for(var n=0;n<l.length;n++)"TD"===l[n].tagName?"fr-dashed-borders"===a||"fr-highlighted"===a||"fr-thick"===a?m(l[n]):"fr-alternate-rows"===a&&l[n].style.removeProperty("background-color"):e(l[n],a)}(t.get(0),e):m(t.get(0))),a||((a=Object.keys(l)).splice(a.indexOf(e),1),t.removeClass(a.join(" "))),t.toggleClass(e))},selectedTable:u,selectedCells:V,customColor:function(){var e=M.popups.get("table.colors").find(".fr-table-colors-hex-layer input");e.length&&t(e.val())},selectCells:i}},Z.DefineIcon("insertTable",{NAME:"table",SVG_KEY:"insertTable"}),Z.RegisterCommand("insertTable",{title:"Insert Table",undo:!1,focus:!0,refreshOnCallback:!1,popup:!0,callback:function(){this.popups.isVisible("table.insert")?(this.$el.find(".fr-marker").length&&(this.events.disableBlur(),this.selection.restore()),this.popups.hide("table.insert")):this.table.showInsertPopup()},plugin:"table"}),Z.RegisterCommand("tableInsert",{callback:function(e,t,a){this.table.insert(t,a),this.popups.hide("table.insert")}}),Z.DefineIcon("tableHeader",{NAME:"header",FA5NAME:"heading",SVG_KEY:"tableHeader"}),Z.RegisterCommand("tableHeader",{title:"Table Header",focus:!1,toggle:!0,callback:function(){this.popups.get("table.edit").find('.fr-command[data-cmd="tableHeader"]').hasClass("fr-active")?this.table.removeHeader():this.table.addHeader()},refresh:function(e){var t=this.table.selectedTable();0<t.length&&(0===t.find("> thead").length?e.removeClass("fr-active").attr("aria-pressed",!1):e.addClass("fr-active").attr("aria-pressed",!0))}}),Z.DefineIcon("tableFooter",{NAME:"table",FA5NAME:"table",SVG_KEY:"tableFooter"}),Z.RegisterCommand("tableFooter",{title:"Table Footer",focus:!1,toggle:!0,callback:function(){this.popups.get("table.edit").find('.fr-command[data-cmd="tableFooter"]').hasClass("fr-active")?this.table.removeFooter():this.table.addFooter()},refresh:function(e){var t=this.table.selectedTable();0<t.length&&(0===t.find("tfoot").length?e.removeClass("fr-active").attr("aria-pressed",!1):e.addClass("fr-active").attr("aria-pressed",!0))}}),Z.DefineIcon("tableRows",{NAME:"bars",SVG_KEY:"row"}),Z.RegisterCommand("tableRows",{type:"dropdown",focus:!1,title:"Row",options:{above:"Insert row above",below:"Insert row below",delete:"Delete row"},html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',a=Z.COMMANDS.tableRows.options;for(e in a)a.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="tableRows" data-param1="'+e+'" title="'+this.language.translate(a[e])+'">'+this.language.translate(a[e])+"</a></li>");return t+"</ul>"},callback:function(e,t){"above"==t||"below"==t?this.table.insertRow(t):this.table.deleteRow()}}),Z.DefineIcon("tableColumns",{NAME:"bars fa-rotate-90",SVG_KEY:"columns"}),Z.RegisterCommand("tableColumns",{type:"dropdown",focus:!1,title:"Column",options:{before:"Insert column before",after:"Insert column after",delete:"Delete column"},html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',a=Z.COMMANDS.tableColumns.options;for(e in a)a.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="tableColumns" data-param1="'.concat(e,'" title="').concat(this.language.translate(a[e]),'">').concat(this.language.translate(a[e]),"</a></li>"));return t+"</ul>"},callback:function(e,t){"before"==t||"after"==t?this.table.insertColumn(t):this.table.deleteColumn()}}),Z.DefineIcon("tableCells",{NAME:"square-o",FA5NAME:"square",SVG_KEY:"cellOptions"}),Z.RegisterCommand("tableCells",{type:"dropdown",focus:!1,title:"Cell",options:{merge:"Merge cells","vertical-split":"Vertical split","horizontal-split":"Horizontal split"},html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',a=Z.COMMANDS.tableCells.options;for(e in a)a.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="tableCells" data-param1="'.concat(e,'" title="').concat(this.language.translate(a[e]),'">').concat(this.language.translate(a[e]),"</a></li>"));return t+"</ul>"},callback:function(e,t){"merge"==t?this.table.mergeCells():"vertical-split"==t?this.table.splitCellVertically():this.table.splitCellHorizontally()},refreshOnShow:function(e,t){(1<this.$el.find(".fr-selected-cell").length?(t.find('a[data-param1="vertical-split"]').addClass("fr-disabled").attr("aria-disabled",!0),t.find('a[data-param1="horizontal-split"]').addClass("fr-disabled").attr("aria-disabled",!0),t.find('a[data-param1="merge"]')):(t.find('a[data-param1="merge"]').addClass("fr-disabled").attr("aria-disabled",!0),t.find('a[data-param1="vertical-split"]').removeClass("fr-disabled").attr("aria-disabled",!1),t.find('a[data-param1="horizontal-split"]'))).removeClass("fr-disabled").attr("aria-disabled",!1)}}),Z.DefineIcon("tableRemove",{NAME:"trash",SVG_KEY:"removeTable"}),Z.RegisterCommand("tableRemove",{title:"Remove Table",focus:!1,callback:function(){this.table.remove()}}),Z.DefineIcon("tableStyle",{NAME:"paint-brush",SVG_KEY:"tableStyle"}),Z.RegisterCommand("tableStyle",{title:"Table Style",type:"dropdown",focus:!1,html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',a=this.opts.tableStyles;for(e in a)a.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="option" data-cmd="tableStyle" data-param1="'.concat(e,'" title="').concat(this.language.translate(a[e]),'">').concat(this.language.translate(a[e]),"</a></li>"));return t+"</ul>"},callback:function(e,t){this.table.applyStyle(t,this.$el.find(".fr-selected-cell").closest("table"),this.opts.tableMultipleStyles,this.opts.tableStyles)},refreshOnShow:function(e,t){var a=this.$,l=this.$el.find(".fr-selected-cell").closest("table");l&&t.find(".fr-command").each(function(){var e=a(this).data("param1"),e=l.hasClass(e);a(this).toggleClass("fr-active",e).attr("aria-selected",e)})}}),Z.DefineIcon("tableCellBackground",{NAME:"tint",SVG_KEY:"cellBackground"}),Z.RegisterCommand("tableCellBackground",{title:"Cell Background",focus:!1,popup:!0,callback:function(){this.table.showColorsPopup()}}),Z.RegisterCommand("tableCellBackgroundColor",{undo:!0,focus:!1,callback:function(e,t){this.table.setBackground(t)}}),Z.DefineIcon("tableBack",{NAME:"arrow-left",SVG_KEY:"back"}),Z.RegisterCommand("tableBack",{title:"Back",undo:!1,focus:!1,back:!0,callback:function(){this.table.back()},refresh:function(e){0!==this.table.selectedCells().length||this.opts.toolbarInline?(e.removeClass("fr-hidden"),e.next(".fr-separator").removeClass("fr-hidden")):(e.addClass("fr-hidden"),e.next(".fr-separator").addClass("fr-hidden"))}}),Z.DefineIcon("tableCellVerticalAlign",{NAME:"arrows-v",FA5NAME:"arrows-alt-v",SVG_KEY:"verticalAlignMiddle"}),Z.RegisterCommand("tableCellVerticalAlign",{type:"dropdown",focus:!1,title:"Vertical Align",options:{Top:"Align Top",Middle:"Align Middle",Bottom:"Align Bottom"},html:function(){var e,t='<ul class="fr-dropdown-list" role="presentation">',a=Z.COMMANDS.tableCellVerticalAlign.options;for(e in a)a.hasOwnProperty(e)&&(t+='<li role="presentation"><a class="fr-command" tabIndex="-1" role="opt