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 kB
JavaScript
/*!
* froala_editor v5.0.1 (https://www.froala.com/wysiwyg-editor)
* License https://froala.com/wysiwyg-editor/terms/
* Copyright 2014-2026 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(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(O){"use strict";function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function I(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){{var n;if(e)return"string"==typeof e?a(e,t):"Map"===(n="Object"===(n={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:n)||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}Object.assign(O.DEFAULTS,{trackChangesEnabled:!1,showChangesEnabled:!1}),O.PLUGINS.track_changes=function(S){var l,r,N=S.$,g=(N.fn.isAfter=function(e){var t,n=N(this),a=n.parents(),r=e.parents(),i=n;for(t in a){var l=e;if(a.hasOwnProperty(t)){var s,o=N(a[t]);for(s in r)if(r.hasOwnProperty(s)){var d,c=N(r[s]);if(o[0]===c[0])return d=i.index(),l.index()<d;l=c}i=o}}return!1},[]),y="",A="",x="",T="",b=[],C=null,R=[],s=!1,_=!1,M=null;S.events.on("keydown",function(e){if(!S.opts.trackChangesEnabled)return!0;if(S.keys.ctrlKey(e)&&e.keyCode===O.KEYCODE.F)return!0;var t,n=e.which,a=S.$el.find("table.fr-selection-handle-selected");if(a.length&&!S.keys.isArrow(n)&&n!==O.KEYCODE.TAB&&n!==O.KEYCODE.ALT&&n!==O.KEYCODE.ESC){if(e.ctrlKey||e.metaKey||n===O.KEYCODE.SHIFT)return;a.removeClass("fr-selection-handle-selected"),S.selection.get().collapse(a.get(0));var r,i=a.get(0);i&&i.parentNode&&(r=null,n=n===O.KEYCODE.ENTER,p(a),r=i.nextSibling&&i.nextSibling.nodeType===Node.ELEMENT_NODE||e.which==O.KEYCODE.BACKSPACE||e.which==O.KEYCODE.DELETE?i.nextSibling:(a=S.html.defaultTag(),i=(a=n?null:a)?"<".concat(a,' id="cursor-marker"></').concat(a,">"):' <br id="cursor-marker">',S.html.insert(i,!0,!0),S.$el.find("#cursor-marker").get(0)))&&r.nodeType===Node.ELEMENT_NODE&&((n=S.doc.createRange()).selectNodeContents(r),n.collapse(!0),(a=S.selection.get()).removeAllRanges(),a.addRange(n),r.removeAttribute("id"))}l=null==(i=S.selection.get())||null==(i=i.focusNode)?void 0:i.nodeValue,S.helpers.isAndroid()?(n=S.selection.get(),y=null==n||null==(a=n.focusNode)?void 0:a.nodeValue,A=null==n?void 0:n.focusNode,T=null==(r=A)?void 0:r.nextSibling,x=null==n?void 0:n.focusOffset):(i=e,(!S.keys.ctrlKey(i)||i.which!==O.KEYCODE.Z&&i.which!==O.KEYCODE.C)&&(48<=i.keyCode&&i.keyCode<=57||65<=i.keyCode&&i.keyCode<=90||97<=i.keyCode&&i.keyCode<=122||186<=i.keyCode&&i.keyCode<=222||13===i.keyCode||8===i.keyCode||32===i.keyCode||46===i.keyCode||96<=i.keyCode&&i.keyCode<=111)&&(!S.keys.ctrlKey(e)||"b"!==e.key&&"i"!==e.key&&"u"!==e.key?S.keys.ctrlKey(e)&&"a"===e.key||S.keys.ctrlKey(e)&&"s"===e.key||S.keys.ctrlKey(e)&&"x"===e.key||(_=_&&S.keys.ctrlKey(e)&&"v"===e.key,S.markers.insert(),(n=(r=(a=S.$el.find(".fr-marker")).get(0))?r.previousElementSibling||r.parentNode.previousElementSibling:null)&&N(n).data("enter-key")&&!e.ctrlKey&&(r=S.selection.get(),(t=S.doc.createRange()).setStartBefore(n),t.collapse(!0),r.removeAllRanges(),r.addRange(t)),N(a).remove(),v(e)):E()))},!0),S.events.on("copy",function(e){if(!S.opts.trackChangesEnabled)return!0;var t=S.$el.find("table.fr-selection-handle-selected");_=!!t.length},!0),S.events.on("cut",function(e){if(!S.opts.trackChangesEnabled)return!0;for(var t=S.selection.get().getRangeAt(0).cloneContents(),n="",a="",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,"")),n+=l,a+=s}S.paste.saveCopiedText(n,a,!0),e.preventDefault();var o,d,c=S.$el.find("table.fr-selection-handle-selected");_=!!c.length,c.length?(c.removeClass("fr-selection-handle-selected"),(d=c.next().get(0))?((o=S.doc.createRange()).setStart(d,0),o.collapse(!0),(d=S.selection.get()).removeAllRanges(),d.addRange(o)):S.selection.get().collapse(c.get(0)),S.track_changes.removedTable(c)):v(e)},!0),S.events.on("keyup",function(e){if(!S.opts.trackChangesEnabled)return!0;var t;if(S.helpers.isMobile())if(r=null==(t=S.selection.get())||null==(t=t.focusNode)?void 0:t.nodeValue,s){for(var n=0;n<R.length;n++)S.opts.showChangesEnabled&&N(R[n].span).empty(),N(R[n].span).prepend(R[n]["delete"]);s=!(R=[])}else if(S.helpers.isIOS()){for(var a=0;a<R.length;a++)r&&1===r.length&&l&&1==l.length?(N(R[a]["delete"]).attr("contenteditable","true"),N(R[a]["delete"]).addClass("fr-ios-mobile-disable-select")):N(R[a]["delete"]).attr("contenteditable","false");R=[]}else{if(46===e.keyCode)return!0;v(e)}},!0),S.events.on("beforeinput",function(e){var t=e.originalEvent,n=!1;if(!S.opts.trackChangesEnabled)return!0;if(S.helpers.isAndroid()){var a=S.selection.get(),r=S.selection.ranges(0),i=r.startContainer,r=r.endContainer,l=N(i).parentsUntil(S.$el,"[data-tracking=true]"),r=N(r).parentsUntil(S.$el,"[data-tracking=true]");if("insertCompositionText"===t.inputType)if(""===t.data)n=!0;else if(a.toString().length>t.data.length){if(0<l.length||0<r.length)return s=!0,e.preventDefault(),!1;e.composing=n=!0}!(n="insertText"!==t.inputType||S.selection.isCollapsed()?n:!0)&&"deleteContentBackward"!==t.inputType||(s=!0,i.lastChild&&!a.toString()&&null!=(l=i.lastChild.children)&&null!=(l=l.item(0))&&l.hasAttribute("contenteditable"))||(e.keyCode=8,e.deletion=!0,v(e))}},!0),S.events.on("cell.replaced",function(e,t){if(!S.opts.trackChangesEnabled)return!0;var a,n;function r(e,t){if(1<arguments.length&&t!==undefined&&t){var n=document.createElement("span");for(n.setAttribute("data-tracking-deleted","true"),n.setAttribute("contenteditable","false"),n.classList.add("fr-tracking-deleted");e.firstChild;)n.appendChild(e.firstChild);e.appendChild(n),e.classList.add("fr-track-hide"),e.setAttribute("data-track-id",a),N(e).data("cell-deleted","true")}else{t=S.opts.showChangesEnabled?"fr-highlight-change":"";e.setAttribute("data-tracking","true"),e.setAttribute("data-track-id",a),e.classList.add(t)}}e&&t&&(n=S.track_changes.getPendingChanges().length-1,a="pending-".concat(S.id,"-").concat(n),r(n=e.cloneNode(!0),!0),t.parentNode&&t.parentNode.insertBefore(n,t),r(t,!1),S.track_changes.getPendingChanges().includes("".concat(a))||S.track_changes.pushChange(a))}),S.events.on("paste.before",function(e){S.opts.trackChangesEnabled&&S.helpers.isMobile()&&v(e)},!0),S.events.on("paste.after",function(e){if(S.opts.trackChangesEnabled){S.markers.insert();for(var a,t,n=S.$el.find(".fr-marker"),r=n.next();r.is("br");){var i=r.next();r.remove(),r=i}(r.is("ul")||r.is("ol"))&&(n=n.closest("ul, ol"),(t=r.children("li")).find("[data-tracking=true]").add(t.closest("[data-tracking=true]")).addClass("fr-highlight-change"),a=0<r.closest("li").next().length?r.closest("li").next():n.append('<li data-temp-li="true"></li>').find("li").last(),t.each(function(){var e=N(this),t="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),n=S.opts.showChangesEnabled?'class="fr-highlight-change"':"";N('<li><span data-tracking="true" data-track-id="'.concat(t,'" ').concat(n,">").concat(e.html(),"</span></li>")).insertBefore(a),S.track_changes.pushChange(t)}),0<(t=n.find("li[data-temp-li=true")).length&&t.remove(),r.remove()),S.markers.remove()}},!0),S.events.on("image.inserted",function(e){S.helpers.isMobile()&&S.opts.trackChangesEnabled&&e.data("tracking-img",!0)}),S.events.on("image.removed",function(e){var t,n,a,r,i,l;S.helpers.isMobile()&&S.opts.trackChangesEnabled&&!e.data("tracking-img")&&!e.parent().data("tracking")&&(t=S.selection.ranges(0).startContainer,n=N(t).parentsUntil(S.$el,"[data-tracking=true]"),S.markers.insert(),a=S.$el.find(".fr-marker"),r="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),i=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",i=N('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span>")),l=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),S.opts.showChangesEnabled||l.addClass("fr-track-hide"),e.data("tracking-img",!0),N(t).data("tracking")||n.length?(N(a).replaceWith(l),N(l).append(e),S.markers.remove()):(N(a).replaceWith(i),N(i).prepend(l),N(l).append(e),S.markers.remove(),S.track_changes.pushChange(r)))}),S.events.on("commands.before",function(t){if(!S.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"==N(S.selection.element()).data("enter-key"))return!1;E(t)}else if("paragraphFormat"===t||"paragraphStyle"===t||"lineHeight"===t){S.selection.save();for(var e=S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),n=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",a="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),r=N('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>")),i=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false" style="display:none"></span>'),l=e.parentNode.cloneNode(!0),s=l.childNodes,o=0;o<s.length;)s[o].className&&"fr-marker"===s[o].className?s[o].remove():o++;N(i).append(l),N(r).append(i),N(e.parentNode).after(N("<p></p>")),N(e.parentNode.nextSibling).append(r),r=N('<span data-tracking="true" data-track-id="'.concat(a,'" ').concat(n,"></span>")),N(e.parentNode.nextSibling).after(N("<p></p>")),N(e.parentNode.nextSibling.nextSibling).append(r),r.append(e.parentNode),S.track_changes.pushChange(a),S.selection.restore()}}else{if(O.COMMANDS[t]&&(O.COMMANDS[t].hasOwnProperty("type")&&"dropdown"===O.COMMANDS[t].type||O.COMMANDS[t].more_btn||O.COMMANDS[t].popup)){if("insertImage"!=t&&"insertFile"!=t)return}else if("clearFormatting"===t){if(S.opts.trackChangesEnabled){C=S.selection.blocks();for(var d=[],c=0,g=0;g<C.length;g++){var c=g<c?c:g,h=N(C[g]);h.is("li")&&h.siblings("li").each(function(e,t){N(t).find("li").length&&(d.push({index:c,item:t}),c+=1)}),b[g]=N("<span>".concat(h.get(0).innerHTML,"</span>"))}for(var f=0,p=d;f<p.length;f++){var u=p[f],k=u.index,u=u.item,m=N(N(u).get(0).outerHTML);m.find("ul").remove(),m.find("ol").remove(),b=[].concat(I(b.slice(0,k+1)),[N("<span>".concat(m.get(0).innerHTML,"</span>"))],I(b.slice(k+1))),C=[].concat(I(C.slice(0,k+1)),[u],I(C.slice(k+1)))}}return}v()}},!0),S.events.on("commands.after",function(e){if(!S.opts.trackChangesEnabled)return!0;if(0<=["undo","redo"].indexOf(e)){var t=S.$el.find("[data-tracking=true]");g.splice(0,g.length);for(var n=0;n<t.length;n++){var a=N(t.get(n)).data("track-id");g[a.slice(a.lastIndexOf("-")+1)]=a}}else if("clearFormatting"==e&&S.opts.trackChangesEnabled){var r,i="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length);for(r in C){var l,s,o,d,c=N(C[r]);b[r]&&(d=o=s=l=void 0,l=c,s=b[r],o=i,d=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",o=N('<span data-tracking="true" data-track-id="'.concat(o,'" ').concat(d,"></span>")),d=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),S.opts.showChangesEnabled||d.addClass("fr-track-hide"),d.append(s.get(0).innerHTML),o.append(d),s=l.get(0).innerHTML,l.html(""),l.append(o),o.append(s),b[r]=null)}S.track_changes.pushChange(i),b=[],C=null}},!0),S.events.on("quickInsert.commands.before",function(e){S.opts.trackChangesEnabled&&v(e)}),S.events.on("findandreplace.beforeOnReplace",function(e){var t,n;S.opts.trackChangesEnabled&&(n=S.$el.find(".fr-find-replace-current-highlight").get(0),(t=S.doc.createRange()).selectNodeContents(n),(n=S.selection.get()).removeAllRanges(),n.addRange(t),S.selection.save(),S.$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")}),v(e),S.markers.insert())});var a=null,i=!1,o=null;function d(e){var t,n=null;return"undefined"!=typeof S.doc.caretPositionFromPoint?n={offsetNode:(t=S.doc.caretPositionFromPoint(e.clientX,e.clientY)).offsetNode,offset:t.offset}:"undefined"!=typeof S.doc.caretRangeFromPoint&&(n={offsetNode:(t=S.doc.caretRangeFromPoint(e.clientX,e.clientY)).startContainer,offset:t.startOffset}),n}function c(){return g.pop()}function v(e){var t=!(!e||8!=e.keyCode),n=e&&13==e.keyCode,a=!(!e||46!=e.keyCode);if(S.opts.trackChangesEnabled){S.selection.restore(),e&&e.composing&&(S.selection.save(),S.selection.ranges()[0].collapse(!1));var r=S.selection.ranges(0),i=r.startContainer,l=!1,s=t&&0===r.startOffset&&S.$el.get(0).firstChild===i;if(t){var o="\u200b"===i.textContent;if((0===r.startOffset||o)&&S.$el.get(0).firstChild!==i&&i!==document){for(var d=$(i)?$(i):$(S.node.blockParent(i)),o=$(i);d&&d.nodeType===Node.TEXT_NODE&&1===d.length&&8203===d.textContent.charCodeAt(0);)d=$(d);if(d&&0===r.startOffset){if(l=!0,g=N(i=d).data("enter-key")?d:N(d).find('[data-enter-key="true"]').get(0))return void N(g).remove();if(!o)return}for(var c=(i.nodeType===Node.TEXT_NODE?i.parentNode:i).previousSibling;c&&c.nodeType===Node.ELEMENT_NODE&&(c.classList.contains("fr-marker")||"BR"===c.tagName||"\u200b"===c.textContent);)c=c.previousSibling;if(c&&N(c).data("enter-key"))return void N(c).remove()}}var g=N(i).parentsUntil(S.$el,"[data-tracking=true]");if(N(i).data("tracking")&&t)S.markers.insert(),(o=S.$el.find(".fr-marker"))[0].previousSibling&&"IMG"===o[0].previousSibling.tagName||S.selection.clear(),N(o).remove();else if(!g.length||N(i).data("tracking-deleted")&&t||"TD"==i.tagName||n){if(S.selection.isCollapsed()){if(l){var h=i;if(h&&h.nodeType!==Node.TEXT_NODE&&0<h.childNodes.length){for(var f=null,p=h.childNodes.length-1;0<=p;p--)if(h.childNodes[p].nodeType===Node.TEXT_NODE){f=h.childNodes[p];break}null!==f&&(h=f)}o=r.cloneRange();o.setStart(h,h.length),o.setEnd(h,h.length),S.selection.get().removeAllRanges(),S.selection.get().addRange(o)}var u,k="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),g=S.opts.showChangesEnabled?'class="fr-highlight-change"':"";if(n&&!e.ctrlKey&&!e.metaKey)return o=!1,0===i.textContent.length&&"true"===N(i.parentNode).data("tracking")&&(i.parentNode.remove(),o=!0),M=S.snapshot.get(),S.markers.insert(),n=S.$el.find(".fr-marker"),N(i.parentNode).data("tracking")&&!o||(g=N(i.parentNode).hasClass("fr-highlight-change")&&!o?"":g,o=N('<span data-tracking="true" contenteditable="false" data-enter-key="true" data-track-id="'.concat(k,'" ').concat(g,">↵</span>"))[0],S.opts.showChangesEnabled||N(o).addClass("fr-track-visibility-hidden"),(C=n[0].previousSibling)&&"BR"===C.tagName&&("BR"===C.previousSibling.tagName&&C.previousSibling.remove(),C=N('<span data-remove-element="true" class="fr-track-hide" data-track-id="'.concat(k,'" contenteditable="false" > </span>')),n.before(C[0])),n.before(o),S.track_changes.pushChange(k)),!(C=n[n.length-1]).nextSibling&&e.shiftKey&&(u=N(S.doc.createTextNode("\u200b")).get(0),N(C).after(u)),o=r.cloneRange(),n=S.selection.get(),o.setStartBefore(C),o.setEndAfter(C),n.removeAllRanges(),n.addRange(o),void setTimeout(function(){var e,t,n;u&&(e=(e=S.$el.find('[data-track-id="'.concat(k,'"][data-enter-key="true"]')).get(0))?e.nextSibling:null,u=e?e.nextSibling:null)&&"\u200b"===u.textContent&&(t=r.cloneRange(),n=S.selection.get(),u.remove(),t.setStartAfter(e.nextSibling),t.setEndAfter(e.nextSibling),n.removeAllRanges(),n.addRange(t))},20);!l&&s||e&&"drop"===e.type&&0<S.$el.find(".fr-marker").length||S.markers.insert();var m=S.$el.find(".fr-marker");if(!(m=e&&e.composing?N(m[1]):m).length)return;if(t||a){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(;N(m[0].previousSibling).data("tracking");)m.insertBefore(m.prev());N(m[0].previousSibling).find("[data-tracking=true]").length&&m.insertBefore(N(m[0].previousSibling).find("[data-tracking=true]").eq(0))}}else{if(N(i).data("tracking")){if(!i.nextSibling)return void(m[0].nextSibling&&"IMG"===m[0].nextSibling.tagName&&m[0].nextSibling.remove());m.insertBefore(i.nextSibling)}L(m)}var b,C=m[0]&&m[0].previousSibling?m[0].previousSibling.nodeValue:"",o=C&&C.slice(0,-(e.selectionLength||1)),n=(a&&(m[0].nextSibling&&"SPAN"!==m[0].nextSibling.tagName&&null===m[0].nextSibling.nodeValue&&m[0].nextSibling.firstChild&&m[0].nextSibling.firstChild.before(m[0]),o=(C=m[0].nextSibling?m[0].nextSibling.nodeValue:" ")&&C.slice(1)),a&&m[0].nextSibling&&1===m[0].nextSibling.nodeType&&m[0].nextSibling.getAttribute("data-pasted")?o=(C=m[0].nextSibling?m[0].nextSibling.textContent:" ")&&C.slice(1):t&&m[0].previousSibling&&1===m[0].previousSibling.nodeType&&m[0].previousSibling.getAttribute("data-pasted")&&(o=(C=m[0].previousSibling?m[0].previousSibling.textContent:" ")&&C.slice(0,-(e.selectionLength||1))),N('<span data-tracking="true" data-track-id="'.concat(k,'" ').concat(g,"></span>"))),l=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" '.concat(S.helpers.isIOS()?"":'contenteditable="false"',"></span>")),s=(S.opts.showChangesEnabled||(S.helpers.isMobile()?l.addClass("fr-track-hide-mobile"):l.addClass("fr-track-hide")),!1),i=!1;if(t)try{var v=m[0]&&m[0].previousSibling;if(m[0]&&m[0].previousElementSibling&&"I"===m[0].previousElementSibling.tagName&&!C&&(b=m[0].previousElementSibling),v&&3===v.nodeType&&"SPAN"!==v.parentNode.tagName&&v.previousSibling&&"SPAN"===v.previousSibling.tagName&&" "===v.nodeValue&&0<N(v.previousSibling).find(".fr-emoticon").length?b=v.previousSibling:v&&"SPAN"===v.parentNode.tagName&&0<N(v.parentNode).find(".fr-emoticon").length?(b=v.parentNode,s=!0):v&&("SPAN"===v.tagName&&1===v.nodeType&&!v.hasAttribute("data-pasted")||"HR"===v.tagName)?b=v:N(m).parent().prev().is("hr")?(b=N(m).parent().prev().get(0),s=i=!0):v&&"IMG"===v.tagName&&(b=v,N(n).prepend("".concat(O.MARKERS)),N(n).append("".concat(O.MARKERS))),S.helpers.isMobile()&&m[0]&&!b&&!C&&!o)return;s?(N(m[0].parentNode).after(n),(i?N(m).parent():N(m)).remove()):m[0]?e.composing?N(m).after(n):N(m).before(n):N(T).before(n)}catch(e){T&&N(T).before(n)}else a&&(v=m[0].nextSibling,m[0].nextElementSibling&&"I"===m[0].nextElementSibling.tagName&&!m[0].nextSibling.nodeValue?b=m[0].nextElementSibling:v&&3===v.nodeType&&"SPAN"!==v.parentNode.tagName&&v.nextSibling&&"SPAN"===v.nextSibling.tagName&&" "===v.nodeValue&&0<N(v.nextSibling).find(".fr-emoticon").length?b=v.nextSibling:v&&"SPAN"===v.parentNode.tagName&&0<N(v.parentNode).find(".fr-emoticon").length?(b=v.parentNode,s=!0):v&&"SPAN"===v.tagName&&m[0].nextSibling&&1===m[0].nextSibling.nodeType&&!m[0].nextSibling.hasAttribute("data-pasted")?b=v:v&&"IMG"===v.tagName&&(b=v,N(n).prepend("".concat(O.MARKERS)),N(n).append("".concat(O.MARKERS))),s?(N(m[0].parentNode).before(n),N(m).remove()):N(m).after(n));if(e.composing?R.push({span:n,"delete":l}):(S.helpers.isIOS()&&R.push({"delete":l}),N(n).prepend(l)),b||(b=C&&C.replace(o,""),S.helpers.isMobile()&&y&&!e.composing&&(i=S.selection.get().focusNode,v=S.selection.get().focusOffset,E=1,A&&i&&A.isSameNode(i)&&(E=x-v),b=y.replace(/\u00a0/g," ").replace(C.replace(/\u00a0/g," "),"").slice(0,E))),b&&(s?(N(l).append(N(N(b).get(0).outerHTML)),S.markers.insert()):N(l).append(b)),b&&0==b.length)return;S.browser.msie&&t&&(N(n).prepend("".concat(O.MARKERS)),N(n).append("".concat(O.MARKERS))),t&&(o||""===o)&&m[0].previousSibling?m[0].previousSibling.nodeValue=o:a&&(N(n).append("".concat(O.MARKERS)),m[0].nextSibling.nodeValue=o)}else{i=O.INVISIBLE_SPACE;e&&S.helpers.isMobile()&&((i=m[0]&&m[0].previousSibling&&m[0].previousSibling.nodeValue?m[0].previousSibling.nodeValue.slice(-1):O.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||i!==O.INVISIBLE_SPACE||(i=S.selection.get().focusNode.nodeValue.slice(x,S.selection.get().focusOffset),S.selection.get().focusNode.nodeValue=S.selection.get().focusNode.nodeValue.slice(S.selection.get().focusOffset))),m[0].previousSibling&&"BR"===m[0].previousSibling.tagName&&m[0].previousSibling.remove(),_&&m[0].parentNode&&"DIV"!=m[0].parentNode.tagName?((v=S.doc.createElement("div")).innerHTML='<span data-tracking="true" data-track-id="'.concat(k,'" ').concat(g,">").concat(O.MARKERS,"</span>"),N(v.firstChild).addClass("fr-highlight-table"),m.replaceWith(v),_=!1):m.replaceWith('<span data-tracking="true" data-track-id="'.concat(k,'" ').concat(g,">").concat(i+O.MARKERS,"</span>"))}S.selection.restore(),S.track_changes.pushChange(k)}else{S.selection.save();var C=S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),E=S.$el.find('.fr-marker[data-type="false"]').length&&S.$el.find('.fr-marker[data-type="false"]').get(0);N(C).parent().hasClass("fr-emoticon")&&N(C).parent().before(C),N(C).isAfter(N(E))&&(s=C,C=E,E=s),w(C,E,e&&e.deletion),S.selection.restore()}S.helpers.isMobile()&&y&&S.markers.remove()}}}function L(e){if(N(e[0].nextSibling).data("tracking")){for(;N(e[0].nextSibling).data("tracking")&&(!(0<N(e[0].previousElementSibling).find("[data-tracking-deleted=true]").length&&0<N(e[0].nextElementSibling).find("[data-tracking-deleted=true]").length)||N(e[0].previousSibling).data("tracking"));)N(e).insertAfter(e.next());e.insertBefore(e[0].previousSibling)}}function $(e){var t=e.previousSibling;return t||null!==(e=N(e).parent().get(0).previousSibling)&&(t=e.lastChild||e),t}function w(e,t,n){var a=2<arguments.length&&n!==undefined&&n;if(e&&(!e.isSameNode(t)||!N(e).hasClass("fr-marker"))){for(;e.nodeType===Node.COMMENT_NODE;)e=e.nextSibling;if(N(e).parent().is("table")&&0!==N(e).parent().next().text().length&&w(N(e).parent().next()[0],t,a),"TD"!==e.tagName||1!==e.childNodes.length||"BR"!==e.childNodes[0].tagName)if(S.node.isBlock(e)&&"HR"!==e.tagName)S.node.hasClass(e.firstChild,"fr-marker")?w(e.firstChild.nextSibling,t,a):w(e.firstChild,t,a);else{"BR"===e.tagName&&"TD"===e.parentElement.tagName&&(n=e.parentElement.nextElementSibling,N(e).remove(),w(n,t));var n="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),r=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=N('<span data-tracking="true" data-track-id="'.concat(n,'" ').concat(r,"></span>")),i=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" '.concat(S.helpers.isIOS()?"":'contenteditable="false"',"></span>")),l=(S.opts.showChangesEnabled||(S.helpers.isMobile()?i.addClass("fr-track-hide-mobile"):i.addClass("fr-track-hide")),e);for(N(e).before(r),S.track_changes.pushChange(n);l&&N(l).hasClass("fr-marker");)l=l.nextSibling;for(var s=!1;l&&!s&&!N(l).hasClass("fr-marker")&&!N(l).is("[data-track-id]")&&0===N(l).find("fr-marker").length&&"UL"!==l.tagName&&"OL"!==l.tagName;){var o=l;if("IMG"===l.tagName&&N(l).data("tracking-img","true"),S.node.isBlock(l)&&"HR"!==e.tagName)return void w(l.firstChild,t,a);if(l)for(var d=l.childNodes,c=0;c<d.length;c++)if(d[c].className&&"fr-marker"===d[c].className){s=!0,w(l.firstChild,t,a);break}s||(l=l.nextSibling,N(i).append(o))}if(!l||"UL"!==l.tagName&&"OL"!==l.tagName||w(l,t,a),a?R.push({span:r,"delete":i}):(S.helpers.isIOS()&&R.push({"delete":i}),N(r).prepend(i)),S.browser.msie?N(r).prepend("".concat(O.INVISIBLE_SPACE+O.MARKERS)):N(r).prepend("".concat(O.INVISIBLE_SPACE)),N(r).append("".concat(O.INVISIBLE_SPACE+O.MARKERS)),!l&&!e.isSameNode(t)){for(var g=r.get(0).parentNode;g&&!g.nextSibling&&!S.node.isElement(g);)g=g.parentNode;g&&(n=g.nextSibling)&&(S.node.isBlock(n)?"HR"===n.tagName?w(n.nextSibling,t,a):(S.browser.mozilla&&"LI"===g.tagName&&"SPAN"===g.lastChild.tagName&&N(g.lastChild).hasClass("fr-marker")&&g.lastChild.remove(),w(n.firstChild,t,a)):w(n,t,a))}}}}function E(e){if(S.opts.trackChangesEnabled){S.selection.restore();var t=S.selection.ranges(0).startContainer,n=N(t).parentsUntil(S.$el,"[data-tracking=true]");if(!N(t).data("tracking")&&(!n.length&&!S.selection.isCollapsed()&&"quote"!=e)){S.selection.save();h(S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),S.$el.find('.fr-marker[data-type="false"]').length&&S.$el.find('.fr-marker[data-type="false"]').get(0));t=S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),n=t.parentNode;if(n&&"A"===n.tagName&&n.firstChild&&"SPAN"===n.firstChild.tagName&&2<n.firstChild.childNodes.length&&"STRONG"===n.firstChild.childNodes[3].tagName)N(n.firstChild.childNodes[3].firstChild).before(t);else{for(var a=t.previousSibling.firstChild;a&&"SPAN"!==a.tagName;)a=a.nextSibling;N(a).after(t)}S.selection.restore()}}}function h(e,t,n){if(e&&!("<br>"===N(e).html()&&N(e).parent().is("td")||(N(e).parent().is("table")&&0!==N(e).parent().next().text().length&&h(N(e).parent().next()[0],t,n),N(e).is("br")&&N(e).parent().length&&N(e).parent().is("td")&&0===N(e).parent().text().length))){for(n||(n="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),S.track_changes.pushChange(n));e.nodeType===Node.COMMENT_NODE;)e=e.nextSibling;if(S.node.isBlock(e)&&"HR"!==e.tagName)S.node.hasClass(e.firstChild,"fr-marker")?h(e.firstChild.nextSibling,t,n):h(e.firstChild,t,n);else{var a=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",r=N('<span data-tracking="true" data-track-id="'.concat(n,'" ').concat(a,"></span>")),i=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false" style="display:none"></span>'),l=e;for(N(e).before(r);l&&N(l).hasClass("fr-marker");)l=l.nextSibling;for(var s=!1;l&&!s&&!N(l).hasClass("fr-marker")&&0===N(l).find("fr-marker").length&&"UL"!==l.tagName&&"OL"!==l.tagName;){var o=l;if(S.node.isBlock(l)&&"HR"!==e.tagName)return void h(l.firstChild,t,n);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,n);break}s||(l=l.nextSibling,N(i).append(o.cloneNode(!0)),N(r).append(o))}if(!l||"UL"!==l.tagName&&"OL"!==l.tagName||h(l,t,n),N(l).hasClass("fr-marker")&&N(r).append(l),N(r).prepend(i),N(r).prepend("".concat(O.INVISIBLE_SPACE)),N(r).append("".concat(O.INVISIBLE_SPACE)),!l&&!e.isSameNode(t)){for(var g=r.get(0).parentNode;g&&!g.nextSibling&&!S.node.isElement(g);)g=g.parentNode;g&&(a=g.nextSibling)&&(S.node.isBlock(a)?"HR"===a.tagName?h(a.nextSibling,t,n):h(a.firstChild,t,n):h(a,t,n))}}}}function n(e){var t=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>');return S.opts.showChangesEnabled||(S.helpers.isMobile()?t.addClass("fr-track-hide-mobile"):t.addClass("fr-track-hide")),t.append(e),t}function f(e,t){var n="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),a=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",a=N('<span data-tracking="true" data-track-id="'.concat(n,'" ').concat(a,"></span>")),t=(t&&a.addClass(t),N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'));return S.opts.showChangesEnabled||t.addClass("fr-track-hide"),e.before(a),a.append(e),S.track_changes.pushChange(n),a}function p(e){var r,i,t,n,a,l=!1;e.find("[data-tracking=true]").each(function(){var e=this.innerText.replace(/\u200B/g,"");0<e.length&&"\n"!=e&&(l=!0)}),l?alert("Your table has pending changes. Please resolve them before remove table."):(r="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),i=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",n=(t=N('<div><span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span></div>"))).find("span").first(),a=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),e.before(t.get(0)),e.find("tr").find("> td").each(function(){var e=N('<span data-tracking="true" data-track-id="'.concat(r,'" ').concat(i,"></span>")),t=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),n=N(this),a=n[0].innerText;N(t)[0].innerText=a,n[0].innerText="",e.prepend(t),n.prepend(e)}),S.opts.showChangesEnabled||a.addClass("fr-track-hide"),a.append(e),n.append(a),S.track_changes.pushChange(r))}function u(){if(S.events.trigger("image.hideResizer"),S.events.trigger("video.hideResizer"),S.html.cleanEmptyTags(!0),S.helpers.isMobile())for(var e=S.$el.find("img[data-tracking-img]"),t=0;t<e.length;t++){var n=N(e.get(t));n.parent()&&n.parent().data("tracking")||n.removeData("tracking-img")}}function e(){S.$el.find("li").each(function(){0===this.innerText.replace(/\u200B/g,"").length&&this.remove()})}function k(e){N(e).removeData("tracking"),N(e).removeData("track-id"),N(e).removeData("enter-key"),N(e).removeClass("fr-highlight-change")}function t(){var e=c();if(e){var t,a=S.$el.find("[data-track-id=".concat(e,"]"));if(a.length)for(var n,e=a.parent("a"),r=(e.length&&(n=N(e.get(0).outerHTML).text(),1===[].filter.call(n,function(e){return 8203!==e.charCodeAt(0)&&8629!==e.charCodeAt(0)}).length)&&"TR"!==e.get(0).tagName&&(t=e),function r(){var e=a.get(i);if("TD"===e.tagName||"TH"===e.tagName)return"true"==N(e).data("cell-deleted")?N(e).get(0).remove():k(e),0;var t=N(a).data("tracking-deleted")?N(a):N(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(S.selection.save(),0<N(e).find("IFRAME").length)k(e);else{var t=a.get(i),n=N(t);if("true"===N(t).data("remove-element"))return n.remove(),0;n.is("[data-enter-key]")&&(function(r){Array.from(r.childNodes).forEach(function(e){var n,a;e.nodeType===Node.TEXT_NODE&&e.nodeValue.includes("\u21b5")&&(n=e.nodeValue.split("\u21b5"),a=document.createDocumentFragment(),n.forEach(function(e,t){e&&a.appendChild(document.createTextNode(e)),!(t<n.length-1)||n[n.length-1]||r.nextElementSibling&&"BR"==r.nextElementSibling.tagName||a.appendChild(document.createElement("br"))}),r.replaceChild(a,e))})}(n[0]),k(t),e=t),e.outerHTML=e.innerHTML}S.selection.restore()}}),i=0;i<a.length;i++)r();t&&t.remove()}u()}function m(){var e=c();if(e){var t=S.$el.find("[data-track-id=".concat(e,"]"));if(t.length){S.selection.save();for(var n=t.length-1;0<=n;n--){var a=t.get(n);if("true"==N(a).data("cell-deleted")){var r=N(a).get(0);N(a).removeClass("fr-track-hide"),N(a).removeData("track-id"),N(a).removeData("cell-deleted"),r.innerHTML=r.firstChild?r.firstChild.innerHTML:""}else{a=N(t).data("tracking-deleted")?N(t):N(t.get(n)).find("[data-tracking-deleted=true]");if(a.length)0<N(t).find("IFRAME").length?(N(t).removeData("tracking"),N(t).removeData("track-id"),N(t).removeClass("fr-highlight-change"),N(t).removeClass("fr-tracking-deleted"),N(t).removeData("tracking-deleted"),N(t).removeAttr("contenteditable")):a.parent("[data-tracking=true]").data("track-id")==e?(N(t.get(n)).find("[data-tracking-deleted=true]").remove(),t.get(n).outerHTML=a.get(0).innerHTML):t.get(n).remove?t.get(n).remove():t.get(n).parentNode.removeChild(t.get(n));else{r=t.get(n),a=N(r);if("true"===N(r).data("remove-element"))a.remove();else if(a.is("[data-enter-key]")){for(var i=a;i.length&&(!i.next().length||i[0]===S.$el[0]);)i=i.parent();var l=i.next();l.length&&(l.contents().length&&a.after(l.contents()),l.remove()),a.remove()}else a.remove?a.remove():a.parentNode.removeChild(a)}}}S.selection.restore()}}u()}return S.events.on("drop",function(e){if(S.opts.trackChangesEnabled){var t=d(e),n=S.selection.ranges(0);if(!(t&&S.$el.contains(t.offsetNode)&&S.selection.inEditor()&&n&&(n.startContainer===t.offsetNode&&n.startOffset===t.offset||n.endContainer===t.offsetNode&&n.endOffset===t.offset||n.startContainer===t.offsetNode&&n.endContainer===t.offsetNode&&t.offset>=n.startOffset&&t.offset<=n.endOffset))){t=N(e.target);if(t.hasClass("fr-highlight-change")&&t.children(".fr-tracking-deleted").length)return e.preventDefault(),e.stopPropagation(),!1;e.originalEvent.dataTransfer&&0===e.originalEvent.dataTransfer.items.length&&0===e.originalEvent.dataTransfer.files.length||(S.undo.saveStep(),n=S.track_changes.getPendingChanges().length,v(e),n!==S.track_changes.getPendingChanges().length&&(i=!0,o=S.id),a=e)}}},!0),S.events.on("paste.beforeCleanup",function(e){var t;if(S.opts.trackChangesEnabled&&a)return t=N(d(a).offsetNode).parentsUntil(S.$el,'[data-tracking="true"]'),i&&o===S.id&&0===t.length&&c(),v(a),a=null,i=!1,e},!0),S.events.on("element.beforeDrop",function(e){var t;S.opts.trackChangesEnabled&&(t=f(n(e.clone())),e.after(t),i=!0,o=S.id)},!0),S.events.on("element.dropped",function(e){S.opts.trackChangesEnabled&&(i&&o===S.id&&(c(),i=!1,o=null),f(e),a=null)},!0),S.events.on("keyup input",function(e){e&&13==e.keyCode&&S.opts.trackChangesEnabled&&(S.undo_stack.length&&S.undo.dropRedo(),S.undo.saveStep(M),M=null)}),{toggleTracking:function(){S.opts.trackChangesEnabled&&-1<S.html.get(!0,!0).indexOf("data-tracking")||S.opts.trackChangesEnabled&&0<S.$el.find("[data-tracking=true]").length?alert("Your editor has pending changes. Please resolve them before turning off Track Changes in the toolbar."):(S.commands.moreTrackChanges(),S.opts.trackChangesEnabled=!S.opts.trackChangesEnabled,S.opts.trackChangesEnabled||(S.opts.showChangesEnabled=!1))},pushChange:function(e){g.push(e)},insertChangeAt:function(e,t){g=[].concat(I(g.slice(0,e)),[t],I(g.slice(e)))},popChange:c,getPendingChanges:function(){return g},showChanges:function(){S.opts.showChangesEnabled=!S.opts.showChangesEnabled;for(var e=S.$el.find(".fr-tracking-deleted"),t=S.opts.showChangesEnabled,n=0;n<e.length;n++)t?(N(e.get(n)).removeClass("fr-track-hide"),N(e.get(n)).removeClass("fr-track-hide-mobile")):S.helpers.isMobile()?N(e.get(n)).addClass("fr-track-hide-mobile"):N(e.get(n)).addClass("fr-track-hide");var a=S.$el.find('[data-enter-key="true"]');if(a.length&&(S.opts.showChangesEnabled?N(a).removeClass("fr-track-visibility-hidden"):N(a).addClass("fr-track-visibility-hidden")),S.opts.showChangesEnabled)for(var r=S.$el.find("[data-tracking=true]").not(".fr-highlight-change"),i=0;i<r.length;i++)N(r.get(i)).addClass("fr-highlight-change");else for(var l=S.$el.find(".fr-highlight-change"),s=0;s<l.length;s++)N(l.get(s)).removeClass("fr-highlight-change")},acceptAllChanges:function(){for(;0!=S.track_changes.getPendingChanges().length;)t();g=[],e(),S.$el.find("li").each(function(){!N(this).children()[0]||"OL"!==N(this).children()[0].tagName&&"UL"!==N(this).children()[0].tagName||e()})},rejectAllChanges:function(){for(;0!=S.track_changes.getPendingChanges().length;)m();g=[]},acceptSingleChange:t,rejectSingleChange:m,refresh:function(e){var t=S.$el.find("[data-tracking=true]");e.toggleClass("fr-disabled",!g.length),e.toggleClass("fr-active",g.length).attr("aria-pressed",g.length),0<!t.length&&(e.removeClass("fr-active"),e.addClass("fr-disabled")),(e=null==(t=S.$tb)?void 0:t.find('.fr-command[data-cmd="markdown"]'))&&S.opts.trackChangesEnabled?e.addClass("fr-disabled"):e&&!N(".fr-active.fr-popup").length&&e.removeClass("fr-disabled"),(e=null==(t=S.$tb)?void 0:t.find('.fr-command[data-cmd="showChanges"]'))&&S.opts.trackChangesEnabled&&e.removeClass("fr-disabled")},replaceSpecialItem:function(e){S.selection.setBefore(e.get(0)),S.selection.setAfter(e.get(0)),h(S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),S.$el.find('.fr-marker[data-type="false"]').length&&S.$el.find('.fr-marker[data-type="false"]').get(0))},removeSpecialItem:function(e){S.selection.setBefore(e.get(0)),S.selection.setAfter(e.get(0)),w(S.$el.find('.fr-marker[data-type="true"]').length&&S.$el.find('.fr-marker[data-type="true"]').get(0),S.$el.find('.fr-marker[data-type="false"]').length&&S.$el.find('.fr-marker[data-type="false"]').get(0))},removedTable:p,addQuote:function(e){var t="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),n=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",a=N('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(n,"></div>")),n=N('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(n,"></div>")),r=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),i=(S.opts.showChangesEnabled||r.addClass("fr-track-hide"),e.before(n),e.before(a),e.get(0).innerHTML);r.append(i),a.append(r),n.append(e),n.find('[data-tracking="true"]').each(function(e,t){N(t).children().eq(0).insertBefore(N(t)),N(t).remove()}),S.track_changes.pushChange(t)},removeQuote:function(e,t){var n,a,r,i;0<t||(t="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),a=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",n=N('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(a,"></div>")),a=N('<div data-tracking="true" data-track-id="'.concat(t,'" ').concat(a,"></div>")),r=N('<span data-tracking-deleted="true" class="fr-tracking-deleted" contenteditable="false"></span>'),S.opts.showChangesEnabled||r.addClass("fr-track-hide"),e.before(a),e.before(n),i=(i=e.find("blockQuote").eq(0).html())||e.html(),r.append(e),n.append(r),a.append(i),a.find('[data-tracking="true"]').each(function(e,t){N(t).children().eq(0).insertBefore(N(t)),N(t).remove()}),S.track_changes.pushChange(t))},wrapInTracking:f,wrapInDelete:n,wrapLinkInTracking:function(e,t){var n="pending-".concat(S.id,"-").concat(S.track_changes.getPendingChanges().length),a=S.opts.showChangesEnabled?'class="fr-highlight-change"':"",a=N('<span data-tracking="true" data-track-id="'.concat(n,'" ').concat(a,"></span>"));return e.before(a),a.append(e),S.track_changes.insertChangeAt(t-1,n),a},pasteInEmptyEdior:function(e){var t=S.$el.find(".fr-highlight-change");N(t)[0].style.display="block",N(t)[0].innerHTML=e},pasteInEdior:function(e){var t=S.$el.find(".fr-marker");N(t)[0].outerHTML=e,S.markers.remove()}}},O.DefineIcon("trackChanges",{NAME:"enable-tracking",SVG_KEY:"trackChanges"}),O.DefineIcon("showChanges",{NAME:"show-changes",SVG_KEY:"showTrackChanges"}),O.DefineIcon("applyAll",{NAME:"apply-all",SVG_KEY:"acceptAllChanges"}),O.DefineIcon("removeAll",{NAME:"remove-all",SVG_KEY:"rejectAllChanges"}),O.DefineIcon("applyLast",{NAME:"apply-last",SVG_KEY:"acceptSingleChange"}),O.DefineIcon("removeLast",{NAME:"remove-last",SVG_KEY:"rejectSingleChange"}),O.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){var t;e&&this.$tb&&(t=0!==(t=this.$tb.find('.fr-more-toolbar[data-name="'.concat(e.attr("id"),'"]'))).length&&t.hasClass("fr-expanded"),(this.opts.trackChangesEnabled&&this.opts.toolbarContainer&&!t||!this.opts.trackChangesEnabled&&this.opts.toolbarContainer&&t)&&(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))}}),O.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)}}),O.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)}}),O.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)}}),O.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)}}),O.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)}})});