wysiwyg-rails 4.7.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/froala_editor.min.js +3 -3
  3. data/app/assets/javascripts/froala_editor.pkgd.min.js +3 -3
  4. data/app/assets/javascripts/languages/ar.js +24 -8
  5. data/app/assets/javascripts/languages/bs.js +24 -8
  6. data/app/assets/javascripts/languages/cs.js +24 -8
  7. data/app/assets/javascripts/languages/da.js +24 -8
  8. data/app/assets/javascripts/languages/de.js +23 -8
  9. data/app/assets/javascripts/languages/el.js +24 -8
  10. data/app/assets/javascripts/languages/en_ca.js +24 -8
  11. data/app/assets/javascripts/languages/en_gb.js +24 -8
  12. data/app/assets/javascripts/languages/es.js +24 -8
  13. data/app/assets/javascripts/languages/et.js +24 -8
  14. data/app/assets/javascripts/languages/fa.js +24 -8
  15. data/app/assets/javascripts/languages/fi.js +24 -8
  16. data/app/assets/javascripts/languages/fr.js +26 -9
  17. data/app/assets/javascripts/languages/he.js +18 -12
  18. data/app/assets/javascripts/languages/hr.js +24 -8
  19. data/app/assets/javascripts/languages/hu.js +24 -8
  20. data/app/assets/javascripts/languages/id.js +24 -8
  21. data/app/assets/javascripts/languages/it.js +24 -8
  22. data/app/assets/javascripts/languages/ja.js +24 -8
  23. data/app/assets/javascripts/languages/ko.js +24 -8
  24. data/app/assets/javascripts/languages/ku.js +24 -8
  25. data/app/assets/javascripts/languages/me.js +24 -8
  26. data/app/assets/javascripts/languages/nb.js +24 -8
  27. data/app/assets/javascripts/languages/nl.js +24 -8
  28. data/app/assets/javascripts/languages/pl.js +24 -8
  29. data/app/assets/javascripts/languages/pt_br.js +24 -8
  30. data/app/assets/javascripts/languages/pt_pt.js +24 -8
  31. data/app/assets/javascripts/languages/ro.js +24 -8
  32. data/app/assets/javascripts/languages/ru.js +24 -8
  33. data/app/assets/javascripts/languages/sk.js +24 -8
  34. data/app/assets/javascripts/languages/sl.js +23 -8
  35. data/app/assets/javascripts/languages/sr.js +24 -8
  36. data/app/assets/javascripts/languages/sv.js +24 -8
  37. data/app/assets/javascripts/languages/th.js +24 -8
  38. data/app/assets/javascripts/languages/tr.js +24 -8
  39. data/app/assets/javascripts/languages/uk.js +24 -8
  40. data/app/assets/javascripts/languages/vi.js +23 -8
  41. data/app/assets/javascripts/languages/zh_cn.js +10 -12
  42. data/app/assets/javascripts/languages/zh_tw.js +24 -8
  43. data/app/assets/javascripts/plugins/align.min.js +3 -3
  44. data/app/assets/javascripts/plugins/char_counter.min.js +3 -3
  45. data/app/assets/javascripts/plugins/code_beautifier.min.js +3 -3
  46. data/app/assets/javascripts/plugins/code_snippet.min.js +7 -0
  47. data/app/assets/javascripts/plugins/code_view.min.js +3 -3
  48. data/app/assets/javascripts/plugins/colors.min.js +3 -3
  49. data/app/assets/javascripts/plugins/cryptojs.min.js +3 -3
  50. data/app/assets/javascripts/plugins/draggable.min.js +3 -3
  51. data/app/assets/javascripts/plugins/edit_in_popup.min.js +3 -3
  52. data/app/assets/javascripts/plugins/emoticons.min.js +3 -3
  53. data/app/assets/javascripts/plugins/entities.min.js +3 -3
  54. data/app/assets/javascripts/plugins/export_to_word.min.js +3 -3
  55. data/app/assets/javascripts/plugins/file.min.js +3 -3
  56. data/app/assets/javascripts/plugins/files_manager.min.js +3 -3
  57. data/app/assets/javascripts/plugins/filestack.min.js +3 -3
  58. data/app/assets/javascripts/plugins/find_and_replace.min.js +3 -3
  59. data/app/assets/javascripts/plugins/font_family.min.js +3 -3
  60. data/app/assets/javascripts/plugins/font_size.min.js +3 -3
  61. data/app/assets/javascripts/plugins/forms.min.js +3 -3
  62. data/app/assets/javascripts/plugins/fullscreen.min.js +3 -3
  63. data/app/assets/javascripts/plugins/help.min.js +3 -3
  64. data/app/assets/javascripts/plugins/image.min.js +3 -3
  65. data/app/assets/javascripts/plugins/image_manager.min.js +3 -3
  66. data/app/assets/javascripts/plugins/import_from_word.min.js +7 -0
  67. data/app/assets/javascripts/plugins/inline_class.min.js +3 -3
  68. data/app/assets/javascripts/plugins/inline_style.min.js +3 -3
  69. data/app/assets/javascripts/plugins/line_breaker.min.js +3 -3
  70. data/app/assets/javascripts/plugins/line_height.min.js +3 -3
  71. data/app/assets/javascripts/plugins/link.min.js +3 -3
  72. data/app/assets/javascripts/plugins/link_to_anchor.min.js +3 -3
  73. data/app/assets/javascripts/plugins/lists.min.js +3 -3
  74. data/app/assets/javascripts/plugins/markdown.min.js +3 -3
  75. data/app/assets/javascripts/plugins/page_break.min.js +3 -3
  76. data/app/assets/javascripts/plugins/paragraph_format.min.js +3 -3
  77. data/app/assets/javascripts/plugins/paragraph_style.min.js +3 -3
  78. data/app/assets/javascripts/plugins/print.min.js +3 -3
  79. data/app/assets/javascripts/plugins/quick_insert.min.js +3 -3
  80. data/app/assets/javascripts/plugins/quote.min.js +3 -3
  81. data/app/assets/javascripts/plugins/save.min.js +3 -3
  82. data/app/assets/javascripts/plugins/special_characters.min.js +3 -3
  83. data/app/assets/javascripts/plugins/table.min.js +3 -3
  84. data/app/assets/javascripts/plugins/track_changes.min.js +3 -3
  85. data/app/assets/javascripts/plugins/trim_video.min.js +3 -3
  86. data/app/assets/javascripts/plugins/url.min.js +3 -3
  87. data/app/assets/javascripts/plugins/video.min.js +3 -3
  88. data/app/assets/javascripts/plugins/word_counter.min.js +3 -3
  89. data/app/assets/javascripts/plugins/word_paste.min.js +3 -3
  90. data/app/assets/javascripts/plugins.pkgd.min.js +3 -3
  91. data/app/assets/javascripts/third_party/embedly.min.js +3 -3
  92. data/app/assets/javascripts/third_party/font_awesome.min.js +3 -3
  93. data/app/assets/javascripts/third_party/image_tui.min.js +3 -3
  94. data/app/assets/javascripts/third_party/showdown.min.js +3 -3
  95. data/app/assets/javascripts/third_party/spell_checker.min.js +3 -3
  96. data/app/assets/stylesheets/froala_editor.css +2 -2
  97. data/app/assets/stylesheets/froala_editor.min.css +2 -2
  98. data/app/assets/stylesheets/froala_editor.pkgd.css +111 -4
  99. data/app/assets/stylesheets/froala_editor.pkgd.min.css +3 -3
  100. data/app/assets/stylesheets/froala_style.css +2 -2
  101. data/app/assets/stylesheets/froala_style.min.css +2 -2
  102. data/app/assets/stylesheets/plugins/char_counter.css +2 -2
  103. data/app/assets/stylesheets/plugins/char_counter.min.css +2 -2
  104. data/app/assets/stylesheets/plugins/code_snippet.css +111 -0
  105. data/app/assets/stylesheets/plugins/code_snippet.min.css +7 -0
  106. data/app/assets/stylesheets/plugins/code_view.css +2 -2
  107. data/app/assets/stylesheets/plugins/code_view.min.css +2 -2
  108. data/app/assets/stylesheets/plugins/colors.css +2 -2
  109. data/app/assets/stylesheets/plugins/colors.min.css +2 -2
  110. data/app/assets/stylesheets/plugins/draggable.css +2 -2
  111. data/app/assets/stylesheets/plugins/draggable.min.css +2 -2
  112. data/app/assets/stylesheets/plugins/emoticons.css +2 -2
  113. data/app/assets/stylesheets/plugins/emoticons.min.css +2 -2
  114. data/app/assets/stylesheets/plugins/file.css +2 -2
  115. data/app/assets/stylesheets/plugins/file.min.css +2 -2
  116. data/app/assets/stylesheets/plugins/files_manager.css +2 -2
  117. data/app/assets/stylesheets/plugins/files_manager.min.css +2 -2
  118. data/app/assets/stylesheets/plugins/filestack.css +2 -2
  119. data/app/assets/stylesheets/plugins/filestack.min.css +2 -2
  120. data/app/assets/stylesheets/plugins/find_and_replace.css +2 -2
  121. data/app/assets/stylesheets/plugins/find_and_replace.min.css +2 -2
  122. data/app/assets/stylesheets/plugins/fullscreen.css +2 -2
  123. data/app/assets/stylesheets/plugins/fullscreen.min.css +2 -2
  124. data/app/assets/stylesheets/plugins/help.css +2 -2
  125. data/app/assets/stylesheets/plugins/help.min.css +2 -2
  126. data/app/assets/stylesheets/plugins/image.css +2 -2
  127. data/app/assets/stylesheets/plugins/image.min.css +2 -2
  128. data/app/assets/stylesheets/plugins/image_manager.css +2 -2
  129. data/app/assets/stylesheets/plugins/image_manager.min.css +2 -2
  130. data/app/assets/stylesheets/plugins/line_breaker.css +2 -2
  131. data/app/assets/stylesheets/plugins/line_breaker.min.css +2 -2
  132. data/app/assets/stylesheets/plugins/link_to_anchor.css +2 -2
  133. data/app/assets/stylesheets/plugins/link_to_anchor.min.css +2 -2
  134. data/app/assets/stylesheets/plugins/markdown.css +2 -2
  135. data/app/assets/stylesheets/plugins/markdown.min.css +2 -2
  136. data/app/assets/stylesheets/plugins/page_break.css +3 -3
  137. data/app/assets/stylesheets/plugins/page_break.min.css +3 -3
  138. data/app/assets/stylesheets/plugins/quick_insert.css +2 -2
  139. data/app/assets/stylesheets/plugins/quick_insert.min.css +2 -2
  140. data/app/assets/stylesheets/plugins/special_characters.css +2 -2
  141. data/app/assets/stylesheets/plugins/special_characters.min.css +2 -2
  142. data/app/assets/stylesheets/plugins/table.css +4 -3
  143. data/app/assets/stylesheets/plugins/table.min.css +3 -3
  144. data/app/assets/stylesheets/plugins/trim_video.css +2 -2
  145. data/app/assets/stylesheets/plugins/trim_video.min.css +2 -2
  146. data/app/assets/stylesheets/plugins/video.css +2 -2
  147. data/app/assets/stylesheets/plugins/video.min.css +2 -2
  148. data/app/assets/stylesheets/plugins.pkgd.css +111 -4
  149. data/app/assets/stylesheets/plugins.pkgd.min.css +3 -3
  150. data/app/assets/stylesheets/themes/dark.css +28 -2
  151. data/app/assets/stylesheets/themes/dark.min.css +3 -3
  152. data/app/assets/stylesheets/themes/gray.css +28 -2
  153. data/app/assets/stylesheets/themes/gray.min.css +3 -3
  154. data/app/assets/stylesheets/themes/royal.css +28 -2
  155. data/app/assets/stylesheets/themes/royal.min.css +3 -3
  156. data/app/assets/stylesheets/third_party/embedly.css +2 -2
  157. data/app/assets/stylesheets/third_party/embedly.min.css +2 -2
  158. data/app/assets/stylesheets/third_party/font_awesome.css +2 -2
  159. data/app/assets/stylesheets/third_party/font_awesome.min.css +2 -2
  160. data/app/assets/stylesheets/third_party/image_tui.css +2 -2
  161. data/app/assets/stylesheets/third_party/image_tui.min.css +2 -2
  162. data/app/assets/stylesheets/third_party/spell_checker.css +2 -2
  163. data/app/assets/stylesheets/third_party/spell_checker.min.css +2 -2
  164. data/lib/wysiwyg-rails/version.rb +1 -1
  165. metadata +6 -2
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * froala_editor v4.7.1 (https://www.froala.com/wysiwyg-editor)
2
+ * froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
3
3
  * License https://froala.com/wysiwyg-editor/terms/
4
- * Copyright 2014-2025 Froala Labs
4
+ * Copyright 2014-2026 Froala Labs
5
5
  */
6
6
 
7
- !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,">&#x21b5;</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" >&nbsp;</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)}})});
7
+ !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,">&#x21b5;</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" >&nbsp;</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)}})});
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * froala_editor v4.7.1 (https://www.froala.com/wysiwyg-editor)
2
+ * froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
3
3
  * License https://froala.com/wysiwyg-editor/terms/
4
- * Copyright 2014-2025 Froala Labs
4
+ * Copyright 2014-2026 Froala Labs
5
5
  */
6
6
 
7
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(e.FroalaEditor)}(this,function(e){"use strict";(e=e&&e.hasOwnProperty("default")?e["default"]:e).PLUGINS.trimVideoPlugin=function(c){var o,d,s,l,u,m,f,v,r;function p(e){e.preventDefault(),null!=l&&l.abort(),l=null;var t=document.getElementById("videoTrimContainer");t.parentNode.removeChild(t),c.filesManager.setChildWindowState(!1)}function g(e){var t=parseInt(e,10),n=Math.floor(t/3600)?String(Math.floor(t/3600)):"00",a=Math.floor(t/60)%60?String(Math.floor(t/60)%60):"00",i=t%60?String(t%60):"00";return i=i.length<2?"0"+i:i,a=a.length<2?"0"+a:a,(n=n.length<2?"0"+n:n)+":"+a+":"+i}function y(e){e.preventDefault();var t=g(document.getElementById("startTime").value),n=g(document.getElementById("endTime").value);o.constructor===Blob&&(o=new File([o],o.name,{type:o.type||"",lastModified:o.lastModified}));var a=new FormData;a.append("startTime",t),a.append("endTime",n),a.append("file",o);var i=new XMLHttpRequest;document.getElementById("trim-file-loader").classList.add("fr-file-loader"),document.getElementsByClassName("fr-trim-button")[0].style.display="none",i.onload=function(){if(200==this.status){var e=new Blob([this.response],{type:this.response.type||""});e.name=o.name,e.lastModified=o.lastModified,e.lastModifiedDate=o.lastModifiedDate,r.set(d,e),c.filesManager.upload(e,[],null,d),document.getElementById("trim-file-loader").classList.remove("fr-file-loader"),document.getElementsByClassName("fr-trim-button")[0].style.display="block";var t=document.getElementById("videoTrimContainer");t.parentNode.removeChild(t),c.filesManager.setChildWindowState(!1)}},i.open("POST","http://localhost:3000/convert",!0),i.responseType="blob",(l=i).send(a)}return{_init:function e(){},trimVideo:function i(e,t,n){o=e,d=t,r=n,function a(){var e=URL.createObjectURL(o),t=c.o_doc.body,n=c.o_doc.createElement("div");n.setAttribute("id","videoTrimContainer"),n.style.cssText="position: fixed; top: 0;left: 0;padding: 0;overflow-y:auto;width: 100%;height: 100%;background: rgba(0,0,0,0.4);z-index: 9998;display:block",t.appendChild(n);var r=document.createElement("div");r.setAttribute("id","fr-form-container"),r.innerHTML='\n <h3 class="fr-trim-video-name"> '.concat(o.name.replace(/\.[^.]*$/,""),"</h3>\n <div style='display:block;text-align: center; margin-left:50%;' id='trim-file-loader'></div>\n <video id='fr-video-edit' controls>\n <source src=").concat(e," >\n Your browser does not support the video tag.\n </video> \n "),document.getElementById("videoTrimContainer").appendChild(r),document.getElementById("fr-video-edit").addEventListener("loadedmetadata",function(){s=document.getElementById("fr-video-edit").duration,r.innerHTML+=' \n \n <form>\n <center>\n <section class="fr-range-slider ">\n <div id="startTimeValue" class=" fr-range-value-start"> </div>\n <input type="range" class="fr-slider" value=\'0\' min="0" max='.concat(s,' id=\'startTime\' >\n <div id="endTimeValue" class="fr-range-value-end" ></div>\n <input type="range"class="fr-slider" value=').concat(s," min='0' max=").concat(s," id='endTime'>\n <div id=\"selectedRange\"style=\" pointer-events: none; position: absolute;left: 0;top: 12px;width: 100%;\n outline: none;\n height: 6px;\n border-radius: 10px;\"></div>\n </section>\n </center>\n <div class=\"fr-video-trim-buttons\" >\n <button id='convert' class='fr-trim-button'>").concat(c.language.translate("Trim"),"</button> \n <button id='cancel' class='fr-trim-button' onsubmit='cancel()'>").concat(c.language.translate("Cancel"),"</button>\n </div>\n </form>\n ");var t=document.getElementById("startTime"),e=document.getElementById("startTimeValue"),n=function n(){u=Number(100*(t.value-t.min)/(t.max-t.min)),m=10-.2*u,f=Number(100*(a.value-a.min)/(a.max-a.min)),v=10-.2*f,e.innerHTML="<span>".concat(g(t.value),"</span>"),e.style.left="calc(".concat(u,"% + (").concat(m,"px))"),selectedRange.style.left=e.style.left,selectedRange.style.width="calc((".concat(f,"% + (").concat(v,"px)) - (").concat(u,"% + (").concat(m,"px)))"),selectedRange.style.backgroundColor="#03A9F4"};document.addEventListener("DOMContentLoaded",n);var a=document.getElementById("endTime"),i=document.getElementById("endTimeValue"),o=function o(){u=Number(100*(t.value-t.min)/(t.max-t.min)),m=10-.2*u,f=Number(100*(a.value-a.min)/(a.max-a.min)),v=10-.2*f,i.innerHTML="<span>".concat(g(a.value),"</span>"),i.style.left="calc(".concat(f,"% + (").concat(v,"px))");var e=document.getElementById("selectedRange");e.style.left="calc(".concat(u,"% + (").concat(m,"px))"),e.style.width="calc((".concat(f,"% + (").concat(v,"px)) - (").concat(u,"% + (").concat(m,"px)))"),e.style.backgroundColor="#03A9F4"};document.addEventListener("DOMContentLoaded",o),document.getElementById("convert").addEventListener("click",y),document.getElementById("cancel").addEventListener("click",p);var d=document.getElementById("startTime"),l=document.getElementById("endTime");d.oninput=function(e){if(Number(d.value)>=Number(l.value))return e.preventDefault(),d.value=String(Number(l.value)-1),!1;n()},l.oninput=function(e){if(Number(l.value)<=Number(d.value))return e.preventDefault(),l.value=String(Number(d.value)+1),!1;o()}})}()}}}});
7
+ !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(e){"use strict";e.PLUGINS.trimVideoPlugin=function(c){var a,i,s,o,u,m,f,v,d;function p(e){e.preventDefault(),null!=o&&o.abort(),o=null;e=document.getElementById("videoTrimContainer");e.parentNode.removeChild(e),c.filesManager.setChildWindowState(!1)}function g(e){var e=parseInt(e,10),t=Math.floor(e/3600)?String(Math.floor(e/3600)):"00",n=Math.floor(e/60)%60?String(Math.floor(e/60)%60):"00",e=(e=e%60?String(e%60):"00").length<2?"0"+e:e,n=n.length<2?"0"+n:n;return(t.length<2?"0"+t:t)+":"+n+":"+e}function y(e){e.preventDefault();var e=g(document.getElementById("startTime").value),t=g(document.getElementById("endTime").value),n=(a.constructor===Blob&&(a=new File([a],a.name,{type:a.type||"",lastModified:a.lastModified})),new FormData),e=(n.append("startTime",e),n.append("endTime",t),n.append("file",a),new XMLHttpRequest);document.getElementById("trim-file-loader").classList.add("fr-file-loader"),document.getElementsByClassName("fr-trim-button")[0].style.display="none",e.onload=function(){var e;200==this.status&&((e=new Blob([this.response],{type:this.response.type||""})).name=a.name,e.lastModified=a.lastModified,e.lastModifiedDate=a.lastModifiedDate,d.set(i,e),c.filesManager.upload(e,[],null,i),document.getElementById("trim-file-loader").classList.remove("fr-file-loader"),document.getElementsByClassName("fr-trim-button")[0].style.display="block",(e=document.getElementById("videoTrimContainer")).parentNode.removeChild(e),c.filesManager.setChildWindowState(!1))},e.open("POST","http://localhost:3000/convert",!0),e.responseType="blob",(o=e).send(n)}return{_init:function(){},trimVideo:function(e,t,n){var r;a=e,i=t,d=n,e=URL.createObjectURL(a),t=c.o_doc.body,(n=c.o_doc.createElement("div")).setAttribute("id","videoTrimContainer"),n.style.cssText="position: fixed; top: 0;left: 0;padding: 0;overflow-y:auto;width: 100%;height: 100%;background: rgba(0,0,0,0.4);z-index: 9998;display:block",t.appendChild(n),(r=document.createElement("div")).setAttribute("id","fr-form-container"),r.innerHTML='\n <h3 class="fr-trim-video-name"> '.concat(a.name.replace(/\.[^.]*$/,""),"</h3>\n <div style='display:block;text-align: center; margin-left:50%;' id='trim-file-loader'></div>\n <video id='fr-video-edit' controls>\n <source src=").concat(e," >\n Your browser does not support the video tag.\n </video> \n "),document.getElementById("videoTrimContainer").appendChild(r),document.getElementById("fr-video-edit").addEventListener("loadedmetadata",function(){s=document.getElementById("fr-video-edit").duration,r.innerHTML+=' \n \n <form>\n <center>\n <section class="fr-range-slider ">\n <div id="startTimeValue" class=" fr-range-value-start"> </div>\n <input type="range" class="fr-slider" value=\'0\' min="0" max='.concat(s,' id=\'startTime\' >\n <div id="endTimeValue" class="fr-range-value-end" ></div>\n <input type="range"class="fr-slider" value=').concat(s," min='0' max=").concat(s," id='endTime'>\n <div id=\"selectedRange\"style=\" pointer-events: none; position: absolute;left: 0;top: 12px;width: 100%;\n outline: none;\n height: 6px;\n border-radius: 10px;\"></div>\n </section>\n </center>\n <div class=\"fr-video-trim-buttons\" >\n <button id='convert' class='fr-trim-button'>").concat(c.language.translate("Trim"),"</button> \n <button id='cancel' class='fr-trim-button' onsubmit='cancel()'>").concat(c.language.translate("Cancel"),"</button>\n </div>\n </form>\n ");var t=document.getElementById("startTime"),e=document.getElementById("startTimeValue"),n=function n(){u=Number(100*(t.value-t.min)/(t.max-t.min)),m=10-.2*u,f=Number(100*(a.value-a.min)/(a.max-a.min)),v=10-.2*f,e.innerHTML="<span>".concat(g(t.value),"</span>"),e.style.left="calc(".concat(u,"% + (").concat(m,"px))"),selectedRange.style.left=e.style.left,selectedRange.style.width="calc((".concat(f,"% + (").concat(v,"px)) - (").concat(u,"% + (").concat(m,"px)))"),selectedRange.style.backgroundColor="#03A9F4"},a=(document.addEventListener("DOMContentLoaded",n),document.getElementById("endTime")),i=document.getElementById("endTimeValue"),o=function o(){u=Number(100*(t.value-t.min)/(t.max-t.min)),m=10-.2*u,f=Number(100*(a.value-a.min)/(a.max-a.min)),v=10-.2*f,i.innerHTML="<span>".concat(g(a.value),"</span>"),i.style.left="calc(".concat(f,"% + (").concat(v,"px))");var e=document.getElementById("selectedRange");e.style.left="calc(".concat(u,"% + (").concat(m,"px))"),e.style.width="calc((".concat(f,"% + (").concat(v,"px)) - (").concat(u,"% + (").concat(m,"px)))"),e.style.backgroundColor="#03A9F4"},d=(document.addEventListener("DOMContentLoaded",o),document.getElementById("convert").addEventListener("click",y),document.getElementById("cancel").addEventListener("click",p),document.getElementById("startTime")),l=document.getElementById("endTime");d.oninput=function(e){if(Number(d.value)>=Number(l.value))return e.preventDefault(),d.value=String(Number(l.value)-1),!1;n()},l.oninput=function(e){if(Number(l.value)<=Number(d.value))return e.preventDefault(),l.value=String(Number(d.value)+1),!1;o()}})}}}});
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * froala_editor v4.7.1 (https://www.froala.com/wysiwyg-editor)
2
+ * froala_editor v5.0.0 (https://www.froala.com/wysiwyg-editor)
3
3
  * License https://froala.com/wysiwyg-editor/terms/
4
- * Copyright 2014-2025 Froala Labs
4
+ * Copyright 2014-2026 Froala Labs
5
5
  */
6
6
 
7
- !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(r){"use strict";(r=r&&r.hasOwnProperty("default")?r["default"]:r).URLRegEx="(^| |\\u00A0)(".concat(r.LinkRegEx,"|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\\.[a-z0-9+-_]{1,}))$"),r.PLUGINS.url=function(u){var c=u.$,o=null;function t(e,t,n){for(var r="";n.length&&"."==n[n.length-1];)r+=".",n=n.substring(0,n.length-1);var a=n;if(u.opts.linkConvertEmailAddress)u.helpers.isEmail(a)&&!/^mailto:.*/i.test(a)&&(a="mailto:".concat(a));else if(u.helpers.isEmail(a))return t+n;return/^((http|https|ftp|ftps|mailto|tel|sms|notes|data)\:)/i.test(a)||(a="//".concat(a)),(t||"")+"<a".concat(u.opts.linkAlwaysBlank?' target="_blank"':"").concat(o?' rel="'.concat(o,'"'):"",' data-fr-linked="true" href="').concat(a,'">').concat(n.replace(/&amp;/g,"&").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"</a>").concat(r)}var d=function d(){return new RegExp(r.URLRegEx,"gi")};function g(e){return u.opts.linkAlwaysNoFollow&&(o="nofollow"),u.opts.linkAlwaysBlank&&(u.opts.linkNoOpener&&(o?o+=" noopener":o="noopener"),u.opts.linkNoReferrer&&(o?o+=" noreferrer":o="noreferrer")),e.replace(d(),t)}function h(e){var t=e.split(" ");return t[t.length-1]}function n(){var e=u.selection.ranges(0),t=e.startContainer;if(t.nodeType!==Node.TEXT_NODE)return!1;if(!t||e.startOffset!==(t.textContent||"").length){u.markers.insert();var n=u.$el.find(".fr-marker"),r=t.textContent.match(/(^| |\u00A0)(((([a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,})(\.(com|net|org|edu|mil|gov|co|biz|info|me|dev)))|((ftp|http|https):\/\/[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,})|(www\.[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,}\.[a-z0-9-]{2,24})|((ftp|http|https):\/\/[\u0021-\uffff]{1,}@[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,}))((:[0-9]{1,5})|)(((\/|\?|#)[a-z\u00a1-\uffff0-9@?\|!^=%&amp;\/~+#-\'*-_{}]*)|())|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\.[a-z0-9+-_]{1,}))$/gi);if(n.remove(),!r)return!1}if(function p(e){return!!e&&("A"===e.tagName||!(!e.parentNode||e.parentNode==u.el)&&p(e.parentNode))}(t))return!1;if(d().test(h(t.textContent))){var a,o=t.textContent.length;if(0<o&&","===t.textContent.charAt(o-1)){c(t).before(g(t.textContent.substring(0,o-1))),(a=c(t.parentNode).find("a[data-fr-linked]")).removeAttr("data-fr-linked"),t.textContent=",";var i=u.win.getSelection().getRangeAt(0);i.setStart(t,1),i.setEnd(t,1)}else c(t).before(g(t.textContent)),(a=c(t.parentNode).find("a[data-fr-linked]")).removeAttr("data-fr-linked"),t.parentNode.removeChild(t);u.events.trigger("url.linked",[a.get(0)])}else if(t.textContent.split(" ").length<=2&&t.previousSibling&&"A"===t.previousSibling.tagName){var l=t.previousSibling.innerText+t.textContent,f=t.textContent.length;if(d().test(h(l))&&","!==t.textContent.charAt(f-1)){var s=(new DOMParser).parseFromString(g(l),"text/html").body.childNodes;t.parentNode.replaceChild(s[0],t.previousSibling),s.length&&c(t).before(s[0]),t.parentNode.removeChild(t)}}}return{_init:function e(){u.events.on("keypress",function(e){!u.selection.isCollapsed()||")"!=e.key&&"("!=e.key||n()},!0),u.events.on("keydown",function(e){var t=e.which;!u.selection.isCollapsed()||t!=r.KEYCODE.ENTER&&t!=r.KEYCODE.SPACE||n()},!0),u.events.on("paste.beforeCleanup",function(e){if(u.helpers.isURL(e)&&!u.$el[0].getAttribute("plainpaste")){var t=null;return u.opts.linkAlwaysBlank&&(u.opts.linkNoOpener&&(t?t+=" noopener":t="noopener"),u.opts.linkNoReferrer&&(t?t+=" noreferrer":t="noreferrer")),"<a".concat(u.opts.linkAlwaysBlank?' target="_blank"':"").concat(t?' rel="'.concat(t,'"'):"",' href="').concat(e,'" >').concat(e,"</a>")}if(u.$el[0].getAttribute("plainpaste"))return function n(e){if("string"==typeof e)return(e=e.replace(/&amp;/g,"&")).replace(/(?:https?|ftp|file):\/\/(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$'\u2019"`()[\]{}\\])|www\.(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$'\u2019"`()[\]{}\\])|(?:[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,})|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}(?:\/[^\s<]*)?/gim,g)}(e)})}}}});
7
+ !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(r){"use strict";r.URLRegEx="(^| |\\u00A0)(".concat(r.LinkRegEx,"|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\\.[a-z0-9+-_]{1,}))$"),r.PLUGINS.url=function(o){var i=o.$,l=null;function t(e,t,n){for(var r="";n.length&&"."==n[n.length-1];)r+=".",n=n.substring(0,n.length-1);var a=n;if(o.opts.linkConvertEmailAddress)o.helpers.isEmail(a)&&!/^mailto:.*/i.test(a)&&(a="mailto:".concat(a));else if(o.helpers.isEmail(a))return t+n;return/^((http|https|ftp|ftps|mailto|tel|sms|notes|data)\:)/i.test(a)||(a="//".concat(a)),(t||"")+"<a".concat(o.opts.linkAlwaysBlank?' target="_blank"':"").concat(l?' rel="'.concat(l,'"'):"",' data-fr-linked="true" href="').concat(a,'">').concat(n.replace(/&amp;/g,"&").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),"</a>").concat(r)}var f=function f(){return new RegExp(r.URLRegEx,"gi")};function s(e){return o.opts.linkAlwaysNoFollow&&(l="nofollow"),o.opts.linkAlwaysBlank&&(o.opts.linkNoOpener&&(l?l+=" noopener":l="noopener"),o.opts.linkNoReferrer)&&(l?l+=" noreferrer":l="noreferrer"),e.replace(f(),t)}function p(e){e=e.split(" ");return e[e.length-1]}function n(){var e,t=o.selection.ranges(0),n=t.startContainer;if(n.nodeType===Node.TEXT_NODE){if(!n||t.startOffset!==(n.textContent||"").length){o.markers.insert();var t=o.$el.find(".fr-marker"),r=n.textContent.match(/(^| |\u00A0)(((([a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,})(\.(com|net|org|edu|mil|gov|co|biz|info|me|dev)))|((ftp|http|https):\/\/[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,})|(www\.[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,}\.[a-z0-9-]{2,24})|((ftp|http|https):\/\/[\u0021-\uffff]{1,}@[a-z\u0080-\u009f\u00a1-\uffff0-9-_\.]{1,}))((:[0-9]{1,5})|)(((\/|\?|#)[a-z\u00a1-\uffff0-9@?\|!^=%&amp;\/~+#-\'*-_{}]*)|())|([a-z0-9+-_.]{1,}@[a-z0-9+-_.]{1,}\.[a-z0-9+-_]{1,}))$/gi);if(t.remove(),!r)return}!function a(e){return!!e&&("A"===e.tagName||!(!e.parentNode||e.parentNode==o.el)&&a(e.parentNode))}(n)&&(f().test(p(n.textContent))?(0<(t=n.textContent.length)&&","===n.textContent.charAt(t-1)?(i(n).before(s(n.textContent.substring(0,t-1))),(e=i(n.parentNode).find("a[data-fr-linked]")).removeAttr("data-fr-linked"),n.textContent=",",(r=o.win.getSelection().getRangeAt(0)).setStart(n,1),r.setEnd(n,1)):(i(n).before(s(n.textContent)),(e=i(n.parentNode).find("a[data-fr-linked]")).removeAttr("data-fr-linked"),n.parentNode.removeChild(n)),o.events.trigger("url.linked",[e.get(0)])):n.textContent.split(" ").length<=2&&n.previousSibling&&"A"===n.previousSibling.tagName&&(t=n.previousSibling.innerText+n.textContent,r=n.textContent.length,f().test(p(t)))&&","!==n.textContent.charAt(r-1)&&(e=(new DOMParser).parseFromString(s(t),"text/html").body.childNodes,n.parentNode.replaceChild(e[0],n.previousSibling),e.length&&i(n).before(e[0]),n.parentNode.removeChild(n)))}}return{_init:function(){o.events.on("keypress",function(e){!o.selection.isCollapsed()||")"!=e.key&&"("!=e.key||n()},!0),o.events.on("keydown",function(e){e=e.which;!o.selection.isCollapsed()||e!=r.KEYCODE.ENTER&&e!=r.KEYCODE.SPACE||n()},!0),o.events.on("paste.beforeCleanup",function(e){if(o.helpers.isURL(e)&&!o.$el[0].getAttribute("plainpaste"))return t=null,o.opts.linkAlwaysBlank&&(o.opts.linkNoOpener&&(t?t+=" noopener":t="noopener"),o.opts.linkNoReferrer)&&(t?t+=" noreferrer":t="noreferrer"),"<a".concat(o.opts.linkAlwaysBlank?' target="_blank"':"").concat(t?' rel="'.concat(t,'"'):"",' href="').concat(e,'" >').concat(e,"</a>");if(o.$el[0].getAttribute("plainpaste")){var t=e;if("string"==typeof t)return(t=t.replace(/&amp;/g,"&")).replace(/(?:https?|ftp|file):\/\/(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$'\u2019"`()[\]{}\\])|www\.(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\])*(?:\([-A-Z0-9+&@#\/%=~_|$?!:,.'\u2019"`()[\]{}\\]*\)|[-A-Z0-9+&@#\/%=~_|$'\u2019"`()[\]{}\\])|(?:[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z]{2,})|(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}(?:\/[^\s<]*)?/gim,s)}})}}}});