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) • 42.8 kB
JavaScript
/*!
* froala_editor v4.7.1 (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(le){"use strict";function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=Array(t);a<t;a++)n[a]=e[a];return n}function B(e){return function t(e){if(Array.isArray(e))return i(e)}(e)||function a(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function n(e,t){if(e){if("string"==typeof e)return i(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)?i(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.")}()}le=le&&le.hasOwnProperty("default")?le["default"]:le,Object.assign(le.DEFAULTS,{trackChangesEnabled:!1,showChangesEnabled:!1}),le.PLUGINS.track_changes=function(X){var z=X.$;z.fn.isAfter=function(e){var t=z(this),a=t.parents(),n=e.parents(),r=t;for(var i in a){var l=e;if(a.hasOwnProperty(i)){var s=z(a[i]);for(var o in n)if(n.hasOwnProperty(o)){var d=z(n[o]);if(s[0]===d[0]){var c=r.index();return l.index()<c}l=d}r=s}}return!1};var C,r,l=[],W="",Q="",J="",Z="",E=[],i=[],S=null,ee=[],c=!1,te=!1,ae=null;X.events.on("keydown",function(e){var t;if(!X.opts.trackChangesEnabled)return!0;if(X.keys.ctrlKey(e)&&e.keyCode===le.KEYCODE.F)return!0;var a=e.which,n=X.$el.find("table.fr-selection-handle-selected");if(n.length&&!X.keys.isArrow(a)&&a!==le.KEYCODE.TAB&&a!==le.KEYCODE.ALT&&a!==le.KEYCODE.ESC){if(e.ctrlKey||e.metaKey||a===le.KEYCODE.SHIFT)return;n.removeClass("fr-selection-handle-selected"),X.selection.get().collapse(n.get(0));var r=n.get(0);if(r&&r.parentNode){var i,l=null,s=a===le.KEYCODE.ENTER;if(A(n),r.nextSibling&&r.nextSibling.nodeType===Node.ELEMENT_NODE||e.which==le.KEYCODE.BACKSPACE||e.which==le.KEYCODE.DELETE)l=r.nextSibling;else{i=X.html.defaultTag();var o=(i=s?null:i)?"<".concat(i,' id="cursor-marker"></').concat(i,">"):' <br id="cursor-marker">';X.html.insert(o,!0,!0),l=X.$el.find("#cursor-marker").get(0)}if(l&&l.nodeType===Node.ELEMENT_NODE){var d=X.doc.createRange();d.selectNodeContents(l),d.collapse(!0);var c=X.selection.get();c.removeAllRanges(),c.addRange(d),l.removeAttribute("id")}}}if(C=null===(t=X.selection.get())||void 0===t||null===(t=t.focusNode)||void 0===t?void 0:t.nodeValue,X.helpers.isAndroid()){var g,f,h=X.selection.get();W=null==h||null===(g=h.focusNode)||void 0===g?void 0:g.nodeValue,Q=null==h?void 0:h.focusNode,Z=null===(f=Q)||void 0===f?void 0:f.nextSibling,J=null==h?void 0:h.focusOffset}else if(function b(e){return(!X.keys.ctrlKey(e)||e.which!==le.KEYCODE.Z&&e.which!==le.KEYCODE.C)&&(48<=e.keyCode&&e.keyCode<=57||65<=e.keyCode&&e.keyCode<=90||97<=e.keyCode&&e.keyCode<=122||186<=e.keyCode&&e.keyCode<=222||13===e.keyCode||8===e.keyCode||32===e.keyCode||46===e.keyCode||96<=e.keyCode&&e.keyCode<=111)}(e))if(!X.keys.ctrlKey(e)||"b"!==e.key&&"i"!==e.key&&"u"!==e.key){if(X.keys.ctrlKey(e)&&"a"===e.key||X.keys.ctrlKey(e)&&"s"===e.key||X.keys.ctrlKey(e)&&"x"===e.key)return;te=te&&X.keys.ctrlKey(e)&&"v"===e.key,X.markers.insert();var p=X.$el.find(".fr-marker"),u=p.get(0),k=u?u.previousElementSibling||u.parentNode.previousElementSibling:null;if(k&&z(k).data("enter-key")&&!e.ctrlKey){var v=X.selection.get(),m=X.doc.createRange();m.setStartBefore(k),m.collapse(!0),v.removeAllRanges(),v.addRange(m)}z(p).remove(),N(e)}else y()},!0),X.events.on("copy",function(e){if(!X.opts.trackChangesEnabled)return!0;var t=X.$el.find("table.fr-selection-handle-selected");te=!!t.length},!0),X.events.on("cut",function(e){if(!X.opts.trackChangesEnabled)return!0;for(var t=X.selection.get().getRangeAt(0).cloneContents(),a="",n="",r=0;r<t.childNodes.length;r++){var i=t.childNodes[r],l=i.outerHTML,s=i.textContent;i.nodeType===Node.TEXT_NODE&&(s=l=i.textContent.replace(/\u200B/g,"")),a+=l,n+=s}X.paste.saveCopiedText(a,n,!0),e.preventDefault();var o=X.$el.find("table.fr-selection-handle-selected");if(te=!!o.length,o.length){o.removeClass("fr-selection-handle-selected");var d=o.next().get(0);if(d){var c=X.doc.createRange();c.setStart(d,0),c.collapse(!0);var g=X.selection.get();g.removeAllRanges(),g.addRange(c)}else X.selection.get().collapse(o.get(0));X.track_changes.removedTable(o)}else N(e)},!0),X.events.on("keyup",function(e){if(!X.opts.trackChangesEnabled)return!0;var t;if(X.helpers.isMobile())if(r=null===(t=X.selection.get())||void 0===t||null===(t=t.focusNode)||void 0===t?void 0:t.nodeValue,c){for(var a=0;a<ee.length;a++)X.opts.showChangesEnabled&&z(ee[a].span).empty(),z(ee[a].span).prepend(ee[a]["delete"]);c=!(ee=[])}else if(X.helpers.isIOS()){for(var n=0;n<ee.length;n++)r&&1===r.length&&C&&1==C.length?(z(ee[n]["delete"]).attr("contenteditable","true"),z(ee[n]["delete"]).addClass("fr-ios-mobile-disable-select")):z(ee[n]["delete"]).attr("contenteditable","false");ee=[]}else{if(46===e.keyCode)return!0;N(e)}},!0),X.events.on("beforeinput",function(e){var t=e.originalEvent,a=!1;if(!X.opts.trackChangesEnabled)return!0;if(X.helpers.isAndroid()){var n=X.selection.get(),r=X.selection.ranges(0),i=r.startContainer,l=r.endContainer,s=z(i).parentsUntil(X.$el,"[data-tracking=true]"),o=z(l).parentsUntil(X.$el,"[data-tracking=true]");if("insertCompositionText"===t.inputType)if(""===t.data)a=!0;else if(n.toString().length>t.data.length){if(0<s.length||0<o.length)return c=!0,e.preventDefault(),!1;a=!0,e.composing=!0}if("insertText"!==t.inputType||X.selection.isCollapsed()||(a=!0),a||"deleteContentBackward"===t.inputType){var d;if(c=!0,i.lastChild&&!n.toString()&&null!==(d=i.lastChild.children)&&void 0!==d&&null!==(d=d.item(0))&&void 0!==d&&d.hasAttribute("contenteditable"))return;e.keyCode=8,e.deletion=!0,N(e)}}},!0),X.events.on("cell.replaced",function(e,t){if(!X.opts.trackChangesEnabled)return!0;if(e&&t){var a=X.track_changes.getPendingChanges().length-1,n="pending-".concat(X.id,"-").concat(a),r=e.cloneNode(!0);i(r,!0),t.parentNode&&t.parentNode.insertBefore(r,t),i(t,!1),!X.track_changes.getPendingChanges().includes("".concat(n))&&X.track_changes.pushChange(n)}function i(e){if(1<arguments.length&&arguments[1]!==undefined&&arguments[1]){var t=document.createElement("span");for(t.setAttribute("data-tracking-deleted","true"),t.setAttribute("contenteditable","false"),t.classList.add("fr-tracking-deleted");e.firstChild;)t.appendChild(e.firstChild);e.appendChild(t),e.classList.add("fr-track-hide"),e.setAttribute("data-track-id",n),z(e).data("cell-deleted","true")}else{var a=X.opts.showChangesEnabled?"fr-highlight-change":"";e.setAttribute("data-tracking","true"),e.setAttribute("data-track-id",n),e.classList.add(a)}}}),X.events.on("paste.before",function(e){X.opts.trackChangesEnabled&&X.helpers.isMobile()&&N(e)},!0),X.events.on("paste.after",function(e){if(X.opts.trackChangesEnabled){X.markers.insert();for(var t=X.$el.find(".fr-marker"),a=t.next();a.is("br");){var n=a.next();a.remove(),a=n}if(a.is("ul")||a.is("ol")){var r=t.closest("ul, ol"),i=a.children("li");i.find("[data-tracking=true]").add(i.closest("[data-tracking=true]")).addClass("fr-highlight-change");var l=0<a.closest("li").next().length?a.closest("li").next():function o(e){return e.append('<li data-temp-li="true"></li>').find("li").last()}(r);i.each(function(){var e=z(this),t="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),a=X.opts.showChangesEnabled?'class="fr-highlight-change"':"";z('<li><span data-tracking="true" data-track-id="'.concat(t,'" ').concat(a,">").concat(e.html(),"</span></li>")).insertBefore(l),X.track_changes.pushChange(t)});var s=r.find("li[data-temp-li=true");0<s.length&&s.remove(),a.remove()}X.markers.remove()}},!0),X.events.on("image.inserted",function(e){X.helpers.isMobile()&&X.opts.trackChangesEnabled&&e.data("tracking-img",!0)}),X.events.on("image.removed",function(e){if(X.helpers.isMobile()&&X.opts.trackChangesEnabled&&!e.data("tracking-img")&&!e.parent().data("tracking")){var t=X.selection.ranges(0).startContainer,a=z(t).parentsUntil(X.$el,"[data-tracking=true]");X.markers.insert();var n=X.$el.find(".fr-marker"),r="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),i=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",l=z('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span>")),s=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');X.opts.showChangesEnabled||s.addClass("fr-track-hide"),e.data("tracking-img",!0),z(t).data("tracking")||a.length?(z(n).replaceWith(s),z(s).append(e),X.markers.remove()):(z(n).replaceWith(l),z(l).prepend(s),z(s).append(e),X.markers.remove(),X.track_changes.pushChange(r))}}),X.events.on("commands.before",function(t){if(!X.opts.trackChangesEnabled)return!0;var e=["applytextColor","bold","italic","underline","strikeThrough","subscript","superscript","fontFamily","fontSize","textColor","applybackgroundColor","inlineClass","inlineStyle","alignLeft","alignCenter","formatOLSimple","alignRight","alignJustify","formatOL","formatUL","paragraphFormat","paragraphStyle","lineHeight","outdent","indent","quote"];if(["change","applyAll","applyLast","removeLast","showChanges","trackChanges","moreTrackChanges","undo","redo","fullscreen","print","getPDF","spellChecker","selectAll","html","help"].filter(function(e){return e===t}).length||e.filter(function(e){return e===t}).length){if(e.filter(function(e){return e===t}).length&&"paragraphFormat"!==t&&"paragraphStyle"!==t&&"lineHeight"!==t){if("true"==z(X.selection.element()).data("enter-key"))return!1;y(t)}else if("paragraphFormat"===t||"paragraphStyle"===t||"lineHeight"===t){X.selection.save();for(var a=X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),i=z('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(n,"></span>")),l=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false" style="display:none"></span>'),s=a.parentNode.cloneNode(!0),o=s.childNodes,d=0;d<o.length;)o[d].className&&"fr-marker"===o[d].className?o[d].remove():d++;z(l).append(s),z(i).append(l),z(a.parentNode).after(z("<p></p>")),z(a.parentNode.nextSibling).append(i),i=z('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(n,"></span>")),z(a.parentNode.nextSibling).after(z("<p></p>")),z(a.parentNode.nextSibling.nextSibling).append(i),i.append(a.parentNode),X.track_changes.pushChange(r),X.selection.restore()}}else{if(le.COMMANDS[t]&&(le.COMMANDS[t].hasOwnProperty("type")&&"dropdown"===le.COMMANDS[t].type||le.COMMANDS[t].more_btn||le.COMMANDS[t].popup)){if("insertImage"!=t&&"insertFile"!=t)return}else if("clearFormatting"===t){if(X.opts.trackChangesEnabled){S=X.selection.blocks();for(var c=[],g=0,f=0;f<S.length;f++){g=f<g?g:f;var h=z(S[f]);if(h.is("li"))h.siblings("li").each(function(e,t){z(t).find("li").length&&(c.push({index:g,item:t}),g+=1)});E[f]=z("<span>".concat(h.get(0).innerHTML,"</span>"))}for(var p=0,u=c;p<u.length;p++){var k=u[p],v=k.index,m=k.item,b=z(z(m).get(0).outerHTML);b.find("ul").remove(),b.find("ol").remove(),E=[].concat(B(E.slice(0,v+1)),[z("<span>".concat(b.get(0).innerHTML,"</span>"))],B(E.slice(v+1))),S=[].concat(B(S.slice(0,v+1)),[m],B(S.slice(v+1)))}}return}N()}},!0),X.events.on("commands.after",function(e){if(!X.opts.trackChangesEnabled)return!0;if(0<=["undo","redo"].indexOf(e))!function r(){var e=X.$el.find("[data-tracking=true]");l.splice(0,l.length);for(var t=0;t<e.length;t++){var a=z(e.get(t)).data("track-id");l[a.slice(a.lastIndexOf("-")+1)]=a}}();else if("clearFormatting"==e&&X.opts.trackChangesEnabled){var t="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length);for(var a in S){var n=z(S[a]);E[a]&&(p(n,E[a],t),E[a]=null,i[a]=null)}X.track_changes.pushChange(t),E=[],S=null}},!0),X.events.on("quickInsert.commands.before",function(e){X.opts.trackChangesEnabled&&N(e)}),X.events.on("findandreplace.beforeOnReplace",function(e){if(X.opts.trackChangesEnabled){var t=X.$el.find(".fr-find-replace-current-highlight").get(0),a=X.doc.createRange();a.selectNodeContents(t);var n=X.selection.get();n.removeAllRanges(),n.addRange(a),X.selection.save(),X.$el.get(0).querySelectorAll(".fr-find-replace-current-highlight").forEach(function(e){e.classList.remove("fr-find-replace-current-highlight"),e.classList.remove("fr-find-replace-highlight")}),N(e),X.markers.insert()}});var s=null,o=!1,d=null;function g(e){var t=null;if("undefined"!=typeof X.doc.caretPositionFromPoint){var a=X.doc.caretPositionFromPoint(e.clientX,e.clientY);t={offsetNode:a.offsetNode,offset:a.offset}}else if("undefined"!=typeof X.doc.caretRangeFromPoint){var n=X.doc.caretRangeFromPoint(e.clientX,e.clientY);t={offsetNode:n.startContainer,offset:n.startOffset}}return t}function f(){return l.pop()}function N(e){var t=!(!e||8!=e.keyCode),a=e&&13==e.keyCode,n=!(!e||46!=e.keyCode);if(X.opts.trackChangesEnabled){X.selection.restore(),e&&e.composing&&(X.selection.save(),X.selection.ranges()[0].collapse(!1));var r=X.selection.ranges(0),i=r.startContainer,l=!1,s=t&&0===r.startOffset&&X.$el.get(0).firstChild===i;if(t){var o="\u200b"===i.textContent;if((0===r.startOffset||o)&&X.$el.get(0).firstChild!==i&&i!==document){for(var d=re(i)?re(i):re(X.node.blockParent(i)),c=re(i),g=null;d&&d.nodeType===Node.TEXT_NODE&&1===d.length&&8203===d.textContent.charCodeAt(0);)d=re(d);if(d&&0===r.startOffset){if(l=!0,g=z(i=d).data("enter-key")?d:z(d).find('[data-enter-key="true"]').get(0))return void z(g).remove();if(!c)return}for(var f=i.nodeType===Node.TEXT_NODE?i.parentNode.previousSibling:i.previousSibling;f&&f.nodeType===Node.ELEMENT_NODE&&(f.classList.contains("fr-marker")||"BR"===f.tagName||"\u200b"===f.textContent);)f=f.previousSibling;if(f&&z(f).data("enter-key"))return void z(f).remove()}}var h=z(i).parentsUntil(X.$el,"[data-tracking=true]");if(z(i).data("tracking")&&t){X.markers.insert();var p=X.$el.find(".fr-marker");return p[0].previousSibling&&"IMG"===p[0].previousSibling.tagName||X.selection.clear(),void z(p).remove()}if(!h.length||z(i).data("tracking-deleted")&&t||"TD"==i.tagName||a){if(X.selection.isCollapsed()){if(l){var u=i;if(u&&u.nodeType!==Node.TEXT_NODE&&0<u.childNodes.length){for(var k=null,v=u.childNodes.length-1;0<=v;v--)if(u.childNodes[v].nodeType===Node.TEXT_NODE){k=u.childNodes[v];break}null!==k&&(u=k)}var m=r.cloneRange();m.setStart(u,u.length),m.setEnd(u,u.length),X.selection.get().removeAllRanges(),X.selection.get().addRange(m)}var b="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),C=X.opts.showChangesEnabled?'class="fr-highlight-change"':"";if(a&&!e.ctrlKey&&!e.metaKey){var E=!1;0===i.textContent.length&&"true"===z(i.parentNode).data("tracking")&&(i.parentNode.remove(),E=!0),ae=X.snapshot.get(),X.markers.insert();var S,N=X.$el.find(".fr-marker");if(!z(i.parentNode).data("tracking")||E){C=z(i.parentNode).hasClass("fr-highlight-change")&&!E?"":C,S=z('<span data-tracking="true" contenteditable="false" data-enter-key="true" data-track-id="'.concat(b,'" ').concat(C,">↵</span>"))[0],X.opts.showChangesEnabled||z(S).addClass("fr-track-visibility-hidden");var y=N[0].previousSibling;if(y&&"BR"===y.tagName){"BR"===y.previousSibling.tagName&&y.previousSibling.remove();var A=z('<span data-remove-element="true" class="fr-track-hide" data-track-id="'.concat(b,'" contenteditable="false" > </span>'));N.before(A[0])}N.before(S),X.track_changes.pushChange(b)}var x,T=N[N.length-1];!T.nextSibling&&e.shiftKey&&(x=z(X.doc.createTextNode("\u200b")).get(0),z(T).after(x));var R=r.cloneRange(),_=X.selection.get();return R.setStartBefore(T),R.setEndAfter(T),_.removeAllRanges(),_.addRange(R),void setTimeout(function(){if(x){var e=X.$el.find('[data-track-id="'.concat(b,'"][data-enter-key="true"]')).get(0),t=e?e.nextSibling:null;if((x=t?t.nextSibling:null)&&"\u200b"===x.textContent){var a=r.cloneRange(),n=X.selection.get();x.remove(),a.setStartAfter(t.nextSibling),a.setEndAfter(t.nextSibling),n.removeAllRanges(),n.addRange(a)}}},20)}!l&&s||e&&"drop"===e.type&&0<X.$el.find(".fr-marker").length||X.markers.insert();var M=X.$el.find(".fr-marker");if(e&&e.composing&&(M=z(M[1])),!M.length)return;if(t||n){if(t){if(!M[0].previousSibling||M[0].previousSibling.nodeType!==Node.ELEMENT_NODE||!M[0].previousSibling.lastChild||M[0].previousSibling.lastChild.nodeType!==Node.ELEMENT_NODE||"IMG"!==M[0].previousSibling.lastChild.tagName){for(;z(M[0].previousSibling).data("tracking");)M.insertBefore(M.prev());z(M[0].previousSibling).find("[data-tracking=true]").length&&M.insertBefore(z(M[0].previousSibling).find("[data-tracking=true]").eq(0))}}else if(z(i).data("tracking")){if(!i.nextSibling)return void(M[0].nextSibling&&"IMG"===M[0].nextSibling.tagName&&M[0].nextSibling.remove());M.insertBefore(i.nextSibling),ne(M)}else ne(M);var L=M[0]&&M[0].previousSibling?M[0].previousSibling.nodeValue:"",$=L&&L.slice(0,-(e.selectionLength?e.selectionLength:1));n&&(M[0].nextSibling&&"SPAN"!==M[0].nextSibling.tagName&&null===M[0].nextSibling.nodeValue&&M[0].nextSibling.firstChild&&M[0].nextSibling.firstChild.before(M[0]),$=(L=M[0].nextSibling?M[0].nextSibling.nodeValue:" ")&&L.slice(1)),n&&M[0].nextSibling&&1===M[0].nextSibling.nodeType&&M[0].nextSibling.getAttribute("data-pasted")?$=(L=M[0].nextSibling?M[0].nextSibling.textContent:" ")&&L.slice(1):t&&M[0].previousSibling&&1===M[0].previousSibling.nodeType&&M[0].previousSibling.getAttribute("data-pasted")&&($=(L=M[0].previousSibling?M[0].previousSibling.textContent:" ")&&L.slice(0,-(e.selectionLength?e.selectionLength:1)));var w,O=z('<span data-tracking="true" data-track-id="'.concat(b,'" ').concat(C,"></span>")),I=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" '.concat(X.helpers.isIOS()?"":'contenteditable="false"',"></span>"));X.opts.showChangesEnabled||(X.helpers.isMobile()?I.addClass("fr-track-hide-mobile"):I.addClass("fr-track-hide"));var P=!1,D=!1;if(t)try{var K=M[0]&&M[0].previousSibling;if(M[0]&&M[0].previousElementSibling&&"I"===M[0].previousElementSibling.tagName&&!L&&(w=M[0].previousElementSibling),K&&3===K.nodeType&&"SPAN"!==K.parentNode.tagName&&K.previousSibling&&"SPAN"===K.previousSibling.tagName&&" "===K.nodeValue&&0<z(K.previousSibling).find(".fr-emoticon").length?w=K.previousSibling:K&&"SPAN"===K.parentNode.tagName&&0<z(K.parentNode).find(".fr-emoticon").length?(w=K.parentNode,P=!0):K&&("SPAN"===K.tagName&&1===K.nodeType&&!K.hasAttribute("data-pasted")||"HR"===K.tagName)?w=K:z(M).parent().prev().is("hr")?(w=z(M).parent().prev().get(0),P=D=!0):K&&"IMG"===K.tagName&&(w=K,z(O).prepend("".concat(le.MARKERS)),z(O).append("".concat(le.MARKERS))),X.helpers.isMobile()&&M[0]&&!w&&!L&&!$)return;P?(z(M[0].parentNode).after(O),D?z(M).parent().remove():z(M).remove()):M[0]?e.composing?z(M).after(O):z(M).before(O):z(Z).before(O)}catch(e){Z&&z(Z).before(O)}else if(n){var B=M[0].nextSibling;M[0].nextElementSibling&&"I"===M[0].nextElementSibling.tagName&&!M[0].nextSibling.nodeValue?w=M[0].nextElementSibling:B&&3===B.nodeType&&"SPAN"!==B.parentNode.tagName&&B.nextSibling&&"SPAN"===B.nextSibling.tagName&&" "===B.nodeValue&&0<z(B.nextSibling).find(".fr-emoticon").length?w=B.nextSibling:B&&"SPAN"===B.parentNode.tagName&&0<z(B.parentNode).find(".fr-emoticon").length?(w=B.parentNode,P=!0):B&&"SPAN"===B.tagName&&M[0].nextSibling&&1===M[0].nextSibling.nodeType&&!M[0].nextSibling.hasAttribute("data-pasted")?w=B:B&&"IMG"===B.tagName&&(w=B,z(O).prepend("".concat(le.MARKERS)),z(O).append("".concat(le.MARKERS))),P?(z(M[0].parentNode).before(O),z(M).remove()):z(M).after(O)}if(e.composing?ee.push({span:O,"delete":I}):(X.helpers.isIOS()&&ee.push({"delete":I}),z(O).prepend(I)),!w&&(w=L&&L.replace($,""),X.helpers.isMobile()&&W&&!e.composing)){var V=X.selection.get().focusNode,H=X.selection.get().focusOffset,F=1;Q&&V&&Q.isSameNode(V)&&(F=J-H),w=W.replace(/\u00a0/g," ").replace(L.replace(/\u00a0/g," "),"").slice(0,F)}if(w&&(P?(z(I).append(z(z(w).get(0).outerHTML)),X.markers.insert()):z(I).append(w)),w&&0==w.length)return;X.browser.msie&&t&&(z(O).prepend("".concat(le.MARKERS)),z(O).append("".concat(le.MARKERS))),t&&($||""===$)&&M[0].previousSibling?M[0].previousSibling.nodeValue=$:n&&(z(O).append("".concat(le.MARKERS)),M[0].nextSibling.nodeValue=$)}else{var Y=le.INVISIBLE_SPACE;if(e&&X.helpers.isMobile()&&((Y=M[0]&&M[0].previousSibling&&M[0].previousSibling.nodeValue?M[0].previousSibling.nodeValue.slice(-1):le.INVISIBLE_SPACE)&&M[0]&&M[0].previousSibling&&M[0].previousSibling.nodeValue?M[0].previousSibling.nodeValue=M[0].previousSibling.nodeValue.slice(0,-1):!M[0]||M[0].previousSibling||M[0].nextSibling||Y!==le.INVISIBLE_SPACE||(Y=X.selection.get().focusNode.nodeValue.slice(J,X.selection.get().focusOffset),X.selection.get().focusNode.nodeValue=X.selection.get().focusNode.nodeValue.slice(X.selection.get().focusOffset))),M[0].previousSibling&&"BR"===M[0].previousSibling.tagName&&M[0].previousSibling.remove(),te&&M[0].parentNode&&"DIV"!=M[0].parentNode.tagName){var U=X.doc.createElement("div");U.innerHTML='<span data-tracking="true" data-track-id="'.concat(b,'" ').concat(C,">").concat(le.MARKERS,"</span>"),z(U.firstChild).addClass("fr-highlight-table"),M.replaceWith(U),te=!1}else M.replaceWith('<span data-tracking="true" data-track-id="'.concat(b,'" ').concat(C,">").concat(Y+le.MARKERS,"</span>"))}X.selection.restore(),X.track_changes.pushChange(b)}else{X.selection.save();var G=X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),j=X.$el.find('.fr-marker[data-type="false"]').length&&X.$el.find('.fr-marker[data-type="false"]').get(0);if(z(G).parent().hasClass("fr-emoticon")&&z(G).parent().before(G),z(G).isAfter(z(j))){var q=G;G=j,j=q}ie(G,j,e&&e.deletion),X.selection.restore()}X.helpers.isMobile()&&W&&X.markers.remove()}}}function ne(e){if(z(e[0].nextSibling).data("tracking")){for(;z(e[0].nextSibling).data("tracking")&&(!(0<z(e[0].previousElementSibling).find("[data-tracking-deleted=true]").length&&0<z(e[0].nextElementSibling).find("[data-tracking-deleted=true]").length)||z(e[0].previousSibling).data("tracking"));)z(e).insertAfter(e.next());e.insertBefore(e[0].previousSibling)}}function re(e){var t=e.previousSibling;if(!t){var a=z(e).parent().get(0).previousSibling;null!==a&&(t=a.lastChild||a)}return t}function ie(e,t){var a=2<arguments.length&&arguments[2]!==undefined&&arguments[2];if(e&&(!e.isSameNode(t)||!z(e).hasClass("fr-marker"))){for(;e.nodeType===Node.COMMENT_NODE;)e=e.nextSibling;if(z(e).parent().is("table")&&0!==z(e).parent().next().text().length&&ie(z(e).parent().next()[0],t,a),"TD"!==e.tagName||1!==e.childNodes.length||"BR"!==e.childNodes[0].tagName){if(X.node.isBlock(e)&&"HR"!==e.tagName)return X.node.hasClass(e.firstChild,"fr-marker")?ie(e.firstChild.nextSibling,t,a):ie(e.firstChild,t,a),!1;if("BR"===e.tagName&&"TD"===e.parentElement.tagName){var n=e.parentElement.nextElementSibling;z(e).remove(),ie(n,t)}var r="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),i=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",l=z('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span>")),s=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" '.concat(X.helpers.isIOS()?"":'contenteditable="false"',"></span>"));X.opts.showChangesEnabled||(X.helpers.isMobile()?s.addClass("fr-track-hide-mobile"):s.addClass("fr-track-hide"));var o=e;for(z(e).before(l),X.track_changes.pushChange(r);o&&z(o).hasClass("fr-marker");)o=o.nextSibling;for(var d=!1;o&&!d&&!z(o).hasClass("fr-marker")&&!z(o).is("[data-track-id]")&&0===z(o).find("fr-marker").length&&"UL"!==o.tagName&&"OL"!==o.tagName;){var c=o;if("IMG"===o.tagName&&z(o).data("tracking-img","true"),X.node.isBlock(o)&&"HR"!==e.tagName)return ie(o.firstChild,t,a),!1;if(o)for(var g=o.childNodes,f=0;f<g.length;f++)if(g[f].className&&"fr-marker"===g[f].className){d=!0,ie(o.firstChild,t,a);break}d||(o=o.nextSibling,z(s).append(c))}if(!o||"UL"!==o.tagName&&"OL"!==o.tagName||ie(o,t,a),a?ee.push({span:l,"delete":s}):(X.helpers.isIOS()&&ee.push({"delete":s}),z(l).prepend(s)),X.browser.msie?z(l).prepend("".concat(le.INVISIBLE_SPACE+le.MARKERS)):z(l).prepend("".concat(le.INVISIBLE_SPACE)),z(l).append("".concat(le.INVISIBLE_SPACE+le.MARKERS)),!o&&!e.isSameNode(t)){for(var h=l.get(0).parentNode;h&&!h.nextSibling&&!X.node.isElement(h);)h=h.parentNode;if(h){var p=h.nextSibling;p&&(X.node.isBlock(p)?"HR"===p.tagName?ie(p.nextSibling,t,a):(X.browser.mozilla&&"LI"===h.tagName&&"SPAN"===h.lastChild.tagName&&z(h.lastChild).hasClass("fr-marker")&&h.lastChild.remove(),ie(p.firstChild,t,a)):ie(p,t,a))}}}}}function y(e){if(X.opts.trackChangesEnabled){X.selection.restore();var t=X.selection.ranges(0).startContainer,a=z(t).parentsUntil(X.$el,"[data-tracking=true]");if(z(t).data("tracking"))return;if(!a.length&&!X.selection.isCollapsed()&&"quote"!=e){X.selection.save(),h(X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),X.$el.find('.fr-marker[data-type="false"]').length&&X.$el.find('.fr-marker[data-type="false"]').get(0));var n=X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),r=n.parentNode;if(r&&"A"===r.tagName&&r.firstChild&&"SPAN"===r.firstChild.tagName&&2<r.firstChild.childNodes.length&&"STRONG"===r.firstChild.childNodes[3].tagName)z(r.firstChild.childNodes[3].firstChild).before(n);else{for(var i=n.previousSibling.firstChild;i&&"SPAN"!==i.tagName;)i=i.nextSibling;z(i).after(n)}X.selection.restore()}}}function h(e,t,a){if(e&&!("<br>"===z(e).html()&&z(e).parent().is("td")||(z(e).parent().is("table")&&0!==z(e).parent().next().text().length&&h(z(e).parent().next()[0],t,a),z(e).is("br")&&z(e).parent().length&&z(e).parent().is("td")&&0===z(e).parent().text().length))){for(a||(a="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),X.track_changes.pushChange(a));e.nodeType===Node.COMMENT_NODE;)e=e.nextSibling;if(X.node.isBlock(e)&&"HR"!==e.tagName)return X.node.hasClass(e.firstChild,"fr-marker")?h(e.firstChild.nextSibling,t,a):h(e.firstChild,t,a),!1;var n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=z('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>")),i=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false" style="display:none"></span>'),l=e;for(z(e).before(r);l&&z(l).hasClass("fr-marker");)l=l.nextSibling;for(var s=!1;l&&!s&&!z(l).hasClass("fr-marker")&&0===z(l).find("fr-marker").length&&"UL"!==l.tagName&&"OL"!==l.tagName;){var o=l;if(X.node.isBlock(l)&&"HR"!==e.tagName)return h(l.firstChild,t,a),!1;if(l)for(var d=l.childNodes,c=0;c<d.length;c++)if(d[c].className&&"fr-marker"===d[c].className){s=!0,h(l.firstChild,t,a);break}s||(l=l.nextSibling,z(i).append(o.cloneNode(!0)),z(r).append(o))}if(!l||"UL"!==l.tagName&&"OL"!==l.tagName||h(l,t,a),z(l).hasClass("fr-marker")&&z(r).append(l),z(r).prepend(i),z(r).prepend("".concat(le.INVISIBLE_SPACE)),z(r).append("".concat(le.INVISIBLE_SPACE)),!l&&!e.isSameNode(t)){for(var g=r.get(0).parentNode;g&&!g.nextSibling&&!X.node.isElement(g);)g=g.parentNode;if(g){var f=g.nextSibling;f&&(X.node.isBlock(f)?"HR"===f.tagName?h(f.nextSibling,t,a):h(f.firstChild,t,a):h(f,t,a))}}}}function a(e){var t=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');return X.opts.showChangesEnabled||(X.helpers.isMobile()?t.addClass("fr-track-hide-mobile"):t.addClass("fr-track-hide")),t.append(e),t}function n(e,t){var a="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=z('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>"));t&&r.addClass(t);var i=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');return X.opts.showChangesEnabled||i.addClass("fr-track-hide"),e.before(r),r.append(e),X.track_changes.pushChange(a),r}function A(e){var t=!1;if(e.find("[data-tracking=true]").each(function(){var e=this.innerText.replace(/\u200B/g,"");0<e.length&&"\n"!=e&&(t=!0)}),t)alert("Your table has pending changes. Please resolve them before remove table.");else{var r="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),i=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",a=z('<div><span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span></div>")),n=a.find("span").first(),l=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');e.before(a.get(0)),e.find("tr").find("> td").each(function(){var e=z('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span>")),t=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),a=z(this),n=a[0].innerText;z(t)[0].innerText=n,a[0].innerText="",e.prepend(t),a.prepend(e)}),X.opts.showChangesEnabled||l.addClass("fr-track-hide"),l.append(e),n.append(l),X.track_changes.pushChange(r)}}function p(e,t,a){var n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=z('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>")),i=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');X.opts.showChangesEnabled||i.addClass("fr-track-hide"),i.append(t.get(0).innerHTML),r.append(i);var l=e.get(0).innerHTML;e.html(""),e.append(r),r.append(l)}function u(){if(X.events.trigger("image.hideResizer"),X.events.trigger("video.hideResizer"),X.html.cleanEmptyTags(!0),X.helpers.isMobile())for(var e=X.$el.find("img[data-tracking-img]"),t=0;t<e.length;t++){var a=z(e.get(t));a.parent()&&a.parent().data("tracking")||a.removeData("tracking-img")}}function e(){X.$el.find("li").each(function(){0===this.innerText.replace(/\u200B/g,"").length&&this.remove()})}function k(e){z(e).removeData("tracking"),z(e).removeData("track-id"),z(e).removeData("enter-key"),z(e).removeClass("fr-highlight-change")}function t(){var e=f();if(e){var t,r=X.$el.find("[data-track-id=".concat(e,"]"));if(r.length){var a=r.parent("a");if(a.length){var n=z(a.get(0).outerHTML).text();1===[].filter.call(n,function(e){return 8203!==e.charCodeAt(0)&&8629!==e.charCodeAt(0)}).length&&"TR"!==a.get(0).tagName&&(t=a)}for(var l=function l(){var e=r.get(s);if("TD"===e.tagName||"TH"===e.tagName)return"true"==z(e).data("cell-deleted")?z(e).get(0).remove():k(e),0;var t=z(r).data("tracking-deleted")?z(r):z(e).find("[data-tracking-deleted=true]");if(t.length&&(t.get(0).remove?t.get(0).remove():t.get(0).parentNode.removeChild(t.get(0))),e.hasAttribute("style"))k(e);else{if(X.selection.save(),0<z(e).find("IFRAME").length)k(e);else{var a=r.get(s),n=z(a);if("true"===z(a).data("remove-element"))return n.remove(),0;if(n.is("[data-enter-key]"))(function i(r){Array.from(r.childNodes).forEach(function(e){if(e.nodeType===Node.TEXT_NODE&&e.nodeValue.includes("\u21b5")){var a=e.nodeValue.split("\u21b5"),n=document.createDocumentFragment();a.forEach(function(e,t){e&&n.appendChild(document.createTextNode(e)),!(t<a.length-1)||a[a.length-1]||r.nextElementSibling&&"BR"==r.nextElementSibling.tagName||n.appendChild(document.createElement("br"))}),r.replaceChild(n,e)}})})(n[0]),k(a),e=a;e.outerHTML=e.innerHTML}X.selection.restore()}},s=0;s<r.length;s++)l()}t&&t.remove()}u()}function v(){var e=f();if(e){var t=X.$el.find("[data-track-id=".concat(e,"]"));if(t.length){X.selection.save();for(var a=t.length-1;0<=a;a--){var n=t.get(a);if("true"!=z(n).data("cell-deleted")){var r=z(t).data("tracking-deleted")?z(t):z(t.get(a)).find("[data-tracking-deleted=true]");if(r.length){if(0<z(t).find("IFRAME").length)z(t).removeData("tracking"),z(t).removeData("track-id"),z(t).removeClass("fr-highlight-change"),z(t).removeClass("fr-tracking-deleted"),z(t).removeData("tracking-deleted"),z(t).removeAttr("contenteditable");else r.parent("[data-tracking=true]").data("track-id")==e?(z(t.get(a)).find("[data-tracking-deleted=true]").remove(),t.get(a).outerHTML=r.get(0).innerHTML):t.get(a).remove?t.get(a).remove():t.get(a).parentNode.removeChild(t.get(a))}else{var i=t.get(a),l=z(i);if("true"===z(i).data("remove-element")){l.remove();continue}if(l.is("[data-enter-key]")){for(var s=l;s.length&&(!s.next().length||s[0]===X.$el[0]);)s=s.parent();var o=s.next();o.length&&(o.contents().length&&l.after(o.contents()),o.remove()),l.remove()}else l.remove?l.remove():l.parentNode.removeChild(l)}}else{var d=z(n).get(0);z(n).removeClass("fr-track-hide"),z(n).removeData("track-id"),z(n).removeData("cell-deleted"),d.innerHTML=d.firstChild?d.firstChild.innerHTML:""}}X.selection.restore()}}u()}return X.events.on("drop",function(e){if(X.opts.trackChangesEnabled){var t=g(e),a=X.selection.ranges(0);if(t&&X.$el.contains(t.offsetNode)&&X.selection.inEditor()&&a&&(a.startContainer===t.offsetNode&&a.startOffset===t.offset||a.endContainer===t.offsetNode&&a.endOffset===t.offset||a.startContainer===t.offsetNode&&a.endContainer===t.offsetNode&&t.offset>=a.startOffset&&t.offset<=a.endOffset))return;var n=z(e.target);if(n.hasClass("fr-highlight-change")&&n.children(".fr-tracking-deleted").length)return e.preventDefault(),e.stopPropagation(),!1;if(e.originalEvent.dataTransfer&&0===e.originalEvent.dataTransfer.items.length&&0===e.originalEvent.dataTransfer.files.length)return;X.undo.saveStep();var r=X.track_changes.getPendingChanges().length;N(e),r!==X.track_changes.getPendingChanges().length&&(o=!0,d=X.id),s=e}},!0),X.events.on("paste.beforeCleanup",function(e){if(X.opts.trackChangesEnabled&&s){var t=z(g(s).offsetNode).parentsUntil(X.$el,'[data-tracking="true"]');return o&&d===X.id&&0===t.length&&f(),N(s),s=null,o=!1,e}},!0),X.events.on("element.beforeDrop",function(e){if(X.opts.trackChangesEnabled){var t=n(a(e.clone()));e.after(t),o=!0,d=X.id}},!0),X.events.on("element.dropped",function(e){X.opts.trackChangesEnabled&&(o&&d===X.id&&(f(),o=!1,d=null),n(e),s=null)},!0),X.events.on("keyup input",function(e){e&&13==e.keyCode&&X.opts.trackChangesEnabled&&(X.undo_stack.length&&X.undo.dropRedo(),X.undo.saveStep(ae),ae=null)}),{toggleTracking:function m(){X.opts.trackChangesEnabled&&-1<X.html.get(!0,!0).indexOf("data-tracking")||X.opts.trackChangesEnabled&&0<X.$el.find("[data-tracking=true]").length?alert("Your editor has pending changes. Please resolve them before turning off Track Changes in the toolbar."):(X.commands.moreTrackChanges(),X.opts.trackChangesEnabled=!X.opts.trackChangesEnabled,X.opts.trackChangesEnabled||(X.opts.showChangesEnabled=!1))},pushChange:function b(e){l.push(e)},insertChangeAt:function x(e,t){l=[].concat(B(l.slice(0,e)),[t],B(l.slice(e)))},popChange:f,getPendingChanges:function T(){return l},showChanges:function R(){X.opts.showChangesEnabled=!X.opts.showChangesEnabled,function i(e,t){for(var a=0;a<e.length;a++)t?(z(e.get(a)).removeClass("fr-track-hide"),z(e.get(a)).removeClass("fr-track-hide-mobile")):X.helpers.isMobile()?z(e.get(a)).addClass("fr-track-hide-mobile"):z(e.get(a)).addClass("fr-track-hide")}(X.$el.find(".fr-tracking-deleted"),X.opts.showChangesEnabled);var e=X.$el.find('[data-enter-key="true"]');if(e.length&&(X.opts.showChangesEnabled?z(e).removeClass("fr-track-visibility-hidden"):z(e).addClass("fr-track-visibility-hidden")),X.opts.showChangesEnabled)for(var t=X.$el.find("[data-tracking=true]").not(".fr-highlight-change"),a=0;a<t.length;a++)z(t.get(a)).addClass("fr-highlight-change");else for(var n=X.$el.find(".fr-highlight-change"),r=0;r<n.length;r++)z(n.get(r)).removeClass("fr-highlight-change")},acceptAllChanges:function _(){for(;0!=X.track_changes.getPendingChanges().length;)t();l=[],e(),X.$el.find("li").each(function(){!z(this).children()[0]||"OL"!==z(this).children()[0].tagName&&"UL"!==z(this).children()[0].tagName||e()})},rejectAllChanges:function M(){for(;0!=X.track_changes.getPendingChanges().length;)v();l=[]},acceptSingleChange:t,rejectSingleChange:v,refresh:function L(e){var t,a,n=X.$el.find("[data-tracking=true]");e.toggleClass("fr-disabled",!l.length),e.toggleClass("fr-active",l.length).attr("aria-pressed",l.length),0<!n.length&&(e.removeClass("fr-active"),e.addClass("fr-disabled"));var r=null===(t=X.$tb)||void 0===t?void 0:t.find('.fr-command[data-cmd="markdown"]');r&&X.opts.trackChangesEnabled?r.addClass("fr-disabled"):r&&!z(".fr-active.fr-popup").length&&r.removeClass("fr-disabled");var i=null===(a=X.$tb)||void 0===a?void 0:a.find('.fr-command[data-cmd="showChanges"]');i&&X.opts.trackChangesEnabled&&i.removeClass("fr-disabled")},replaceSpecialItem:function $(e){X.selection.setBefore(e.get(0)),X.selection.setAfter(e.get(0)),h(X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),X.$el.find('.fr-marker[data-type="false"]').length&&X.$el.find('.fr-marker[data-type="false"]').get(0))},removeSpecialItem:function w(e){X.selection.setBefore(e.get(0)),X.selection.setAfter(e.get(0)),ie(X.$el.find('.fr-marker[data-type="true"]').length&&X.$el.find('.fr-marker[data-type="true"]').get(0),X.$el.find('.fr-marker[data-type="false"]').length&&X.$el.find('.fr-marker[data-type="false"]').get(0))},removedTable:A,addQuote:function O(e){var t="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),a=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",n=z('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(a,"></div>")),r=z('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(a,"></div>")),i=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');X.opts.showChangesEnabled||i.addClass("fr-track-hide"),e.before(r),e.before(n);var l=e.get(0).innerHTML;i.append(l),n.append(i),r.append(e),r.find('[data-tracking="true"]').each(function(e,t){z(t).children().eq(0).insertBefore(z(t)),z(t).remove()}),X.track_changes.pushChange(t)},removeQuote:function I(e,t){if(!(0<t)){var a="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=z('<div data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></div>")),i=z('<div data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></div>")),l=z('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');X.opts.showChangesEnabled||l.addClass("fr-track-hide"),e.before(i),e.before(r);var s=e.find("blockQuote").eq(0).html();s||(s=e.html()),l.append(e),r.append(l),i.append(s),i.find('[data-tracking="true"]').each(function(e,t){z(t).children().eq(0).insertBefore(z(t)),z(t).remove()}),X.track_changes.pushChange(a)}},wrapInTracking:n,wrapInDelete:a,wrapLinkInTracking:function P(e,t){var a="pending-".concat(X.id,"-").concat(X.track_changes.getPendingChanges().length),n=X.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=z('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>"));return e.before(r),r.append(e),X.track_changes.insertChangeAt(t-1,a),r},pasteInEmptyEdior:function D(e){var t=X.$el.find(".fr-highlight-change");z(t)[0].style.display="block",z(t)[0].innerHTML=e},pasteInEdior:function K(e){var t=X.$el.find(".fr-marker");z(t)[0].outerHTML=e,X.markers.remove()}}},le.DefineIcon("trackChanges",{NAME:"enable-tracking",SVG_KEY:"trackChanges"}),le.DefineIcon("showChanges",{NAME:"show-changes",SVG_KEY:"showTrackChanges"}),le.DefineIcon("applyAll",{NAME:"apply-all",SVG_KEY:"acceptAllChanges"}),le.DefineIcon("removeAll",{NAME:"remove-all",SVG_KEY:"rejectAllChanges"}),le.DefineIcon("applyLast",{NAME:"apply-last",SVG_KEY:"acceptSingleChange"}),le.DefineIcon("removeLast",{NAME:"remove-last",SVG_KEY:"rejectSingleChange"}),le.RegisterCommand("trackChanges",{type:"button",title:"Enable Track Changes",plugin:"track_changes",showOnMobile:!0,callback:function(){this.track_changes.toggleTracking()},refreshAfterCallback:!0,forcedRefresh:!0,refresh:function(e){if(e&&this.$tb){var t=this.$tb.find('.fr-more-toolbar[data-name="'.concat(e.attr("id"),'"]')),a=0!==t.length&&t.hasClass("fr-expanded");(this.opts.trackChangesEnabled&&this.opts.toolbarContainer&&!a||!this.opts.trackChangesEnabled&&this.opts.toolbarContainer&&a)&&(this.$tb.find('.fr-more-toolbar[data-name="'.concat(e.attr("id"),'"]')).toggleClass("fr-expanded"),this.$box.toggleClass("fr-toolbar-open"),this.$tb.toggleClass("fr-toolbar-open"),e.toggleClass("fr-open")),e.toggleClass("fr-active",this.opts.trackChangesEnabled).attr("aria-pressed",this.opts.trackChangesEnabled)}}}),le.RegisterCommand("showChanges",{type:"button",icon:"showChanges",title:"Show Changes",plugin:"track_changes",undo:!1,focus:!1,accessibilityFocus:!0,forcedRefresh:!0,refreshAfterCallback:!0,toggle:!0,callback:function(){this.track_changes.showChanges()},refresh:function(e){e.toggleClass("fr-active",this.opts.showChangesEnabled).attr("aria-pressed",this.opts.showChangesEnabled)}}),le.RegisterCommand("applyAll",{type:"button",icon:"applyAll",title:"Accept All Changes",plugin:"track_changes",toggle:!0,refreshAfterCallback:!0,forcedRefresh:!0,callback:function(){0<this.track_changes.getPendingChanges().length&&this.track_changes.acceptAllChanges()},refresh:function(e){this.opts.trackChangesEnabled&&this.track_changes.refresh(e)}}),le.RegisterCommand("removeAll",{type:"button",icon:"removeAll",title:"Reject All Changes",plugin:"track_changes",toggle:!0,refreshAfterCallback:!0,forcedRefresh:!0,callback:function(){0<this.track_changes.getPendingChanges().length&&this.track_changes.rejectAllChanges()},refresh:function(e){this.opts.trackChangesEnabled&&this.track_changes.refresh(e)}}),le.RegisterCommand("applyLast",{type:"button",icon:"applyLast",title:"Accept Single Change",plugin:"track_changes",toggle:!0,refreshAfterCallback:!0,forcedRefresh:!0,callback:function(){0<this.track_changes.getPendingChanges().length&&this.track_changes.acceptSingleChange()},refresh:function(e){this.opts.trackChangesEnabled&&this.track_changes.refresh(e)}}),le.RegisterCommand("removeLast",{type:"button",icon:"removeLast",title:"Reject Single Change",plugin:"track_changes",toggle:!0,refreshAfterCallback:!0,forcedRefresh:!0,callback:function(){0<this.track_changes.getPendingChanges().length&&this.track_changes.rejectSingleChange()},refresh:function(e){this.opts.trackChangesEnabled&&this.track_changes.refresh(e)}})});