froala-editor
Version:
The next generation Javascript WYSIWYG HTML rich text editor made by devs for devs. High performance and modern design make it easy to use for developers and loved by users.
7 lines (6 loc) • 444 kB
JavaScript
/*!
* froala_editor v5.3.0 (https://www.froala.com/wysiwyg-editor)
* License https://froala.com/wysiwyg-editor/terms/
* Copyright 2014-2026 Froala Labs
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(require("froala-editor")):"function"==typeof define&&define.amd?define(["froala-editor"],t):t(("undefined"!=typeof globalThis?globalThis:e||self).FroalaEditor)}(this,function(k){"use strict";function V(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function n(e){if(Array.isArray(e))return e}function v(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function l(e,t,n,r,i,a,o){try{var s=e[a](o),l=s.value}catch(e){return n(e)}s.done?t(l):Promise.resolve(l).then(r,i)}function $(s){return function(){var e=this,o=arguments;return new Promise(function(t,n){var r=s.apply(e,o);function i(e){l(r,t,n,i,a,"next",e)}function a(e){l(r,t,n,i,a,"throw",e)}i(void 0)})}}function S(e,t,n){t=c(t);var r=e,e=u()?Reflect.construct(t,n||[],c(e).constructor):t.apply(e,n);if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return v(r)}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,ee(r.key),r)}}function w(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function K(e,t){var n,r,i,a,o="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(o)return i=!(r=!0),{s:function(){o=o.call(e)},n:function(){var e=o.next();return r=e.done,e},e:function(e){i=!0,n=e},f:function(){try{r||null==o["return"]||o["return"]()}finally{if(i)throw n}}};if(Array.isArray(e)||(o=te(e))||t)return o&&(e=o),a=0,{s:t=function(){},n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:t};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function a(e,t,n){return(t=ee(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(){return(o="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,n){var r=function(e,t){for(;!{}.hasOwnProperty.call(e,t)&&null!==(e=c(e)););return e}(e,t);if(r)return(r=Object.getOwnPropertyDescriptor(r,t)).get?r.get.call(arguments.length<3?e:n):r.value}).apply(null,arguments)}function c(e){return(c=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function E(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&G(e,t)}function u(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(u=function(){return!!e})()}function X(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function W(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,c=!1;try{if(a=(n=n.call(e)).next,0!==t)for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){c=!0,i=e}finally{try{if(!l&&null!=n["return"]&&(o=n["return"](),Object(o)!==o))return}finally{if(c)throw i}}return s}}function z(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Y(t,e){var n,r=Object.keys(t);return Object.getOwnPropertySymbols&&(n=Object.getOwnPropertySymbols(t),e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)),r}function F(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Y(Object(n),!0).forEach(function(e){a(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Y(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function T(){var g,p,e="function"==typeof Symbol?Symbol:{},t=e.iterator||"@@iterator",n=e.toStringTag||"@@toStringTag";function r(e,t,n,r){var i,a,o,s,l,c,u,d,h,t=t&&t.prototype instanceof _?t:_,t=Object.create(t.prototype);return J(t,"_invoke",(i=e,a=n,u=r||[],d=!1,h={p:c=0,n:0,v:g,a:f,f:f.bind(g,4),d:function(e,t){return o=e,s=0,l=g,h.n=t,v}},function(e,t,n){if(1<c)throw TypeError("Generator is already running");for(d&&1===t&&f(t,n),s=t,l=n;(p=s<2?g:l)||!d;){o||(s?s<3?(1<s&&(h.n=-1),f(s,l)):h.n=l:h.v=l);try{if(c=2,o){if(p=o[e=s?e:"next"]){if(!(p=p.call(o,l)))throw TypeError("iterator result is not an object");if(!p.done)return p;l=p.value,s<2&&(s=0)}else 1===s&&(p=o["return"])&&p.call(o),s<2&&(l=TypeError("The iterator does not provide a '"+e+"' method"),s=1);o=g}else if((p=(d=h.n<0)?l:i.call(a,h))!==v)break}catch(p){o=g,s=1,l=p}finally{c=1}}return{value:p,done:d}}),!0),t;function f(e,t){for(s=e,l=t,p=0;!d&&c&&!n&&p<u.length;p++){var n,r=u[p],i=h.p,a=r[2];3<e?(n=a===t)&&(l=r[(s=r[4])?5:s=3],r[4]=r[5]=g):r[0]<=i&&((n=e<2&&i<r[1])?(s=0,h.v=t,h.n=r[1]):i<a&&(n=e<3||r[0]>t||a<t)&&(r[4]=e,r[5]=t,h.n=a,s=0))}if(n||1<e)return v;throw d=!0,t}}var v={};function _(){}function i(){}function a(){}p=Object.getPrototypeOf;var e=[][t]?p(p([][t]())):(J(p={},t,function(){return this}),p),o=a.prototype=_.prototype=Object.create(e);function s(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,a):(e.__proto__=a,J(e,n,"GeneratorFunction")),e.prototype=Object.create(o),e}return J(o,"constructor",i.prototype=a),J(a,"constructor",i),J(a,n,i.displayName="GeneratorFunction"),J(o),J(o,n,"Generator"),J(o,t,function(){return this}),J(o,"toString",function(){return"[object Generator]"}),(T=function(){return{w:r,m:s}})()}function J(e,t,n,r){var a=Object.defineProperty;try{a({},"",{})}catch(e){a=0}(J=function(e,t,n,r){function i(t,n){J(e,t,function(e){return this._invoke(t,n,e)})}t?a?a(e,t,{value:n,enumerable:!r,configurable:!r,writable:!r}):e[t]=n:(i("next",0),i("throw",1),i("return",2))})(e,t,n,r)}function G(e,t){return(G=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function I(e,t){return n(e)||W(e,t)||te(e,t)||z()}function Z(e,t,n){var r=o(c(e.prototype),t,n);return"function"==typeof r?function(e){return r.apply(n,e)}:r}function Q(e){return n(e)||X(e)||te(e)||z()}function H(e){return function(e){if(Array.isArray(e))return V(e)}(e)||X(e)||te(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.")}()}function ee(e){e=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0===n)return("string"===t?String:Number)(e);if("object"!=typeof(e=n.call(e,t)))return e;throw new TypeError("@@toPrimitive must return a primitive value.")}(e,"string");return"symbol"==typeof e?e:e+""}function _(e){return(_="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function te(e,t){var n;if(e)return"string"==typeof e?V(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)?V(e,t):void 0}Object.assign(k.POPUP_TEMPLATES,{"collaborative.msg":"[_ERROR_LAYER_]"});var ne="editing",re="suggesting",ie="viewing",D="\u2060",ae="editor",oe="suggester",se="viewer",le=a(a(a({},ae,[ne,re,ie]),oe,[re,ie]),se,[ie]),ce=a(a(a({},ae,ne),oe,re),se,ie);function ue(e){return(null==(e=e.opts)||null==(e=e.collabConfig)||null==(e=e.user)?void 0:e.role)||ae}var de=new WeakMap;function he(e){var t=de.get(e);return t||de.set(e,t={}),t}var fe=a(a(a({},ne,{label:"Editing",title:"Edit document with real-time sync",iconPath:"M3.75 14.25H4.81875L12.15 6.91875L11.0813 5.85L3.75 13.1813V14.25ZM3 15.75C2.7875 15.75 2.60938 15.6781 2.46563 15.5344C2.32188 15.3906 2.25 15.2125 2.25 15V13.1813C2.25 12.9813 2.2875 12.7906 2.3625 12.6094C2.4375 12.4281 2.54375 12.2688 2.68125 12.1313L12.15 2.68125C12.3 2.54375 12.4656 2.4375 12.6469 2.3625C12.8281 2.2875 13.0188 2.25 13.2188 2.25C13.4188 2.25 13.6125 2.2875 13.8 2.3625C13.9875 2.4375 14.15 2.55 14.2875 2.7L15.3188 3.75C15.4688 3.8875 15.5781 4.05 15.6469 4.2375C15.7156 4.425 15.75 4.6125 15.75 4.8C15.75 5 15.7156 5.19063 15.6469 5.37188C15.5781 5.55313 15.4688 5.71875 15.3188 5.86875L5.86875 15.3188C5.73125 15.4563 5.57188 15.5625 5.39063 15.6375C5.20938 15.7125 5.01875 15.75 4.81875 15.75H3ZM11.6063 6.39375L11.0813 5.85L12.15 6.91875L11.6063 6.39375Z"}),re,{label:"Suggesting",title:"Add suggestions as Yjs-tracked changes",iconPath:"M5.25 10.5H6.46875C6.56875 10.5 6.66563 10.4812 6.75938 10.4437C6.85313 10.4062 6.9375 10.35 7.0125 10.275L10.5375 6.75C10.65 6.6375 10.7344 6.50937 10.7906 6.36562C10.8469 6.22187 10.875 6.08125 10.875 5.94375C10.875 5.80625 10.8438 5.67187 10.7812 5.54062C10.7188 5.40937 10.6375 5.2875 10.5375 5.175L9.8625 4.4625C9.75 4.35 9.625 4.26562 9.4875 4.20937C9.35 4.15312 9.20625 4.125 9.05625 4.125C8.91875 4.125 8.77813 4.15312 8.63438 4.20937C8.49063 4.26562 8.3625 4.35 8.25 4.4625L4.725 7.9875C4.65 8.0625 4.59375 8.14687 4.55625 8.24062C4.51875 8.33437 4.5 8.43125 4.5 8.53125V9.75C4.5 9.9625 4.57188 10.1406 4.71563 10.2844C4.85938 10.4281 5.0375 10.5 5.25 10.5ZM5.625 9.375V8.6625L7.51875 6.76875L7.89375 7.10625L8.23125 7.48125L6.3375 9.375H5.625ZM7.89375 7.10625L8.23125 7.48125L7.51875 6.76875L7.89375 7.10625ZM8.38125 10.5H12.75C12.9625 10.5 13.1406 10.4281 13.2844 10.2844C13.4281 10.1406 13.5 9.9625 13.5 9.75C13.5 9.5375 13.4281 9.35937 13.2844 9.21562C13.1406 9.07187 12.9625 9 12.75 9H9.88125L8.38125 10.5ZM4.5 13.5L2.775 15.225C2.5375 15.4625 2.26563 15.5156 1.95938 15.3844C1.65312 15.2531 1.5 15.0187 1.5 14.6812V3C1.5 2.5875 1.64687 2.23437 1.94063 1.94062C2.23438 1.64687 2.5875 1.5 3 1.5H15C15.4125 1.5 15.7656 1.64687 16.0594 1.94062C16.3531 2.23437 16.5 2.5875 16.5 3V12C16.5 12.4125 16.3531 12.7656 16.0594 13.0594C15.7656 13.3531 15.4125 13.5 15 13.5H4.5ZM3.8625 12H15V3H3V12.8437L3.8625 12Z"}),ie,{label:"Viewing",title:"Read-only \u2014 no edits allowed",iconPath:"M11.3875 11.0156C12.0437 10.3594 12.3719 9.5625 12.3719 8.625C12.3719 7.6875 12.0437 6.89063 11.3875 6.23438C10.7312 5.57812 9.93437 5.25 8.99687 5.25C8.05937 5.25 7.2625 5.57812 6.60625 6.23438C5.95 6.89063 5.62187 7.6875 5.62187 8.625C5.62187 9.5625 5.95 10.3594 6.60625 11.0156C7.2625 11.6719 8.05937 12 8.99687 12C9.93437 12 10.7312 11.6719 11.3875 11.0156ZM7.5625 10.0594C7.16875 9.66563 6.97187 9.1875 6.97187 8.625C6.97187 8.0625 7.16875 7.58438 7.5625 7.19063C7.95625 6.79688 8.43437 6.6 8.99687 6.6C9.55937 6.6 10.0375 6.79688 10.4312 7.19063C10.825 7.58438 11.0219 8.0625 11.0219 8.625C11.0219 9.1875 10.825 9.66563 10.4312 10.0594C10.0375 10.4531 9.55937 10.65 8.99687 10.65C8.43437 10.65 7.95625 10.4531 7.5625 10.0594ZM4.4125 12.9C3.03125 12 1.94062 10.8125 1.14062 9.3375C1.07812 9.225 1.03125 9.10938 1 8.99063C0.96875 8.87188 0.953125 8.75 0.953125 8.625C0.953125 8.5 0.96875 8.37813 1 8.25938C1.03125 8.14062 1.07812 8.025 1.14062 7.9125C1.94062 6.4375 3.03125 5.25 4.4125 4.35C5.79375 3.45 7.32187 3 8.99687 3C10.6719 3 12.2 3.45 13.5812 4.35C14.9625 5.25 16.0531 6.4375 16.8531 7.9125C16.9156 8.025 16.9625 8.14062 16.9937 8.25938C17.025 8.37813 17.0406 8.5 17.0406 8.625C17.0406 8.75 17.025 8.87188 16.9937 8.99063C16.9625 9.10938 16.9156 9.225 16.8531 9.3375C16.0531 10.8125 14.9625 12 13.5812 12.9C12.2 13.8 10.6719 14.25 8.99687 14.25C7.32187 14.25 5.79375 13.8 4.4125 12.9ZM12.8875 11.6344C14.0687 10.8906 14.9719 9.8875 15.5969 8.625C14.9719 7.3625 14.0687 6.35938 12.8875 5.61563C11.7062 4.87188 10.4094 4.5 8.99687 4.5C7.58437 4.5 6.2875 4.87188 5.10625 5.61563C3.925 6.35938 3.02187 7.3625 2.39687 8.625C3.02187 9.8875 3.925 10.8906 5.10625 11.6344C6.2875 12.3781 7.58437 12.75 8.99687 12.75C10.4094 12.75 11.7062 12.3781 12.8875 11.6344Z"}),ge="M6.36518 10.1L12.0152 4.45C12.1485 4.31667 12.3041 4.25 12.4818 4.25C12.6596 4.25 12.8152 4.31667 12.9485 4.45C13.0818 4.58333 13.1485 4.74167 13.1485 4.925C13.1485 5.10833 13.0818 5.26667 12.9485 5.4L6.83184 11.5333C6.69851 11.6667 6.54295 11.7333 6.36518 11.7333C6.1874 11.7333 6.03184 11.6667 5.89851 11.5333L3.03184 8.66667C2.89851 8.53333 2.83462 8.375 2.84018 8.19167C2.84573 8.00833 2.91518 7.85 3.04851 7.71667C3.18184 7.58333 3.34018 7.51667 3.52351 7.51667C3.70684 7.51667 3.86518 7.58333 3.99851 7.71667L6.36518 10.1Z";function pe(e,t,n){n=2<arguments.length&&n!==undefined?n:"0 0 18 18",t=t?"fr-collab-icon ".concat(t):"fr-collab-icon";return'<svg class="'.concat(t,'" focusable="false" viewBox="').concat(n,'" xmlns="http://www.w3.org/2000/svg"><path d="').concat(e,'"/></svg>')}var ve=function(){return w(function t(e){C(this,t),this.editor=e},[{key:"_state",get:function(){return he(this.editor)}},{key:"getMode",value:function(){var e;return this._state.mode||(e=ue(this.editor),this._state.mode=ce[e]||ne),this._state.mode}},{key:"getRole",value:function(){return ue(this.editor)}},{key:"setMode",value:function(e){var t,n;this._state.disabled||(t=ue(this.editor),t=le[t]||le[ae],n=this.getMode(),fe[e]&&t.includes(e)&&n!==e&&(this._state.mode=e,this.editor.events.trigger("collab.modeChanged",[e,n],!0)))}},{key:"_isMobile",value:function(){var e=this.editor.helpers;return e&&"function"==typeof e.isMobile?e.isMobile():"undefined"!=typeof window&&window.matchMedia("(max-width: 767px)").matches}},{key:"_getPanelHost",value:function(){var e=this.editor;return e.$box&&e.$box[0]||e.$wp&&e.$wp[0]||null}},{key:"_getOrCreatePanel",value:function(){var e,s,t,l,c,u,d,n,r,i,a,o,h=this,f=this.editor;return this._state.panel&&this._state.panel.isConnected?this._state.panel:(e=this._getPanelHost())?((s=this.editor.doc.createElement("div")).className="fr-collab-panel",s.innerHTML='\n <div class="fr-collab-panel__header">\n <button type="button" class="fr-collab-panel__toggle" data-action="hide-panel">'.concat(f.language.translate("Hide Comments"),'</button>\n <div class="fr-collab-panel__filter-wrap">\n <button type="button" class="fr-collab-panel__filter" data-action="toggle-filter" aria-haspopup="true" aria-expanded="false">\n <span data-filter-label>').concat(f.language.translate("Open"),'</span>\n <svg class="fr-collab-panel__caret" viewBox="0 0 9 5" xmlns="http://www.w3.org/2000/svg" focusable="false">\n <path d="M4.18125 3.13125L1.25625 0.20625C1.11875 0.06875 0.94375 0 0.73125 0C0.51875 0 0.34375 0.06875 0.20625 0.20625C0.06875 0.34375 0 0.51875 0 0.73125C0 0.94375 0.06875 1.11875 0.20625 1.25625L3.65625 4.70625C3.73125 4.78125 3.8125 4.83438 3.9 4.86563C3.9875 4.89688 4.08125 4.9125 4.18125 4.9125C4.28125 4.9125 4.375 4.89688 4.4625 4.86563C4.55 4.83438 4.63125 4.78125 4.70625 4.70625L8.15625 1.25625C8.29375 1.11875 8.3625 0.94375 8.3625 0.73125C8.3625 0.51875 8.29375 0.34375 8.15625 0.20625C8.01875 0.06875 7.84375 0 7.63125 0C7.41875 0 7.24375 0.06875 7.10625 0.20625L4.18125 3.13125Z"/>\n </svg>\n </button>\n <ul class="fr-collab-panel__filter-menu" role="menu">\n <li role="none"><button type="button" role="menuitem" class="fr-collab-panel__filter-option fr-collab-panel__filter-option--active" data-filter="open">').concat(f.language.translate("Open"),'</button></li>\n <li role="none"><button type="button" role="menuitem" class="fr-collab-panel__filter-option" data-filter="resolved">').concat(f.language.translate("Resolved"),'</button></li>\n </ul>\n </div>\n <button type="button" class="fr-collab-panel__expand" data-action="expand-panel" aria-label="').concat(f.language.translate("Show comments"),'">').concat(Ne,'</button>\n </div>\n <div class="fr-collab-panel__body">\n <div class="fr-collab-panel__empty">').concat(f.language.translate("No suggestions or comments yet."),'</div>\n </div>\n <div class="fr-collab-panel__collapsed-body" aria-hidden="true"></div>\n '),t=f.$(s),null==this._state.panelFilter&&(this._state.panelFilter="open"),l=s.querySelector(".fr-collab-panel__filter-wrap"),c=s.querySelector('[data-action="toggle-filter"]'),(u=s.querySelector("[data-filter-label]"))&&(u.textContent="resolved"===this._state.panelFilter?f.language.translate("Resolved"):f.language.translate("Show Open")),l&&l.querySelectorAll(".fr-collab-panel__filter-option").forEach(function(e){e.classList.toggle("fr-collab-panel__filter-option--active",e.getAttribute("data-filter")===h._state.panelFilter)}),d=function d(){l&&(l.classList.remove("fr-collab-panel__filter-wrap--open"),c)&&c.setAttribute("aria-expanded","false")},f.events.$on(t,"click",function(e){if(!h._state.disabled){var t=(e=e.originalEvent?e.originalEvent:e).target;if(t&&t.closest){if(t.closest('[data-action="hide-panel"]'))return(n=h._getPanelHost())?void(s.querySelector(".fr-collab-panel__body .fr-collab-card")?(s.classList.add("fr-collab-panel--collapsed"),h._renderCollapsedBody()):(s.classList.remove("fr-collab-panel-visible"),s.classList.remove("fr-collab-panel--collapsed"),n.classList.remove("fr-collab-panel-open"),(n=(n=f.$tb&&f.$tb[0])&&n.querySelector('[data-cmd="collabPanel"]'))&&f.button.refresh(f.$(n)))):void 0;var n=t.closest('[data-action="expand-panel"], [data-collapsed-card-id]');if(n)e.stopPropagation(),s.classList.remove("fr-collab-panel--collapsed"),(n=n.getAttribute("data-collapsed-card-id"))&&(n=s.querySelector('[data-card-id="'.concat(j(n),'"]')))&&h._scrollCardIntoView(n);else{var r,n=t.closest('[data-action="toggle-expand"]');if(n)e.stopPropagation(),(r=n.closest(".fr-collab-card"))&&(a="true"===r.dataset.expanded,r.dataset.expanded=a?"false":"true",n.textContent=a?"See more":"See less");else if(t.closest('[data-action="toggle-filter"]'))e.stopPropagation(),r=l.classList.toggle("fr-collab-panel__filter-wrap--open"),c.setAttribute("aria-expanded",r?"true":"false");else{var i=t.closest("[data-filter]");if(i&&l&&l.contains(i))e.stopPropagation(),n=i.getAttribute("data-filter"),h._state.panelFilter=n,u&&(u.textContent="resolved"===n?f.language.translate("Resolved"):f.language.translate("Show Open")),l.querySelectorAll(".fr-collab-panel__filter-option").forEach(function(e){e.classList.toggle("fr-collab-panel__filter-option--active",e===i)}),d(),h._renderPanel();else{if(h._isMobile()){if(t.closest('[data-action="mobile-view-all"]'))return void h._expandMobilePanel();if(t.closest('[data-action="mobile-prev"]'))return void h._navigateMobileCard(-1);if(t.closest('[data-action="mobile-next"]'))return void h._navigateMobileCard(1)}var a,o=t.closest(".fr-collab-card");o&&(a=o.getAttribute("data-card-id"))&&!t.closest(".fr-collab-card__menu-wrap")&&(h._state.activeCardId=a,s.querySelectorAll(".fr-collab-card-active").forEach(function(e){e!==o&&e.classList.remove("fr-collab-card-active")}),o.classList.add("fr-collab-card-active"),h._isMobile()&&h._showMobileSingleCard(a),o.hasAttribute("data-suggestion-id")?h._focusSuggestionMark(a):o.hasAttribute("data-comment-id")&&h._focusCommentMark(o.getAttribute("data-comment-id")))}}}}}}),f.events.$on(t,"mouseover mouseout",function(e){var t,n;!h._state.disabled&&(t="mouseover"===(e=e.originalEvent?e.originalEvent:e).type,n=e.target.closest&&e.target.closest(".fr-collab-card[data-suggestion-id], .fr-collab-card[data-comment-id]"))&&(t||!n.contains(e.relatedTarget))&&((e=n.getAttribute("data-suggestion-id"))?h._setSuggestionHover(e,t):h._setCommentHover(n.getAttribute("data-comment-id"),t))}),n=null,r=function r(){var e;n=null,h._state.disabled||(e=h.editor.doc).activeElement&&e.activeElement.closest&&e.activeElement.closest('.fr-collab-card__reply-input, .fr-collab-card__textarea, .fr-collab-card__draft-input, [data-action="edit-input"]')||((e=h._getMarkAtCaret())?h._activateCardFromCaret(e.type,e.id):(e=s&&s.querySelector(".fr-collab-card-focused"),(h._state.activeCardId||e)&&(e=f.selection?f.selection.get():f.win.getSelection())&&0!==e.rangeCount&&(e=e.getRangeAt(0),f.el)&&f.el.contains(e.startContainer)&&h._clearActiveSuggestion()))},this.editor.events.$on(this.editor.$box,"mousedown",function(e){h._state.disabled||(e.originalEvent&&(e=e.originalEvent),l&&l.classList.contains("fr-collab-panel__filter-wrap--open")&&(l.contains(e.target)||d()),!h._state.activeCardId)||!(e=e.target)||!e.closest||e.closest("[data-suggestion-id]")||e.closest("[data-comment-id]")||e.closest(".fr-collab-card")||s.contains(e)||e.closest(".fr-collab-mention-menu, .fr-toast-container, .fr-toast")||h._clearActiveSuggestion()}),this.editor.events.$on(this.editor.$doc,"selectionchange",function(){null==n&&(n=requestAnimationFrame(r))}),this._state.panelTeardown=function(){null!=n&&(cancelAnimationFrame(n),n=null)},f.events.on("destroy",function(){h._state.panelTeardown&&(h._state.panelTeardown(),h._state.panelTeardown=null)}),this._isMobile()&&(s.insertAdjacentHTML("afterbegin",'\n <div class="fr-collab-panel__handle" aria-hidden="true">\n <div class="fr-collab-panel__handle-bar"></div>\n </div>\n <div class="fr-collab-panel__mobile-bar">\n <span class="fr-collab-panel__mobile-count"></span>\n <button type="button" class="fr-collab-panel__mobile-view-all" data-action="mobile-view-all">'.concat(f.language.translate("View All"),'</button>\n </div>\n <div class="fr-collab-panel__mobile-nav" aria-live="polite">\n <button type="button" class="fr-collab-panel__mobile-prev" data-action="mobile-prev" aria-label="').concat(f.language.translate("Previous"),'">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">\n <path d="M12.9668 15.9999L22.7668 25.7999C23.1002 26.1332 23.2613 26.5221 23.2502 26.9666C23.2391 27.411 23.0668 27.7999 22.7335 28.1332C22.4002 28.4666 22.0113 28.6332 21.5668 28.6332C21.1224 28.6332 20.7335 28.4666 20.4002 28.1332L10.1335 17.8999C9.86683 17.6332 9.66683 17.3332 9.5335 16.9999C9.40016 16.6666 9.3335 16.3332 9.3335 15.9999C9.3335 15.6666 9.40016 15.3332 9.5335 14.9999C9.66683 14.6666 9.86683 14.3666 10.1335 14.0999L20.4002 3.83324C20.7335 3.4999 21.1279 3.33879 21.5835 3.3499C22.0391 3.36101 22.4335 3.53324 22.7668 3.86657C23.1002 4.1999 23.2668 4.58879 23.2668 5.03324C23.2668 5.47768 23.1002 5.86657 22.7668 6.1999L12.9668 15.9999Z"/>\n </svg>\n </button>\n <span class="fr-collab-panel__mobile-counter"></span>\n <button type="button" class="fr-collab-panel__mobile-next" data-action="mobile-next" aria-label="').concat(f.language.translate("Next"),'">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">\n <path d="M19.0332 15.9999L9.23317 25.7999C8.89984 26.1332 8.73873 26.5221 8.74984 26.9666C8.76095 27.411 8.93317 27.7999 9.2665 28.1332C9.59984 28.4666 9.98873 28.6332 10.4332 28.6332C10.8776 28.6332 11.2665 28.4666 11.5998 28.1332L21.8665 17.8999C22.1332 17.6332 22.3332 17.3332 22.4665 16.9999C22.5998 16.6666 22.6665 16.3332 22.6665 15.9999C22.6665 15.6666 22.5998 15.3332 22.4665 14.9999C22.3332 14.6666 22.1332 14.3666 21.8665 14.0999L11.5998 3.83324C11.2665 3.4999 10.8721 3.33879 10.4165 3.3499C9.96095 3.36101 9.5665 3.53324 9.23317 3.86657C8.89984 4.1999 8.73317 4.58879 8.73317 5.03324C8.73317 5.47768 8.89984 5.86657 9.23317 6.1999L19.0332 15.9999Z"/>\n </svg>\n </button>\n <button type="button" class="fr-collab-panel__mobile-view-all-nav" data-action="mobile-view-all">').concat(f.language.translate("View All"),"</button>\n </div>\n ")),a=!1,o=i=0,t.on("touchstart",function(e){i=e.touches[0].clientY,a=!!(e.target&&e.target.closest&&e.target.closest(".fr-collab-panel__handle"));e=h._state.panel;o=a&&e&&e.classList.contains("fr-collab-panel--mobile-full")?e.offsetHeight:0}),t.on("touchmove",function(e){var t,n;e.target&&e.target.closest&&e.target.closest(".fr-collab-panel__body")||(e.preventDefault(),a&&o&&(t=h._state.panel)&&(n=Math.round(.9*window.innerHeight),n=Math.max(120,Math.min(n,o-(e.touches[0].clientY-i))),t.style.height=n+"px"))}),t.on("touchend",function(e){var t;h._isMobile()&&a?(a=!1,o?(o=0,(t=h._state.panel)&&t.offsetHeight<200&&(t.style.height="",h._collapseMobilePanel())):(t=e.changedTouches[0].clientY-i)<-40?h._expandMobilePanel():40<t&&h._collapseMobilePanel()):a=!1})),e.appendChild(s),this._state.panel=s,this._applyEditorHeightToPanel(s),s):null}},{key:"_applyEditorHeightToPanel",value:function(e){var t,n;e&&!this._isMobile()&&(t=this.editor.opts||{},e.style.minHeight=(n=function n(e){return null==e||""===e?"":"number"==typeof e?"".concat(e,"px"):String(e)})(t.heightMin),e.style.height=n(t.height),e.style.maxHeight=n(t.heightMax))}},{key:"_renderPanel",value:function(){var e=this,r=this.editor,t=this._getOrCreatePanel();if(t){t.classList.toggle("fr-collab-panel--readonly",this.getMode()===ie||this.getRole()===se);var n=this._state.ydoc;if(n){var i=this.getRole(),a=null==(s=r.opts.collabConfig)||null==(s=s.user)?void 0:s.id,o=n.getMap("fr-suggestions"),s=n.getMap("fr-comments"),l=function l(e){e=e&&e.timestamp;if("number"==typeof e&&isFinite(e))return e;if("string"==typeof e){var t=Number(e);if(isFinite(t))return t;t=Date.parse(e);if(!isNaN(t))return t}return 0},c=this._state.panelFilter||"open",u=function u(e){return!e.status||"pending"===e.status},d=function d(e){return!e.resolved},h=[],n=(o.forEach(function(e){var t=u(e);("open"===c?t:!t)&&h.push({kind:"suggestion",data:e,ts:l(e)})}),s.forEach(function(e){var t=d(e);("open"===c?t:!t)&&h.push({kind:"comment",data:e,ts:l(e)})}),h.sort(function(e,t){return t.ts-e.ts}),h.length),s=this._getPanelHost(),f=t.classList.contains("fr-collab-panel-visible"),s=(t.classList.add("fr-collab-panel-visible"),s&&!this._isMobile()&&s.classList.add("fr-collab-panel-open"),t.classList.remove("fr-collab-panel--collapsed"),f||(f=(s=r.$tb&&r.$tb[0])&&s.querySelector('[data-cmd="collabPanel"]'))&&r.button.refresh(r.$(f)),t.querySelector(".fr-collab-panel__body"));if(0===n)f="resolved"===c?r.language.translate("No resolved suggestions or comments."):r.language.translate("No suggestions or comments yet."),s.innerHTML='<div class="fr-collab-panel__empty">'.concat(f,"</div>");else{for(var g,p=[],v=0,_=h;v<_.length;v++){var m,y=_[v],b=y.data,k=(k=i,m=a,g=b.authorId,k===ae||k===oe&&m===g);"suggestion"===y.kind?p.push(function(e,t){var n=e.id,r=e.type,i=e.authorName,a=e.timestamp,o=e.originalText,s=e.suggestedText,l=e.status,c=e.canResolve,e=e.replies,u=ye(i),a=be(a,t),d="pending"===l||!l,h="",f="";"insert"===r?(h="".concat(t.language.translate("Add"),": "),f=A(s)):"insert-space"===r?h=t.language.translate("Add Space"):"insert-paragraph"===r?h=t.language.translate("Add Paragraph"):"insert-link"===r?(h="".concat(t.language.translate("Insert Link"),": "),f=A(s)):"insert-image"===r?h=t.language.translate("Insert Image"):"insert-table"===r?h=t.language.translate("Insert Table"):"link-insert"===r?(h="".concat(t.language.translate("Add Link"),": "),f=A(s||"")):"image-insert"===r||"table-insert"===r?h=A(t.language.translate(s||"")):"delete"===r?(h="".concat(t.language.translate("Delete"),": "),f=A(o)):"replace"===r?(h="".concat(t.language.translate("Replace"),": "),f="".concat(A(o)," ").concat(t.language.translate("with")," ").concat(A(s))):"format"===r?(p=Q((s||"Format").split(": ")),g=p[0],p=V(p).slice(1),h="".concat(A(t.language.translate(g)),": "),f=p.length?A(p.join(": ")):o?A(o):""):"format-paragraph"===r?(g=Q((s||"Format").split(": ")),p=g[0],g=V(g).slice(1),h=g.length?"".concat(A(t.language.translate(p)),": ").concat(A(g.join(": "))):A(t.language.translate(p)),f=""):"removed-format-paragraph"===r?(g=Q((s||"Removed").split(": ")),p=g[0],g=V(g).slice(1),h=g.length?"".concat(A(t.language.translate(p)),": ").concat(A(g.join(": "))):A(t.language.translate(p)),f=""):"removed-format"===r?(h="".concat(t.language.translate("Clear Formatting"),": "),f=o?A(o):""):"table-format"===r||"cell-format"===r?(f=o?A(o):"",h=f?"".concat(A(t.language.translate(s||"Format")),": "):A(t.language.translate(s||"Format"))):"table-delete"===r||r.endsWith("-delete")||r.endsWith("-remove")?(h=A(t.language.translate(s||"Delete")),f=""):"anchor-insert"===r||"pagebreak-insert"===r||"emoticon-insert"===r||"specialchar-insert"===r||"hr-insert"===r||"codesnippet-insert"===r?h=A(t.language.translate(s||"")):f=A(s||"");var g=r;r.startsWith("insert")||r.endsWith("-insert")?g="insert":"table-delete"===r||r.endsWith("-delete")||r.endsWith("-remove")?g="delete":"format-paragraph"!==r&&"removed-format-paragraph"!==r&&"removed-format"!==r&&"table-format"!==r&&"cell-format"!==r||(g="format");var p="fr-collab-card fr-collab-card-suggestion fr-collab-card-".concat(A(g));"accepted"===l&&(p+=" fr-collab-card-accepted");"rejected"===l&&(p+=" fr-collab-card-rejected");o=d&&c?'<div class="fr-collab-card__actions">\n <button class="fr-collab-card__icon-btn fr-btn-accept" data-action="accept" data-suggestion-id="'.concat(A(n),'" aria-label="').concat(t.language.translate("Accept"),'">').concat(we,'</button>\n <button class="fr-collab-card__icon-btn fr-btn-reject" data-action="reject" data-suggestion-id="').concat(A(n),'" aria-label="').concat(t.language.translate("Reject"),'">').concat(Ee,"</button>\n </div>"):"",s="";"accepted"===l&&(s='<span class="fr-collab-card__status-tag fr-status-accepted">'.concat(t.language.translate("Accepted"),"</span>"));"rejected"===l&&(s='<span class="fr-collab-card__status-tag fr-status-rejected">'.concat(t.language.translate("Rejected"),"</span>"));r=(e||[]).map(function(e){return'\n <div class="fr-collab-card__reply">\n <div class="fr-collab-card__reply-meta">\n <strong>'.concat(A(e.authorName),"</strong>\n <span>").concat(A(be(e.timestamp,t)),'</span>\n </div>\n <div class="fr-collab-card__reply-text">').concat(A(e.text),"</div>\n </div>")}).join(""),g=d?'<div class="fr-collab-card__reply-row">\n <input type="text" class="fr-collab-card__reply-input" placeholder="Reply" data-action="reply-input" data-suggestion-id="'.concat(A(n),'" />\n </div>'):"";return'\n<div class="'.concat(p,'" data-card-id="').concat(A(n),'" data-suggestion-id="').concat(A(n),'" data-expanded="true">\n <div class="fr-collab-card__top-bar"></div>\n <div class="fr-collab-card__header">\n <span class="fr-collab-card__avatar">').concat(A(u),'</span>\n <span class="fr-collab-card__author">').concat(A(i),'</span>\n <span class="fr-collab-card__time">').concat(A(a),"</span>\n ").concat(o,'\n </div>\n <div class="fr-collab-card__body">\n <span class="fr-collab-card__label">').concat(h,'</span><span class="fr-collab-card__content">').concat(f,"</span>").concat(s,'\n </div>\n <button type="button" class="fr-collab-card__see-more" data-action="toggle-expand">').concat(t.language.translate("See less"),"</button>\n ").concat(r?'<div class="fr-collab-card__replies">'.concat(r,"</div>"):"","\n ").concat(g,"\n</div>")}(F(F({},b),{},{canResolve:k}),r)):(m=null!=a&&b.authorId===a,p.push(function(e,r){var i=e.id,t=e.authorName,n=e.timestamp,a=e.text,o=e.resolved,s=e.replies,l=e.canResolve,c=e.isAuthor,u=e.localUserId,e=ye(t),n=ke(n,r),s=s||[],d=1<s.length,h=s.map(function(e,t){var n=e.authorId&&e.authorId===u;return'\n <div class="fr-collab-card__reply'.concat(1<=t?" fr-reply-collapsed":"",'" data-reply-index="').concat(t,'">\n <div class="fr-collab-card__reply-header">\n <span class="fr-collab-card__avatar">').concat(A(ye(e.authorName)),'</span>\n <span class="fr-collab-card__author">').concat(A(e.authorName),'</span>\n <span class="fr-collab-card__time">').concat(A(ke(e.timestamp)),"</span>\n ").concat(n?'\n <div class="fr-collab-card__menu-wrap">\n <button class="fr-collab-card__icon-btn" data-action="reply-menu-toggle" data-comment-id="'.concat(A(i),'" data-reply-index="').concat(t,'" aria-label="').concat(r.language.translate("Menu"),'">').concat(Ae,'</button>\n <ul class="fr-collab-card__menu">\n <li><button type="button" data-action="reply-edit" data-comment-id="').concat(A(i),'" data-reply-index="').concat(t,'">').concat(r.language.translate("Edit"),'</button></li>\n <li><button type="button" data-action="reply-delete" data-comment-id="').concat(A(i),'" data-reply-index="').concat(t,'">').concat(r.language.translate("Delete"),"</button></li>\n </ul>\n </div>"):"",'\n </div>\n <div class="fr-collab-card__reply-text">').concat(Se(e.text,r),"</div>\n </div>")}).join(""),f="fr-collab-card fr-collab-card-comment";o&&(f+=" fr-collab-card-resolved");d&&(f+=" fr-has-overflow");var d=l?o?'<button class="fr-collab-card__icon-btn fr-btn-accept" data-action="reopen" data-comment-id="'.concat(A(i),'" aria-label="').concat(r.language.translate("Re-open"),'">').concat(Te,"</button>"):'<button class="fr-collab-card__icon-btn fr-btn-accept" data-action="resolve" data-comment-id="'.concat(A(i),'" aria-label="').concat(r.language.translate("Resolve"),'">').concat(we,"</button>"):"",g=c||o&&l,c=c&&!o?'<li><button type="button" data-action="edit" data-comment-id="'.concat(A(i),'">').concat(r.language.translate("Edit"),'</button></li>\n <li><button type="button" data-action="delete" data-comment-id="').concat(A(i),'">').concat(r.language.translate("Delete"),"</button></li>"):c&&o||o&&l?'<li><button type="button" data-action="delete" data-comment-id="'.concat(A(i),'">').concat(r.language.translate("Delete"),"</button></li>"):"",l='\n <div class="fr-collab-card__menu-wrap">\n <button class="fr-collab-card__icon-btn'.concat(g?"":" fr-collab-card__icon-btn--disabled",'"\n data-action="menu-toggle" data-comment-id="').concat(A(i),'"\n aria-label="').concat(r.language.translate("Menu"),'" ').concat(g?"":'aria-disabled="true"',">").concat(Ae,"</button>\n ").concat(g?'<ul class="fr-collab-card__menu">'.concat(c,"</ul>"):"","\n </div>"),g='\n <div class="fr-collab-card__actions">\n '.concat(d,"\n ").concat(l,"\n </div>"),c=o?"":'\n <div class="fr-collab-card__reply-field">\n <textarea class="fr-collab-card__reply-input" rows="1" placeholder="'.concat(r.language.translate("Reply"),'"\n data-action="reply-input" data-comment-id="').concat(A(i),'"></textarea>\n <div class="fr-collab-card__reply-actions">\n <button type="button" class="fr-collab-card__action-btn fr-collab-card__action-btn--secondary"\n data-action="reply-cancel" data-comment-id="').concat(A(i),'">').concat(r.language.translate("Cancel"),'</button>\n <button type="button" class="fr-collab-card__action-btn fr-collab-card__action-btn--primary"\n data-action="reply-submit" data-comment-id="').concat(A(i),'" disabled>').concat(r.language.translate("Reply"),"</button>\n </div>\n </div>");return'\n<div class="'.concat(f,'" data-card-id="').concat(A(i),'" data-comment-id="').concat(A(i),'" data-expanded="true">\n <div class="fr-collab-card__top-bar"></div>\n <div class="fr-collab-card__header">\n <span class="fr-collab-card__avatar">').concat(A(e),'</span>\n <span class="fr-collab-card__author">').concat(A(t),'</span>\n <span class="fr-collab-card__time">').concat(A(n),"</span>\n ").concat(g,'\n </div>\n <div class="fr-collab-card__body">\n <span class="fr-collab-card__content" data-comment-text-for="').concat(A(i),'">').concat(Se(a,r),"</span>\n </div>\n ").concat(s.length?'<div class="fr-collab-card__replies">'.concat(h,"</div>"):"","\n ").concat(c,'\n <button type="button" class="fr-collab-card__view-all fr-collab-card__view-all--more"\n data-action="show-all-replies" data-comment-id="').concat(A(i),'">').concat(r.language.translate("View All Replies"),'</button>\n <button type="button" class="fr-collab-card__view-all fr-collab-card__view-all--less"\n data-action="hide-all-replies" data-comment-id="').concat(A(i),'">').concat(r.language.translate("View Less"),"</button>\n</div>")}(F(F({},b),{},{canResolve:k,isAuthor:m,localUserId:a}),r)))}s.innerHTML=p.join(""),"open"===c&&r.el&&s.querySelectorAll(".fr-collab-card").forEach(function(e){var t=e.getAttribute("data-suggestion-id"),n=e.getAttribute("data-comment-id"),n=t||n;n&&(n=j(n),n=(t?'[data-suggestion-id="':'[data-comment-id="').concat(n,'"]'),"removed-format-paragraph"===(null==(t=t?o.get(t):null)?void 0:t.type)||r.el.querySelector(n)||(e.style.display="none"))});t=this._state.activeCardId;t&&(n=s.querySelector('[data-card-id="'.concat(j(t),'"]')))&&n.classList.add("fr-collab-card-active"),this._isMobile()&&this._updateMobileBar(),requestAnimationFrame(function(){return e._updateCardTruncation()}),this._renderCollapsedBody()}}}}},{key:"_renderCollapsedBody",value:function(){var r,i,e=this._state.panel,a=this.editor,t=null==e?void 0:e.querySelector(".fr-collab-panel__collapsed-body");e&&t&&(e=e.querySelectorAll(".fr-collab-panel__body .fr-collab-card"),r=new Set,i=[],e.forEach(function(e){var t,n;"none"!==e.style.display&&(t=e.getAttribute("data-card-id"))&&(n=(e=(e=e.querySelector(".fr-collab-card__author"))?e.textContent.trim():"").toLowerCase(),r.has(n)||(r.add(n),i.push('\n <button type="button" class="fr-collab-panel__collapsed-item" data-collapsed-card-id="'.concat(A(t),'" aria-label="').concat(a.language.translate("Open comment from")," ").concat(A(e),'">\n <span class="fr-collab-panel__collapsed-avatar">').concat(A(ye(e)),'</span>\n <span class="fr-collab-panel__collapsed-bubble">').concat(Me,"</span>\n </button>\n "))))}),t.innerHTML=i.join(""))}},{key:"_updateCardTruncation",value:function(){var t,n,e=this._state.panel,r=e&&e.querySelectorAll(".fr-collab-card");e&&e.classList.contains("fr-collab-panel-visible")&&r.length&&(e=(e=r[0].querySelector(".fr-collab-card__body"))?parseFloat(window.getComputedStyle(e).lineHeight):NaN,t=2*(e=!isFinite(e)||e<=0?20:e)+1,n=[],r.forEach(function(e){e=e.querySelector(".fr-collab-card__body");n.push(!!e&&e.scrollHeight>t)}),r.forEach(function(e,t){e.classList.toggle("fr-collab-card-truncated",n[t])}))}},{key:"_scrollCardIntoView",value:function(r){var e=this._state.panel,i=e&&e.querySelector(".fr-collab-panel__body");e&&r&&i&&requestAnimationFrame(function(){var e=r.getBoundingClientRect(),t=i.getBoundingClientRect(),n=e.top-t.top;(n<8||e.bottom>t.bottom)&&(e=i.scrollTop+n-8,i.scrollTo({top:Math.max(0,e),behavior:"smooth"}))})}},{key:"_scrollPanelTo",value:function(e){var t,n,r=this,i=this._getOrCreatePanel(),a=i&&i.querySelector('[data-card-id="'.concat(j(e),'"]'));i&&a&&(t=this.editor,i.classList.remove("fr-collab-panel--collapsed"),i.classList.contains("fr-collab-panel-visible")||(n=this._getPanelHost(),i.classList.add("fr-collab-panel-visible"),n&&n.classList.add("fr-collab-panel-open"),(n=(n=t.$tb&&t.$tb[0])&&n.querySelector('[data-cmd="collabPanel"]'))&&t.button.refresh(t.$(n)),requestAnimationFrame(function(){return r._updateCardTruncation()})),this._state.activeCardId=e,i.querySelectorAll(".fr-collab-card-active").forEach(function(e){e.classList.remove("fr-collab-card-active")}),a.classList.add("fr-collab-card-active"),this._scrollCardIntoView(a),a.hasAttribute("data-suggestion-id"))&&this._focusSuggestionMark(e)}},{key:"_clearFocusedMarks",value:function(e){e.querySelectorAll(".fr-suggestion-focused, .fr-comment-focused").forEach(function(e){e.classList.remove("fr-suggestion-focused"),e.classList.remove("fr-comment-focused")})}},{key:"_focusSuggestionMark",value:function(e){var t=this.editor.el;t&&(this._clearFocusedMarks(t),(e=t.querySelectorAll('[data-suggestion-id="'.concat(j(e),'"]'))).forEach(function(e){return e.classList.add("fr-suggestion-focused")}),e.length)&&this._scrollEditorToMark(e[0])}},{key:"_focusCommentMark",value:function(e){var t=this.editor.el;t&&(this._clearFocusedMarks(t),(e=t.querySelectorAll('[data-comment-id="'.concat(j(e),'"]'))).forEach(function(e){e.classList.add("fr-suggestion-focused"),e.classList.add("fr-comment-focused")}),e.length)&&this._scrollEditorToMark(e[0])}},{key:"_scrollEditorToMark",value:function(i){var e=this.editor,a=e.$wp&&e.$wp[0];a&&i&&requestAnimationFrame(function(){var e,t,n,r;i.isConnected&&(e=i.getBoundingClientRect(),t=a.getBoundingClientRect(),n=e.top<t.top+24,r=e.bottom>t.bottom-24,n||r)&&(n=e.top-t.top,r=a.scrollTop+n-24,a.scrollTo({top:Math.max(0,r),behavior:"smooth"}))})}},{key:"_getMarkAtCaret",value:function(){var e=this.editor.el,t=this.editor.selection?this.editor.selection.get():this.editor.win.getSelection();if(e&&t&&0!==t.rangeCount)return(t=t&&t.getRangeAt(0)).collapsed&&e.contains(t.startContainer)&&(e=(e=t.startContainer).nodeType!==Node.ELEMENT_NODE?e.parentElement:e)&&e.closest?(t=e.closest("[data-suggestion-id]"))?{type:"suggestion",id:t.getAttribute("data-suggestion-id")}:(t=e.closest("[data-comment-id]"))?{type:"comment",id:t.getAttribute("data-comment-id")}:null:null}},{key:"_activateCardFromCaret",value:function(e,t){t&&("comment"===e?this._focusCommentMark(t):this._focusSuggestionMark(t),e=this._state.panel)&&(e.querySelectorAll(".fr-collab-card-focused").forEach(function(e){e.getAttribute("data-card-id")!==t&&e.classList.remove("fr-collab-card-focused")}),e=e.querySelector('[data-card-id="'.concat(j(t),'"]')))&&(e.classList.add("fr-collab-card-focused"),this._isMobile()||this._scrollCardIntoView(e))}},{key:"_setMarkHover",value:function(e,t,n){var r=this.editor.el,i=this._state.panel;t&&(t=j(t),r&&r.querySelectorAll("[".concat(e,'="').concat(t,'"]')).forEach(function(e){e.classList.toggle("fr-suggestion-hover",n)}),i)&&(r=i.querySelector(".fr-collab-card[".concat(e,'="').concat(t,'"]')))&&r.classList.toggle("fr-collab-card-hover",n)}},{key:"_setSuggestionHover",value:function(e,t){this._setMarkHover("data-suggestion-id",e,t)}},{key:"_setCommentHover",value:function(e,t){this._setMarkHover("data-comment-id",e,t)}},{key:"_appendBoundary",value:function(e){var t;e&&e.parentNode&&((t=e.nextSibling)&&t.nodeType===Node.TEXT_NODE&&t.data&&t.data.charAt(0)===D||e.parentNode.insertBefore(this.editor.doc.createTextNode(D),t))}},{key:"updatePanelState",value:function(e){var t,n,r=this.editor,i=this._getOrCreatePanel();i&&(this._isMobile()?(e?(i.classList.add("fr-collab-panel-visible"),this._renderPanel()):this._collapseMobilePanel(),(t=(t=r.$tb&&r.$tb[0])&&t.querySelector('[data-cmd="collabPanel"]'))&&r.button.refresh(r.$(t))):(t=this._getPanelHost(),n=i.classList.contains("fr-collab-panel--collapsed"),(e!==undefined?e:n)?(i.classList.add("fr-collab-panel-visible"),i.classList.remove("fr-collab-panel--collapsed"),t&&t.classList.add("fr-collab-panel-open"),this._renderPanel()):i.querySelector(".fr-collab-panel__body .fr-collab-card")?(i.classList.add("fr-collab-panel-visible"),i.classList.add("fr-collab-panel--collapsed"),t&&t.classList.add("fr-collab-panel-open"),this._renderCollapsedBody()):(i.classList.remove("fr-collab-panel-visible"),i.classList.remove("fr-collab-panel--collapsed"),t&&t.classList.remove("fr-collab-panel-open")),(n=(e=r.$tb&&r.$tb[0])&&e.querySelector('[data-cmd="collabPanel"]'))&&r.button.refresh(r.$(n))))}},{key:"switchPanelType",value:function(){var e,t=this.editor,n="resolved"===this._state.panelFilter?"open":"resolved",r=(this._state.panelFilter=n,this._getOrCreatePanel());r&&((e=r.querySelector("[data-filter-label]"))&&(e.textContent="resolved"==n?t.language.translate("Resolved"):t.language.translate("Show Open")),r.querySelectorAll(".fr-collab-panel__filter-option").forEach(function(e){e.classList.toggle("fr-collab-panel__filter-option--active",e.getAttribute("data-filter")===n)})),this._renderPanel()}},{key:"_updateMobileBar",value:function(){var t,e,n=this._state.panel;n&&(e=n.querySelectorAll(".fr-collab-panel__body .fr-collab-card"),t=0,e.forEach(function(e){"none"!==e.style.display&&t++}),e=n.querySelector(".fr-collab-panel__mobile-bar"))&&(0===t?e.style.display="none":(e.style.display="",(n=e.querySelector(".fr-collab-panel__mobile-count"))&&(n.textContent="".concat(t," open comments"))))}},{key:"_expandMobilePanel",value:function(){var e=this._state.panel;e&&(e.classList.remove("fr-collab-panel--mobile-single","fr-collab-panel--mobile-draft"),e.querySelectorAll(".fr-collab-card--mobile-hidden").forEach(function(e){return e.classList.remove("fr-collab-card--mobile-hidden")}),e.classList.add("fr-collab-panel--mobile-full"))}},{key:"_collapseMobilePanel",value:function(){var e=this._state.panel;e&&(e.style.height="",e.classList.remove("fr-collab-panel--mobile-full","fr-collab-panel--mobile-single","fr-collab-panel--mobile-draft"))}},{key:"_showMobileDraftMode",value:function(){var e=this._state.panel;e&&(e.style.height="",e.classList.remove("fr-collab-panel--mobile-full","fr-collab-panel--mobile-single"),e.classList.add("fr-collab-panel-visible","fr-collab-panel--mobile-draft"))}},{key:"_exitMobileDraftMode",value:function(){var e=this._state.panel;e&&e.classList.remove("fr-collab-panel--mobile-draft")}},{key:"_showMobileSingleCard",value:function(e){var t=this._state.panel;t&&(t.style.height="",t.classList.remove("fr-collab-panel--mobile-full"),t.classList.add("fr-collab-panel--mobile-single"),this._updateMobileNav(e))}},{key:"_updateMobileNav",value:function(t){var e,n,r,i=this._state.panel;i&&((e=Array.from(i.querySelectorAll(".fr-collab-panel__body .fr-collab-card"))).forEach(function(e){return e.classList.remove("fr-collab-card--mobile-hidden")}),e=e.filter(function(e){return"none"!==e.style.display}),n=e.findIndex(function(e){return e.getAttribute("data-card-id")===t}),(r=i.querySelector(".fr-collab-panel__mobile-counter"))&&(r.textContent="".concat(n+1," of ").concat(e.length)),r=i.querySelector('[data-action="mobile-prev"]'),i=i.querySelector('[data-action="mobile-next"]'),r&&(r.disabled=n<=0),i&&(i.disabled=n>=e.length-1),e.forEach(function(e,t){e.classList.toggle("fr-collab-card--mobile-hidden",t!==n)}))}},{key:"_navigateMobileCard",value:function(e){var t,n,r,i=this._state.panel;i&&((t=Array.from(i.querySelectorAll(".fr-collab-panel__body .fr-collab-card"))).forEach(function(e){return e.classList.remove("fr-collab-card--mobile-hidden")}),t=t.filter(function(e){return"none"!==e.style.display}),n=this._state.activeCardId,r=t.findIndex(function(e){return e.getAttribute("data-card-id")===n}),(e=Math.max(0,Math.min(t.length-1,r+e)))!==r)&&(e=(r=t[e]).getAttribute("data-card-id"),this._state.activeCardId=e,i.querySelectorAll(".fr-collab-card-active").forEach(function(e){return e.classList.remove("fr-collab-card-active")}),r.classList.add("fr-collab-card-active"),r.hasAttribute("data-suggestion-id")?this._focusSuggestionMark(e):r.hasAttribute("data-comment-id")&&this._focusCommentMark(r.getAttribute("data-comment-id")),this._updateMobileNav(e))}},{key:"_clearActiveSuggestion",value:function(){var e=this.editor,t=(this._state.activeCardId=null,this._state.panel);t&&(t.querySelectorAll(".fr-collab-card-active, .fr-collab-card-focused").forEach(function(e){e.classList.remove("fr-collab-card-active"),e.classList.remove("fr-collab-card-focused")}),this._isMobile())&&this._collapseMobilePanel(),e.el&&e.el.querySelectorAll(".fr-suggestion-focused, .fr-comment-focused").forEach(function(e){e.classList.remove("fr-suggestion-focused"),e.classList.remove("fr-comment-focused")})}}])}(),_e=(k.SVG.collabEditing=fe[ne].iconPath,k.SVG.collabSuggesting=fe[re].iconPath,k.SVG.collabViewing=fe[ie].iconPath,k.RegisterCommand("collabMode",{type:"dropdown",displaySelection:!0,defaultSelection:"Editing",displaySelectionWidth:110,title:"Switch Mode",plugin:"collaborative",forcedRefresh:!0,html:function Yl(){var e=this.collaborative&&this.collaborative.getMode()||ne,t=ue(this),n=le[t]||le[ae];if(t===se)return"";for(var Yl='<ul class="fr-dropdown-list fr-collab-mode-list" role="presentation">',r=0,i=Object.entries(fe);r<i.length;r++){var a,o=I(i[r],2),s=o[0],o=o[1];n.includes(s)&&(Yl+='\n <li role="presentation">\n <a class="fr-command fr-collab-mode-option'.concat((a=e===s)?" fr-active":"",'"\n tabIndex="-1" role="option"\n data-cmd="collabMode" data-param1="').concat(s,'"\n title="').concat(this.language.translate(o.title),'">\n ').concat(pe(o.iconPath,"fr-collab-mode-icon"),'\n <span class="fr-collab-mode-label">').concat(this.language.translate(o.label),"</span>\n ").concat(a?pe(ge,"fr-collab-check-icon","0 0 16 16"):"","\n </a>\n </li>"))}return Yl+="</ul>"},callback:function(e,t){this.collaborative&&this.collaborative.setMode(t)},refresh:function(e){var t=this.collaborative&&this.collaborative.getMode()||ne,t=fe[t],t=(t&&e.find("> span").text(this.language.translate(t.label)),ue(this));e[0].setAttribute("data-collab-role",t)},refreshOnShow:function(e,t){var n=this.collaborative&&this.collaborative.getMode()||ne;t.find(".fr-collab-mode-option").each(function(){var e=this.dataset.param1===n,t=(this.classList.toggle("fr-active",e),this.querySelector(".fr-collab-check-icon"));e&&!t?this.insertAdjacentHTML("beforeend",pe(ge,"fr-collab-check-icon")):!e&&t&&t.remove()})}}),k.DefineIcon("collabMode",{NAME:"pencil-alt",SVG_KEY:"collabEditing"}),k.DefineIcon("collabPresence",{SVG_KEY:""}),k.RegisterCommand("collabPresence",{undo:!1,focus:!1,refreshAfterCallback:!1,plugin:"collaborative",callback:function(){},refresh:function(e){var t,n,r,i=he(this);!i.disabled&&this.opts.collabConfig&&(this.opts.collabConfig.realTime&&this.o