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) 99.8 kB
/*! * froala_editor v4.7.0 (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(ke){"use strict";function n(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 ze(e){return function t(e){if(Array.isArray(e))return n(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 n(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)?n(e,t):void 0}}(e)||function r(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}ke=ke&&ke.hasOwnProperty("default")?ke["default"]:ke,Object.assign(ke.POPUP_TEMPLATES,{"table.insert":"[_BUTTONS_][_ROWS_COLUMNS_]","table.edit":"[_BUTTONS_]","table.colors":"[_BUTTONS_][_COLORS_][_CUSTOM_COLOR_]","table.cellProperties":"[_CELL_PROPERTIES_FORM_][_BUTTONS_]","table.tableProperties":"[_TABLE_PROPERTIES_FORM_][_BUTTONS_]"}),Object.assign(ke.DEFAULTS,{tableInsertMaxSize:10,tableEditButtons:["tableHeader","tableFooter","tableRemove","tableRows","tableColumns","tableProperties","-","tableCells","tableCellProperties","tableCellVerticalAlign","tableCellHorizontalAlign","tableCellStyle"],tableInsertButtons:["tableBack","|"],tableResizer:!0,tableDefaultWidth:"50%",tableDefaultAlign:"center",tableDefaultHeight:"100px",tableDefaultBGColor:"",tableDefaultBorderColor:"",tableDefaultBorderWidth:"1px",tableDefaultBorderStyle:"solid",tableBorderStyle:["solid","dashed","dotted","double","groove","ridge","inset","outset"],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,proportionalTableResize:!0,enableTableSelection:!0}),ke.PLUGINS.table=function(Y){var W,c,p,u,l,f,b,g,Z=Y.$;function C(){var e=j();if(e){var t=Y.popups.get("table.edit");if(t||(t=i()),t){Y.popups.setContainer("table.edit",Y.$sc);var a=N(e),l=a.left+(a.right-a.left)/2,r=a.bottom;Y.popups.show("table.edit",l,r,a.bottom-a.top,!0),Y.edit.isDisabled()&&(Y.$el.removeClass("fr-no-selection"),Y.edit.on(),Y.button.bulkRefresh(),Y.selection.setAtEnd(Y.$el.find(".fr-selected-cell").last().get(0)),Y.selection.restore())}}}function r(){0===ce().length&&Y.toolbar.enable()}function o(e){if(e)return Y.popups.onHide("table.insert",function(){Y.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<Y.opts.tableInsertButtons.length&&(t='<div class="fr-buttons fr-tabs">'.concat(Y.button.buildList(Y.opts.tableInsertButtons),"</div>"));var a={buttons:t,rows_columns:function n(){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<=Y.opts.tableInsertMaxSize;t++){for(var a=1;a<=Y.opts.tableInsertMaxSize;a++){var l="inline-block";2<t&&!Y.helpers.isMobile()&&(l="none");var r="fr-table-cell ";1==t&&1==a&&(r+=" hover"),e+='<span class="fr-command '.concat(r,'" 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=Y.popups.create("table.insert",a);return Y.events.$on(l,"mouseover",".fr-table-size .fr-select-table-size .fr-table-cell",function(e){d(Z(e.currentTarget))},!0),function r(e){Y.events.$on(e,"focus","[tabIndex]",function(e){var t=Z(e.currentTarget);d(t)}),Y.events.on("popup.tab",function(e){var t=Z(e.currentTarget);if(!Y.popups.isVisible("table.insert")||!t.is("span, a"))return!0;var a,l=e.which;if(ke.KEYCODE.ARROW_UP==l||ke.KEYCODE.ARROW_DOWN==l||ke.KEYCODE.ARROW_LEFT==l||ke.KEYCODE.ARROW_RIGHT==l){if(t.is("span.fr-table-cell")){var r=t.parent().find("span.fr-table-cell"),n=r.index(t),o=Y.opts.tableInsertMaxSize,i=n%o,s=Math.floor(n/o);ke.KEYCODE.ARROW_UP==l?s=Math.max(0,s-1):ke.KEYCODE.ARROW_DOWN==l?s=Math.min(Y.opts.tableInsertMaxSize-1,s+1):ke.KEYCODE.ARROW_LEFT==l?i=Math.max(0,i-1):ke.KEYCODE.ARROW_RIGHT==l&&(i=Math.min(Y.opts.tableInsertMaxSize-1,i+1));var c=s*o+i,f=Z(r.get(c));d(f),Y.events.disableBlur(),f.focus(),a=!1}}else ke.KEYCODE.ENTER==l&&(Y.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 r=1;r<=Y.opts.tableInsertMaxSize;r++)for(var n=0;n<=Y.opts.tableInsertMaxSize;n++){var o=l.find('> span[data-row="'.concat(r,'"][data-col="').concat(n,'"]'));r<=t&&n<=a?o.addClass("hover"):r<=t+1||r<=2&&!Y.helpers.isMobile()?o.css("display","inline-block"):2<r&&!Y.helpers.isMobile()&&o.css("display","none")}e.addClass("fr-active-item")}function i(e){if(e)return Y.popups.onHide("table.edit",r),!0;if(0<Y.opts.tableEditButtons.length){var t={buttons:'<div class="fr-buttons">'.concat(Y.button.buildList(Y.opts.tableEditButtons),"</div>")},a=Y.popups.create("table.edit",t);return Y.events.$on(Y.$wp,"scroll.table-edit",function(){Y.popups.isVisible("table.edit")&&C()}),a}return!1}function A(e,t,a){var l=Z(e),r=Z(t);a&&"REMOVE"!==a&&"transparent"!==a&&"rgba(0, 0, 0, 0)"!==a?(l.css("background-color",a),r.css("display","none")):(l.css("background-color","transparent"),r.css("display","block"))}function m(){var e=Y.popups.get("table.cellProperties");if(!e){var t={cell_properties_form:'\n <div class="fr-cell-properties-form">\n <div class="fr-cell-properties-section">\n <label>'.concat(Y.language.translate("Background"),'</label>\n <div class="fr-cell-bg-container">\n <input type="text" id="fr-cell-bg" class="fr-input" tabIndex="1" title="').concat(Y.language.translate("Color"),'" placeholder="').concat(Y.language.translate("Color"),'">\n <button type="button" title="').concat(Y.language.translate("Color"),'" class="fr-command fr-btn-cell-bg-color" tabIndex="2" data-param1="cell" data-cmd="openColorPicker">\n <div class="fr-color-preview">\n <div class="fr-color-preview-indicator"></div>\n </div>\n </button>\n </div>\n </div>\n \n <div class="fr-cell-dimensions-container">\n <div class="fr-cell-dimension-section">\n <label>').concat(Y.language.translate("Dimensions"),'</label>\n <div class="fr-dimension-inputs">\n <input type="text" id="fr-cell-width" tabIndex="3" title="').concat(Y.language.translate("Width"),'" placeholder="').concat(Y.language.translate("Width"),'">\n <span class="fr-dimension-separator">\xd7</span>\n <input type="text" id="fr-cell-height" tabIndex="4" title="').concat(Y.language.translate("Height"),'" placeholder="').concat(Y.language.translate("Height"),'">\n <label for="fr-cell-height"></label>\n </div>\n </div>\n \n <div class="fr-cell-padding-section">\n <label>').concat(Y.language.translate("Padding"),'</label>\n <div>\n <input type="text" id="fr-cell-padding" tabIndex="5" title="').concat(Y.language.translate("Size"),'" placeholder="').concat(Y.language.translate("Size"),'">\n <label for="fr-cell-padding"></label>\n </div>\n </div>\n </div>\n \n <div class="fr-cell-properties-buttons">\n <button type="button" class="fr-command fr-enable-accessibility fr-cancel-button" tabIndex="6" data-cmd="onCancel">').concat(Y.language.translate("Cancel"),'</button>\n <button type="button" class="fr-command fr-enable-accessibility fr-save-button" tabIndex="7" data-cmd="applyCellProperties">').concat(Y.language.translate("Save"),"</button>\n </div>\n </div>"),buttons:""};e=Y.popups.create("table.cellProperties",t),w(),Y.events.$on(e,"input","#fr-cell-bg",function(){e.data("bg-modified",!0)}),Y.events.$on(e,"input","#fr-cell-width",function(){e.data("width-modified",!0)}),Y.events.$on(e,"input","#fr-cell-height",function(){e.data("height-modified",!0)}),Y.events.$on(e,"input","#fr-cell-padding",function(){e.data("padding-modified",!0)})}return e}function w(){var e=Y.popups.get("table.cellProperties");e&&(e.data("bg-modified",!1),e.data("width-modified",!1),e.data("height-modified",!1),e.data("padding-modified",!1))}function n(e){var t,a,l,r,n=Y.popups.get("table.colors").data("type");if("table"===n){var o=Y.popups.get("table.tableProperties");t=o.find(".fr-color-preview"),a=o.find(".fr-color-preview-indicator"),l=o.find("#fr-table-bg")}else if("cell"===n){var i=Y.popups.get("table.cellProperties");t=i.find(".fr-color-preview"),a=i.find(".fr-color-preview-indicator"),l=i.find("#fr-cell-bg"),r=Y.popups.get("table.cellProperties")}else if("border"===n){var s=Y.popups.get("table.tableProperties");t=s.find(".fr-border-color-preview"),a=s.find(".fr-border-color-preview-indicator"),l=s.find("#fr-table-border-color")}"string"==typeof e&&(Y.helpers.isRGBColor(e)&&(e=Y.helpers.RGBToHex(e).toUpperCase()),(Y.helpers.isValidHexColor(e)||"transparent"===e||""===e)&&(Z(l).val(e),Z(l).focus(),"cell"===n&&Z(r).data("bg-modified",!0),A(t,a,e)))}function s(e){var t=Y.doc.createRange(),a=e.get(0).querySelector("td, th");t.setStart(a,0),t.collapse(!0);var l=Y.selection.get();l.removeAllRanges(),l.addRange(t)}function h(e){var t={startTag:"",closeTag:""};return Y.opts.keepTextFormatOnTable&&(t=v(function i(e){var t=new Set,a=e.textContent,l=0,r=[e.firstChild];for(;0<r.length;){var n=r.pop();if(n&&(t.has(n)||(0===l&&a!==n.textContent&&(a=n.textContent,l++),t.add(n)),n.hasChildNodes()))for(var o=0;o<n.childNodes.length;){if(3===n.childNodes[o].nodeType)return ze(t);if(n.childNodes[o].textContent){if(0===l&&n.childNodes[o].textContent!==a){a=n.childNodes[o].textContent,r.push(n.childNodes[o]),l++;break}n.childNodes[o].textContent===a&&r.push(n.childNodes[o])}o++}}return ze(t)}(e).reverse())),{startTag:t.startTag,closeTag:t.closeTag}}function v(e){var t="",a="",l=["br","#text","#comment","font"];if(0<e.length)for(var r=e.length-1;0<=r;r--){var n=e[r],o=Y.node.isBlock(n),i=l.indexOf(n.nodeName.toLowerCase());if(!o&&i<0){var s=n.style,c="";if(s&&s.length){for(var f=0;f<s.length;f++)c+=s[f]+": "+s[s[f]].replace(/"/gi,"")+"; ";c=c.trim()}t+=c?"<"+n.nodeName.toLowerCase()+' style="'+c+'">':"<"+n.nodeName.toLowerCase()+">",a="</"+n.nodeName.toLowerCase()+">"+a}}return{startTag:t,closeTag:a}}function y(){var e=fe(),t=ce(),a=0<t.length,l=0<e.length;(a||l)&&(a&&(Y.selection.setBefore(t[0])||Y.selection.setAfter(t[0]),Y.selection.restore(),Y.popups.hide("table.edit")),s(e),Y.undo.saveStep(),S(),e.remove(),Y.$el.focus())}function E(e){var t=fe();if(0<t.length){if(0<Y.$el.find("thead .fr-selected-cell").length&&"above"==e||0<Y.$el.find("tfoot td.fr-selected-cell").length&&"below"==e)return;var a,l,r,n=j(),o=$(n);if(null==o)return;l="above"==e?o.min_i:o.max_i;var i="<tr>";for(a=0;a<n[l].length;a++)if("below"==e&&l<n.length-1&&n[l][a]==n[l+1][a]||"above"==e&&0<l&&n[l][a]==n[l-1][a]){if(0===a||0<a&&n[l][a]!=n[l][a-1]){var s=Z(n[l][a]);s.attr("rowspan",parseInt(s.attr("rowspan"),10)+1)}}else{var c=Z(n[l][a]);if("TH"==c.attr("tagName").toUpperCase())i+='<th style="'+c.attr("style")+'" ><br></th>';else{var f=h(n[l][a]);i+='<td style="'+c.attr("style")+'" >'+f.startTag+"<br>"+f.closeTag+"</td>"}}i+="</tr>",r=0<Y.$el.find("thead .fr-selected-cell").length&&"below"==e||0<Y.$el.find("tfoot td.fr-selected-cell").length&&"above"==e?Z(t.find("tbody").not(t.find("> table tbody"))):Z(t.find("tr").not(t.find("> table tr")).get(l)),"below"==e?"TBODY"==r.attr("tagName")?r.prepend(i):r[0].parentNode&&r[0].insertAdjacentHTML("afterend",i):"above"==e&&("TBODY"==r.attr("tagName")?r.append(i):r.before(i),Y.popups.isVisible("table.edit")&&C())}}function T(e,t,a){var l,r,n,o,i,s=0,c=j(a);if(e<(t=Math.min(t,c[0].length-1)))for(r=e;r<=t;r++)if(!(e<r&&c[0][r]==c[0][r-1])&&1<(o=Math.min(parseInt(c[0][r].getAttribute("colspan"),10)||1,t-e+1))&&c[0][r]==c[0][r+1])for(s=o-1,l=1;l<c.length;l++)if(c[l][r]!=c[l-1][r]){for(n=r;n<r+o;n++)if(c[l][n]!==undefined)if(1<(i=parseInt(c[l][n].getAttribute("colspan"),10)||1)&&c[l][n]==c[l][n+1])n+=s=Math.min(s,i-1);else if(!(s=Math.max(0,s-1)))break;if(!s)break}s&&x(c,s,"colspan",0,c.length-1,e,t)}function R(e,t,a){var l,r,n,o,i,s=0,c=j(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])&&c[l][0]!==undefined&&1<(o=Math.min(parseInt(c[l][0].getAttribute("rowspan"),10)||1,t-e+1))&&c[l][0]==c[l+1][0])for(s=o-1,r=1;r<c[0].length;r++)if(c[l][r]!=c[l][r-1]){for(n=l;n<l+o;n++)if(c[n][r]!==undefined)if(1<(i=parseInt(c[n][r].getAttribute("rowspan"),10)||1)&&c[n][r]==c[n+1][r])n+=s=Math.min(s,i-1);else if(!(s=Math.max(0,s-1)))break;if(!s)break}s&&x(c,s,"rowspan",e,t,0,c[0].length-1)}function x(e,t,a,l,r,n,o){var i,s,c;for(i=l;i<=r;i++)for(s=n;s<=o;s++)l<i&&e[i][s]==e[i-1][s]||n<s&&e[i][s]==e[i][s-1]||e[i][s]!==undefined&&1<(c=parseInt(e[i][s].getAttribute(a),10)||1)&&(1<c-t?e[i][s].setAttribute(a,c-t):e[i][s].removeAttribute(a))}function O(e,t,a,l,r){R(e,t,r),T(a,l,r)}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 j(e){var c=[];if(null==(e=e||null)&&0<ce().length&&(e=fe()),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--)Z(t[a]).remove();e.find("tr").not(e.find("> table tr")).each(function(i,e){var t=Z(e),s=0;t.find("> th, > td").each(function(e,t){for(var a=Z(t),l=parseInt(a.attr("colspan"),10)||1,r=parseInt(a.attr("rowspan"),10)||1,n=i;n<i+r;n++)for(var o=s;o<s+l;o++)c[n]||(c[n]=[]),c[n][o]?s++:c[n][o]=t;s+=l})})}return c}function I(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 B(e,t,a){for(var l=e+1,r=t+1;l<a.length;){if(a[l][t]!=a[e][t]){l--;break}l++}for(l==a.length&&l--;r<a[e].length;){if(a[e][r]!=a[e][t]){r--;break}r++}return r==a[e].length&&r--,{row:l,col:r}}function H(){Y.el.querySelector(".fr-cell-fixed")&&Y.el.querySelector(".fr-cell-fixed").classList.remove("fr-cell-fixed"),Y.el.querySelector(".fr-cell-handler")&&Y.el.querySelector(".fr-cell-handler").classList.remove("fr-cell-handler")}function S(){var e=Y.$el.find(".fr-selected-cell");0<e.length&&e.each(function(){var e=Z(this);e.removeClass("fr-selected-cell"),""===e.attr("class")&&e.removeAttr("class")}),H()}function D(){Y.events.disableBlur(),Y.selection.clear(),Y.$el.addClass("fr-no-selection"),Y.$el.blur(),Y.events.enableBlur()}function $(e){var t=Y.$el.find(".fr-selected-cell");if(0<t.length){var a,l=e.length,r=0,n=e[0].length,o=0;for(a=0;a<t.length;a++){var i=I(t[a],e),s=B(i.row,i.col,e);l=Math.min(i.row,l),r=Math.max(s.row,r),n=Math.min(i.col,n),o=Math.max(s.col,o)}return{min_i:l,max_i:r,min_j:n,max_j:o}}return null}function N(e){var t=$(e);if(null!=t){var a=Z(e[t.min_i][t.min_j]),l=Z(e[t.min_i][t.max_j]),r=Z(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:r.length&&r.offset().top+r.outerHeight()}}}function V(e,t){if(Z(e).is(t))S(),Z(e).addClass("fr-selected-cell");else{D(),Y.edit.off();var a=j(),l=I(e,a),r=I(t,a);if(!l||!r)return;var n=function u(e,t,a,l,r){var n,o,i,s,c=e,f=t,d=a,p=l;for(n=c;n<=f;n++)(1<(parseInt(Z(r[n][d]).attr("rowspan"),10)||1)||1<(parseInt(Z(r[n][d]).attr("colspan"),10)||1))&&(s=B((i=I(r[n][d],r)).row,i.col,r),c=Math.min(i.row,c),f=Math.max(s.row,f),d=Math.min(i.col,d),p=Math.max(s.col,p)),(1<(parseInt(Z(r[n][p]).attr("rowspan"),10)||1)||1<(parseInt(Z(r[n][p]).attr("colspan"),10)||1))&&(s=B((i=I(r[n][p],r)).row,i.col,r),c=Math.min(i.row,c),f=Math.max(s.row,f),d=Math.min(i.col,d),p=Math.max(s.col,p));for(o=d;o<=p;o++)(1<(parseInt(Z(r[c][o]).attr("rowspan"),10)||1)||1<(parseInt(Z(r[c][o]).attr("colspan"),10)||1))&&(s=B((i=I(r[c][o],r)).row,i.col,r),c=Math.min(i.row,c),f=Math.max(s.row,f),d=Math.min(i.col,d),p=Math.max(s.col,p)),(1<(parseInt(Z(r[f][o]).attr("rowspan"),10)||1)||1<(parseInt(Z(r[f][o]).attr("colspan"),10)||1))&&(s=B((i=I(r[f][o],r)).row,i.col,r),c=Math.min(i.row,c),f=Math.max(s.row,f),d=Math.min(i.col,d),p=Math.max(s.col,p));return c==e&&f==t&&d==a&&p==l?{min_i:e,max_i:t,min_j:a,max_j:l}:u(c,f,d,p,r)}(Math.min(l.row,r.row),Math.max(l.row,r.row),Math.min(l.col,r.col),Math.max(l.col,r.col),a);S(),e.classList.add("fr-cell-fixed"),t.classList.add("fr-cell-handler");for(var o=n.min_i;o<=n.max_i;o++)for(var i=n.min_j;i<=n.max_j;i++)Z(e).closest("table").is(Z(a[o][i]).closest("table"))&&Z(a[o][i]).addClass("fr-selected-cell")}}function _(e){var t=null,a=Z(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===Y.$el.html.toString().search(t)?null:t}function L(){S(),Y.popups.hide("table.edit")}function e(e){var t=_(e);if("false"==Z(t).parents("[contenteditable]").not(".fr-element").not(".fr-img-caption").not("body").first().attr("contenteditable"))return!0;if(0<ce().length&&!t&&L(),!Y.edit.isDisabled()||Y.popups.isVisible("table.edit"))if(1!=e.which||1==e.which&&Y.helpers.isMac()&&e.ctrlKey)(3==e.which||1==e.which&&Y.helpers.isMac()&&e.ctrlKey)&&t&&L();else if(u=!0,t){0<ce().length&&!e.shiftKey&&L(),e.stopPropagation(),Y.events.trigger("image.hideResizer"),Y.events.trigger("video.hideResizer"),p=!0;var a=t.tagName.toLowerCase();e.shiftKey&&0<Y.$el.find("".concat(a,".fr-selected-cell")).length?Z(Y.$el.find("".concat(a,".fr-selected-cell")).closest("table")).is(Z(t).closest("table"))?V(l,t):D():((Y.keys.ctrlKey(e)||e.shiftKey)&&"TD"===e.currentTarget.tagName&&(1<ce().length||0===Z(t).find(Y.selection.element()).length&&!Z(t).is(Y.selection.element()))&&D(),l=t,0<Y.opts.tableEditButtons.length&&V(l,l))}}function P(e){var t=Y.popups.areVisible();if(!Y.edit.isDisabled()&&t&&!t.hasClass("fr-do-not-hide"))return!0;var a=_(e);if(1===ce().length&&null===a&&(Y.toolbar.enable(),S()),(1===ce().length&&a&&"TD"!==a.tagName&&"TH"!==a.tagName||!p&&!Y.$tb.is(e.target)&&!Y.$tb.is(Z(e.target).closest(".fr-toolbar")))&&(Y.toolbar.enable(),S()),("BODY"===e.target.tagName||"HTML"===e.target.tagName)&&!a&&0<ce().length&&Y.toolbar.enable(),!(1!=e.which||1==e.which&&Y.helpers.isMac()&&e.ctrlKey)){if(u=!1,p)p=!1,_(e)||1!=ce().length?0<ce().length?Y.selection.isCollapsed()?(C(),Y.toolbar.enable()):(S(),Y.edit.on()):ce().length||(Y.$el.removeClass("fr-no-selection"),Y.edit.on()):S();if(b){if(b=!1,W.removeClass("fr-moving"),Y.$el.removeClass("fr-no-selection"),Y.edit.on(),W.hasClass("fr-table-col-resizer")){var l=parseFloat(W.css("left"))+Y.opts.tableResizerOffset+Y.$wp.offset().left;Y.opts.iframe&&(l-=Y.$iframe.offset().left),W.data("release-position",l),W.removeData("max-left"),W.removeData("max-right")}else{var r=parseFloat(W.css("top"));W.data("release-position",r),W.removeData("max-top"),W.removeData("max-bottom")}!function K(){var e=W.data("origin"),t=W.data("release-position");if(e!==t){var a=W.data("first"),l=W.data("second"),r=W.data("table"),n=r.outerWidth();if(Y.undo.canDo()||Y.undo.saveStep(),W.hasClass("fr-table-col-resizer")){var o=j(r),i=o[0]?o[0].length:0,s=ue(r,i);if(-1!=a&&-1!=l||!Y.opts.proportionalTableResize){var c=function F(e,t,a){for(var l=t[0]?t[0].length:0,r=e.outerWidth(),n=[],o=[],i=a.find("col"),s=0;s<l;s++){var c=i.eq(s),f=void 0,d=parseFloat(c.attr("width")||c.css("width"));if(d&&!isNaN(d))f=(c.attr("width")||"").includes("%")||(c.css("width")||"").includes("%")?d/100*r:d;else{var p=Z(t[0][s]);f=p.outerWidth()}n[s]=f,o[s]=f/r*100}return{currentWidths:n,currentPercentages:o}}(r,o,s),f=c.currentWidths,d=c.currentPercentages,p=ze(d),u=t-e,b=u/n*100;if(Y.opts.proportionalTableResize){var h=(d[a]*(f[a]+t-e)/f[a]).toFixed(4),g=(d[a]+d[l]-h).toFixed(4);p[a]=+h,p[l]=+g}else{p[a]+=b,p[l]-=b;if(p[a]<1){var v=1-p[a];p[a]=1,p[l]-=v}if(p[l]<1){var m=1-p[l];p[l]=1,p[a]-=m}}he(s,p)}var C=s.find("col"),w=-1==a&&0==l,y=a==C.length-1&&-1==l;if(w||y){var E,A=r.parent(),T=parseFloat(A.css("padding-left")),R=parseFloat(A.css("padding-right")),x=T+R,O=n/(A.width()-x)*100;"rtl"==Y.opts.direction&&0===l||"rtl"!=Y.opts.direction&&0!==l?E=(n+t-e)/n*O:("rtl"==Y.opts.direction&&0!==l||"rtl"!=Y.opts.direction&&0===l)&&(E=(n-t+e)/n*O),r.css("width","".concat(Math.round(E).toFixed(4),"%"))}}else{var M=r.find("tr"),H=Math.round(t-e),S=r.height();if(-1!=a&&-1!=l){var D=M.eq(a),$=D.outerHeight(),N=Math.max($+H,Y.opts.tableResizingLimit);r.css("height",""),D.css("height",N+"px"),r.css("height",r.height()+"px")}else{var V=-1==a&&0==l;if(Y.opts.proportionalTableResize){var _=V?-H:H;ge(r,_+S)}else{if(r.css("height",""),V){var L=M.eq(0),P=L.outerHeight(),I=Math.max(P-H,Y.opts.tableResizingLimit);L.css("height",I+"px")}else{var B=M.eq(M.length-1),k=B.outerHeight(),z=Math.max(k+H,Y.opts.tableResizingLimit);B.css("height",z+"px")}r.css("height",r.height()+"px")}}Y.opts.iframe&&Y.$iframe.height(Y.iframe_document.scrollingElement.offsetHeight)}Y.selection.restore(),Y.undo.saveStep(),Y.events.trigger("table.resized",[r.get(0)])}W.removeData("origin"),W.removeData("release-position"),W.removeData("first"),W.removeData("second"),W.removeData("table")}(),U()}}}function k(e){if((!(Z(e.currentTarget).is(Z(e.originalEvent.relatedTarget))||e.currentTarget.contains(e.originalEvent.relatedTarget)||e.originalEvent.relatedTarget&&e.originalEvent.relatedTarget.contains(e.currentTarget))||e.currentTarget.querySelector("input, textarea"))&&(Y.events.$on(Z("input, textarea"),"click",t),!0===p&&0<Y.opts.tableEditButtons.length)){if(Z(e.currentTarget).closest("table").is(fe()))return void V(l,e.currentTarget);"TD"!==e.currentTarget.tagName&&"TH"!==e.currentTarget.tagName&&D()}}function z(e,t,a,l){for(var r,n=t;n!=Y.el&&"TD"!=n.tagName&&"TH"!=n.tagName&&("up"==l?r=n.previousElementSibling:"down"==l&&(r=n.nextElementSibling),!r);)n=n.parentNode;"TD"==n.tagName||"TH"==n.tagName?function o(e,t){for(var a=e;a&&"TABLE"!=a.tagName&&a.parentNode!=Y.el;)a=a.parentNode;if(a&&"TABLE"==a.tagName){var l=j(Z(a));"up"==t?F(I(e,l),a,l):"down"==t&&K(I(e,l),a,l)}}(n,l):r&&("up"==l&&Y.selection.setAtEnd(r),"down"==l&&Y.selection.setAtStart(r))}function F(e,t,a){0<Z(".tribute-container").length&&"none"!=Z(".tribute-container").css("display")||(0<e.row?Y.selection.setAtEnd(a[e.row-1][e.col]):z(0,t,0,"up"))}function K(e,t,a){if(!(0<Z(".tribute-container").length&&"none"!=Z(".tribute-container").css("display"))){var l=parseInt(a[e.row][e.col].getAttribute("rowspan"),10)||1;e.row<a.length-l?Y.selection.setAtStart(a[e.row+l][e.col]):z(0,t,0,"down")}}function G(e){var t=e.which,a=Y.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!=Y.el;)l=l.parentNode;if(l&&"TABLE"==l.tagName&&(ke.KEYCODE.ARROW_LEFT==t||ke.KEYCODE.ARROW_UP==t||ke.KEYCODE.ARROW_RIGHT==t||ke.KEYCODE.ARROW_DOWN==t)&&(0<ce().length&&L(),Y.browser.webkit&&(ke.KEYCODE.ARROW_UP==t||ke.KEYCODE.ARROW_DOWN==t))){if(!function p(e,t,a){if(!e)return!1;var l="TD"===e.tagName||"TH"===e.tagName?e:Z(e).parentsUntil(Y.el,"td, th").get(0);if(!l)return!1;if(l.textContent.trim().length<=0&&1===l.children.length&&"BR"===l.children[0].tagName)return!0;if(("TD"===l.tagName||"TH"===l.tagName)&&e&&e.nodeType!==Node.TEXT_NODE)if(e.children&&0<e.children.length){var r=t>e.children.length?e.children.length-1:t-1,n=e.children[r]||e.firstChild;n&&"string"==typeof n.textContent&&(t=(e=n).textContent.trim().length-1)}else e.firstChild&&"string"==typeof e.firstChild.textContent&&(e=e.firstChild,t=e.textContent.trim().length-1);var o=document.createRange();o.selectNodeContents(l);var i,s=o.getBoundingClientRect();if(e.textContent.trim().length<=0&&e.getBoundingClientRect)i=e.getBoundingClientRect();else{var c=e;e.nodeType!==Node.TEXT_NODE&&(c=function d(e){var t=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),a=null;for(;t.nextNode();)a=t.currentNode;return a}(e),t=c&&"up"===a?c.textContent.length:0);var f=document.createRange();f.setStart(c||e,t),f.collapse(!0),i=f.getBoundingClientRect()}{if("up"===a){if("BR"===e.tagName){if(l.firstChild.isSameNode(e))return!0;if(e.previousSibling&&(Y.node.isBlock(e.previousSibling)||Y.node.isVoid(e.previousSibling)))return!1}return Math.abs(i.top-s.top)<=6}if("down"===a){if("BR"===e.tagName){if(l.lastChild.isSameNode(e))return!0;if(e.nextSibling&&(Y.node.isBlock(e.nextSibling)||Y.node.isVoid(e.nextSibling)))return l.lastChild.isSameNode(e.nextSibling)||!1}return Math.abs(s.bottom-i.bottom)<=6}}return!1}(Y.selection.ranges(0).startContainer,Y.selection.ranges(0).startOffset,ke.KEYCODE.ARROW_UP==t?"up":"down"))return;e.preventDefault(),e.stopPropagation();var r=j(Z(l)),n=I(a,r);return ke.KEYCODE.ARROW_UP==t?F(n,l,r):ke.KEYCODE.ARROW_DOWN==t&&K(n,l,r),Y.selection.restore(),!1}}}function X(){Y.shared.$table_resizer||(Y.shared.$table_resizer=Z(document.createElement("div")).attr("class","fr-table-resizer").html("<div></div>")),W=Y.shared.$table_resizer,Y.events.$on(W,"mousedown",function(e){return!Y.core.sameInstance(W)||(0<ce().length&&L(),1==e.which?(Y.selection.save(),b=!0,W.addClass("fr-moving"),D(),Y.edit.off(),W.find("div").css("opacity",1),!1):void 0)}),Y.events.$on(W,"mousemove",function(e){if(!Y.core.sameInstance(W))return!0;b&&(Y.opts.iframe&&(e.pageX-=Y.$iframe.offset().left,e.pageY-=Y.$iframe.offset().top),ne(e))});var t=function t(e){b&&P(e)};window.addEventListener("mouseup",t,!0),Y.events.on("destroy",function(){window.removeEventListener("mouseup",t,!0)},!0),Y.events.on("shared.destroy",function(){W.html("").removeData().remove(),W=null},!0),Y.events.on("destroy",function(){Y.$el.find(".fr-selected-cell").removeClass("fr-selected-cell"),Z("body").first().append(W.hide())},!0)}function U(){W&&(W.find("div").css("opacity",0),W.css("top",0),W.css("left",0),W.css("height",0),W.css("width",0),W.find("div").css("height",0),W.find("div").css("width",0),W.css("padding-top",0),W.css("padding-bottom",0),W.css("padding-left",0),W.css("padding-right",0),W.hide())}function q(){c&&c.removeClass("fr-visible").css("left","-9999px")}function J(e,t){if(Y.$box.find(".fr-line-breaker").isVisible())return!1;c||ie(),Y.$box.append(c),c.data("instance",Y);var a,l=Z(t).find("tr").first(),r=e.pageX,n=0,o=0;if(Y.opts.iframe){var i=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-top")),s=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-left"));n+=Y.$iframe.offset().left-Y.helpers.scrollLeft()+s,o+=Y.$iframe.offset().top-Y.helpers.scrollTop()+i}l.find("th, td").each(function(){var e=Z(this);return e.offset().left<=r&&r<e.offset().left+e.outerWidth()/2?(a=parseInt(c.find("a").css("width"),10),c.css("top",o+e.offset().top-Y.$box.offset().top-a-5),c.css("left",n+e.offset().left-Y.$box.offset().left-a/2),c.data("selected-cell",e),c.data("position","before"),c.addClass("fr-visible"),!1):e.offset().left+e.outerWidth()/2<=r&&r<e.offset().left+e.outerWidth()?(a=parseInt(c.find("a").css("width"),10),c.css("top",o+e.offset().top-Y.$box.offset().top-a-5),c.css("left",n+e.offset().left-Y.$box.offset().left+e.outerWidth()-a/2),c.data("selected-cell",e),c.data("position","after"),c.addClass("fr-visible"),!1):void 0})}function Q(e,t){if(Y.$box.find(".fr-line-breaker").isVisible())return!1;c||ie(),Y.$box.append(c),c.data("instance",Y);var a,l=Z(t),r=e.pageY,n=0,o=0;if(Y.opts.iframe){var i=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-top")),s=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-left"));n+=Y.$iframe.offset().left-Y.helpers.scrollLeft()+s,o+=Y.$iframe.offset().top-Y.helpers.scrollTop()+i}l.find("tr").each(function(){var e=Z(this);a=parseInt(c.find("a").css("width"),10);var t=n+e.offset().left-Y.$box.offset().left;return t=0!==Y.$box.offset().left?t-a-5:t+a-5,e.offset().top<=r&&r<e.offset().top+e.outerHeight()/2?(c.css("top",o+e.offset().top-Y.$box.offset().top-a/2),c.css("left",t),c.data("selected-cell",e.find("td").first()),c.data("position","above"),c.addClass("fr-visible"),!1):e.offset().top+e.outerHeight()/2<=r&&r<e.offset().top+e.outerHeight()?(c.css("top",o+e.offset().top-Y.$box.offset().top+e.outerHeight()-a/2),c.css("left",t),c.data("selected-cell",e.find("td").first()),c.data("position","below"),c.addClass("fr-visible"),!1):void 0})}function ee(e,t){var a=Z(e);a.removeClass(t),a.length&&a.get(0).hasAttribute("class")&&!a.attr("class").trim()&&a.removeAttr("class")}function te(e){f=null;var t=Y.doc.elementFromPoint(e.pageX-Y.win.pageXOffset,e.pageY-Y.win.pageYOffset);Y.opts.tableResizer&&(!Y.popups.areVisible()||Y.popups.areVisible()&&Y.popups.isVisible("table.edit"))&&function P(e,t){var a,l=Z(t);l&&(a=l.closest("table"));var r=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)W&&l.get(0)!=W.get(0)&&l.parent().get(0)!=W.get(0)&&Y.core.sameInstance(W)&&U();else{if(l=Z(t),0===Y.$el.find(l).length)return!1;var n=l.offset().left-1,o=n+l.outerWidth(),i=l.offset().top-1,s=i+l.outerHeight();if(Math.abs(e.pageX-n)<=Y.opts.tableResizerOffset||Math.abs(o-e.pageX)<=Y.opts.tableResizerOffset){var c,f,d,p,u,b=j(a),h=I(t,b),g=B(h.row,h.col,b),v=a.offset().top,m=a.outerHeight()-1;"rtl"!=Y.opts.direction?e.pageX-n<=Y.opts.tableResizerOffset?(d=n,0<h.col?(p=n-le(h.col-1,b)+Y.opts.tableResizingLimit,u=n+le(h.col,b)-Y.opts.tableResizingLimit,c=h.col-1,f=h.col):(c=-1,f=0,p=Y.$wp.offset().left-1+parseFloat(r.css("padding-left")),u=Y.opts.proportionalTableResize?a.offset().left-1+a.width()-b[0].length*Y.opts.tableResizingLimit:n+le(h.col,b)-Y.opts.tableResizingLimit)):o-e.pageX<=Y.opts.tableResizerOffset&&(d=o,g.col<b[g.row].length&&b[g.row][g.col+1]?(p=o-le(g.col,b)+Y.opts.tableResizingLimit,u=o+le(g.col+1,b)-Y.opts.tableResizingLimit,c=g.col,f=g.col+1):(c=g.col,f=-1,p=Y.opts.proportionalTableResize?a.offset().left-1+b[0].length*Y.opts.tableResizingLimit:o-le(g.col,b)+Y.opts.tableResizingLimit,u=r.offset().left-1+r.width()-parseFloat(r.css("padding-left")))):o-e.pageX<=Y.opts.tableResizerOffset?(d=o,0<h.col?(p=o-le(h.col,b)+Y.opts.tableResizingLimit,u=o+le(h.col-1,b)-Y.opts.tableResizingLimit,c=h.col,f=h.col-1):(c=null,f=0,p=a.offset().left+b[0].length*Y.opts.tableResizingLimit,u=r.offset().left-1+r.width()+parseFloat(r.css("padding-left")))):e.pageX-n<=Y.opts.tableResizerOffset&&(d=n,g.col<b[g.row].length&&b[g.row][g.col+1]?(p=n-le(g.col+1,b)+Y.opts.tableResizingLimit,u=n+le(g.col,b)-Y.opts.tableResizingLimit,c=g.col+1,f=g.col):(c=g.col,f=null,p=r.offset().left+parseFloat(r.css("padding-left")),u=a.offset().left-1+a.width()-b[0].length*Y.opts.tableResizingLimit)),W||X(),U(),W.removeClass("fr-table-row-resizer"),W.addClass("fr-table-col-resizer"),W.data("table",a),W.data("first",c),W.data("second",f),W.data("instance",Y),Y.$wp.append(W);var C=d-Y.win.pageXOffset-Y.opts.tableResizerOffset-Y.$wp.offset().left,w=v-Y.$wp.offset().top+Y.$wp.scrollTop();if(Y.opts.iframe){var y=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-top")),E=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-left"));C+=Y.$iframe.offset().left+E,w+=Y.$iframe.offset().top+y,p+=Y.$iframe.offset().left,u+=Y.$iframe.offset().left}W.data("max-left",p),W.data("max-right",u),W.data("origin",d-Y.win.pageXOffset),W.css("top",w),W.css("left",C),W.css("height",m),W.find("div").css("height",m),W.css("padding-left",Y.opts.tableResizerOffset),W.css("padding-right",Y.opts.tableResizerOffset),W.show()}else if(Math.abs(e.pageY-i)<=Y.opts.tableResizerOffset||Math.abs(s-e.pageY)<=Y.opts.tableResizerOffset){var A,T,R,x,O,M=j(a),H=I(t,M),S=B(H.row,H.col,M),D=a.offset().left,$=a.outerWidth()-1;e.pageY-i<=Y.opts.tableResizerOffset?(R=i,0<H.row?(x=i-re(H.row-1,M),O=Y.win.outerHeight,A=H.row-1,T=H.row):(A=-1,T=0,x=Y.$el.offset().top-1+parseInt(a.css("margin-top"),10),O=Y.opts.proportionalTableResize?a.offset().top-1+a.height()-M.length*Y.opts.tableResizingLimit:a.offset().top+l.height())):s-e.pageY<=Y.opts.tableResizerOffset&&(R=s,S.row<M.length-1?(x=s-re(S.row,M),O=Y.win.outerHeight,A=S.row,T=S.row+1):(A=S.row,T=-1,x=Y.opts.proportionalTableResize?a.offset().top-1+M.length*Y.opts.tableResizingLimit:s-re(S.row,M),O=Y.win.outerHeight)),W||X(),U(),W.removeClass("fr-table-col-resizer"),W.addClass("fr-table-row-resizer"),W.data("table",a),W.data("first",A),W.data("second",T),W.data("instance",Y),Y.$wp.append(W);var N=D-Y.$wp.offset().left,V=R-Y.$wp.offset().top+Y.$wp.scrollTop()-Y.opts.tableResizerOffset;if(Y.opts.iframe){var _=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-top")),L=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-left"));N+=Y.$iframe.offset().left+L,V+=Y.$iframe.offset().top+_,x+=Y.$iframe.offset().top,O+=Y.$iframe.offset().top}W.data("max-top",x-Y.$wp.offset().top+Y.$wp.scrollTop()-Y.opts.tableResizerOffset),W.data("max-bottom",O-Y.$wp.offset().top+Y.$wp.scrollTop()-Y.opts.tableResizerOffset),W.data("origin",V),W.css("top",V),W.css("left",N),W.css("width",$),W.find("div").css("width",$),W.css("padding-top",Y.opts.tableResizerOffset),W.css("padding-bottom",Y.opts.tableResizerOffset),W.show()}else Y.core.sameInstance(W)&&U()}}(e,t),!Y.opts.tableInsertHelper||Y.popups.areVisible()||Y.$tb.hasClass("fr-inline")&&Y.$tb.isVisible()||function n(e,t){if(0===ce().length){var a,l,r;if(t&&("HTML"==t.tagName||"BODY"==t.tagName||Y.node.isElement(t)))for(a=1;a<=Y.opts.tableInsertHelperOffset;a++){if(l=Y.doc.elementFromPoint(e.pageX-Y.win.pageXOffset,e.pageY-Y.win.pageYOffset+a),Z(l).hasClass("fr-tooltip"))return!0;if(l&&("TH"==l.tagName||"TD"==l.tagName||"TABLE"==l.tagName)&&(Z(l).parents(".fr-wrapper").length||Y.opts.iframe)&&"false"!=Z(l).closest("table").attr("contenteditable"))return J(e,Z(l).closest("table")),!0;if(r=Y.doc.elementFromPoint(e.pageX-Y.win.pageXOffset+a,e.pageY-Y.win.pageYOffset),Z(r).hasClass("fr-tooltip"))return!0;if(r&&("TH"==r.tagName||"TD"==r.tagName||"TABLE"==r.tagName)&&(Z(r).parents(".fr-wrapper").length||Y.opts.iframe)&&"false"!=Z(r).closest("table").attr("contenteditable"))return Q(e,Z(r).closest("table")),!0}Y.core.sameInstance(c)&&q()}}(e,t)}function ae(){if(b){var e=W.data("table").offset().top-Y.win.pageYOffset;if(Y.opts.iframe){var t=Y.helpers.getPX(Y.$wp.find(".fr-iframe").css("padding-top"));e+=Y.$iframe.offset().top-Y.helpers.scrollTop()+t}W.css("top",e)}}function le(e,t){var a,l=Z(t[0][e]).outerWidth();for(a=1;a<t.length;a++)l=Math.min(l,Z(t[a][e]).outerWidth());return l}function re(e,t){var a,l=Z(t[e][0]).outerHeight();for(a=1;a<t[e].length;a++)l=Math.min(l,Z(t[e][a]).outerHeight());return l}function ne(e){if(1<ce().length&&u&&D(),!1===u&&!1===p&&!1===b)f&&clearTimeout(f),Y.edit.isDisabled()&&!Y.popups.isVisible("table.edit")||(f=setTimeout(te,30,e));else if(b)if(W.hasClass("fr-table-col-resizer")){var t=e.pageX-Y.win.pageXOffset;Y.opts.iframe&&(t+=Y.$iframe.offset().left);var a=W.data("max-left"),l=W.data("max-right");a<=t&&t<=l?W.css("left",t-Y.opts.tableResizerOffset-Y.$wp.offset().left):t<a&&parseFloat(W.css("left"),10)>a-Y.opts.tableResizerOffset?W.css("left",a-Y.opts.tableResizerOffset-Y.$wp.offset().left):l<t&&parseFloat(W.css("left"),10)<l-Y.opts.tableResizerOffset&&W.css("left",l-Y.opts.tableResizerOffset-Y.$wp.offset().left)}else{var r=e.pageY-Y.win.pageYOffset;Y.opts.iframe&&(r+=Y.$iframe.offset().top);var n,o,i=W.data("max-top"),s=W.data("max-bottom");n=Y.opts.height?(o=r-Y.opts.tableResizerOffset-Y.$wp.offset().top+Y.$wp.scrollTop(),Y.opts.iframe&&(s=Y.win.innerHeight),o):(o=r-Y.opts.tableResizerOffset-Y.$wp.offset().top+Y.helpers.scrollTop(),Y.opts.iframe&&(o=r-Y.opts.tableResizerOffset-Y.$wp.offset().top),s=Y.win.innerHeight,e.clientY),i<=o&&n<=s&&W.css("top",o)}else u&&q()}function oe(e){Y.node.isEmpty(e.get(0))?Y.opts.keepTextFormatOnTable&&Y.browser.mozilla?e.append(ke.MARKERS):e.prepend(ke.MARKERS):e.prepend(ke.START_MARKER).append(ke.END_MARKER)}function ie(){Y.shared.$ti_helper||(Y.shared.$ti_helper=Z(document.createElement("div")).attr("class","fr-insert-helper").html('<a class="fr-floating-btn" role="button" tabIndex="-1" title="'.concat(Y.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>')),Y.events.bindClick(Y.shared.$ti_helper,"a",function(){var e=c.data("selected-cell"),t=c.data("position"),a=c.data("instance")||Y;"before"==t?(Y.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertColumn(t),e.removeClass("fr-selected-cell"),Y.undo.saveStep()):"after"==t?(Y.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertColumn(t),e.removeClass("fr-selected-cell"),Y.undo.saveStep()):"above"==t?(Y.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertRow(t),e.removeClass("fr-selected-cell"),Y.undo.saveStep()):"below"==t&&(Y.undo.saveStep(),e.addClass("fr-selected-cell"),a.table.insertRow(t),e.removeClass("fr-selected-cell"),Y.undo.saveStep()),q()}),Y.events.on("shared.destroy",function(){Y.shared.$ti_helper.html("").removeData().remove(),Y.shared.$ti_helper=null},!0),Y.events.$on(Y.shared.$ti_helper,"mousemove",function(e){e.stopPropagation()},!0),Y.events.$on(Z(Y.o_win),"scroll",function(){q()},!0),Y.events.$on(Y.$wp,"scroll",function(){q()},!0)),c=Y.shared.$ti_helper,Y.events.on("destroy",function(){c=null}),Y.tooltip.bind(Y.$box,".fr-insert-helper > a.fr-floating-btn")}function se(){l=null,clearTimeout(f)}function ce(){return Y.el.querySelectorAll(".fr-selected-cell")}function fe(){var e=ce(),t=Y.$el.find("table.fr-selection-handle-selected");if(e.length){for(var a=e[0];a&&"TABLE"!=a.tagName&&a.parentNode!=Y.el;)a=a.parentNode;return a&&"TABLE"==a.tagName?Z(a):Z([])}return t.length?Z(t.get(0)):Z([])}function de(e){var t=Y.popups.get("table.tableProperties"),a=t.find(".fr-table-alignment-container"),l=a.find(".fr-table-".concat(e,"-align")).get(0);a.find(".fr-table-left-align").get(0).innerHTML=Y.icon.create("leftTableAlign"),a.find(".fr-table-center-align").get(0).innerHTML=Y.icon.create("centerTableAlign"),a.find(".fr-table-right-align").get(0).innerHTML=Y.icon.create("rightTableAlign"),l.innerHTML=Y.icon.create("".concat(e,"TableAlignActive")),l.focus(),t.data("tableAlign",e)}function pe(){var e={buttons:"",table_properties_form:'\n <div class="fr-table-properties-form">\n <div class="fr-table-properties-section">\n <label>'.concat(Y.language.translate("Background"),'</label>\n <div class="fr-table-bg-container">\n <div class="fr-input-line">\n <input type="text" title="').concat(Y.language.translate("Custom background color input"),'" id="fr-table-bg" class="fr-input" placeholder="').concat(Y.language.translate("Color"),'" tabIndex="1" aria-required="true">\n </div>\n <button title="').concat(Y.language.translate("Background color picker"),'" role="button" type="button" class="fr-command fr-enable-accessibility fr-btn-table-bg-color" data-param1="table" tabIndex="2" data-cmd="openColorPicker">\n <div class="fr-color-preview">\n <div class="fr-color-preview-indicator"></div>\n </div>\n </button>\n </div>\n <label>').concat(Y.language.translate("Border"),'</label>\n <div class="fr-table-border-container">\n <div class="fr-input-line">\n <label class="fr-field-lable">').concat(Y.language.translate("Style"),'</label>\n <div class= "fr-buttons fr-border-style"> ').concat(Y.button.build("tableBorderStyle",ke.COMMANDS.tableBorderStyle,!0),'</div>\n </div>\n <div class="fr-input-line">\n <input title="').concat(Y.language.translate("Custom border color input"),'" id="fr-table-border-color" class="fr-input" type="text" placeholder="').concat(Y.language.translate("Color"),'" tabIndex="3" aria-required="true">\n </div>\n <button title="').concat(Y.language.translate("Border color picker"),'" role="button" type="button" class="fr-command fr-btn-table-border-bg-color fr-enable-accessibility" tabIndex="4" data-param1="border" data-cmd="openColorPicker">\n <div class="fr-border-color-preview">\n <div class="fr-border-color-preview-indicator"></div>\n </div>\n </button>\n <div class="fr-input-line">\n <input title="').concat(Y.language.translate("Border width"),'" id="fr-table-border-width" type="text" class="fr-input" placeholder="').concat(Y.language.translate("Width"),'" tabIndex="5" aria-required="true">\n </div>\n </div>\n <div class="fr-table-dimensions-section">\n <div>\n <label>').concat(Y.language.translate("Dimensions"),'</label>\n <div class="fr-table-dimensions-container">\n <div class="fr-input-line">\n <input title="').concat(Y.language.translate("Table width"),'" type="text" id="fr-table-width" placeholder="').concat(Y.language.translate("Width"),'" tabIndex="6">\n </div>\n <span class="fr-dimension-separator">\xd7</span>\n <div class="fr-input-line">\n <input title="').concat(Y.language.translate("Table height"),'" type="text" id="fr-table-height" placeholder="').concat(Y.language.translate("Height"),'" tabIndex="7">\n </div>\n </div>\n </div>\n <div class="fr-table-alignment-section">\n <label>').concat(Y.language.translate("Alignment"),'</label>\n <div class="fr-table-alignment-container">\n <button title="').concat(Y.language.translate("Left align"),'" class="fr-enable-accessibility fr-command fr-table-left-align" data-param1="left" data-cmd="tableAlign" tabIndex="8">').concat(Y.icon.create("leftTableAlign"),'</button>\n <button title="').concat(Y.language.translate("Center align"),'" class="fr-enable-accessibility fr-command fr-table-center-align" data-param1="center" data-cmd="tableAlign" tabIndex="9">').concat(Y.icon.create("centerTableAlign"),'</button>\n <button title="').concat(Y.language.translate("Right align"),'" class="fr-enable-accessibility fr-command fr-table-right-align" data-param1="right" data-cmd="tableAlign" tabIndex="10">').concat(Y.icon.create("rightTableAlign"),"</button>\n </div>\n </div>\n </div>\n <label>").concat(Y.language.translate("Table Style"),'</label>\n <div class="fr-table-style-container">\n <div class="fr-input-line">\n <label class="fr-field-lable">').concat(Y.language.translate("Style"),'</label>\n <div class= "fr-buttons fr-table-style"> ').concat(Y.button.build("tableStyle",ke.COMMANDS.tableStyle,!0),'</div>\n </div>\n </div>\n </div>\n <div class="fr-table-properties-buttons">\n <button role="button" type="button" class="fr-enable-accessibility fr-command fr-cancel-button" tabIndex="11" data-cmd="onCancel">').concat(Y.language.translate("Cancel"),'</button>\n <button role="button" type="button" class="fr-enable-accessibility fr-command fr-save-button" tabIndex="12" data-cmd="applyTableProperties">').concat(Y.language.translate("Save"),"</button>\n </div>\n </div>\n ")},n=Y.popups.create("table.tableProperties",e),t=function t(e,l,r){n.find(e).on("keydown",function(t){var e=Z(t.target),a=t.which;a!==ke.KEYCODE.ENTER&&a!==ke.KEYCODE.ARROW_DOWN&&a!==ke.KEYCODE.SPACE||e.hasClass("fr-active")||!e.is("button")||(l&&r&&Y.button.click(e),t.preventDefault(),t.stopPropagation()),setTimeout(function(){if(a===ke.KEYCODE.TAB&&l&&r){var e=t.shiftKey?n.find(l):n.find(r);e&&e.length&&e.focus(),t.preventDefault(),t.stopPropagation()}},10)})};return t(".fr-border-style > button",".fr-btn-table-bg-color","#fr-table-border-color"),t(".fr-border-style > .fr-dropdown-menu li",".fr-btn-table-bg-color","#fr-table-border-color"),t(".fr-table-style > button",".fr-table-right-align",".fr-cancel-button"),t(".fr-table-style > .fr-dropdown-menu li",".fr-table-right-align",".fr-cancel-button"),t(".fr-save-button",".fr-cancel-button","#fr-table-bg"),n}function t(){p=!1}function ue(e,t){var a=e.find("colgroup");0===a.length&&(a=Z(Y.doc.createElement("colgroup")),e.prepend(a));var l=a.find("col").length;if(l<t)for(var r=l;r<t;r++)a.append(Z(Y.doc.createElement("col")));else t<l&&a.find("col").slice(t).remove();return he(a,be(e)),e.find("th, td").each(function(){Z(this).css("width","")}),a}function be(e){var t=[];return e.find("colgroup").find("col").each(function(){var e=Math.round(Z(this).width())||0;t.push(e)}),t}function he(e,t){var a=e.find("col"),l=t.reduce(function(e,t){return e+t},0);if(.01<Math.abs(l-100)){var r=100/l;t=t.map(function(e){return e*r})}a.each(function(e){e<t.length&&Z(this).css("width",t[e].toFixed(4)+"%")})}function ge(e,t){e.css("height","");var a=e.height(),l=e.find("tr"),r=(t-a)/l.length;l.each(function(){var e=Z(this),t=e.outerHeight(),a=Math.max(t+r,Y.opts.tableResizingLimit);e.css("height",a+"px")}),e.css("height","".concat(t,"px"))}function ve(){ee(Y.$el.find("table.fr-selection-handle-selected"),"fr-selection-handle-selected fr-selection-handle-hover"),Y.$box.find(".fr-selection-handle").addClass("fr-selection-handle-inactive")}return{_init:function me(){if(!Y.$wp)return!1;if(Y.helpers.isMobile()&&(Y.events.$on(Y.$el,"mousedown",e),Y.events.$on(Y.$win,"mouseup",P)),!Y.helpers.isMobile()){b=p=u=!1,Y.events.$on(Y.$el,"mousedown",e),Y.popups.onShow("image.edit",function(){S(),p=u=!1}),Y.popups.onShow("link.edit",function(){S(),p=u=!1}),Y.events.$on(Y.$el,"mouseover","th, td",k),Y.events.$on(Y.$win,"mouseup",P),Y.opts.iframe&&Y.events.$on(Z(Y.o_win),"mouseup",P),Y.events.$on(Y.$win,"mousemove",ne),Y.events.$on(Z(Y.o_win),"scroll",ae),Y.events.on("contentChanged",function(){0<ce().length&&!Y.popups.isVisible("table.tableProperties")&&(C(),Y.$el.find("img").on("load.selected-cells",function(){Z(this).off("load.selected-cells"),0<ce().length&&C()}))}),Y.events.$on(Z(Y.o_win),"resize",function(){S()}),Y.events.on("toolbar.esc",function(){if(0<ce().length)return Y.events.disableBlur(),Y.events.focus(),!1},!0),Y.events.$on(Z(Y.o_win),"keydown",function(){u&&p&&(p=u=!1,Y.$el.removeClass("fr-no-selection"),Y.edit.on(),Y.selection.setAtEnd(Y.$el.find(".fr-selected-cell").last().get(0)),Y.selection.restore(),S())}),Y.events.$on(Y.$el,"keydown",function(e){e.shiftKey?!1===function o(e){var t=ce();if(null!=t&&0<t.length){var a,l=j(),r=e.which,n=I(1==t.length?a=t[0]:(a=Y.el.querySelector(".fr-cell-fixed"),Y.el.querySelector(".fr-cell-handler")),l);if(ke.KEYCODE.ARROW_RIGHT==r){if(n.col<l[0].length-1)return V(a,l[n.row][n.col+1]),!1}else if(ke.KEYCODE.ARROW_DOWN==r){if(n.row<l.length-1)return V(a,l[n.row+1][n.col]),!1}else if(ke.KEYCODE.ARROW_LEFT==r){if(0<n.col)return V(a,l[n.row][n.col-1]),!1}else if(ke.KEYCODE.ARROW_UP==r&&0<n.row)return V(a,l[n.row-1][n.col]),!1}}(e)&&setTimeout(function(){C()},0):G(e)}),Y.events.on("keydown",function(e){if(!1===function v(e){if(e.which==ke.KEYCODE.TAB){var t;if(0<ce().length)t=Y.$el.find(".fr-selected-cell").last();else{var a=Y.selection.element();"TD"==a.tagName||"TH"==a.tagName?t=Z(a):a!=Y.el&&(0<Z(a).parentsUntil(Y.$el,"td").length?t=Z(a).parents("td").first():0<Z(a).parentsUntil(Y.$el,"th").length&&(t=Z(a).parents("th").first()))}if(t)return e.preventDefault(),!!(0===Y.selection.get().focusOffset&&0<Z(Y.selection.element()).parentsUntil(Y.$el,"ol, ul").length&&(0<Z(Y.selection.element()).closest("li").prev().length||Z(Y.selection.element()).is("li")&&0<Z(Y.selection.element()).prev().length))||(L(),e.shiftKey?0<t.prev().length?oe(t.prev()):0<t.closest("tr").length&&0<t.closest("tr").prev().length?oe(t.closest("tr").prev().find("td").last()):0<t.closest("tbody").length&&0<t.closest("table").find("thead tr").length&&oe(t.closest("table").find("thead tr th").last()):0<t.next().length?oe(t.next()):0<t.closest("tr").len