fable-editor 1.2.6 → 1.2.8

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.
@@ -15,25 +15,25 @@
15
15
  * This source code is licensed under the MIT license found in the
16
16
  * LICENSE file in the root directory of this source tree.
17
17
  */var Gt;function _e(){return Gt||(Gt=1,process.env.NODE_ENV!=="production"&&function(){var p=D,t=Symbol.for("react.element"),e=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),s=Symbol.for("react.strict_mode"),n=Symbol.for("react.profiler"),l=Symbol.for("react.provider"),r=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),d=Symbol.for("react.suspense_list"),u=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),b=Symbol.for("react.offscreen"),y=Symbol.iterator,g="@@iterator";function x(a){if(a===null||typeof a!="object")return null;var f=y&&a[y]||a[g];return typeof f=="function"?f:null}var w=p.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function E(a){{for(var f=arguments.length,v=new Array(f>1?f-1:0),T=1;T<f;T++)v[T-1]=arguments[T];I("error",a,v)}}function I(a,f,v){{var T=w.ReactDebugCurrentFrame,L=T.getStackAddendum();L!==""&&(f+="%s",v=v.concat([L]));var A=v.map(function(M){return String(M)});A.unshift("Warning: "+f),Function.prototype.apply.call(console[a],console,A)}}var H=!1,j=!1,F=!1,_=!1,et=!1,St;St=Symbol.for("react.module.reference");function de(a){return!!(typeof a=="string"||typeof a=="function"||a===i||a===n||et||a===s||a===c||a===d||_||a===b||H||j||F||typeof a=="object"&&a!==null&&(a.$$typeof===m||a.$$typeof===u||a.$$typeof===l||a.$$typeof===r||a.$$typeof===o||a.$$typeof===St||a.getModuleId!==void 0))}function ue(a,f,v){var T=a.displayName;if(T)return T;var L=f.displayName||f.name||"";return L!==""?v+"("+L+")":v}function Mt(a){return a.displayName||"Context"}function V(a){if(a==null)return null;if(typeof a.tag=="number"&&E("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof a=="function")return a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case i:return"Fragment";case e:return"Portal";case n:return"Profiler";case s:return"StrictMode";case c:return"Suspense";case d:return"SuspenseList"}if(typeof a=="object")switch(a.$$typeof){case r:var f=a;return Mt(f)+".Consumer";case l:var v=a;return Mt(v._context)+".Provider";case o:return ue(a,a.render,"ForwardRef");case u:var T=a.displayName||null;return T!==null?T:V(a.type)||"Memo";case m:{var L=a,A=L._payload,M=L._init;try{return V(M(A))}catch{return null}}}return null}var U=Object.assign,G=0,kt,Lt,Ht,At,It,qt,Rt;function Pt(){}Pt.__reactDisabledLog=!0;function pe(){{if(G===0){kt=console.log,Lt=console.info,Ht=console.warn,At=console.error,It=console.group,qt=console.groupCollapsed,Rt=console.groupEnd;var a={configurable:!0,enumerable:!0,value:Pt,writable:!0};Object.defineProperties(console,{info:a,log:a,warn:a,error:a,group:a,groupCollapsed:a,groupEnd:a})}G++}}function me(){{if(G--,G===0){var a={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:U({},a,{value:kt}),info:U({},a,{value:Lt}),warn:U({},a,{value:Ht}),error:U({},a,{value:At}),group:U({},a,{value:It}),groupCollapsed:U({},a,{value:qt}),groupEnd:U({},a,{value:Rt})})}G<0&&E("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ut=w.ReactCurrentDispatcher,pt;function it(a,f,v){{if(pt===void 0)try{throw Error()}catch(L){var T=L.stack.trim().match(/\n( *(at )?)/);pt=T&&T[1]||""}return`
18
- `+pt+a}}var mt=!1,st;{var fe=typeof WeakMap=="function"?WeakMap:Map;st=new fe}function Bt(a,f){if(!a||mt)return"";{var v=st.get(a);if(v!==void 0)return v}var T;mt=!0;var L=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var A;A=ut.current,ut.current=null,pe();try{if(f){var M=function(){throw Error()};if(Object.defineProperty(M.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(M,[])}catch(Z){T=Z}Reflect.construct(a,[],M)}else{try{M.call()}catch(Z){T=Z}a.call(M.prototype)}}else{try{throw Error()}catch(Z){T=Z}a()}}catch(Z){if(Z&&T&&typeof Z.stack=="string"){for(var S=Z.stack.split(`
18
+ `+pt+a}}var mt=!1,st;{var fe=typeof WeakMap=="function"?WeakMap:Map;st=new fe}function Bt(a,f){if(!a||mt)return"";{var v=st.get(a);if(v!==void 0)return v}var T;mt=!0;var L=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var A;A=ut.current,ut.current=null,pe();try{if(f){var M=function(){throw Error()};if(Object.defineProperty(M.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(M,[])}catch(O){T=O}Reflect.construct(a,[],M)}else{try{M.call()}catch(O){T=O}a.call(M.prototype)}}else{try{throw Error()}catch(O){T=O}a()}}catch(O){if(O&&T&&typeof O.stack=="string"){for(var S=O.stack.split(`
19
19
  `),N=T.stack.split(`
20
20
  `),R=S.length-1,P=N.length-1;R>=1&&P>=0&&S[R]!==N[P];)P--;for(;R>=1&&P>=0;R--,P--)if(S[R]!==N[P]){if(R!==1||P!==1)do if(R--,P--,P<0||S[R]!==N[P]){var $=`
21
- `+S[R].replace(" at new "," at ");return a.displayName&&$.includes("<anonymous>")&&($=$.replace("<anonymous>",a.displayName)),typeof a=="function"&&st.set(a,$),$}while(R>=1&&P>=0);break}}}finally{mt=!1,ut.current=A,me(),Error.prepareStackTrace=L}var Q=a?a.displayName||a.name:"",z=Q?it(Q):"";return typeof a=="function"&&st.set(a,z),z}function ge(a,f,v){return Bt(a,!1)}function ve(a){var f=a.prototype;return!!(f&&f.isReactComponent)}function nt(a,f,v){if(a==null)return"";if(typeof a=="function")return Bt(a,ve(a));if(typeof a=="string")return it(a);switch(a){case c:return it("Suspense");case d:return it("SuspenseList")}if(typeof a=="object")switch(a.$$typeof){case o:return ge(a.render);case u:return nt(a.type,f,v);case m:{var T=a,L=T._payload,A=T._init;try{return nt(A(L),f,v)}catch{}}}return""}var K=Object.prototype.hasOwnProperty,Nt={},Dt=w.ReactDebugCurrentFrame;function lt(a){if(a){var f=a._owner,v=nt(a.type,a._source,f?f.type:null);Dt.setExtraStackFrame(v)}else Dt.setExtraStackFrame(null)}function be(a,f,v,T,L){{var A=Function.call.bind(K);for(var M in a)if(A(a,M)){var S=void 0;try{if(typeof a[M]!="function"){var N=Error((T||"React class")+": "+v+" type `"+M+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof a[M]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw N.name="Invariant Violation",N}S=a[M](f,M,T,v,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(R){S=R}S&&!(S instanceof Error)&&(lt(L),E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",T||"React class",v,M,typeof S),lt(null)),S instanceof Error&&!(S.message in Nt)&&(Nt[S.message]=!0,lt(L),E("Failed %s type: %s",v,S.message),lt(null))}}}var ye=Array.isArray;function ft(a){return ye(a)}function xe(a){{var f=typeof Symbol=="function"&&Symbol.toStringTag,v=f&&a[Symbol.toStringTag]||a.constructor.name||"Object";return v}}function Ce(a){try{return Zt(a),!1}catch{return!0}}function Zt(a){return""+a}function Ot(a){if(Ce(a))return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",xe(a)),Zt(a)}var Ft=w.ReactCurrentOwner,we={key:!0,ref:!0,__self:!0,__source:!0},_t,$t;function Te(a){if(K.call(a,"ref")){var f=Object.getOwnPropertyDescriptor(a,"ref").get;if(f&&f.isReactWarning)return!1}return a.ref!==void 0}function Ee(a){if(K.call(a,"key")){var f=Object.getOwnPropertyDescriptor(a,"key").get;if(f&&f.isReactWarning)return!1}return a.key!==void 0}function Se(a,f){typeof a.ref=="string"&&Ft.current}function Me(a,f){{var v=function(){_t||(_t=!0,E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",f))};v.isReactWarning=!0,Object.defineProperty(a,"key",{get:v,configurable:!0})}}function ke(a,f){{var v=function(){$t||($t=!0,E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",f))};v.isReactWarning=!0,Object.defineProperty(a,"ref",{get:v,configurable:!0})}}var Le=function(a,f,v,T,L,A,M){var S={$$typeof:t,type:a,key:f,ref:v,props:M,_owner:A};return S._store={},Object.defineProperty(S._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(S,"_self",{configurable:!1,enumerable:!1,writable:!1,value:T}),Object.defineProperty(S,"_source",{configurable:!1,enumerable:!1,writable:!1,value:L}),Object.freeze&&(Object.freeze(S.props),Object.freeze(S)),S};function He(a,f,v,T,L){{var A,M={},S=null,N=null;v!==void 0&&(Ot(v),S=""+v),Ee(f)&&(Ot(f.key),S=""+f.key),Te(f)&&(N=f.ref,Se(f,L));for(A in f)K.call(f,A)&&!we.hasOwnProperty(A)&&(M[A]=f[A]);if(a&&a.defaultProps){var R=a.defaultProps;for(A in R)M[A]===void 0&&(M[A]=R[A])}if(S||N){var P=typeof a=="function"?a.displayName||a.name||"Unknown":a;S&&Me(M,P),N&&ke(M,P)}return Le(a,S,N,L,T,Ft.current,M)}}var gt=w.ReactCurrentOwner,jt=w.ReactDebugCurrentFrame;function Y(a){if(a){var f=a._owner,v=nt(a.type,a._source,f?f.type:null);jt.setExtraStackFrame(v)}else jt.setExtraStackFrame(null)}var vt;vt=!1;function bt(a){return typeof a=="object"&&a!==null&&a.$$typeof===t}function Wt(){{if(gt.current){var a=V(gt.current.type);if(a)return`
21
+ `+S[R].replace(" at new "," at ");return a.displayName&&$.includes("<anonymous>")&&($=$.replace("<anonymous>",a.displayName)),typeof a=="function"&&st.set(a,$),$}while(R>=1&&P>=0);break}}}finally{mt=!1,ut.current=A,me(),Error.prepareStackTrace=L}var Q=a?a.displayName||a.name:"",z=Q?it(Q):"";return typeof a=="function"&&st.set(a,z),z}function ge(a,f,v){return Bt(a,!1)}function ve(a){var f=a.prototype;return!!(f&&f.isReactComponent)}function nt(a,f,v){if(a==null)return"";if(typeof a=="function")return Bt(a,ve(a));if(typeof a=="string")return it(a);switch(a){case c:return it("Suspense");case d:return it("SuspenseList")}if(typeof a=="object")switch(a.$$typeof){case o:return ge(a.render);case u:return nt(a.type,f,v);case m:{var T=a,L=T._payload,A=T._init;try{return nt(A(L),f,v)}catch{}}}return""}var K=Object.prototype.hasOwnProperty,Nt={},Dt=w.ReactDebugCurrentFrame;function lt(a){if(a){var f=a._owner,v=nt(a.type,a._source,f?f.type:null);Dt.setExtraStackFrame(v)}else Dt.setExtraStackFrame(null)}function be(a,f,v,T,L){{var A=Function.call.bind(K);for(var M in a)if(A(a,M)){var S=void 0;try{if(typeof a[M]!="function"){var N=Error((T||"React class")+": "+v+" type `"+M+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof a[M]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw N.name="Invariant Violation",N}S=a[M](f,M,T,v,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(R){S=R}S&&!(S instanceof Error)&&(lt(L),E("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",T||"React class",v,M,typeof S),lt(null)),S instanceof Error&&!(S.message in Nt)&&(Nt[S.message]=!0,lt(L),E("Failed %s type: %s",v,S.message),lt(null))}}}var ye=Array.isArray;function ft(a){return ye(a)}function xe(a){{var f=typeof Symbol=="function"&&Symbol.toStringTag,v=f&&a[Symbol.toStringTag]||a.constructor.name||"Object";return v}}function Ce(a){try{return Ot(a),!1}catch{return!0}}function Ot(a){return""+a}function Zt(a){if(Ce(a))return E("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",xe(a)),Ot(a)}var Ft=w.ReactCurrentOwner,we={key:!0,ref:!0,__self:!0,__source:!0},_t,$t;function Te(a){if(K.call(a,"ref")){var f=Object.getOwnPropertyDescriptor(a,"ref").get;if(f&&f.isReactWarning)return!1}return a.ref!==void 0}function Ee(a){if(K.call(a,"key")){var f=Object.getOwnPropertyDescriptor(a,"key").get;if(f&&f.isReactWarning)return!1}return a.key!==void 0}function Se(a,f){typeof a.ref=="string"&&Ft.current}function Me(a,f){{var v=function(){_t||(_t=!0,E("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",f))};v.isReactWarning=!0,Object.defineProperty(a,"key",{get:v,configurable:!0})}}function ke(a,f){{var v=function(){$t||($t=!0,E("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",f))};v.isReactWarning=!0,Object.defineProperty(a,"ref",{get:v,configurable:!0})}}var Le=function(a,f,v,T,L,A,M){var S={$$typeof:t,type:a,key:f,ref:v,props:M,_owner:A};return S._store={},Object.defineProperty(S._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(S,"_self",{configurable:!1,enumerable:!1,writable:!1,value:T}),Object.defineProperty(S,"_source",{configurable:!1,enumerable:!1,writable:!1,value:L}),Object.freeze&&(Object.freeze(S.props),Object.freeze(S)),S};function He(a,f,v,T,L){{var A,M={},S=null,N=null;v!==void 0&&(Zt(v),S=""+v),Ee(f)&&(Zt(f.key),S=""+f.key),Te(f)&&(N=f.ref,Se(f,L));for(A in f)K.call(f,A)&&!we.hasOwnProperty(A)&&(M[A]=f[A]);if(a&&a.defaultProps){var R=a.defaultProps;for(A in R)M[A]===void 0&&(M[A]=R[A])}if(S||N){var P=typeof a=="function"?a.displayName||a.name||"Unknown":a;S&&Me(M,P),N&&ke(M,P)}return Le(a,S,N,L,T,Ft.current,M)}}var gt=w.ReactCurrentOwner,jt=w.ReactDebugCurrentFrame;function Y(a){if(a){var f=a._owner,v=nt(a.type,a._source,f?f.type:null);jt.setExtraStackFrame(v)}else jt.setExtraStackFrame(null)}var vt;vt=!1;function bt(a){return typeof a=="object"&&a!==null&&a.$$typeof===t}function Wt(){{if(gt.current){var a=V(gt.current.type);if(a)return`
22
22
 
23
23
  Check the render method of \``+a+"`."}return""}}function Ae(a){return""}var Vt={};function Ie(a){{var f=Wt();if(!f){var v=typeof a=="string"?a:a.displayName||a.name;v&&(f=`
24
24
 
25
- Check the top-level render call using <`+v+">.")}return f}}function Ut(a,f){{if(!a._store||a._store.validated||a.key!=null)return;a._store.validated=!0;var v=Ie(f);if(Vt[v])return;Vt[v]=!0;var T="";a&&a._owner&&a._owner!==gt.current&&(T=" It was passed a child from "+V(a._owner.type)+"."),Y(a),E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',v,T),Y(null)}}function zt(a,f){{if(typeof a!="object")return;if(ft(a))for(var v=0;v<a.length;v++){var T=a[v];bt(T)&&Ut(T,f)}else if(bt(a))a._store&&(a._store.validated=!0);else if(a){var L=x(a);if(typeof L=="function"&&L!==a.entries)for(var A=L.call(a),M;!(M=A.next()).done;)bt(M.value)&&Ut(M.value,f)}}}function qe(a){{var f=a.type;if(f==null||typeof f=="string")return;var v;if(typeof f=="function")v=f.propTypes;else if(typeof f=="object"&&(f.$$typeof===o||f.$$typeof===u))v=f.propTypes;else return;if(v){var T=V(f);be(v,a.props,"prop",T,a)}else if(f.PropTypes!==void 0&&!vt){vt=!0;var L=V(f);E("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",L||"Unknown")}typeof f.getDefaultProps=="function"&&!f.getDefaultProps.isReactClassApproved&&E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Re(a){{for(var f=Object.keys(a.props),v=0;v<f.length;v++){var T=f[v];if(T!=="children"&&T!=="key"){Y(a),E("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",T),Y(null);break}}a.ref!==null&&(Y(a),E("Invalid attribute `ref` supplied to `React.Fragment`."),Y(null))}}var Xt={};function Yt(a,f,v,T,L,A){{var M=de(a);if(!M){var S="";(a===void 0||typeof a=="object"&&a!==null&&Object.keys(a).length===0)&&(S+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var N=Ae();N?S+=N:S+=Wt();var R;a===null?R="null":ft(a)?R="array":a!==void 0&&a.$$typeof===t?(R="<"+(V(a.type)||"Unknown")+" />",S=" Did you accidentally export a JSX literal instead of a component?"):R=typeof a,E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",R,S)}var P=He(a,f,v,L,A);if(P==null)return P;if(M){var $=f.children;if($!==void 0)if(T)if(ft($)){for(var Q=0;Q<$.length;Q++)zt($[Q],a);Object.freeze&&Object.freeze($)}else E("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else zt($,a)}if(K.call(f,"key")){var z=V(a),Z=Object.keys(f).filter(function(Oe){return Oe!=="key"}),yt=Z.length>0?"{key: someKey, "+Z.join(": ..., ")+": ...}":"{key: someKey}";if(!Xt[z+yt]){var Ze=Z.length>0?"{"+Z.join(": ..., ")+": ...}":"{}";E(`A props object containing a "key" prop is being spread into JSX:
25
+ Check the top-level render call using <`+v+">.")}return f}}function Ut(a,f){{if(!a._store||a._store.validated||a.key!=null)return;a._store.validated=!0;var v=Ie(f);if(Vt[v])return;Vt[v]=!0;var T="";a&&a._owner&&a._owner!==gt.current&&(T=" It was passed a child from "+V(a._owner.type)+"."),Y(a),E('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',v,T),Y(null)}}function zt(a,f){{if(typeof a!="object")return;if(ft(a))for(var v=0;v<a.length;v++){var T=a[v];bt(T)&&Ut(T,f)}else if(bt(a))a._store&&(a._store.validated=!0);else if(a){var L=x(a);if(typeof L=="function"&&L!==a.entries)for(var A=L.call(a),M;!(M=A.next()).done;)bt(M.value)&&Ut(M.value,f)}}}function qe(a){{var f=a.type;if(f==null||typeof f=="string")return;var v;if(typeof f=="function")v=f.propTypes;else if(typeof f=="object"&&(f.$$typeof===o||f.$$typeof===u))v=f.propTypes;else return;if(v){var T=V(f);be(v,a.props,"prop",T,a)}else if(f.PropTypes!==void 0&&!vt){vt=!0;var L=V(f);E("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",L||"Unknown")}typeof f.getDefaultProps=="function"&&!f.getDefaultProps.isReactClassApproved&&E("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function Re(a){{for(var f=Object.keys(a.props),v=0;v<f.length;v++){var T=f[v];if(T!=="children"&&T!=="key"){Y(a),E("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",T),Y(null);break}}a.ref!==null&&(Y(a),E("Invalid attribute `ref` supplied to `React.Fragment`."),Y(null))}}var Xt={};function Yt(a,f,v,T,L,A){{var M=de(a);if(!M){var S="";(a===void 0||typeof a=="object"&&a!==null&&Object.keys(a).length===0)&&(S+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var N=Ae();N?S+=N:S+=Wt();var R;a===null?R="null":ft(a)?R="array":a!==void 0&&a.$$typeof===t?(R="<"+(V(a.type)||"Unknown")+" />",S=" Did you accidentally export a JSX literal instead of a component?"):R=typeof a,E("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",R,S)}var P=He(a,f,v,L,A);if(P==null)return P;if(M){var $=f.children;if($!==void 0)if(T)if(ft($)){for(var Q=0;Q<$.length;Q++)zt($[Q],a);Object.freeze&&Object.freeze($)}else E("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else zt($,a)}if(K.call(f,"key")){var z=V(a),O=Object.keys(f).filter(function(Ze){return Ze!=="key"}),yt=O.length>0?"{key: someKey, "+O.join(": ..., ")+": ...}":"{key: someKey}";if(!Xt[z+yt]){var Oe=O.length>0?"{"+O.join(": ..., ")+": ...}":"{}";E(`A props object containing a "key" prop is being spread into JSX:
26
26
  let props = %s;
27
27
  <%s {...props} />
28
28
  React keys must be passed directly to JSX without using spread:
29
29
  let props = %s;
30
- <%s key={someKey} {...props} />`,yt,z,Ze,z),Xt[z+yt]=!0}}return a===i?Re(P):qe(P),P}}function Pe(a,f,v){return Yt(a,f,v,!0)}function Be(a,f,v){return Yt(a,f,v,!1)}var Ne=Be,De=Pe;tt.Fragment=i,tt.jsx=Ne,tt.jsxs=De}()),tt}process.env.NODE_ENV==="production"?Tt.exports=Fe():Tt.exports=_e();var $e=Tt.exports;const je={en:{dir:"ltr",file:"File",edit:"Edit",view:"View",insert:"Insert",format:"Format",tools:"Tools",table:"Table",help:"Help",newdoc:"New document",preview:"Preview",print:"Print…",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",selectall:"Select all",fullscreen:"Fullscreen",sourcecode:"Source code",wordcount:"Word count",image:"Image…",inserttable:"Table",hr:"Horizontal line",charmap:"Special character…",datetime:"Date/time",pagebreak:"Page break",nbsp:"Nonbreaking space",bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",superscript:"Superscript",subscript:"Subscript",clearformat:"Clear formatting",rowabove:"Insert row before",rowbelow:"Insert row after",delrow:"Delete row",moverowup:"Move row up",moverowdown:"Move row down",colbefore:"Insert column before",colafter:"Insert column after",delcol:"Delete column",movecolleft:"Move column left",movecolright:"Move column right",cellbg:"Cell background",deltable:"Delete table",ltr:"Left to right",rtl:"Right to left",alignleft:"Align left",aligncenter:"Align center",alignright:"Align right",alignjustify:"Justify",align:"Align",numlist:"Numbered list",bullist:"Bullet list",forecolor:"Text color",backcolor:"Background color",removeformat:"Clear formatting",outdent:"Decrease indent",indent:"Increase indent",fontfamily:"Font family",fontsize:"Font size",blocks:"Blocks",quickimage:"Insert image",quicktable:"Insert table",more:"More…",para:"Paragraph",heading:"Heading",pre:"Preformatted",removecolor:"Remove color",currentcolor:"Current color",statushelp:"Press Alt+0 for help",words:"words",helpttl:"Help",shortcuts:"Handy shortcuts",close:"Close",save:"Save",cancel:"Cancel",srcttl:"Source code",wcttl:"Word count",wcwords:"Words",wcchars:"Characters",pastehint:"Use Ctrl+V / ⌘V to paste",liststyles_ol:["Default","Lower alpha","Lower roman","Upper alpha","Upper roman"],liststyles_ul:["Default","Circle","Square"],previewttl:"Preview",tablepropsttl:"Table properties",tblwidth:"Width",tblcellspacing:"Cell spacing",tblcellpadding:"Cell padding",tblborder:"Border width",tblalign:"Alignment",tblalignleft:"Align table left",tblaligncenter:"Center table",tblalignright:"Align table right",alignnone:"None",quote:"Blockquote",link:"Link…",linkttl:"Insert/edit link",linkurl:"URL",unlink:"Remove link",lineheight:"Line height",wordspacing:"Word spacing",letterspacing:"Letter spacing",changecase:"Change case",lowercase:"Lowercase",uppercase:"Uppercase",capitalize:"Capitalize Each Word",customcolor:"Custom color…",normal:"Normal",revhistory:"Revision history",revempty:"No revisions yet",restore:"Restore",currentver:"Current version",importword:"Import from Word…",importfail:"Could not import this file. Please choose a valid .docx document.",restoredraft:"Restore last draft",draftempty:"No saved draft found",deleteimg:"Delete image",rotateleft:"Rotate left",rotateright:"Rotate right",fliphorizontal:"Flip horizontal",flipvertical:"Flip vertical",cell:"Cell",row:"Row",column:"Column",cellprops:"Cell properties…",rowprops:"Row properties…",colprops:"Column properties…",tblheight:"Height",valign:"Vertical align",valigntop:"Top",valignmiddle:"Middle",valignbottom:"Bottom",fill:"Fill",nocell:"Click inside a table cell first",uploadimg:"Upload from computer",imagelink:"Insert from URL",imageurlph:"Paste image URL…",insertimg:"Insert",dropimage:"Drop image here",uploading:"Uploading…",uploadfailed:"Upload failed — click to retry",template:"Templates",tplimgleft:"Image left, text right",tplimgright:"Image right, text left",tplimgtop:"Image top, text below",tplimgcenter:"Text top, image center",deltemplate:"Delete template",video:"Video",quickvideo:"Insert video",deletevideo:"Delete video",uploadvideo:"Upload from computer",videolink:"Insert from URL",videourlph:"Paste video URL…",insertvideo:"Insert",dropvideo:"Drop video here",videodlgttl:"Insert/edit video",vidgeneral:"General",vidembed:"Embed",vidadvanced:"Advanced",vidsource:"Source",vidembedhint:"Paste your embed code below:",vidaltsource:"Alternative source URL",vidposter:"Media poster (Image URL)",emoji:"Emojis…",code:"Inline code",codesample:"Code sample…",codedlgttl:"Insert/edit code sample",codelang:"Language",editcode:"Edit code sample",deletecode:"Delete code sample",copycode:"Copy code",chcat_currency:"Currency",chcat_text:"Text & punctuation",chcat_math:"Mathematical",chcat_arrows:"Arrows",chcat_symbols:"Symbols",chcat_latin:"Extended Latin",chcat_arabic:"Arabic",emcat_smileys:"Smileys & emotion",emcat_people:"People & body",emcat_animals:"Animals & nature",emcat_food:"Food & drink",emcat_travel:"Travel & places",emcat_activities:"Activities",emcat_objects:"Objects",emcat_symbols:"Symbols",emcat_flags:"Flags"},ar:{dir:"rtl",file:"ملف",edit:"تحرير",view:"عرض",insert:"إدراج",format:"التنسيق",tools:"الأدوات",table:"جدول",help:"تعليمات",newdoc:"مستند جديد",preview:"معاينة",print:"طباعة…",undo:"تراجع",redo:"إعادة",cut:"قص",copy:"نسخ",paste:"لصق",selectall:"تحديد الكل",fullscreen:"ملء الشاشة",sourcecode:"الكود المصدري",wordcount:"عدد الكلمات",image:"صورة…",inserttable:"جدول",hr:"خط أفقي",charmap:"رمز خاص…",datetime:"التاريخ/الوقت",pagebreak:"فاصل الصفحة",nbsp:"مسافة غير فاصلة",bold:"غامق",italic:"مائل",underline:"تسطير",strikethrough:"يتوسطه خط",superscript:"نص مرتفع",subscript:"نص منخفض",clearformat:"مسح التنسيق",rowabove:"إدراج صف قبل",rowbelow:"إدراج صف بعد",delrow:"حذف الصف",moverowup:"نقل الصف لأعلى",moverowdown:"نقل الصف لأسفل",colbefore:"إدراج عمود قبل",colafter:"إدراج عمود بعد",delcol:"حذف العمود",movecolleft:"نقل العمود لليسار",movecolright:"نقل العمود لليمين",cellbg:"خلفية الخلية",deltable:"حذف الجدول",ltr:"من اليسار إلى اليمين",rtl:"من اليمين إلى اليسار",alignleft:"محاذاة لليسار",aligncenter:"توسيط",alignright:"محاذاة لليمين",alignjustify:"ضبط",align:"محاذاة",numlist:"قائمة رقمية",bullist:"قائمة نقطية",forecolor:"لون النص",backcolor:"لون الخلفية",removeformat:"مسح التنسيق",outdent:"إنقاص المسافة البادئة",indent:"زيادة المسافة البادئة",fontfamily:"عائلة الخط",fontsize:"حجم الخط",blocks:"الفقرات",quickimage:"إدراج صورة",quicktable:"إدراج جدول",more:"المزيد…",para:"الفقرة",heading:"العنوان",pre:"منسق مسبقاً",removecolor:"إزالة اللون",currentcolor:"اللون الحالي",statushelp:"اضغط على Alt+0 للحصول على مساعدة",words:"الكلمات",helpttl:"تعليمات",shortcuts:"اختصارات مفيدة",close:"إغلاق",save:"حفظ",cancel:"إلغاء",srcttl:"الكود المصدري",wcttl:"عدد الكلمات",wcwords:"الكلمات",wcchars:"الأحرف",pastehint:"استخدم Ctrl+V / ⌘V للصق",liststyles_ol:["افتراضي","أبجدي صغير","روماني صغير","أبجدي كبير","روماني كبير"],liststyles_ul:["افتراضي","دائرة","مربع"],previewttl:"معاينة",tablepropsttl:"خصائص الجدول",tblwidth:"العرض",tblcellspacing:"تباعد الخلايا",tblcellpadding:"حشو الخلايا",tblborder:"عرض الحدود",tblalign:"المحاذاة",tblalignleft:"محاذاة الجدول لليسار",tblaligncenter:"توسيط الجدول",tblalignright:"محاذاة الجدول لليمين",alignnone:"بدون",quote:"اقتباس",link:"رابط…",linkttl:"إدراج/تعديل رابط",linkurl:"الرابط",unlink:"إزالة الرابط",lineheight:"تباعد الأسطر",wordspacing:"تباعد الكلمات",letterspacing:"تباعد الأحرف",changecase:"تغيير حالة الأحرف",lowercase:"أحرف صغيرة",uppercase:"أحرف كبيرة",capitalize:"تكبير أول حرف",customcolor:"لون مخصص…",normal:"عادي",revhistory:"سجل المراجعات",revempty:"لا توجد مراجعات بعد",restore:"استعادة",currentver:"النسخة الحالية",importword:"استيراد من Word…",importfail:"تعذر استيراد هذا الملف. الرجاء اختيار مستند ‎.docx صالح.",restoredraft:"استعادة آخر مسودة",draftempty:"لا توجد مسودة محفوظة",deleteimg:"حذف الصورة",rotateleft:"تدوير لليسار",rotateright:"تدوير لليمين",fliphorizontal:"قلب أفقي",flipvertical:"قلب رأسي",cell:"خلية",row:"صف",column:"عمود",cellprops:"خصائص الخلية…",rowprops:"خصائص الصف…",colprops:"خصائص العمود…",tblheight:"الارتفاع",valign:"محاذاة عمودية",valigntop:"أعلى",valignmiddle:"وسط",valignbottom:"أسفل",fill:"تعبئة",nocell:"انقر داخل خلية جدول أولاً",uploadimg:"رفع من الجهاز",imagelink:"إدراج من رابط",imageurlph:"الصق رابط الصورة…",insertimg:"إدراج",dropimage:"أسقط الصورة هنا",uploading:"جارٍ الرفع…",uploadfailed:"فشل الرفع — انقر لإعادة المحاولة",template:"قوالب",tplimgleft:"صورة يسار، نص يمين",tplimgright:"صورة يمين، نص يسار",tplimgtop:"صورة أعلى، نص أسفل",tplimgcenter:"نص أعلى، صورة وسط",deltemplate:"حذف القالب",video:"فيديو",quickvideo:"إدراج فيديو",deletevideo:"حذف الفيديو",uploadvideo:"رفع من الجهاز",videolink:"إدراج من رابط",videourlph:"الصق رابط الفيديو…",insertvideo:"إدراج",dropvideo:"أسقط الفيديو هنا",videodlgttl:"إدراج/تعديل فيديو",vidgeneral:"عام",vidembed:"تضمين",vidadvanced:"متقدم",vidsource:"المصدر",vidembedhint:"الصق كود التضمين أدناه:",vidaltsource:"رابط مصدر بديل",vidposter:"صورة الغلاف (رابط الصورة)",emoji:"رموز تعبيرية…",code:"كود مضمّن",codesample:"عينة كود…",codedlgttl:"إدراج/تعديل عينة كود",codelang:"اللغة",editcode:"تعديل عينة الكود",deletecode:"حذف عينة الكود",copycode:"نسخ الكود",chcat_currency:"عملات",chcat_text:"نص وعلامات ترقيم",chcat_math:"رموز رياضية",chcat_arrows:"أسهم",chcat_symbols:"رموز",chcat_latin:"لاتينية موسعة",chcat_arabic:"عربية",emcat_smileys:"وجوه ومشاعر",emcat_people:"أشخاص وإيماءات",emcat_animals:"حيوانات وطبيعة",emcat_food:"طعام وشراب",emcat_travel:"سفر وأماكن",emcat_activities:"أنشطة",emcat_objects:"أشياء",emcat_symbols:"رموز",emcat_flags:"أعلام"}};function xt(p){return je[p]}const We="undo redo | preview print | importword revhistory | fontfamily fontsize | fontsizeincrease fontsizedecrease | bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link blockquote code changecase lineheight wordspacing letterspacing | removeformat | blocks | ltr rtl | quickimage quickvideo quicktable codesample template charmap emoji | fullscreen sourcecode",Ve="file edit view insert format tools table help",Ue=[["Andale Mono","andale mono,times"],["Arial","arial,helvetica,sans-serif"],["Arial Black","arial black,avant garde"],["Book Antiqua","book antiqua,palatino"],["Comic Sans MS","comic sans ms,sans-serif"],["Courier New","courier new,courier"],["Georgia","georgia,palatino"],["Helvetica","helvetica"],["Impact","impact,chicago"],["Oswald","oswald"],["Sakkal Majalla","sakkal majalla"],["Symbol","symbol"],["Tahoma","tahoma,arial,helvetica,sans-serif"],["Terminal","terminal,monaco"],["Times New Roman","times new roman,times"],["Trebuchet MS","trebuchet ms,geneva"],["Verdana","verdana,geneva"],["Webdings","webdings"],["Wingdings","wingdings,zapf dingbats"]],ze=["8px","9px","10px","11px","12px","14px","16px","18px","20px","24px","28px","32px","36px","48px","72px","96px"],Xe=1,Ye=100,Kt=["1","1.15","1.4","1.5","1.75","2","2.5","3"],Jt=["1px","2px","4px","6px","8px","12px"],te=["0.5px","1px","1.5px","2px","3px","4px"],ee=[["plain","Plain text"],["html","HTML/XML"],["css","CSS"],["javascript","JavaScript"],["typescript","TypeScript"],["json","JSON"],["python","Python"],["java","Java"],["csharp","C#"],["cpp","C/C++"],["php","PHP"],["ruby","Ruby"],["go","Go"],["rust","Rust"],["sql","SQL"],["bash","Bash/Shell"]],ie=[["p","para"],["h1","heading1"],["h2","heading2"],["h3","heading3"],["h4","heading4"],["h5","heading5"],["h6","heading6"],["pre","pre"]],Qe=["#F76707","#4263EB","#CC5DE8"],Ge=["#FFFFFF","#F4F4F4","#E8EAED","#DADCE0","#000000","#F28B82","#FBBC04","#FFF475","#CCFF90","#A7FFEB","#CBF0F8","#AECBFA","#D7AEFB","#FDCFE8","#E6C9A8","#EA4335","#FB8C00","#FDD835","#34A853","#00ACC1","#4285F4","#5E35B1","#8E24AA","#C2185B","#6D4C41"],Ke=[{key:"chcat_currency",chars:["€","£","¥","¢","$","₹","₽","₩","₺","₴","₦","฿","₫","₪","﷼","¤","₡","₱","₲","₵","₭","₮","₸","₼","₾","₿"]},{key:"chcat_text",chars:["§","¶","†","‡","•","…","′","″","‰","‱","–","—","―","¡","¿","·","‹","›","«","»","“","”","‘","’","„","‚","¦","ª","º","‽","※","❝","❞","❮","❯"]},{key:"chcat_math",chars:["°","±","×","÷","≈","≠","≤","≥","∞","µ","√","∑","∫","∂","∆","∏","π","Ω","α","β","γ","δ","ε","θ","λ","σ","φ","ψ","ω","∈","∉","∪","∩","⊂","⊃","⊆","⊇","∀","∃","∅","∝","∴","∵","¬","∧","∨","½","⅓","¼","¾","⅔","⅛","⅜","⅝","⅞","¹","²","³","⁴","⁵","⁶","⁷","⁸","⁹","⁰","₁","₂","₃","₄","₅","₆","₇","₈","₉","₀"]},{key:"chcat_arrows",chars:["←","→","↑","↓","↔","↕","⇐","⇒","⇑","⇓","⇔","↖","↗","↘","↙","↩","↪","↺","↻","⤴","⤵","➜","➝","➞","➟","⇦","⇨","⇧","⇩"]},{key:"chcat_symbols",chars:["©","®","™","℠","№","℮","✓","✔","✗","✘","★","☆","✦","✪","♠","♣","♥","♦","♪","♫","♬","☀","☁","☂","☃","☾","☹","☺","☻","✉","✂","✎","✏","☎","☏","⌛","⌚","☞","☜","☝","☟"]},{key:"chcat_latin",chars:["À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","þ","ÿ","Œ","œ","Š","š","Ž","ž","Ł","ł"]},{key:"chcat_arabic",chars:["؟","،","؛","٪","٭","ـ","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","﴾","﴿","۞","؎","ء","آ","أ","ؤ","إ","ئ","ى","ة"]}],Je=[{key:"emcat_smileys",chars:["😀","😃","😄","😁","😆","😅","😂","🤣","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😋","😛","😜","🤪","🤨","🧐","🤓","😎","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😫","😩","🥺","😢","😭","😤","😠","😡","🤯","😳","🥵","🥶","😱","😨","😥","🤗","🤔","🤭","🤫","😐","😑","😬","🙄","😯","😴","😪","😷","🤒","🤕","🤢","🤧","😈","💀","👻","👽","🤖","💩","😺","😸","😹","😻","🙀"]},{key:"emcat_people",chars:["👋","🤚","✋","🖖","👌","🤏","✌","🤞","🤟","🤘","🤙","👈","👉","👆","👇","☝","👍","👎","✊","👊","👏","🙌","👐","🤲","🤝","🙏","💪","✍","💅","🤳","👂","👃","👀","👁","🧠","👶","🧒","👦","👧","🧑","👨","👩","🧓","👴","👵","👮","👷","💂","🕵","👸","🤴","👰","🤵","🤰","👼","🎅","🦸","🦹","🧙","🧚","🧛","🧟","💃","🕺","🚶","🏃","🧘"]},{key:"emcat_animals",chars:["🐶","🐱","🐭","🐹","🐰","🦊","🐻","🐼","🐨","🐯","🦁","🐮","🐷","🐸","🐵","🐔","🐧","🐦","🐤","🦆","🦅","🦉","🐺","🐗","🐴","🦄","🐝","🐛","🦋","🐌","🐞","🐢","🐍","🦎","🦖","🐙","🦑","🦀","🐠","🐟","🐬","🐳","🦈","🐊","🐅","🦓","🦍","🐘","🦏","🐪","🦒","🦘","🐄","🐎","🐖","🐑","🐐","🦌","🐕","🐈","🐓","🦃","🦚","🦜","🦢","🕊","🐇","🦔","🌵","🌲","🌴","🌱","🌿","☘","🍀","🍁","🌸","🌺","🌻","🌹","🌷","💐"]},{key:"emcat_food",chars:["🍏","🍎","🍐","🍊","🍋","🍌","🍉","🍇","🍓","🍈","🍒","🍑","🥭","🍍","🥥","🥝","🍅","🍆","🥑","🥦","🥒","🌶","🌽","🥕","🥔","🥐","🍞","🥖","🥨","🧀","🥚","🍳","🥞","🥓","🥩","🍗","🍖","🌭","🍔","🍟","🍕","🥪","🌮","🌯","🥗","🍝","🍜","🍲","🍛","🍣","🍱","🥟","🍤","🍚","🍧","🍨","🍦","🥧","🧁","🍰","🎂","🍮","🍭","🍬","🍫","🍿","🍩","🍪","🥜","🍯","🥛","☕","🍵","🥤","🍺","🥂","🍷","🍸","🍹"]},{key:"emcat_travel",chars:["🚗","🚕","🚙","🚌","🏎","🚓","🚑","🚒","🚚","🚜","🛵","🏍","🚲","🛴","🚔","🚃","🚄","🚅","🚂","🚆","🚇","🚉","✈","🛫","🛬","💺","🚁","🚀","🛸","🚢","⛵","🚤","⚓","⛽","🚧","🗺","🗿","🗽","🗼","🏰","🏯","🎡","🎢","🎠","⛲","🏖","🏝","🌋","⛰","🏔","🗻","🏕","⛺","🏠","🏡","🏢","🏬","🏥","🏦","🏨","🏪","🏫","💒","⛪","🕌","🕍","🕋","⛩","🌅","🌄","🌇","🌆","🌃","🌉","🌌","🌠"]},{key:"emcat_activities",chars:["⚽","🏀","🏈","⚾","🎾","🏐","🏉","🎱","🏓","🏸","🏒","🏑","🏏","⛳","🏹","🎣","🥊","🥋","⛸","🎿","⛷","🏂","🏋","🤸","⛹","🤺","🏇","🧗","🏄","🏊","🚣","🚵","🚴","🏆","🥇","🥈","🥉","🏅","🎖","🎫","🎪","🤹","🎭","🎨","🎬","🎤","🎧","🎼","🎹","🥁","🎷","🎺","🎸","🎻","🎲","🎯","🎳","🎮","🎰","🧩"]},{key:"emcat_objects",chars:["⌚","📱","💻","⌨","🖥","🖨","🖱","🕹","💽","💾","💿","📀","📷","📸","📹","🎥","📞","☎","📺","📻","🎙","⏱","⏰","⌛","⏳","📡","🔋","🔌","💡","🔦","🕯","💸","💵","💰","💳","💎","⚖","🔧","🔨","⚒","🛠","⛏","🔩","⚙","🧲","🔫","💣","🔪","🛡","🔮","🧿","🔭","🔬","💊","💉","🌡","🧬","🧪","🧹","🧺","🛁","🔑","🗝","🚪","🛋","🛏","🧸","🖼","🛍","🛒","🎁","🎈","🎀","🎊","🎉","✉","📩","📦","📜","📄","📊","📈","📉","📅","📋","📁","📰","📓","📚","📖","🔖","🔗","📎","📐","📏","📌","📍","✂","🖊","✒","🖌","🖍","📝","✏","🔍","🔒","🔓"]},{key:"emcat_symbols",chars:["❤","🧡","💛","💚","💙","💜","🖤","💔","❣","💕","💞","💓","💗","💖","💘","💝","☮","✝","☪","🕉","☸","✡","☯","♈","♉","♊","♋","♌","♍","♎","♏","♐","♑","♒","♓","⚛","❌","⭕","🛑","⛔","🚫","💯","💢","⚠","🚸","🔱","⚜","🔰","♻","✅","❇","✳","❎","🌐","💠","🌀","💤","🏧","♿","🚭","❗","❕","❓","❔","‼","⁉","💲","🔅","🔆","〽","ℹ","🆗","🆕","🆓","🆒","🆙","🈯","🈚"]},{key:"emcat_flags",chars:["🏁","🚩","🎌","🏴","🏳","🇦🇪","🇸🇦","🇶🇦","🇰🇼","🇧🇭","🇴🇲","🇪🇬","🇯🇴","🇱🇧","🇮🇳","🇵🇰","🇺🇸","🇬🇧","🇨🇦","🇦🇺","🇫🇷","🇩🇪","🇮🇹","🇪🇸","🇵🇹","🇳🇱","🇧🇪","🇨🇭","🇸🇪","🇳🇴","🇩🇰","🇫🇮","🇮🇪","🇬🇷","🇹🇷","🇷🇺","🇺🇦","🇵🇱","🇯🇵","🇰🇷","🇨🇳","🇸🇬","🇲🇾","🇮🇩","🇹🇭","🇵🇭","🇻🇳","🇧🇷","🇦🇷","🇲🇽","🇿🇦","🇳🇬","🇰🇪","🇲🇦"]}],k=(p,t)=>`<svg viewBox="${t||"0 0 24 24"}">${p}</svg>`,C=p=>k(`<path class="f" d="${p}"/>`,"0 -960 960 960"),ot=(p,t=7.5)=>k('<path d="M10 6h10M10 12h10M10 18h10"/>'+p.map((e,i)=>`<text x="2.5" y="${8.4+i*6}" font-size="${t}" stroke="none" fill="#222f3e" font-family="Arial">${e}</text>`).join("")),h={bold:C("M272-200v-560h221q65 0 120 40t55 111q0 51-23 78.5T602-491q25 11 55.5 41t30.5 90q0 89-65 124.5T501-200H272Zm121-112h104q48 0 58.5-24.5T566-372q0-11-10.5-35.5T494-432H393v120Zm0-228h93q33 0 48-17t15-38q0-24-17-39t-44-15h-95v109Z"),italic:C("M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z"),underline:C("M200-120v-80h560v80H200Zm123-223q-56-63-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63q-101 0-157-63Z"),strikethrough:C("M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z"),undo:C("M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"),redo:C("M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"),ltr:C("M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm0-280v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80ZM680-80l-56-56 64-64H120v-80h568l-64-64 56-56 160 160L680-80Z"),rtl:C("M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm-88 160 64 64-56 56-160-160 160-160 56 56-64 64h568v80H272Zm88-440v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80Z"),alignleft:C("M120-120v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Z"),aligncenter:C("M120-120v-80h720v80H120Zm160-160v-80h400v80H280ZM120-440v-80h720v80H120Zm160-160v-80h400v80H280ZM120-760v-80h720v80H120Z"),alignright:C("M120-760v-80h720v80H120Zm240 160v-80h480v80H360ZM120-440v-80h720v80H120Zm240 160v-80h480v80H360ZM120-120v-80h720v80H120Z"),alignjustify:C("M120-120v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Z"),fullscreen:C("M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"),clearformatic:C("m528-546-93-93-121-121h486v120H568l-40 94ZM792-56 460-388l-80 188H249l119-280L56-792l56-56 736 736-56 56Z"),numlist:C("M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z"),bullist:C("M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm-56.5-263.5Q120-687 120-720t23.5-56.5Q167-800 200-800t56.5 23.5Q280-753 280-720t-23.5 56.5Q233-640 200-640t-56.5-23.5Z"),chev:k('<path d="M2 3.5 6 7.5 10 3.5"/>',"0 0 12 11"),backcolor:C("M440-80q-33 0-56.5-23.5T360-160v-160H240q-33 0-56.5-23.5T160-400v-280q0-66 47-113t113-47h480v440q0 33-23.5 56.5T720-320H600v160q0 33-23.5 56.5T520-80h-80ZM240-560h480v-200h-40v160h-80v-160h-40v80h-80v-80H320q-33 0-56.5 23.5T240-680v120Zm0 160h480v-80H240v80Zm0 0v-80 80Z"),outdent:C("M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z"),indent:C("M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z"),more:k('<circle class="f" cx="5" cy="12" r="1.7"/><circle class="f" cx="12" cy="12" r="1.7"/><circle class="f" cx="19" cy="12" r="1.7"/>'),image:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"),uploadic:C("M440-200v-326L336-422l-56-58 200-200 200 200-56 58-104-104v326h-80ZM240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Z"),tableic:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z"),hric:k('<path d="M4 12h16"/>'),charic:C("M120-120v-120h200q-84-45-132-125t-48-175q0-142 99-241t241-99q142 0 241 99t99 241q0 95-48 175T640-240h200v120H520v-204q78-14 129-75t51-141q0-92-64-156t-156-64q-92 0-156 64t-64 156q0 80 51 141t129 75v204H120Z"),dateic:k('<rect x="4" y="6" width="16" height="14" rx="1.5"/><path d="M4 10h16M8 4v4M16 4v4"/>'),pbic:C("M240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Zm-80-440v-280q0-33 23.5-56.5T240-880h320l240 240v120h-80v-80H520v-200H240v280h-80Zm200 160v-80h240v80H360Zm320 0v-80h240v80H680Zm-640 0v-80h240v80H40Zm440-160Zm0 240Z"),nbspic:k('<path d="M6 12v4h12v-4"/>'),srcic:C("M240-280 40-480l200-200 56 56-143 144 143 144-56 56Zm178 132-76-24 200-640 76 24-200 640Zm302-132-56-56 143-144-143-144 56-56 200 200-200 200Z"),prevw:C("M607.5-372.5Q660-425 660-500t-52.5-127.5Q555-680 480-680t-127.5 52.5Q300-575 300-500t52.5 127.5Q405-320 480-320t127.5-52.5Zm-204-51Q372-455 372-500t31.5-76.5Q435-608 480-608t76.5 31.5Q588-545 588-500t-31.5 76.5Q525-392 480-392t-76.5-31.5ZM214-281.5Q94-363 40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200q-146 0-266-81.5ZM480-500Zm207.5 160.5Q782-399 832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280q113 0 207.5-59.5Z"),printic:C("M640-640v-120H320v120h-80v-200h480v200h-80Zm-480 80h640-640Zm560 100q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320Zm80 80H240v-160H80v-240q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v240H720v160Zm80-240v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160h80v-80h480v80h80Z"),cutic:C("M760-120 480-400l-94 94q8 15 11 32t3 34q0 66-47 113T240-80q-66 0-113-47T80-240q0-66 47-113t113-47q17 0 34 3t32 11l94-94-94-94q-15 8-32 11t-34 3q-66 0-113-47T80-720q0-66 47-113t113-47q66 0 113 47t47 113q0 17-3 34t-11 32l494 494v40H760ZM600-520l-80-80 240-240h120v40L600-520ZM296.5-663.5Q320-687 320-720t-23.5-56.5Q273-800 240-800t-56.5 23.5Q160-753 160-720t23.5 56.5Q207-640 240-640t56.5-23.5ZM494-466q6-6 6-14t-6-14q-6-6-14-6t-14 6q-6 6-6 14t6 14q6 6 14 6t14-6ZM296.5-183.5Q320-207 320-240t-23.5-56.5Q273-320 240-320t-56.5 23.5Q160-273 160-240t23.5 56.5Q207-160 240-160t56.5-23.5Z"),copyic:C("M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"),pasteic:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h167q11-35 43-57.5t70-22.5q40 0 71.5 22.5T594-840h166q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560h-80v120H280v-120h-80v560Zm308.5-571.5Q520-783 520-800t-11.5-28.5Q497-840 480-840t-28.5 11.5Q440-817 440-800t11.5 28.5Q463-760 480-760t28.5-11.5Z"),selall:C("M280-280v-400h400v400H280Zm80-80h240v-240H360v240ZM200-200v80q-33 0-56.5-23.5T120-200h80Zm-80-80v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm80-160h-80q0-33 23.5-56.5T200-840v80Zm80 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80q0 33-23.5 56.5T760-120Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80q33 0 56.5 23.5T840-760h-80Z"),superscriptic:C("M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z"),subscriptic:C("M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z"),newic:k('<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/>'),helpic:k('<circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.6a2.5 2.5 0 1 1 3.4 2.6c-.8.3-1 .9-1 1.8"/><circle class="f" cx="12" cy="16.6" r="1.1"/>'),wcic:k('<path d="M4 6h16M4 10h16M4 14h9"/><path d="M15 17.5l2 2 3.6-4"/>'),rowbefore:C("M200-160h560v-240H200v240Zm640 80H120v-720h160v80h-80v240h560v-240h-80v-80h160v720ZM480-480Zm0 80v-80 80Zm0 0Zm-40-240v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),rowafter:C("M200-560h560v-240H200v240Zm-80 400v-720h720v720H680v-80h80v-240H200v240h80v80H120Zm360-320Zm0-80v80-80Zm0 0ZM440-80v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),rowdelete:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM200-400v-160h560v160H200ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"),colbefore:C("M800-200v-560H560v560h240Zm-640 80v-160h80v80h240v-560H240v80h-80v-160h720v720H160Zm320-360Zm80 0h-80 80Zm0 0ZM160-360v-80H80v-80h80v-80h80v80h80v80h-80v80h-80Z"),colafter:C("M160-760v560h240v-560H160ZM80-120v-720h720v160h-80v-80H480v560h240v-80h80v160H80Zm400-360Zm-80 0h80-80Zm0 0Zm320 120v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),coldelete:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM400-200v-560h160v560H400ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"),quote:C("m228-240 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T458-480L320-240h-92Zm360 0 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T818-480L680-240h-92ZM362.5-517.5Q380-535 380-560t-17.5-42.5Q345-620 320-620t-42.5 17.5Q260-585 260-560t17.5 42.5Q295-500 320-500t42.5-17.5Zm360 0Q740-535 740-560t-17.5-42.5Q705-620 680-620t-42.5 17.5Q620-585 620-560t17.5 42.5Q655-500 680-500t42.5-17.5ZM680-560Zm-360 0Z"),link:C("M440-280H280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h160v80H280q-50 0-85 35t-35 85q0 50 35 85t85 35h160v80ZM320-440v-80h320v80H320Zm200 160v-80h160q50 0 85-35t35-85q0-50-35-85t-85-35H520v-80h160q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H520Z"),lineheight:C("M240-160 80-320l56-56 64 62v-332l-64 62-56-56 160-160 160 160-56 56-64-62v332l64-62 56 56-160 160Zm240-40v-80h400v80H480Zm0-240v-80h400v80H480Zm0-240v-80h400v80H480Z"),wordspacing:C("M320-80 160-240l160-160 57 56-64 64h334l-63-64 56-56 160 160L640-80l-57-56 64-64H313l63 64-56 56ZM200-480v-400h80v400h-80Zm240 0v-400h80v400h-80Zm240 0v-400h80v400h-80Z"),caseic:C("m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z"),uppercaseic:C("M660-240v-248l-64 64-56-56 160-160 160 160-56 56-64-64v248h-80Zm-540 0 165-440h79l165 440h-76l-39-113H236l-40 113h-76Zm139-177h131l-65-182h-4l-62 182Z"),lowercaseic:C("M300-240q-51 0-81-27.5T189-340q0-44 34.5-72.5T312-441q23 0 45 4t38 11v-12q0-29-20.5-47T320-503q-23 0-42 9.5T245-466l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T324-391q-32 0-50 14t-18 37q0 20 16 33t40 13Zm388 54L540-400l56-56 64 64v-248h80v248l64-64 56 56-160 160Z"),capitalizeic:C("M344-250v-366H224v-64h308v64H412v366h-68Zm344 10q-44 0-69-25.5T594-336v-162h-54v-58h54v-87h66v87h74v58h-74v148q0 23 10.5 36t28.5 13q9 0 18.5-3.5T736-314v65q-10 5-22 7t-26 2Z"),fontsizeup:C("m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm504 104v-120H600v-80h120v-120h80v120h120v80H800v120h-80Z"),fontsizedown:C("m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm384-16v-80h320v80H600Z"),historyic:C("M480-120q-138 0-240.5-91.5T122-440h82q14 104 92.5 172T480-200q117 0 198.5-81.5T760-480q0-117-81.5-198.5T480-760q-69 0-129 32t-101 88h110v80H120v-240h80v94q51-64 124.5-99T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120Zm112-192L440-464v-216h80v184l128 128-56 56Z"),wordic:k('<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/><text x="8" y="17" font-size="8.5" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">W</text>'),draftic:C("M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z"),trash:k('<path d="M5 7h14M10 7V5h4v2M7.5 7l1 13h7l1-13"/>'),templateic:k('<rect x="4" y="4" width="16" height="16" rx="1.5"/><rect x="6.5" y="6.5" width="5" height="5" rx=".5"/><path d="M14 7.5h3.5M14 10h3.5M6.5 14h11M6.5 17h11"/>'),tplleft:k('<rect x="3" y="5" width="8" height="8" rx=".8"/><path d="M13.5 6.5H21M13.5 9.5H21M13.5 12.5H21M3 15.5h18M3 18.5h18"/>'),tplright:k('<rect x="13" y="5" width="8" height="8" rx=".8"/><path d="M3 6.5h7.5M3 9.5h7.5M3 12.5h7.5M3 15.5h18M3 18.5h18"/>'),tpltop:k('<rect x="5" y="3" width="14" height="9" rx=".8"/><path d="M3 15h18M3 18h18M3 21h12"/>'),tplcenter:k('<path d="M3 4h18M3 7h18M3 10h12"/><rect x="5" y="12.5" width="14" height="9" rx=".8"/>'),rotateleft:k('<polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/>'),rotateright:k('<polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/>'),fliphorizontal:k('<path d="M12 3v18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>'),flipvertical:k('<path d="M3 12h18"/><path d="M8 7l4-4 4 4"/><path d="M8 17l4 4 4-4"/>'),check:k('<path d="M5 12.5 9.5 17 19 7"/>'),palette:k('<path d="M12 3a9 9 0 1 0 0 18h1.2a2 2 0 0 0 2-2 2 2 0 0 1 2-2H18a3 3 0 0 0 3-3c0-6.1-4.5-11-9-11z"/><circle class="f" cx="7.8" cy="10.2" r="1.3"/><circle class="f" cx="11.6" cy="7.3" r="1.3"/><circle class="f" cx="15.8" cy="9.6" r="1.3"/><circle class="f" cx="9" cy="14.8" r="1.3"/>'),ul_circle:C("M280-600v-80h560v80H280Zm0 160v-80h560v80H280Zm0 160v-80h560v80H280ZM160-600q-17 0-28.5-11.5T120-640q0-17 11.5-28.5T160-680q17 0 28.5 11.5T200-640q0 17-11.5 28.5T160-600Zm0 160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440Zm0 160q-17 0-28.5-11.5T120-320q0-17 11.5-28.5T160-360q17 0 28.5 11.5T200-320q0 17-11.5 28.5T160-280Z"),ul_square:C("M80-160v-160h160v160H80Zm240 0v-160h560v160H320ZM80-400v-160h160v160H80Zm240 0v-160h560v160H320ZM80-640v-160h160v160H80Zm240 0v-160h560v160H320Z"),ol_alpha:ot(["a","b","c"]),ol_roman:ot(["i","ii","iii"],6.5),ol_alphau:ot(["A","B","C"]),ol_romanu:ot(["I","II","III"],6.5),video:k('<rect x="3" y="6" width="13" height="12" rx="1.5"/><path d="M16 10l5-3v10l-5-3z"/>'),editic:k('<path d="M4 20l1-4.5L15.5 5 19 8.5 8.5 19 4 20z"/><path d="M13.5 6.5l4 4"/>'),letterspacing:k('<text x="2.5" y="13" font-size="12" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">A</text><text x="13" y="13" font-size="12" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">B</text><path d="M7 18.5h10"/><path class="f" d="M7.5 18.5 4.5 16.6v3.8z"/><path class="f" d="M16.5 18.5l3-1.9v3.8z"/>'),emojiic:k('<circle cx="12" cy="12" r="8.5"/><path d="M8.6 14.3a4.6 4.6 0 0 0 6.8 0"/><path d="M9.2 9.6v.7M14.8 9.6v.7"/>'),inlinecodeic:k('<path d="M8.5 8 4.5 12l4 4M15.5 8l4 4-4 4"/><path d="M13 6l-2 12"/>'),moverowup:k('<rect x="4" y="15.5" width="16" height="5" rx="1"/><path d="M12 12.5V4M8.5 7.5 12 4l3.5 3.5"/>'),moverowdown:k('<rect x="4" y="3.5" width="16" height="5" rx="1"/><path d="M12 11.5V20M8.5 16.5 12 20l3.5-3.5"/>'),movecolleft:k('<rect x="15.5" y="4" width="5" height="16" rx="1"/><path d="M12.5 12H4M7.5 8.5 4 12l3.5 3.5"/>'),movecolright:k('<rect x="3.5" y="4" width="5" height="16" rx="1"/><path d="M11.5 12H20M16.5 8.5 20 12l-3.5 3.5"/>'),codesampleic:k('<rect x="3.5" y="4" width="17" height="16" rx="2"/><path d="M3.5 8.5h17"/><path d="M9.5 12 7 14.25l2.5 2.25M14.5 12l2.5 2.25-2.5 2.25"/>')},ti=new Set(["p","div","span","br","hr","a","b","strong","i","em","u","s","strike","sub","sup","h1","h2","h3","h4","h5","h6","blockquote","pre","code","ul","ol","li","table","thead","tbody","tfoot","tr","td","th","caption","colgroup","col","img","figure","figcaption","mark"]),ei=new Set(["text-align","direction","unicode-bidi","font-weight","font-style","text-decoration","text-decoration-line","color","background-color","background","background-image","background-position","background-repeat","background-size","font-size","font-family","line-height","letter-spacing","vertical-align","text-indent","margin","margin-top","margin-bottom","margin-left","margin-right","margin-inline-start","margin-inline-end","padding","padding-top","padding-bottom","padding-left","padding-right","width","height","min-width","max-width","min-height","max-height","border","border-top","border-right","border-bottom","border-left","border-color","border-style","border-width","border-radius","border-collapse","border-spacing","table-layout","float","display","box-sizing","list-style-type","white-space"]),se={"*":["dir","lang","colspan","rowspan"],a:["href","target","rel","title"],img:["src","alt","width","height","title"],col:["span","width"],td:["width","valign"],th:["width","valign"],table:["width","cellpadding","cellspacing"]};function dt(p){const t={},e=p.getAttribute&&p.getAttribute("style");return e&&e.split(";").forEach(i=>{const s=i.indexOf(":");s<1||(t[i.slice(0,s).trim().toLowerCase()]=i.slice(s+1).trim())}),t}function ii(p){return p.replace(/<!--\[if !supportLists\]-->([\s\S]*?)<!--\[endif\]-->/gi,"$1").replace(/<!--\[if !supportLists\]>([\s\S]*?)<!\[endif\]-->/gi,"$1").replace(/<!\[if !supportLists\]>([\s\S]*?)<!\[endif\]>/gi,"$1").replace(/<!--\[if [\s\S]*?<!\[endif\]-->/gi,"").replace(/<!--[\s\S]*?-->/g,"").replace(/<(script|style|xml|title)[\s\S]*?<\/\1>/gi,"").replace(/<\/?(meta|link)[^>]*>/gi,"").replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/<\/?(o|v|w|m|st1):[^>]*>/gi,"")}function si(p){return/^[0-9]+[\.\)،]/.test(p)?{ordered:!0}:/^[٠-٩۰-۹]+/.test(p)?{ordered:!0,style:"arabic-indic"}:/^[ivxlc]{2,}[\.\)]/.test(p)?{ordered:!0,style:"lower-roman"}:/^[IVXLC]{2,}[\.\)]/.test(p)?{ordered:!0,style:"upper-roman"}:/^[a-z][\.\)]/.test(p)?{ordered:!0,style:"lower-alpha"}:/^[A-Z][\.\)]/.test(p)?{ordered:!0,style:"upper-alpha"}:/^[ء-ي][\.\)،-]/.test(p)?{ordered:!0,style:"arabic-indic"}:{ordered:!1}}function ni(p){const t=s=>{const n=(s.getAttribute("style")||"")+" "+(s.className||"");return/mso-list\s*:(?!\s*ignore)/i.test(n)||/MsoListParagraph/i.test(n)},e=[];let i=null;Array.from(p.body.querySelectorAll("p")).forEach(s=>{if(!t(s)){i=null;return}const n=s.previousElementSibling;i&&n&&i[i.length-1]===n?i.push(s):(i=[s],e.push(i))}),e.forEach(s=>{const n=[],l=s[0];s.forEach(r=>{var w,E,I;const c=+(((w=(r.getAttribute("style")||"").match(/level(\d+)/i))==null?void 0:w[1])||1),d=Array.from(r.querySelectorAll("span")).find(H=>/mso-list\s*:\s*ignore/i.test(H.getAttribute("style")||"")),u=d?((E=d.textContent)==null?void 0:E.trim())||"":(((I=r.textContent)==null?void 0:I.trim().match(/^\S{1,4}/))||[""])[0],{ordered:m,style:b}=si(u);for(d&&d.remove();n.length&&n[n.length-1].level>c;)n.pop();if(!n.length||n[n.length-1].level<c){const H=p.createElement(m?"ol":"ul");if(m&&b&&(H.style.listStyleType=b),n.length){const j=n[n.length-1].list;(j.lastElementChild||j).appendChild(H)}else l.parentNode.insertBefore(H,l);n.push({list:H,level:c})}const y=p.createElement("li"),g=dt(r),x=["text-align","direction","unicode-bidi","color","font-size","font-family","background-color"].filter(H=>g[H]).map(H=>H+":"+g[H]).join(";");for(x&&y.setAttribute("style",x),r.getAttribute("dir")&&y.setAttribute("dir",r.getAttribute("dir"));r.firstChild;)y.appendChild(r.firstChild);n[n.length-1].list.appendChild(y),r.remove()})})}function li(p){p.querySelectorAll('b[id^="docs-internal-guid"]').forEach(t=>{for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.remove()})}function oi(p){p.querySelectorAll("table").forEach(t=>{const e=t;dt(e)["border-collapse"]||(e.style.borderCollapse="collapse")}),p.querySelectorAll("[align]").forEach(t=>{const e=t,i=e.getAttribute("align").toLowerCase();e.tagName.toLowerCase()==="table"?i==="center"?(e.style.marginLeft=e.style.marginLeft||"auto",e.style.marginRight=e.style.marginRight||"auto"):i==="right"?e.style.marginLeft=e.style.marginLeft||"auto":i==="left"&&(e.style.marginRight=e.style.marginRight||"auto"):["left","right","center","justify"].includes(i)&&(e.style.textAlign=e.style.textAlign||i,Array.from(e.children).forEach(s=>{if(s.tagName.toLowerCase()!=="table")return;const n=s;i==="center"?(n.style.marginLeft=n.style.marginLeft||"auto",n.style.marginRight=n.style.marginRight||"auto"):i==="right"?n.style.marginLeft=n.style.marginLeft||"auto":i==="left"&&(n.style.marginRight=n.style.marginRight||"auto")})),e.removeAttribute("align")}),p.querySelectorAll("center table").forEach(t=>{const e=t;e.style.marginLeft=e.style.marginLeft||"auto",e.style.marginRight=e.style.marginRight||"auto"}),p.querySelectorAll("[bgcolor]").forEach(t=>{const e=t;e.style.backgroundColor=e.style.backgroundColor||e.getAttribute("bgcolor"),e.removeAttribute("bgcolor")})}function ct(p,t){Array.from(p.childNodes).forEach(e=>{if(e.nodeType===Node.COMMENT_NODE){e.remove();return}if(e.nodeType!==Node.ELEMENT_NODE)return;const i=e,s=i.tagName.toLowerCase();if(!ti.has(s)){if(s==="font"){const o=t.createElement("span");i.getAttribute("style")&&o.setAttribute("style",i.getAttribute("style")),i.getAttribute("color")&&(o.style.color=i.getAttribute("color")),i.getAttribute("face")&&(o.style.fontFamily=i.getAttribute("face"));const c=i.getAttribute("size");if(c&&!o.style.fontSize){const d={1:"8pt",2:"10pt",3:"12pt",4:"14pt",5:"18pt",6:"24pt",7:"36pt"};d[c]&&(o.style.fontSize=d[c])}for(;i.firstChild;)o.appendChild(i.firstChild);i.replaceWith(o),ct(o,t);return}for(ct(i,t);i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove();return}const n=new Set([...se["*"]||[],...se[s]||[]]);if(Array.from(i.attributes).forEach(o=>{const c=o.name.toLowerCase();c!=="style"&&!n.has(c)&&i.removeAttribute(o.name)}),s==="a"){const o=i.getAttribute("href")||"";/^(https?:|mailto:|tel:|#)/i.test(o)||i.removeAttribute("href")}if(s==="img"){const o=i.getAttribute("src")||"";if(!/^(https?:|data:image\/|blob:)/i.test(o)){const c=t.createElement("span");c.textContent="[local image — paste it separately]",c.setAttribute("style","color:#a33;font-style:italic;font-size:12px"),i.replaceWith(c);return}}const l=dt(i),r=[];for(const[o,c]of Object.entries(l))ei.has(o)&&(/expression|javascript|url\s*\(\s*['"]?\s*file:/i.test(c)||o==="font-weight"&&/^(400|normal)$/i.test(c)||o==="font-style"&&/^normal$/i.test(c)||o==="text-decoration"&&/^none$/i.test(c)||r.push(o+":"+c));if(r.length?i.setAttribute("style",r.join(";")):i.removeAttribute("style"),i.removeAttribute("class"),ct(i,t),s==="span"&&!i.attributes.length){for(;i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove()}})}function ri(p){const t=[],e=/<style[^>]*>([\s\S]*?)<\/style>/gi;let i;for(;i=e.exec(p);){let s=i[1].replace(/<!--|-->/g,"").replace(/\/\*[\s\S]*?\*\//g,"");s=s.replace(/@media[^{]*\{(?:[^{}]*\{[^{}]*\})*[^{}]*\}/gi,""),s=s.replace(/@[\w-]+[^{]*\{[^{}]*\}/g,"");let n;const l=/([^{}]+)\{([^}]*)\}/g;for(;n=l.exec(s);){const r=n[2].split(";").map(o=>{const c=o.indexOf(":");return c<1?null:[o.slice(0,c).trim().toLowerCase(),o.slice(c+1).trim()]}).filter(o=>!!o&&!!o[1]);r.length&&n[1].split(",").map(o=>o.trim()).filter(o=>o&&!o.startsWith("@")).forEach(o=>t.push({sel:o,decls:r}))}}return t}function ai(p,t){if(!t.length)return;const e=new Map;t.forEach(({sel:i,decls:s})=>{let n;try{n=p.querySelectorAll(i)}catch{return}n.forEach(l=>{let r=e.get(l);r||(r={},e.set(l,r)),s.forEach(([o,c])=>{r[o]=c})})}),e.forEach((i,s)=>{const n=dt(s),l=s.hasAttribute("dir"),r=s.hasAttribute("align"),o=Object.entries(i).filter(([u])=>!(u in n||(u==="direction"||u==="unicode-bidi")&&l||u==="text-align"&&(r||l)||(u==="background"||u==="background-color")&&s.hasAttribute("bgcolor")));if(!o.length)return;const c=o.map(([u,m])=>u+":"+m).join(";"),d=s.getAttribute("style");s.setAttribute("style",d?c+";"+d:c)})}function ae(p){return p.replace(/[ﭐ-﷿ﹰ-ﻼ]+/g,t=>t.normalize("NFKC"))}function ci(p){const t=p.createTreeWalker(p.body,NodeFilter.SHOW_TEXT,null);let e;for(;e=t.nextNode();)/[ﭐ-﷿ﹰ-ﻼ]/.test(e.nodeValue||"")&&(e.nodeValue=ae(e.nodeValue||""))}function hi(p,t="ltr"){const e=ri(p),i=new DOMParser().parseFromString(ii(p),"text/html");ai(i,e),/class="?Mso|mso-|urn:schemas-microsoft-com/i.test(i.body.innerHTML)&&ni(i),li(i),oi(i),ct(i.body,i),ci(i);const s=n=>{var l;return n&&n.tagName==="P"&&!((l=n.textContent)!=null&&l.trim())&&!n.querySelector("img,table")};for(;s(i.body.firstElementChild);)i.body.firstElementChild.remove();for(;s(i.body.lastElementChild);)i.body.lastElementChild.remove();return i.body.innerHTML.trim()}function di(p){const t=ae(p).replace(/\r/g,""),e=i=>i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return/\n/.test(t)?t.split(/\n{2,}/).map(i=>`<p dir="auto">${e(i).replace(/\n/g,"<br>")||"<br>"}</p>`).join(""):e(t)}function ui(p){const t=new DataView(p),e=new Map;let i=-1;for(let r=p.byteLength-22;r>=Math.max(0,p.byteLength-22-65535);r--)if(t.getUint32(r,!0)===101010256){i=r;break}if(i<0)throw new Error("EOCD not found");const s=t.getUint16(i+10,!0);let n=t.getUint32(i+16,!0);const l=new TextDecoder;for(let r=0;r<s&&t.getUint32(n,!0)===33639248;r++){const o=t.getUint16(n+10,!0),c=t.getUint32(n+20,!0),d=t.getUint16(n+28,!0),u=t.getUint16(n+30,!0),m=t.getUint16(n+32,!0),b=t.getUint32(n+42,!0),y=l.decode(new Uint8Array(p,n+46,d));e.set(y,{name:y,method:o,compSize:c,localOffset:b}),n+=46+d+u+m}return e}async function ne(p,t){const e=new DataView(p,t.localOffset);if(e.getUint32(0,!0)!==67324752)throw new Error("Bad local header");const i=e.getUint16(26,!0),s=e.getUint16(28,!0),n=t.localOffset+30+i+s,l=new Uint8Array(p.slice(n,n+t.compSize));if(t.method===0)return l;if(t.method!==8)throw new Error("Unsupported compression method "+t.method);const r=new Blob([l]).stream().pipeThrough(new DecompressionStream("deflate-raw"));return new Uint8Array(await new Response(r).arrayBuffer())}const le=p=>p.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),ht=(p,t)=>Array.from(p.children).filter(e=>e.localName===t),B=(p,...t)=>{let e=p;for(const i of t){if(!e)return null;e=Array.from(e.children).find(s=>s.localName===i)||null}return e},q=(p,t="val")=>{if(!p)return"";for(const e of Array.from(p.attributes))if(e.localName===t)return e.value;return""},rt=(p,t)=>{const e=p?B(p,t):null;if(!e)return!1;const i=q(e);return i!=="false"&&i!=="0"},oe={yellow:"#FFFF00",green:"#00FF00",cyan:"#00FFFF",magenta:"#FF00FF",blue:"#0000FF",red:"#FF0000",darkBlue:"#00008B",darkCyan:"#008B8B",darkGreen:"#006400",darkMagenta:"#8B008B",darkRed:"#8B0000",darkYellow:"#808000",darkGray:"#A9A9A9",lightGray:"#D3D3D3",black:"#000000",white:"#FFFFFF"},pi={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",bmp:"image/bmp",webp:"image/webp"};function mi(p){let t="";for(let e=0;e<p.length;e+=32768)t+=String.fromCharCode(...p.subarray(e,e+32768));return btoa(t)}class fi{constructor(t,e,i){this.rels=t,this.images=e,this.numFmt=i}convertBody(t){let e="",i=[];const s=n=>{for(;i.length>n;)e+=`</${i.pop()}>`};for(const n of Array.from(t.children))if(n.localName==="p"){const l=this.paraList(n);if(l){const r=l.ilvl+1;for(;i.length>r;)e+=`</${i.pop()}>`;for(i.length===r&&i[r-1]!==l.type&&(e+=`</${i.pop()}>`);i.length<r;)e+=`<${l.type}>`,i.push(l.type);e+=`<li>${this.runsOf(n)||"<br>"}</li>`;continue}s(0),e+=this.convertPara(n)}else n.localName==="tbl"?(s(0),e+=this.convertTable(n)):n.localName;return s(0),e||"<p><br></p>"}paraList(t){const e=B(t,"pPr","numPr");if(!e)return null;const i=q(B(e,"numId"));if(!i||i==="0")return null;const s=parseInt(q(B(e,"ilvl"))||"0",10)||0;return{type:this.numFmt.get(i)||"ul",ilvl:Math.min(s,8)}}convertPara(t){const e=B(t,"pPr"),i=q(B(t,"pPr","pStyle"));let s="p";const n=/^Heading([1-6])$/i.exec(i);n?s="h"+n[1]:/^Title$/i.test(i)&&(s="h1");const l=[],r=q(B(t,"pPr","jc"));r==="center"?l.push("text-align:center"):r==="right"||r==="end"?l.push("text-align:right"):(r==="both"||r==="distribute")&&l.push("text-align:justify"),e&&B(e,"bidi")&&l.push("direction:rtl");const o=this.runsOf(t),c=l.length?` style="${l.join(";")}"`:"";return`<${s}${c}>${o||"<br>"}</${s}>`}runsOf(t){let e="";for(const i of Array.from(t.children))if(i.localName==="r")e+=this.convertRun(i);else if(i.localName==="hyperlink"){let s=this.rels.get(q(i,"id"))||"";const n=q(i,"anchor");!s&&n&&(s="#"+n);const l=this.runsOf(i);e+=s?`<a href="${le(s)}">${l}</a>`:l}else(i.localName==="smartTag"||i.localName==="ins")&&(e+=this.runsOf(i));return e}convertRun(t){const e=B(t,"rPr");let i="";for(const u of Array.from(t.children))u.localName==="t"?i+=le(u.textContent||""):u.localName==="br"||u.localName==="cr"?i+="<br>":u.localName==="tab"?i+="&emsp;":(u.localName==="drawing"||u.localName==="pict"||u.localName==="object")&&(i+=this.convertImage(u));if(!i)return"";const s=[],n=q(e?B(e,"color"):null);n&&n!=="auto"&&s.push("color:#"+n);const l=q(e?B(e,"highlight"):null);l&&oe[l]&&s.push("background-color:"+oe[l]);const r=parseFloat(q(e?B(e,"sz"):null));r&&s.push("font-size:"+Math.round(r/2*(4/3))+"px");const o=e?B(e,"rFonts"):null,c=q(o,"ascii")||q(o,"cs");c&&s.push(`font-family:'${c}'`),s.length&&(i=`<span style="${s.join(";")}">${i}</span>`),rt(e,"b")&&(i=`<strong>${i}</strong>`),rt(e,"i")&&(i=`<em>${i}</em>`),rt(e,"u")&&q(B(e,"u"))!=="none"&&(i=`<u>${i}</u>`),rt(e,"strike")&&(i=`<s>${i}</s>`);const d=q(e?B(e,"vertAlign"):null);return d==="superscript"?i=`<sup>${i}</sup>`:d==="subscript"&&(i=`<sub>${i}</sub>`),i}convertImage(t){let e="",i=0;const s=r=>{if(r.localName==="blip"&&(e=e||q(r,"embed")||q(r,"link")),r.localName==="imagedata"&&(e=e||q(r,"id")),r.localName==="extent"){const o=parseFloat(r.getAttribute("cx")||"0");o&&(i=Math.round(o/9525))}for(const o of Array.from(r.children))s(o)};if(s(t),!e)return"";const n=this.images.get(e);if(!n)return"";const l=i?` width="${i}"`:"";return`<img src="${n}" alt=""${l}>`}convertTable(t){let e='<table style="border-collapse:collapse;width:100%"><tbody>';for(const i of ht(t,"tr")){e+="<tr>";for(const s of ht(i,"tc")){const n=parseInt(q(B(s,"tcPr","gridSpan"))||"1",10)||1,l=n>1?` colspan="${n}"`:"";let r="";for(const o of Array.from(s.children))o.localName==="p"?r+=this.convertPara(o):o.localName==="tbl"&&(r+=this.convertTable(o));e+=`<td style="border:1px solid #b9c2cc"${l}>${r||"<br>"}</td>`}e+="</tr>"}return e+"</tbody></table>"}}async function gi(p){const t=p instanceof ArrayBuffer?p:await p.arrayBuffer(),e=ui(t),i=new TextDecoder,s=async y=>{const g=e.get(y);return g?new DOMParser().parseFromString(i.decode(await ne(t,g)),"application/xml"):null},n=await s("word/document.xml"),l=n==null?void 0:n.getElementsByTagName("*");let r=null;if(l){for(const y of Array.from(l))if(y.localName==="body"){r=y;break}}if(!r)throw new Error("word/document.xml missing or invalid");const o=new Map,c=new Map,d=await s("word/_rels/document.xml.rels");if(d)for(const y of Array.from(d.getElementsByTagName("*"))){if(y.localName!=="Relationship")continue;const g=y.getAttribute("Id")||"",x=y.getAttribute("Target")||"",w=y.getAttribute("Type")||"";/hyperlink/i.test(w)?o.set(g,x):/image/i.test(w)&&c.set(g,x)}const u=new Map;for(const[y,g]of c){const x=g.startsWith("/")?g.slice(1):"word/"+g.replace(/^\.\//,""),w=e.get(x);if(!w)continue;const E=(x.split(".").pop()||"").toLowerCase(),I=pi[E];if(I)try{u.set(y,`data:${I};base64,${mi(await ne(t,w))}`)}catch{}}const m=new Map,b=await s("word/numbering.xml");if(b){const y=new Map,g=Array.from(b.getElementsByTagName("*"));for(const x of g){if(x.localName!=="abstractNum")continue;const w=q(x,"abstractNumId"),E=ht(x,"lvl").find(H=>q(H,"ilvl")==="0")||ht(x,"lvl")[0],I=E?q(B(E,"numFmt")):"";y.set(w,I==="bullet"?"ul":"ol")}for(const x of g){if(x.localName!=="num")continue;const w=q(x,"numId"),E=q(B(x,"abstractNumId"));m.set(w,y.get(E)||"ul")}}return new fi(o,u,m).convertBody(r)}const vi=["nw","ne","sw","se"],Ct=["img-left","img-right","img-top","img-center"],wt={"img-left":"tplimgleft","img-right":"tplimgright","img-top":"tplimgtop","img-center":"tplimgcenter"},bi={"img-left":h.tplleft,"img-right":h.tplright,"img-top":h.tpltop,"img-center":h.tplcenter},yi=".tox,.pop,.tblctx,.imgctx,.selctx,.dlg";let O=null,X=null,Et=0,re=!1;function at(){clearTimeout(Et),X=null,O&&O.classList.remove("show")}function xi(p){const t=p.dataset.tip;if(!t)return;X=p,clearTimeout(Et);const e=O&&O.classList.contains("show")?60:350;Et=window.setTimeout(()=>{if(X!==p||!document.contains(p))return;O||(O=document.createElement("div"),O.className="etip",document.body.appendChild(O)),O.textContent=t,O.classList.add("show");const i=p.getBoundingClientRect(),s=O.offsetWidth,n=O.offsetHeight;let l=i.left+i.width/2-s/2;l=Math.max(6,Math.min(l,innerWidth-s-6));let r=i.bottom+7;r+n>innerHeight-6&&(r=i.top-n-7),O.style.left=l+"px",O.style.top=r+"px"},e)}function Ci(){re||(re=!0,document.addEventListener("mouseover",p=>{const t=p.target,e=t.closest?t.closest("[title],[data-tip]"):null;if(!e||!e.closest(yi)||e.closest(".earea")){e!==X&&at();return}const i=e.getAttribute("title");i&&(e.dataset.tip=i,e.removeAttribute("title"),e.getAttribute("aria-label")||e.setAttribute("aria-label",i)),e!==X&&xi(e)}),document.addEventListener("mouseout",p=>{X&&!X.contains(p.relatedTarget)&&at()}),document.addEventListener("mousedown",at,!0),addEventListener("scroll",at,!0))}const wi=/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u0780-\u07BF\u08A0-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF]/,Ti=new RegExp("\\p{L}","u"),Ei="p,div,li,td,th,blockquote,h1,h2,h3,h4,h5,h6,pre,figcaption";function Si(p){for(const t of p){if(wi.test(t))return"rtl";if(Ti.test(t))return"ltr"}return null}function ce(p){let t="";return p.childNodes.forEach(e=>{if(e.nodeType===Node.TEXT_NODE)t+=e.nodeValue||"";else if(e.nodeType===Node.ELEMENT_NODE){const i=e,s=(i.getAttribute("dir")||"").toLowerCase();if(s==="rtl"||s==="ltr")return;t+=ce(i)}}),t}var W;let Mi=(W=class{constructor(t){this.lang="en",this.contentClass="fable-content-"+W.instanceCounter++,this.contentStyleEl=null,this.savedRange=null,this.foreColor="#000000",this.backColor="#FACC15",this.openPop=null,this.openSubEl=null,this.popAnchor=null,this.dlgOvl=null,this.tblActive=null,this.tblCorner=null,this.tblColBars=[],this.tblCtx=null,this.tblCellMark=null,this.tblOpMark=null,this.tblOpMarkKind=null,this.imgActive=null,this.imgHandles=[],this.imgCtx=null,this.imgHideTimer=null,this.phActive=null,this.phCtx=null,this.phUploadTarget=null,this.vidActive=null,this.vidCtx=null,this.vidHideTimer=null,this.vphActive=null,this.vphCtx=null,this.vphUploadTarget=null,this.selCtx=null,this.tbrMore=null,this.tbrExpanded=!1,this.codeActive=null,this.codeCtx=null,this.tplActive=null,this.tplCtx=null,this.revisions=[],this.revTimer=null,this.draftTimer=null,this.draftStorageKey="",this.listeners=[],this.isDestroyed=!1,this.options={target:t.target,language:t.language||"en",height:t.height??302,initialContent:t.initialContent??"<p><br></p>",onChange:t.onChange||(()=>{}),onReady:t.onReady||(()=>{}),menubar:t.menubar??!0,toolbar:t.toolbar??!0,statusbar:t.statusbar??!0,readonly:t.readonly??!1,draftKey:t.draftKey??(typeof location<"u"?location.pathname:"default"),fontFamilyFormats:t.fontFamilyFormats??Ue,imageFileTypes:t.imageFileTypes??["image/jpeg","image/jpg","image/png","image/gif","image/bmp","image/webp"],videoFileTypes:t.videoFileTypes??["video/mp4","video/webm","video/ogg"]},this.imageUploadHandler=t.imageUploadHandler,this.onImageUploadError=t.onImageUploadError,this.videoUploadHandler=t.videoUploadHandler,this.onVideoUploadError=t.onVideoUploadError,this.contentStyle=t.contentStyle,this.applyTheme(t),this.lang=this.options.language,this.draftStorageKey="tmclone-draft:"+this.options.draftKey,this.initDOM(),this.bindEvents(),this.initUI(),this.recordRevision(),this.options.onReady(this)}t(t){const e=xt(this.lang)[t];return typeof e=="string"?e:e.join(",")}tArr(t){return xt(this.lang)[t]}dir(){return xt(this.lang).dir}initDOM(){const t=this.options.target;t.innerHTML="",t.classList.add("tox-root"),this.shell=document.createElement("div"),this.shell.className="tox",this.menubar=document.createElement("div"),this.menubar.className="mnb",this.toolbar=document.createElement("div"),this.toolbar.className="tbr",this.ed=document.createElement("div"),this.ed.className="earea "+this.contentClass,this.ed.setAttribute("contenteditable",(!this.options.readonly).toString()),this.ed.spellcheck=!0,this.ed.innerHTML=this.options.initialContent,this.ed.style.height=this.options.height+"px",this.statusbar=document.createElement("div"),this.statusbar.className="sbar",this.statusbar.innerHTML=`
30
+ <%s key={someKey} {...props} />`,yt,z,Oe,z),Xt[z+yt]=!0}}return a===i?Re(P):qe(P),P}}function Pe(a,f,v){return Yt(a,f,v,!0)}function Be(a,f,v){return Yt(a,f,v,!1)}var Ne=Be,De=Pe;tt.Fragment=i,tt.jsx=Ne,tt.jsxs=De}()),tt}process.env.NODE_ENV==="production"?Tt.exports=Fe():Tt.exports=_e();var $e=Tt.exports;const je={en:{dir:"ltr",file:"File",edit:"Edit",view:"View",insert:"Insert",format:"Format",tools:"Tools",table:"Table",help:"Help",newdoc:"New document",preview:"Preview",print:"Print…",undo:"Undo",redo:"Redo",cut:"Cut",copy:"Copy",paste:"Paste",selectall:"Select all",fullscreen:"Fullscreen",sourcecode:"Source code",wordcount:"Word count",image:"Image…",inserttable:"Table",hr:"Horizontal line",charmap:"Special character…",datetime:"Date/time",pagebreak:"Page break",nbsp:"Nonbreaking space",bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",superscript:"Superscript",subscript:"Subscript",clearformat:"Clear formatting",rowabove:"Insert row before",rowbelow:"Insert row after",delrow:"Delete row",moverowup:"Move row up",moverowdown:"Move row down",colbefore:"Insert column before",colafter:"Insert column after",delcol:"Delete column",movecolleft:"Move column left",movecolright:"Move column right",cellbg:"Cell background",deltable:"Delete table",ltr:"Left to right",rtl:"Right to left",alignleft:"Align left",aligncenter:"Align center",alignright:"Align right",alignjustify:"Justify",align:"Align",numlist:"Numbered list",bullist:"Bullet list",forecolor:"Text color",backcolor:"Background color",removeformat:"Clear formatting",outdent:"Decrease indent",indent:"Increase indent",fontfamily:"Font family",fontsize:"Font size",blocks:"Blocks",quickimage:"Insert image",quicktable:"Insert table",more:"More…",para:"Paragraph",heading:"Heading",pre:"Preformatted",removecolor:"Remove color",currentcolor:"Current color",statushelp:"Press Alt+0 for help",words:"words",helpttl:"Help",shortcuts:"Handy shortcuts",close:"Close",save:"Save",cancel:"Cancel",srcttl:"Source code",wcttl:"Word count",wcwords:"Words",wcchars:"Characters",pastehint:"Use Ctrl+V / ⌘V to paste",liststyles_ol:["Default","Lower alpha","Lower roman","Upper alpha","Upper roman"],liststyles_ul:["Default","Circle","Square"],previewttl:"Preview",tablepropsttl:"Table properties",tblwidth:"Width",tblcellspacing:"Cell spacing",tblcellpadding:"Cell padding",tblborder:"Border width",tblalign:"Alignment",tblalignleft:"Align table left",tblaligncenter:"Center table",tblalignright:"Align table right",alignnone:"None",quote:"Blockquote",link:"Link…",linkttl:"Insert/edit link",linkurl:"URL",unlink:"Remove link",lineheight:"Line height",wordspacing:"Word spacing",letterspacing:"Letter spacing",changecase:"Change case",lowercase:"Lowercase",uppercase:"Uppercase",capitalize:"Capitalize Each Word",customcolor:"Custom color…",normal:"Normal",revhistory:"Revision history",revempty:"No revisions yet",restore:"Restore",currentver:"Current version",importword:"Import from Word…",importfail:"Could not import this file. Please choose a valid .docx document.",restoredraft:"Restore last draft",draftempty:"No saved draft found",deleteimg:"Delete image",rotateleft:"Rotate left",rotateright:"Rotate right",fliphorizontal:"Flip horizontal",flipvertical:"Flip vertical",cell:"Cell",row:"Row",column:"Column",cellprops:"Cell properties…",rowprops:"Row properties…",colprops:"Column properties…",tblheight:"Height",valign:"Vertical align",valigntop:"Top",valignmiddle:"Middle",valignbottom:"Bottom",fill:"Fill",nocell:"Click inside a table cell first",uploadimg:"Upload from computer",imagelink:"Insert from URL",imageurlph:"Paste image URL…",insertimg:"Insert",dropimage:"Drop image here",uploading:"Uploading…",uploadfailed:"Upload failed — click to retry",template:"Templates",tplimgleft:"Image left, text right",tplimgright:"Image right, text left",tplimgtop:"Image top, text below",tplimgcenter:"Text top, image center",deltemplate:"Delete template",video:"Video",quickvideo:"Insert video",deletevideo:"Delete video",uploadvideo:"Upload from computer",videolink:"Insert from URL",videourlph:"Paste video URL…",insertvideo:"Insert",dropvideo:"Drop video here",videodlgttl:"Insert/edit video",vidgeneral:"General",vidembed:"Embed",vidadvanced:"Advanced",vidsource:"Source",vidembedhint:"Paste your embed code below:",vidaltsource:"Alternative source URL",vidposter:"Media poster (Image URL)",emoji:"Emojis…",code:"Inline code",codesample:"Code sample…",codedlgttl:"Insert/edit code sample",codelang:"Language",editcode:"Edit code sample",deletecode:"Delete code sample",copycode:"Copy code",chcat_currency:"Currency",chcat_text:"Text & punctuation",chcat_math:"Mathematical",chcat_arrows:"Arrows",chcat_symbols:"Symbols",chcat_latin:"Extended Latin",chcat_arabic:"Arabic",emcat_smileys:"Smileys & emotion",emcat_people:"People & body",emcat_animals:"Animals & nature",emcat_food:"Food & drink",emcat_travel:"Travel & places",emcat_activities:"Activities",emcat_objects:"Objects",emcat_symbols:"Symbols",emcat_flags:"Flags"},ar:{dir:"rtl",file:"ملف",edit:"تحرير",view:"عرض",insert:"إدراج",format:"التنسيق",tools:"الأدوات",table:"جدول",help:"تعليمات",newdoc:"مستند جديد",preview:"معاينة",print:"طباعة…",undo:"تراجع",redo:"إعادة",cut:"قص",copy:"نسخ",paste:"لصق",selectall:"تحديد الكل",fullscreen:"ملء الشاشة",sourcecode:"الكود المصدري",wordcount:"عدد الكلمات",image:"صورة…",inserttable:"جدول",hr:"خط أفقي",charmap:"رمز خاص…",datetime:"التاريخ/الوقت",pagebreak:"فاصل الصفحة",nbsp:"مسافة غير فاصلة",bold:"غامق",italic:"مائل",underline:"تسطير",strikethrough:"يتوسطه خط",superscript:"نص مرتفع",subscript:"نص منخفض",clearformat:"مسح التنسيق",rowabove:"إدراج صف قبل",rowbelow:"إدراج صف بعد",delrow:"حذف الصف",moverowup:"نقل الصف لأعلى",moverowdown:"نقل الصف لأسفل",colbefore:"إدراج عمود قبل",colafter:"إدراج عمود بعد",delcol:"حذف العمود",movecolleft:"نقل العمود لليسار",movecolright:"نقل العمود لليمين",cellbg:"خلفية الخلية",deltable:"حذف الجدول",ltr:"من اليسار إلى اليمين",rtl:"من اليمين إلى اليسار",alignleft:"محاذاة لليسار",aligncenter:"توسيط",alignright:"محاذاة لليمين",alignjustify:"ضبط",align:"محاذاة",numlist:"قائمة رقمية",bullist:"قائمة نقطية",forecolor:"لون النص",backcolor:"لون الخلفية",removeformat:"مسح التنسيق",outdent:"إنقاص المسافة البادئة",indent:"زيادة المسافة البادئة",fontfamily:"عائلة الخط",fontsize:"حجم الخط",blocks:"الفقرات",quickimage:"إدراج صورة",quicktable:"إدراج جدول",more:"المزيد…",para:"الفقرة",heading:"العنوان",pre:"منسق مسبقاً",removecolor:"إزالة اللون",currentcolor:"اللون الحالي",statushelp:"اضغط على Alt+0 للحصول على مساعدة",words:"الكلمات",helpttl:"تعليمات",shortcuts:"اختصارات مفيدة",close:"إغلاق",save:"حفظ",cancel:"إلغاء",srcttl:"الكود المصدري",wcttl:"عدد الكلمات",wcwords:"الكلمات",wcchars:"الأحرف",pastehint:"استخدم Ctrl+V / ⌘V للصق",liststyles_ol:["افتراضي","أبجدي صغير","روماني صغير","أبجدي كبير","روماني كبير"],liststyles_ul:["افتراضي","دائرة","مربع"],previewttl:"معاينة",tablepropsttl:"خصائص الجدول",tblwidth:"العرض",tblcellspacing:"تباعد الخلايا",tblcellpadding:"حشو الخلايا",tblborder:"عرض الحدود",tblalign:"المحاذاة",tblalignleft:"محاذاة الجدول لليسار",tblaligncenter:"توسيط الجدول",tblalignright:"محاذاة الجدول لليمين",alignnone:"بدون",quote:"اقتباس",link:"رابط…",linkttl:"إدراج/تعديل رابط",linkurl:"الرابط",unlink:"إزالة الرابط",lineheight:"تباعد الأسطر",wordspacing:"تباعد الكلمات",letterspacing:"تباعد الأحرف",changecase:"تغيير حالة الأحرف",lowercase:"أحرف صغيرة",uppercase:"أحرف كبيرة",capitalize:"تكبير أول حرف",customcolor:"لون مخصص…",normal:"عادي",revhistory:"سجل المراجعات",revempty:"لا توجد مراجعات بعد",restore:"استعادة",currentver:"النسخة الحالية",importword:"استيراد من Word…",importfail:"تعذر استيراد هذا الملف. الرجاء اختيار مستند ‎.docx صالح.",restoredraft:"استعادة آخر مسودة",draftempty:"لا توجد مسودة محفوظة",deleteimg:"حذف الصورة",rotateleft:"تدوير لليسار",rotateright:"تدوير لليمين",fliphorizontal:"قلب أفقي",flipvertical:"قلب رأسي",cell:"خلية",row:"صف",column:"عمود",cellprops:"خصائص الخلية…",rowprops:"خصائص الصف…",colprops:"خصائص العمود…",tblheight:"الارتفاع",valign:"محاذاة عمودية",valigntop:"أعلى",valignmiddle:"وسط",valignbottom:"أسفل",fill:"تعبئة",nocell:"انقر داخل خلية جدول أولاً",uploadimg:"رفع من الجهاز",imagelink:"إدراج من رابط",imageurlph:"الصق رابط الصورة…",insertimg:"إدراج",dropimage:"أسقط الصورة هنا",uploading:"جارٍ الرفع…",uploadfailed:"فشل الرفع — انقر لإعادة المحاولة",template:"قوالب",tplimgleft:"صورة يسار، نص يمين",tplimgright:"صورة يمين، نص يسار",tplimgtop:"صورة أعلى، نص أسفل",tplimgcenter:"نص أعلى، صورة وسط",deltemplate:"حذف القالب",video:"فيديو",quickvideo:"إدراج فيديو",deletevideo:"حذف الفيديو",uploadvideo:"رفع من الجهاز",videolink:"إدراج من رابط",videourlph:"الصق رابط الفيديو…",insertvideo:"إدراج",dropvideo:"أسقط الفيديو هنا",videodlgttl:"إدراج/تعديل فيديو",vidgeneral:"عام",vidembed:"تضمين",vidadvanced:"متقدم",vidsource:"المصدر",vidembedhint:"الصق كود التضمين أدناه:",vidaltsource:"رابط مصدر بديل",vidposter:"صورة الغلاف (رابط الصورة)",emoji:"رموز تعبيرية…",code:"كود مضمّن",codesample:"عينة كود…",codedlgttl:"إدراج/تعديل عينة كود",codelang:"اللغة",editcode:"تعديل عينة الكود",deletecode:"حذف عينة الكود",copycode:"نسخ الكود",chcat_currency:"عملات",chcat_text:"نص وعلامات ترقيم",chcat_math:"رموز رياضية",chcat_arrows:"أسهم",chcat_symbols:"رموز",chcat_latin:"لاتينية موسعة",chcat_arabic:"عربية",emcat_smileys:"وجوه ومشاعر",emcat_people:"أشخاص وإيماءات",emcat_animals:"حيوانات وطبيعة",emcat_food:"طعام وشراب",emcat_travel:"سفر وأماكن",emcat_activities:"أنشطة",emcat_objects:"أشياء",emcat_symbols:"رموز",emcat_flags:"أعلام"}};function xt(p){return je[p]}const We="undo redo | preview print | importword revhistory | fontfamily fontsize | fontsizeincrease fontsizedecrease | bold italic underline strikethrough | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent | link blockquote code changecase lineheight wordspacing letterspacing | removeformat | blocks | ltr rtl | quickimage quickvideo quicktable codesample template charmap emoji | fullscreen sourcecode",Ve="file edit view insert format tools table help",Ue=[["Andale Mono","andale mono,times"],["Arial","arial,helvetica,sans-serif"],["Arial Black","arial black,avant garde"],["Book Antiqua","book antiqua,palatino"],["Comic Sans MS","comic sans ms,sans-serif"],["Courier New","courier new,courier"],["Georgia","georgia,palatino"],["Helvetica","helvetica"],["Impact","impact,chicago"],["Oswald","oswald"],["Sakkal Majalla","sakkal majalla"],["Symbol","symbol"],["Tahoma","tahoma,arial,helvetica,sans-serif"],["Terminal","terminal,monaco"],["Times New Roman","times new roman,times"],["Trebuchet MS","trebuchet ms,geneva"],["Verdana","verdana,geneva"],["Webdings","webdings"],["Wingdings","wingdings,zapf dingbats"]],ze=["8px","9px","10px","11px","12px","14px","16px","18px","20px","24px","28px","32px","36px","48px","72px","96px"],Xe=1,Ye=100,Kt=["1","1.15","1.4","1.5","1.75","2","2.5","3"],Jt=["1px","2px","4px","6px","8px","12px"],te=["0.5px","1px","1.5px","2px","3px","4px"],ee=[["plain","Plain text"],["html","HTML/XML"],["css","CSS"],["javascript","JavaScript"],["typescript","TypeScript"],["json","JSON"],["python","Python"],["java","Java"],["csharp","C#"],["cpp","C/C++"],["php","PHP"],["ruby","Ruby"],["go","Go"],["rust","Rust"],["sql","SQL"],["bash","Bash/Shell"]],ie=[["p","para"],["h1","heading1"],["h2","heading2"],["h3","heading3"],["h4","heading4"],["h5","heading5"],["h6","heading6"],["pre","pre"]],Qe=["#F76707","#4263EB","#CC5DE8"],Ge=["#FFFFFF","#F4F4F4","#E8EAED","#DADCE0","#000000","#F28B82","#FBBC04","#FFF475","#CCFF90","#A7FFEB","#CBF0F8","#AECBFA","#D7AEFB","#FDCFE8","#E6C9A8","#EA4335","#FB8C00","#FDD835","#34A853","#00ACC1","#4285F4","#5E35B1","#8E24AA","#C2185B","#6D4C41"],Ke=[{key:"chcat_currency",chars:["€","£","¥","¢","$","₹","₽","₩","₺","₴","₦","฿","₫","₪","﷼","¤","₡","₱","₲","₵","₭","₮","₸","₼","₾","₿"]},{key:"chcat_text",chars:["§","¶","†","‡","•","…","′","″","‰","‱","–","—","―","¡","¿","·","‹","›","«","»","“","”","‘","’","„","‚","¦","ª","º","‽","※","❝","❞","❮","❯"]},{key:"chcat_math",chars:["°","±","×","÷","≈","≠","≤","≥","∞","µ","√","∑","∫","∂","∆","∏","π","Ω","α","β","γ","δ","ε","θ","λ","σ","φ","ψ","ω","∈","∉","∪","∩","⊂","⊃","⊆","⊇","∀","∃","∅","∝","∴","∵","¬","∧","∨","½","⅓","¼","¾","⅔","⅛","⅜","⅝","⅞","¹","²","³","⁴","⁵","⁶","⁷","⁸","⁹","⁰","₁","₂","₃","₄","₅","₆","₇","₈","₉","₀"]},{key:"chcat_arrows",chars:["←","→","↑","↓","↔","↕","⇐","⇒","⇑","⇓","⇔","↖","↗","↘","↙","↩","↪","↺","↻","⤴","⤵","➜","➝","➞","➟","⇦","⇨","⇧","⇩"]},{key:"chcat_symbols",chars:["©","®","™","℠","№","℮","✓","✔","✗","✘","★","☆","✦","✪","♠","♣","♥","♦","♪","♫","♬","☀","☁","☂","☃","☾","☹","☺","☻","✉","✂","✎","✏","☎","☏","⌛","⌚","☞","☜","☝","☟"]},{key:"chcat_latin",chars:["À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","þ","ÿ","Œ","œ","Š","š","Ž","ž","Ł","ł"]},{key:"chcat_arabic",chars:["؟","،","؛","٪","٭","ـ","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","﴾","﴿","۞","؎","ء","آ","أ","ؤ","إ","ئ","ى","ة"]}],Je=[{key:"emcat_smileys",chars:["😀","😃","😄","😁","😆","😅","😂","🤣","😊","😇","🙂","🙃","😉","😌","😍","🥰","😘","😋","😛","😜","🤪","🤨","🧐","🤓","😎","🥳","😏","😒","😞","😔","😟","😕","🙁","😣","😫","😩","🥺","😢","😭","😤","😠","😡","🤯","😳","🥵","🥶","😱","😨","😥","🤗","🤔","🤭","🤫","😐","😑","😬","🙄","😯","😴","😪","😷","🤒","🤕","🤢","🤧","😈","💀","👻","👽","🤖","💩","😺","😸","😹","😻","🙀"]},{key:"emcat_people",chars:["👋","🤚","✋","🖖","👌","🤏","✌","🤞","🤟","🤘","🤙","👈","👉","👆","👇","☝","👍","👎","✊","👊","👏","🙌","👐","🤲","🤝","🙏","💪","✍","💅","🤳","👂","👃","👀","👁","🧠","👶","🧒","👦","👧","🧑","👨","👩","🧓","👴","👵","👮","👷","💂","🕵","👸","🤴","👰","🤵","🤰","👼","🎅","🦸","🦹","🧙","🧚","🧛","🧟","💃","🕺","🚶","🏃","🧘"]},{key:"emcat_animals",chars:["🐶","🐱","🐭","🐹","🐰","🦊","🐻","🐼","🐨","🐯","🦁","🐮","🐷","🐸","🐵","🐔","🐧","🐦","🐤","🦆","🦅","🦉","🐺","🐗","🐴","🦄","🐝","🐛","🦋","🐌","🐞","🐢","🐍","🦎","🦖","🐙","🦑","🦀","🐠","🐟","🐬","🐳","🦈","🐊","🐅","🦓","🦍","🐘","🦏","🐪","🦒","🦘","🐄","🐎","🐖","🐑","🐐","🦌","🐕","🐈","🐓","🦃","🦚","🦜","🦢","🕊","🐇","🦔","🌵","🌲","🌴","🌱","🌿","☘","🍀","🍁","🌸","🌺","🌻","🌹","🌷","💐"]},{key:"emcat_food",chars:["🍏","🍎","🍐","🍊","🍋","🍌","🍉","🍇","🍓","🍈","🍒","🍑","🥭","🍍","🥥","🥝","🍅","🍆","🥑","🥦","🥒","🌶","🌽","🥕","🥔","🥐","🍞","🥖","🥨","🧀","🥚","🍳","🥞","🥓","🥩","🍗","🍖","🌭","🍔","🍟","🍕","🥪","🌮","🌯","🥗","🍝","🍜","🍲","🍛","🍣","🍱","🥟","🍤","🍚","🍧","🍨","🍦","🥧","🧁","🍰","🎂","🍮","🍭","🍬","🍫","🍿","🍩","🍪","🥜","🍯","🥛","☕","🍵","🥤","🍺","🥂","🍷","🍸","🍹"]},{key:"emcat_travel",chars:["🚗","🚕","🚙","🚌","🏎","🚓","🚑","🚒","🚚","🚜","🛵","🏍","🚲","🛴","🚔","🚃","🚄","🚅","🚂","🚆","🚇","🚉","✈","🛫","🛬","💺","🚁","🚀","🛸","🚢","⛵","🚤","⚓","⛽","🚧","🗺","🗿","🗽","🗼","🏰","🏯","🎡","🎢","🎠","⛲","🏖","🏝","🌋","⛰","🏔","🗻","🏕","⛺","🏠","🏡","🏢","🏬","🏥","🏦","🏨","🏪","🏫","💒","⛪","🕌","🕍","🕋","⛩","🌅","🌄","🌇","🌆","🌃","🌉","🌌","🌠"]},{key:"emcat_activities",chars:["⚽","🏀","🏈","⚾","🎾","🏐","🏉","🎱","🏓","🏸","🏒","🏑","🏏","⛳","🏹","🎣","🥊","🥋","⛸","🎿","⛷","🏂","🏋","🤸","⛹","🤺","🏇","🧗","🏄","🏊","🚣","🚵","🚴","🏆","🥇","🥈","🥉","🏅","🎖","🎫","🎪","🤹","🎭","🎨","🎬","🎤","🎧","🎼","🎹","🥁","🎷","🎺","🎸","🎻","🎲","🎯","🎳","🎮","🎰","🧩"]},{key:"emcat_objects",chars:["⌚","📱","💻","⌨","🖥","🖨","🖱","🕹","💽","💾","💿","📀","📷","📸","📹","🎥","📞","☎","📺","📻","🎙","⏱","⏰","⌛","⏳","📡","🔋","🔌","💡","🔦","🕯","💸","💵","💰","💳","💎","⚖","🔧","🔨","⚒","🛠","⛏","🔩","⚙","🧲","🔫","💣","🔪","🛡","🔮","🧿","🔭","🔬","💊","💉","🌡","🧬","🧪","🧹","🧺","🛁","🔑","🗝","🚪","🛋","🛏","🧸","🖼","🛍","🛒","🎁","🎈","🎀","🎊","🎉","✉","📩","📦","📜","📄","📊","📈","📉","📅","📋","📁","📰","📓","📚","📖","🔖","🔗","📎","📐","📏","📌","📍","✂","🖊","✒","🖌","🖍","📝","✏","🔍","🔒","🔓"]},{key:"emcat_symbols",chars:["❤","🧡","💛","💚","💙","💜","🖤","💔","❣","💕","💞","💓","💗","💖","💘","💝","☮","✝","☪","🕉","☸","✡","☯","♈","♉","♊","♋","♌","♍","♎","♏","♐","♑","♒","♓","⚛","❌","⭕","🛑","⛔","🚫","💯","💢","⚠","🚸","🔱","⚜","🔰","♻","✅","❇","✳","❎","🌐","💠","🌀","💤","🏧","♿","🚭","❗","❕","❓","❔","‼","⁉","💲","🔅","🔆","〽","ℹ","🆗","🆕","🆓","🆒","🆙","🈯","🈚"]},{key:"emcat_flags",chars:["🏁","🚩","🎌","🏴","🏳","🇦🇪","🇸🇦","🇶🇦","🇰🇼","🇧🇭","🇴🇲","🇪🇬","🇯🇴","🇱🇧","🇮🇳","🇵🇰","🇺🇸","🇬🇧","🇨🇦","🇦🇺","🇫🇷","🇩🇪","🇮🇹","🇪🇸","🇵🇹","🇳🇱","🇧🇪","🇨🇭","🇸🇪","🇳🇴","🇩🇰","🇫🇮","🇮🇪","🇬🇷","🇹🇷","🇷🇺","🇺🇦","🇵🇱","🇯🇵","🇰🇷","🇨🇳","🇸🇬","🇲🇾","🇮🇩","🇹🇭","🇵🇭","🇻🇳","🇧🇷","🇦🇷","🇲🇽","🇿🇦","🇳🇬","🇰🇪","🇲🇦"]}],k=(p,t)=>`<svg viewBox="${t||"0 0 24 24"}">${p}</svg>`,C=p=>k(`<path class="f" d="${p}"/>`,"0 -960 960 960"),ot=(p,t=7.5)=>k('<path d="M10 6h10M10 12h10M10 18h10"/>'+p.map((e,i)=>`<text x="2.5" y="${8.4+i*6}" font-size="${t}" stroke="none" fill="#222f3e" font-family="Arial">${e}</text>`).join("")),h={bold:C("M272-200v-560h221q65 0 120 40t55 111q0 51-23 78.5T602-491q25 11 55.5 41t30.5 90q0 89-65 124.5T501-200H272Zm121-112h104q48 0 58.5-24.5T566-372q0-11-10.5-35.5T494-432H393v120Zm0-228h93q33 0 48-17t15-38q0-24-17-39t-44-15h-95v109Z"),italic:C("M200-200v-100h160l120-360H320v-100h400v100H580L460-300h140v100H200Z"),underline:C("M200-120v-80h560v80H200Zm123-223q-56-63-56-167v-330h103v336q0 56 28 91t82 35q54 0 82-35t28-91v-336h103v330q0 104-56 167t-157 63q-101 0-157-63Z"),strikethrough:C("M486-160q-76 0-135-45t-85-123l88-38q14 48 48.5 79t85.5 31q42 0 76-20t34-64q0-18-7-33t-19-27h112q5 14 7.5 28.5T694-340q0 86-61.5 133T486-160ZM80-480v-80h800v80H80Zm402-326q66 0 115.5 32.5T674-674l-88 39q-9-29-33.5-52T484-710q-41 0-68 18.5T386-640h-96q2-69 54.5-117.5T482-806Z"),undo:C("M280-200v-80h284q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l104 104-56 56-200-200 200-200 56 56-104 104h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H280Z"),redo:C("M396-200q-97 0-166.5-63T160-420q0-94 69.5-157T396-640h252L544-744l56-56 200 200-200 200-56-56 104-104H396q-63 0-109.5 40T240-420q0 60 46.5 100T396-280h284v80H396Z"),ltr:C("M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm0-280v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80ZM680-80l-56-56 64-64H120v-80h568l-64-64 56-56 160 160L680-80Z"),rtl:C("M360-360v-200q-66 0-113-47t-47-113q0-66 47-113t113-47h320v80h-80v440h-80v-440h-80v440h-80Zm-88 160 64 64-56 56-160-160 160-160 56 56-64 64h568v80H272Zm88-440v-160q-33 0-56.5 23.5T280-720q0 33 23.5 56.5T360-640Zm0-80Z"),alignleft:C("M120-120v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Zm0-160v-80h480v80H120Zm0-160v-80h720v80H120Z"),aligncenter:C("M120-120v-80h720v80H120Zm160-160v-80h400v80H280ZM120-440v-80h720v80H120Zm160-160v-80h400v80H280ZM120-760v-80h720v80H120Z"),alignright:C("M120-760v-80h720v80H120Zm240 160v-80h480v80H360ZM120-440v-80h720v80H120Zm240 160v-80h480v80H360ZM120-120v-80h720v80H120Z"),alignjustify:C("M120-120v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Zm0-160v-80h720v80H120Z"),fullscreen:C("M120-120v-200h80v120h120v80H120Zm520 0v-80h120v-120h80v200H640ZM120-640v-200h200v80H200v120h-80Zm640 0v-120H640v-80h200v200h-80Z"),clearformatic:C("m528-546-93-93-121-121h486v120H568l-40 94ZM792-56 460-388l-80 188H249l119-280L56-792l56-56 736 736-56 56Z"),numlist:C("M120-80v-60h100v-30h-60v-60h60v-30H120v-60h120q17 0 28.5 11.5T280-280v40q0 17-11.5 28.5T240-200q17 0 28.5 11.5T280-160v40q0 17-11.5 28.5T240-80H120Zm0-280v-110q0-17 11.5-28.5T160-510h60v-30H120v-60h120q17 0 28.5 11.5T280-560v70q0 17-11.5 28.5T240-450h-60v30h100v60H120Zm60-280v-180h-60v-60h120v240h-60Zm180 440v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360Z"),bullist:C("M360-200v-80h480v80H360Zm0-240v-80h480v80H360Zm0-240v-80h480v80H360ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm-56.5-263.5Q120-687 120-720t23.5-56.5Q167-800 200-800t56.5 23.5Q280-753 280-720t-23.5 56.5Q233-640 200-640t-56.5-23.5Z"),chev:k('<path d="M2 3.5 6 7.5 10 3.5"/>',"0 0 12 11"),backcolor:C("M440-80q-33 0-56.5-23.5T360-160v-160H240q-33 0-56.5-23.5T160-400v-280q0-66 47-113t113-47h480v440q0 33-23.5 56.5T720-320H600v160q0 33-23.5 56.5T520-80h-80ZM240-560h480v-200h-40v160h-80v-160h-40v80h-80v-80H320q-33 0-56.5 23.5T240-680v120Zm0 160h480v-80H240v80Zm0 0v-80 80Z"),outdent:C("M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm160 440L120-480l160-160v320Z"),indent:C("M120-120v-80h720v80H120Zm320-160v-80h400v80H440Zm0-160v-80h400v80H440Zm0-160v-80h400v80H440ZM120-760v-80h720v80H120Zm0 440v-320l160 160-160 160Z"),more:k('<circle class="f" cx="5" cy="12" r="1.7"/><circle class="f" cx="12" cy="12" r="1.7"/><circle class="f" cx="19" cy="12" r="1.7"/>'),image:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560H200v560Zm40-80h480L570-480 450-320l-90-120-120 160Zm-40 80v-560 560Z"),uploadic:C("M440-200v-326L336-422l-56-58 200-200 200 200-56 58-104-104v326h-80ZM240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Z"),tableic:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm240-240H200v160h240v-160Zm80 0v160h240v-160H520Zm-80-80v-160H200v160h240Zm80 0h240v-160H520v160ZM200-680h560v-80H200v80Z"),hric:k('<path d="M4 12h16"/>'),charic:C("M120-120v-120h200q-84-45-132-125t-48-175q0-142 99-241t241-99q142 0 241 99t99 241q0 95-48 175T640-240h200v120H520v-204q78-14 129-75t51-141q0-92-64-156t-156-64q-92 0-156 64t-64 156q0 80 51 141t129 75v204H120Z"),dateic:k('<rect x="4" y="6" width="16" height="14" rx="1.5"/><path d="M4 10h16M8 4v4M16 4v4"/>'),pbic:C("M240-80q-33 0-56.5-23.5T160-160v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-80H240Zm-80-440v-280q0-33 23.5-56.5T240-880h320l240 240v120h-80v-80H520v-200H240v280h-80Zm200 160v-80h240v80H360Zm320 0v-80h240v80H680Zm-640 0v-80h240v80H40Zm440-160Zm0 240Z"),nbspic:k('<path d="M6 12v4h12v-4"/>'),srcic:C("M240-280 40-480l200-200 56 56-143 144 143 144-56 56Zm178 132-76-24 200-640 76 24-200 640Zm302-132-56-56 143-144-143-144 56-56 200 200-200 200Z"),prevw:C("M607.5-372.5Q660-425 660-500t-52.5-127.5Q555-680 480-680t-127.5 52.5Q300-575 300-500t52.5 127.5Q405-320 480-320t127.5-52.5Zm-204-51Q372-455 372-500t31.5-76.5Q435-608 480-608t76.5 31.5Q588-545 588-500t-31.5 76.5Q525-392 480-392t-76.5-31.5ZM214-281.5Q94-363 40-500q54-137 174-218.5T480-800q146 0 266 81.5T920-500q-54 137-174 218.5T480-200q-146 0-266-81.5ZM480-500Zm207.5 160.5Q782-399 832-500q-50-101-144.5-160.5T480-720q-113 0-207.5 59.5T128-500q50 101 144.5 160.5T480-280q113 0 207.5-59.5Z"),printic:C("M640-640v-120H320v120h-80v-200h480v200h-80Zm-480 80h640-640Zm560 100q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460Zm-80 260v-160H320v160h320Zm80 80H240v-160H80v-240q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v240H720v160Zm80-240v-160q0-17-11.5-28.5T760-560H200q-17 0-28.5 11.5T160-520v160h80v-80h480v80h80Z"),cutic:C("M760-120 480-400l-94 94q8 15 11 32t3 34q0 66-47 113T240-80q-66 0-113-47T80-240q0-66 47-113t113-47q17 0 34 3t32 11l94-94-94-94q-15 8-32 11t-34 3q-66 0-113-47T80-720q0-66 47-113t113-47q66 0 113 47t47 113q0 17-3 34t-11 32l494 494v40H760ZM600-520l-80-80 240-240h120v40L600-520ZM296.5-663.5Q320-687 320-720t-23.5-56.5Q273-800 240-800t-56.5 23.5Q160-753 160-720t23.5 56.5Q207-640 240-640t56.5-23.5ZM494-466q6-6 6-14t-6-14q-6-6-14-6t-14 6q-6 6-6 14t6 14q6 6 14 6t14-6ZM296.5-183.5Q320-207 320-240t-23.5-56.5Q273-320 240-320t-56.5 23.5Q160-273 160-240t23.5 56.5Q207-160 240-160t56.5-23.5Z"),copyic:C("M360-240q-33 0-56.5-23.5T280-320v-480q0-33 23.5-56.5T360-880h360q33 0 56.5 23.5T800-800v480q0 33-23.5 56.5T720-240H360Zm0-80h360v-480H360v480ZM200-80q-33 0-56.5-23.5T120-160v-560h80v560h440v80H200Zm160-240v-480 480Z"),pasteic:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h167q11-35 43-57.5t70-22.5q40 0 71.5 22.5T594-840h166q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-560h-80v120H280v-120h-80v560Zm308.5-571.5Q520-783 520-800t-11.5-28.5Q497-840 480-840t-28.5 11.5Q440-817 440-800t11.5 28.5Q463-760 480-760t28.5-11.5Z"),selall:C("M280-280v-400h400v400H280Zm80-80h240v-240H360v240ZM200-200v80q-33 0-56.5-23.5T120-200h80Zm-80-80v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm80-160h-80q0-33 23.5-56.5T200-840v80Zm80 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80v80h-80Zm0-640v-80h80v80h-80Zm160 640v-80h80q0 33-23.5 56.5T760-120Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80h80v80h-80Zm0-160v-80q33 0 56.5 23.5T840-760h-80Z"),superscriptic:C("M760-600v-80q0-17 11.5-28.5T800-720h80v-40H760v-40h120q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h120v40H760ZM235-160l185-291-172-269h106l124 200h4l123-200h107L539-451l186 291H618L482-377h-4L342-160H235Z"),subscriptic:C("M760-160v-80q0-17 11.5-28.5T800-280h80v-40H760v-40h120q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h120v40H760Zm-525-80 185-291-172-269h106l124 200h4l123-200h107L539-531l186 291H618L482-457h-4L342-240H235Z"),newic:k('<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/>'),helpic:k('<circle cx="12" cy="12" r="8.5"/><path d="M9.6 9.6a2.5 2.5 0 1 1 3.4 2.6c-.8.3-1 .9-1 1.8"/><circle class="f" cx="12" cy="16.6" r="1.1"/>'),wcic:k('<path d="M4 6h16M4 10h16M4 14h9"/><path d="M15 17.5l2 2 3.6-4"/>'),rowbefore:C("M200-160h560v-240H200v240Zm640 80H120v-720h160v80h-80v240h560v-240h-80v-80h160v720ZM480-480Zm0 80v-80 80Zm0 0Zm-40-240v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),rowafter:C("M200-560h560v-240H200v240Zm-80 400v-720h720v720H680v-80h80v-240H200v240h80v80H120Zm360-320Zm0-80v80-80Zm0 0ZM440-80v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),rowdelete:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM200-400v-160h560v160H200ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"),colbefore:C("M800-200v-560H560v560h240Zm-640 80v-160h80v80h240v-560H240v80h-80v-160h720v720H160Zm320-360Zm80 0h-80 80Zm0 0ZM160-360v-80H80v-80h80v-80h80v80h80v80h-80v80h-80Z"),colafter:C("M160-760v560h240v-560H160ZM80-120v-720h720v160h-80v-80H480v560h240v-80h80v160H80Zm400-360Zm-80 0h80-80Zm0 0Zm320 120v-80h-80v-80h80v-80h80v80h80v80h-80v80h-80Z"),coldelete:C("M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200ZM200-200h560v-560H200ZM400-200v-560h160v560H400ZM330-580l250 250 50-50-250-250ZM330-380l250-250 50 50-250 250Z"),quote:C("m228-240 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T458-480L320-240h-92Zm360 0 92-160q-66 0-113-47t-47-113q0-66 47-113t113-47q66 0 113 47t47 113q0 23-5.5 42.5T818-480L680-240h-92ZM362.5-517.5Q380-535 380-560t-17.5-42.5Q345-620 320-620t-42.5 17.5Q260-585 260-560t17.5 42.5Q295-500 320-500t42.5-17.5Zm360 0Q740-535 740-560t-17.5-42.5Q705-620 680-620t-42.5 17.5Q620-585 620-560t17.5 42.5Q655-500 680-500t42.5-17.5ZM680-560Zm-360 0Z"),link:C("M440-280H280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h160v80H280q-50 0-85 35t-35 85q0 50 35 85t85 35h160v80ZM320-440v-80h320v80H320Zm200 160v-80h160q50 0 85-35t35-85q0-50-35-85t-85-35H520v-80h160q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H520Z"),lineheight:C("M240-160 80-320l56-56 64 62v-332l-64 62-56-56 160-160 160 160-56 56-64-62v332l64-62 56 56-160 160Zm240-40v-80h400v80H480Zm0-240v-80h400v80H480Zm0-240v-80h400v80H480Z"),wordspacing:C("M320-80 160-240l160-160 57 56-64 64h334l-63-64 56-56 160 160L640-80l-57-56 64-64H313l63 64-56 56ZM200-480v-400h80v400h-80Zm240 0v-400h80v400h-80Zm240 0v-400h80v400h-80Z"),caseic:C("m131-252 165-440h79l165 440h-76l-39-112H247l-40 112h-76Zm139-176h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-23 0-42 9.5T610-468l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z"),uppercaseic:C("M660-240v-248l-64 64-56-56 160-160 160 160-56 56-64-64v248h-80Zm-540 0 165-440h79l165 440h-76l-39-113H236l-40 113h-76Zm139-177h131l-65-182h-4l-62 182Z"),lowercaseic:C("M300-240q-51 0-81-27.5T189-340q0-44 34.5-72.5T312-441q23 0 45 4t38 11v-12q0-29-20.5-47T320-503q-23 0-42 9.5T245-466l-47-35q24-29 54.5-43t68.5-14q69 0 103 32.5t34 97.5v178h-63v-37h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T324-391q-32 0-50 14t-18 37q0 20 16 33t40 13Zm388 54L540-400l56-56 64 64v-248h80v248l64-64 56 56-160 160Z"),capitalizeic:C("M344-250v-366H224v-64h308v64H412v366h-68Zm344 10q-44 0-69-25.5T594-336v-162h-54v-58h54v-87h66v87h74v58h-74v148q0 23 10.5 36t28.5 13q9 0 18.5-3.5T736-314v65q-10 5-22 7t-26 2Z"),fontsizeup:C("m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm504 104v-120H600v-80h120v-120h80v120h120v80H800v120h-80Z"),fontsizedown:C("m40-200 210-560h100l210 560h-96l-51-143H187l-51 143H40Zm176-224h168l-82-232h-4l-82 232Zm384-16v-80h320v80H600Z"),historyic:C("M480-120q-138 0-240.5-91.5T122-440h82q14 104 92.5 172T480-200q117 0 198.5-81.5T760-480q0-117-81.5-198.5T480-760q-69 0-129 32t-101 88h110v80H120v-240h80v94q51-64 124.5-99T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120Zm112-192L440-464v-216h80v184l128 128-56 56Z"),wordic:k('<path d="M6 3h8l5 5v13H6z"/><path d="M14 3v5h5"/><text x="8" y="17" font-size="8.5" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">W</text>'),draftic:C("M480-160q-134 0-227-93t-93-227q0-134 93-227t227-93q69 0 132 28.5T720-690v-110h80v280H520v-80h168q-32-56-87.5-88T480-720q-100 0-170 70t-70 170q0 100 70 170t170 70q77 0 139-44t87-116h84q-28 106-114 173t-196 67Z"),trash:k('<path d="M5 7h14M10 7V5h4v2M7.5 7l1 13h7l1-13"/>'),templateic:k('<rect x="4" y="4" width="16" height="16" rx="1.5"/><rect x="6.5" y="6.5" width="5" height="5" rx=".5"/><path d="M14 7.5h3.5M14 10h3.5M6.5 14h11M6.5 17h11"/>'),tplleft:k('<rect x="3" y="5" width="8" height="8" rx=".8"/><path d="M13.5 6.5H21M13.5 9.5H21M13.5 12.5H21M3 15.5h18M3 18.5h18"/>'),tplright:k('<rect x="13" y="5" width="8" height="8" rx=".8"/><path d="M3 6.5h7.5M3 9.5h7.5M3 12.5h7.5M3 15.5h18M3 18.5h18"/>'),tpltop:k('<rect x="5" y="3" width="14" height="9" rx=".8"/><path d="M3 15h18M3 18h18M3 21h12"/>'),tplcenter:k('<path d="M3 4h18M3 7h18M3 10h12"/><rect x="5" y="12.5" width="14" height="9" rx=".8"/>'),rotateleft:k('<polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/>'),rotateright:k('<polyline points="23 4 23 10 17 10"/><path d="M20.49 15a9 9 0 1 1-2.12-9.36L23 10"/>'),fliphorizontal:k('<path d="M12 3v18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>'),flipvertical:k('<path d="M3 12h18"/><path d="M8 7l4-4 4 4"/><path d="M8 17l4 4 4-4"/>'),check:k('<path d="M5 12.5 9.5 17 19 7"/>'),palette:k('<path d="M12 3a9 9 0 1 0 0 18h1.2a2 2 0 0 0 2-2 2 2 0 0 1 2-2H18a3 3 0 0 0 3-3c0-6.1-4.5-11-9-11z"/><circle class="f" cx="7.8" cy="10.2" r="1.3"/><circle class="f" cx="11.6" cy="7.3" r="1.3"/><circle class="f" cx="15.8" cy="9.6" r="1.3"/><circle class="f" cx="9" cy="14.8" r="1.3"/>'),ul_circle:C("M280-600v-80h560v80H280Zm0 160v-80h560v80H280Zm0 160v-80h560v80H280ZM160-600q-17 0-28.5-11.5T120-640q0-17 11.5-28.5T160-680q17 0 28.5 11.5T200-640q0 17-11.5 28.5T160-600Zm0 160q-17 0-28.5-11.5T120-480q0-17 11.5-28.5T160-520q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440Zm0 160q-17 0-28.5-11.5T120-320q0-17 11.5-28.5T160-360q17 0 28.5 11.5T200-320q0 17-11.5 28.5T160-280Z"),ul_square:C("M80-160v-160h160v160H80Zm240 0v-160h560v160H320ZM80-400v-160h160v160H80Zm240 0v-160h560v160H320ZM80-640v-160h160v160H80Zm240 0v-160h560v160H320Z"),ol_alpha:ot(["a","b","c"]),ol_roman:ot(["i","ii","iii"],6.5),ol_alphau:ot(["A","B","C"]),ol_romanu:ot(["I","II","III"],6.5),video:k('<rect x="3" y="6" width="13" height="12" rx="1.5"/><path d="M16 10l5-3v10l-5-3z"/>'),editic:k('<path d="M4 20l1-4.5L15.5 5 19 8.5 8.5 19 4 20z"/><path d="M13.5 6.5l4 4"/>'),letterspacing:k('<text x="2.5" y="13" font-size="12" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">A</text><text x="13" y="13" font-size="12" stroke="none" fill="#222f3e" font-family="Arial" font-weight="bold">B</text><path d="M7 18.5h10"/><path class="f" d="M7.5 18.5 4.5 16.6v3.8z"/><path class="f" d="M16.5 18.5l3-1.9v3.8z"/>'),emojiic:k('<circle cx="12" cy="12" r="8.5"/><path d="M8.6 14.3a4.6 4.6 0 0 0 6.8 0"/><path d="M9.2 9.6v.7M14.8 9.6v.7"/>'),inlinecodeic:k('<path d="M8.5 8 4.5 12l4 4M15.5 8l4 4-4 4"/><path d="M13 6l-2 12"/>'),moverowup:k('<rect x="4" y="15.5" width="16" height="5" rx="1"/><path d="M12 12.5V4M8.5 7.5 12 4l3.5 3.5"/>'),moverowdown:k('<rect x="4" y="3.5" width="16" height="5" rx="1"/><path d="M12 11.5V20M8.5 16.5 12 20l3.5-3.5"/>'),movecolleft:k('<rect x="15.5" y="4" width="5" height="16" rx="1"/><path d="M12.5 12H4M7.5 8.5 4 12l3.5 3.5"/>'),movecolright:k('<rect x="3.5" y="4" width="5" height="16" rx="1"/><path d="M11.5 12H20M16.5 8.5 20 12l-3.5 3.5"/>'),codesampleic:k('<rect x="3.5" y="4" width="17" height="16" rx="2"/><path d="M3.5 8.5h17"/><path d="M9.5 12 7 14.25l2.5 2.25M14.5 12l2.5 2.25-2.5 2.25"/>')},ti=new Set(["p","div","span","br","hr","a","b","strong","i","em","u","s","strike","sub","sup","h1","h2","h3","h4","h5","h6","blockquote","pre","code","ul","ol","li","table","thead","tbody","tfoot","tr","td","th","caption","colgroup","col","img","figure","figcaption","mark"]),ei=new Set(["text-align","direction","unicode-bidi","font-weight","font-style","text-decoration","text-decoration-line","color","background-color","background","background-image","background-position","background-repeat","background-size","font-size","font-family","line-height","letter-spacing","vertical-align","text-indent","margin","margin-top","margin-bottom","margin-left","margin-right","margin-inline-start","margin-inline-end","padding","padding-top","padding-bottom","padding-left","padding-right","width","height","min-width","max-width","min-height","max-height","border","border-top","border-right","border-bottom","border-left","border-color","border-style","border-width","border-radius","border-collapse","border-spacing","table-layout","float","display","box-sizing","list-style-type","white-space"]),se={"*":["dir","lang","colspan","rowspan"],a:["href","target","rel","title"],img:["src","alt","width","height","title"],col:["span","width"],td:["width","valign"],th:["width","valign"],table:["width","cellpadding","cellspacing"]};function dt(p){const t={},e=p.getAttribute&&p.getAttribute("style");return e&&e.split(";").forEach(i=>{const s=i.indexOf(":");s<1||(t[i.slice(0,s).trim().toLowerCase()]=i.slice(s+1).trim())}),t}function ii(p){return p.replace(/<!--\[if !supportLists\]-->([\s\S]*?)<!--\[endif\]-->/gi,"$1").replace(/<!--\[if !supportLists\]>([\s\S]*?)<!\[endif\]-->/gi,"$1").replace(/<!\[if !supportLists\]>([\s\S]*?)<!\[endif\]>/gi,"$1").replace(/<!--\[if [\s\S]*?<!\[endif\]-->/gi,"").replace(/<!--[\s\S]*?-->/g,"").replace(/<(script|style|xml|title)[\s\S]*?<\/\1>/gi,"").replace(/<\/?(meta|link)[^>]*>/gi,"").replace(/<\?xml[\s\S]*?\?>/gi,"").replace(/<\/?(o|v|w|m|st1):[^>]*>/gi,"")}function si(p){return/^[0-9]+[\.\)،]/.test(p)?{ordered:!0}:/^[٠-٩۰-۹]+/.test(p)?{ordered:!0,style:"arabic-indic"}:/^[ivxlc]{2,}[\.\)]/.test(p)?{ordered:!0,style:"lower-roman"}:/^[IVXLC]{2,}[\.\)]/.test(p)?{ordered:!0,style:"upper-roman"}:/^[a-z][\.\)]/.test(p)?{ordered:!0,style:"lower-alpha"}:/^[A-Z][\.\)]/.test(p)?{ordered:!0,style:"upper-alpha"}:/^[ء-ي][\.\)،-]/.test(p)?{ordered:!0,style:"arabic-indic"}:{ordered:!1}}function ni(p){const t=s=>{const n=(s.getAttribute("style")||"")+" "+(s.className||"");return/mso-list\s*:(?!\s*ignore)/i.test(n)||/MsoListParagraph/i.test(n)},e=[];let i=null;Array.from(p.body.querySelectorAll("p")).forEach(s=>{if(!t(s)){i=null;return}const n=s.previousElementSibling;i&&n&&i[i.length-1]===n?i.push(s):(i=[s],e.push(i))}),e.forEach(s=>{const n=[],l=s[0];s.forEach(r=>{var w,E,I;const c=+(((w=(r.getAttribute("style")||"").match(/level(\d+)/i))==null?void 0:w[1])||1),d=Array.from(r.querySelectorAll("span")).find(H=>/mso-list\s*:\s*ignore/i.test(H.getAttribute("style")||"")),u=d?((E=d.textContent)==null?void 0:E.trim())||"":(((I=r.textContent)==null?void 0:I.trim().match(/^\S{1,4}/))||[""])[0],{ordered:m,style:b}=si(u);for(d&&d.remove();n.length&&n[n.length-1].level>c;)n.pop();if(!n.length||n[n.length-1].level<c){const H=p.createElement(m?"ol":"ul");if(m&&b&&(H.style.listStyleType=b),n.length){const j=n[n.length-1].list;(j.lastElementChild||j).appendChild(H)}else l.parentNode.insertBefore(H,l);n.push({list:H,level:c})}const y=p.createElement("li"),g=dt(r),x=["text-align","direction","unicode-bidi","color","font-size","font-family","background-color"].filter(H=>g[H]).map(H=>H+":"+g[H]).join(";");for(x&&y.setAttribute("style",x),r.getAttribute("dir")&&y.setAttribute("dir",r.getAttribute("dir"));r.firstChild;)y.appendChild(r.firstChild);n[n.length-1].list.appendChild(y),r.remove()})})}function li(p){p.querySelectorAll('b[id^="docs-internal-guid"]').forEach(t=>{for(;t.firstChild;)t.parentNode.insertBefore(t.firstChild,t);t.remove()})}function oi(p){p.querySelectorAll("table").forEach(t=>{const e=t;dt(e)["border-collapse"]||(e.style.borderCollapse="collapse")}),p.querySelectorAll("[align]").forEach(t=>{const e=t,i=e.getAttribute("align").toLowerCase();e.tagName.toLowerCase()==="table"?i==="center"?(e.style.marginLeft=e.style.marginLeft||"auto",e.style.marginRight=e.style.marginRight||"auto"):i==="right"?e.style.marginLeft=e.style.marginLeft||"auto":i==="left"&&(e.style.marginRight=e.style.marginRight||"auto"):["left","right","center","justify"].includes(i)&&(e.style.textAlign=e.style.textAlign||i,Array.from(e.children).forEach(s=>{if(s.tagName.toLowerCase()!=="table")return;const n=s;i==="center"?(n.style.marginLeft=n.style.marginLeft||"auto",n.style.marginRight=n.style.marginRight||"auto"):i==="right"?n.style.marginLeft=n.style.marginLeft||"auto":i==="left"&&(n.style.marginRight=n.style.marginRight||"auto")})),e.removeAttribute("align")}),p.querySelectorAll("center table").forEach(t=>{const e=t;e.style.marginLeft=e.style.marginLeft||"auto",e.style.marginRight=e.style.marginRight||"auto"}),p.querySelectorAll("[bgcolor]").forEach(t=>{const e=t;e.style.backgroundColor=e.style.backgroundColor||e.getAttribute("bgcolor"),e.removeAttribute("bgcolor")})}function ct(p,t){Array.from(p.childNodes).forEach(e=>{if(e.nodeType===Node.COMMENT_NODE){e.remove();return}if(e.nodeType!==Node.ELEMENT_NODE)return;const i=e,s=i.tagName.toLowerCase();if(!ti.has(s)){if(s==="font"){const o=t.createElement("span");i.getAttribute("style")&&o.setAttribute("style",i.getAttribute("style")),i.getAttribute("color")&&(o.style.color=i.getAttribute("color")),i.getAttribute("face")&&(o.style.fontFamily=i.getAttribute("face"));const c=i.getAttribute("size");if(c&&!o.style.fontSize){const d={1:"8pt",2:"10pt",3:"12pt",4:"14pt",5:"18pt",6:"24pt",7:"36pt"};d[c]&&(o.style.fontSize=d[c])}for(;i.firstChild;)o.appendChild(i.firstChild);i.replaceWith(o),ct(o,t);return}for(ct(i,t);i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove();return}const n=new Set([...se["*"]||[],...se[s]||[]]);if(Array.from(i.attributes).forEach(o=>{const c=o.name.toLowerCase();c!=="style"&&!n.has(c)&&i.removeAttribute(o.name)}),s==="a"){const o=i.getAttribute("href")||"";/^(https?:|mailto:|tel:|#)/i.test(o)||i.removeAttribute("href")}if(s==="img"){const o=i.getAttribute("src")||"";if(!/^(https?:|data:image\/|blob:)/i.test(o)){const c=t.createElement("span");c.textContent="[local image — paste it separately]",c.setAttribute("style","color:#a33;font-style:italic;font-size:12px"),i.replaceWith(c);return}}const l=dt(i),r=[];for(const[o,c]of Object.entries(l))ei.has(o)&&(/expression|javascript|url\s*\(\s*['"]?\s*file:/i.test(c)||o==="font-weight"&&/^(400|normal)$/i.test(c)||o==="font-style"&&/^normal$/i.test(c)||o==="text-decoration"&&/^none$/i.test(c)||r.push(o+":"+c));if(r.length?i.setAttribute("style",r.join(";")):i.removeAttribute("style"),i.removeAttribute("class"),ct(i,t),s==="span"&&!i.attributes.length){for(;i.firstChild;)i.parentNode.insertBefore(i.firstChild,i);i.remove()}})}function ri(p){const t=[],e=/<style[^>]*>([\s\S]*?)<\/style>/gi;let i;for(;i=e.exec(p);){let s=i[1].replace(/<!--|-->/g,"").replace(/\/\*[\s\S]*?\*\//g,"");s=s.replace(/@media[^{]*\{(?:[^{}]*\{[^{}]*\})*[^{}]*\}/gi,""),s=s.replace(/@[\w-]+[^{]*\{[^{}]*\}/g,"");let n;const l=/([^{}]+)\{([^}]*)\}/g;for(;n=l.exec(s);){const r=n[2].split(";").map(o=>{const c=o.indexOf(":");return c<1?null:[o.slice(0,c).trim().toLowerCase(),o.slice(c+1).trim()]}).filter(o=>!!o&&!!o[1]);r.length&&n[1].split(",").map(o=>o.trim()).filter(o=>o&&!o.startsWith("@")).forEach(o=>t.push({sel:o,decls:r}))}}return t}function ai(p,t){if(!t.length)return;const e=new Map;t.forEach(({sel:i,decls:s})=>{let n;try{n=p.querySelectorAll(i)}catch{return}n.forEach(l=>{let r=e.get(l);r||(r={},e.set(l,r)),s.forEach(([o,c])=>{r[o]=c})})}),e.forEach((i,s)=>{const n=dt(s),l=s.hasAttribute("dir"),r=s.hasAttribute("align"),o=Object.entries(i).filter(([u])=>!(u in n||(u==="direction"||u==="unicode-bidi")&&l||u==="text-align"&&(r||l)||(u==="background"||u==="background-color")&&s.hasAttribute("bgcolor")));if(!o.length)return;const c=o.map(([u,m])=>u+":"+m).join(";"),d=s.getAttribute("style");s.setAttribute("style",d?c+";"+d:c)})}function ae(p){return p.replace(/[ﭐ-﷿ﹰ-ﻼ]+/g,t=>t.normalize("NFKC"))}function ci(p){const t=p.createTreeWalker(p.body,NodeFilter.SHOW_TEXT,null);let e;for(;e=t.nextNode();)/[ﭐ-﷿ﹰ-ﻼ]/.test(e.nodeValue||"")&&(e.nodeValue=ae(e.nodeValue||""))}function hi(p,t="ltr"){const e=ri(p),i=new DOMParser().parseFromString(ii(p),"text/html");ai(i,e),/class="?Mso|mso-|urn:schemas-microsoft-com/i.test(i.body.innerHTML)&&ni(i),li(i),oi(i),ct(i.body,i),ci(i);const s=n=>{var l;return n&&n.tagName==="P"&&!((l=n.textContent)!=null&&l.trim())&&!n.querySelector("img,table")};for(;s(i.body.firstElementChild);)i.body.firstElementChild.remove();for(;s(i.body.lastElementChild);)i.body.lastElementChild.remove();return i.body.innerHTML.trim()}function di(p){const t=ae(p).replace(/\r/g,""),e=i=>i.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");return/\n/.test(t)?t.split(/\n{2,}/).map(i=>`<p dir="auto">${e(i).replace(/\n/g,"<br>")||"<br>"}</p>`).join(""):e(t)}function ui(p){const t=new DataView(p),e=new Map;let i=-1;for(let r=p.byteLength-22;r>=Math.max(0,p.byteLength-22-65535);r--)if(t.getUint32(r,!0)===101010256){i=r;break}if(i<0)throw new Error("EOCD not found");const s=t.getUint16(i+10,!0);let n=t.getUint32(i+16,!0);const l=new TextDecoder;for(let r=0;r<s&&t.getUint32(n,!0)===33639248;r++){const o=t.getUint16(n+10,!0),c=t.getUint32(n+20,!0),d=t.getUint16(n+28,!0),u=t.getUint16(n+30,!0),m=t.getUint16(n+32,!0),b=t.getUint32(n+42,!0),y=l.decode(new Uint8Array(p,n+46,d));e.set(y,{name:y,method:o,compSize:c,localOffset:b}),n+=46+d+u+m}return e}async function ne(p,t){const e=new DataView(p,t.localOffset);if(e.getUint32(0,!0)!==67324752)throw new Error("Bad local header");const i=e.getUint16(26,!0),s=e.getUint16(28,!0),n=t.localOffset+30+i+s,l=new Uint8Array(p.slice(n,n+t.compSize));if(t.method===0)return l;if(t.method!==8)throw new Error("Unsupported compression method "+t.method);const r=new Blob([l]).stream().pipeThrough(new DecompressionStream("deflate-raw"));return new Uint8Array(await new Response(r).arrayBuffer())}const le=p=>p.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"),ht=(p,t)=>Array.from(p.children).filter(e=>e.localName===t),B=(p,...t)=>{let e=p;for(const i of t){if(!e)return null;e=Array.from(e.children).find(s=>s.localName===i)||null}return e},q=(p,t="val")=>{if(!p)return"";for(const e of Array.from(p.attributes))if(e.localName===t)return e.value;return""},rt=(p,t)=>{const e=p?B(p,t):null;if(!e)return!1;const i=q(e);return i!=="false"&&i!=="0"},oe={yellow:"#FFFF00",green:"#00FF00",cyan:"#00FFFF",magenta:"#FF00FF",blue:"#0000FF",red:"#FF0000",darkBlue:"#00008B",darkCyan:"#008B8B",darkGreen:"#006400",darkMagenta:"#8B008B",darkRed:"#8B0000",darkYellow:"#808000",darkGray:"#A9A9A9",lightGray:"#D3D3D3",black:"#000000",white:"#FFFFFF"},pi={png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",bmp:"image/bmp",webp:"image/webp"};function mi(p){let t="";for(let e=0;e<p.length;e+=32768)t+=String.fromCharCode(...p.subarray(e,e+32768));return btoa(t)}class fi{constructor(t,e,i){this.rels=t,this.images=e,this.numFmt=i}convertBody(t){let e="",i=[];const s=n=>{for(;i.length>n;)e+=`</${i.pop()}>`};for(const n of Array.from(t.children))if(n.localName==="p"){const l=this.paraList(n);if(l){const r=l.ilvl+1;for(;i.length>r;)e+=`</${i.pop()}>`;for(i.length===r&&i[r-1]!==l.type&&(e+=`</${i.pop()}>`);i.length<r;)e+=`<${l.type}>`,i.push(l.type);e+=`<li>${this.runsOf(n)||"<br>"}</li>`;continue}s(0),e+=this.convertPara(n)}else n.localName==="tbl"?(s(0),e+=this.convertTable(n)):n.localName;return s(0),e||"<p><br></p>"}paraList(t){const e=B(t,"pPr","numPr");if(!e)return null;const i=q(B(e,"numId"));if(!i||i==="0")return null;const s=parseInt(q(B(e,"ilvl"))||"0",10)||0;return{type:this.numFmt.get(i)||"ul",ilvl:Math.min(s,8)}}convertPara(t){const e=B(t,"pPr"),i=q(B(t,"pPr","pStyle"));let s="p";const n=/^Heading([1-6])$/i.exec(i);n?s="h"+n[1]:/^Title$/i.test(i)&&(s="h1");const l=[],r=q(B(t,"pPr","jc"));r==="center"?l.push("text-align:center"):r==="right"||r==="end"?l.push("text-align:right"):(r==="both"||r==="distribute")&&l.push("text-align:justify"),e&&B(e,"bidi")&&l.push("direction:rtl");const o=this.runsOf(t),c=l.length?` style="${l.join(";")}"`:"";return`<${s}${c}>${o||"<br>"}</${s}>`}runsOf(t){let e="";for(const i of Array.from(t.children))if(i.localName==="r")e+=this.convertRun(i);else if(i.localName==="hyperlink"){let s=this.rels.get(q(i,"id"))||"";const n=q(i,"anchor");!s&&n&&(s="#"+n);const l=this.runsOf(i);e+=s?`<a href="${le(s)}">${l}</a>`:l}else(i.localName==="smartTag"||i.localName==="ins")&&(e+=this.runsOf(i));return e}convertRun(t){const e=B(t,"rPr");let i="";for(const u of Array.from(t.children))u.localName==="t"?i+=le(u.textContent||""):u.localName==="br"||u.localName==="cr"?i+="<br>":u.localName==="tab"?i+="&emsp;":(u.localName==="drawing"||u.localName==="pict"||u.localName==="object")&&(i+=this.convertImage(u));if(!i)return"";const s=[],n=q(e?B(e,"color"):null);n&&n!=="auto"&&s.push("color:#"+n);const l=q(e?B(e,"highlight"):null);l&&oe[l]&&s.push("background-color:"+oe[l]);const r=parseFloat(q(e?B(e,"sz"):null));r&&s.push("font-size:"+Math.round(r/2*(4/3))+"px");const o=e?B(e,"rFonts"):null,c=q(o,"ascii")||q(o,"cs");c&&s.push(`font-family:'${c}'`),s.length&&(i=`<span style="${s.join(";")}">${i}</span>`),rt(e,"b")&&(i=`<strong>${i}</strong>`),rt(e,"i")&&(i=`<em>${i}</em>`),rt(e,"u")&&q(B(e,"u"))!=="none"&&(i=`<u>${i}</u>`),rt(e,"strike")&&(i=`<s>${i}</s>`);const d=q(e?B(e,"vertAlign"):null);return d==="superscript"?i=`<sup>${i}</sup>`:d==="subscript"&&(i=`<sub>${i}</sub>`),i}convertImage(t){let e="",i=0;const s=r=>{if(r.localName==="blip"&&(e=e||q(r,"embed")||q(r,"link")),r.localName==="imagedata"&&(e=e||q(r,"id")),r.localName==="extent"){const o=parseFloat(r.getAttribute("cx")||"0");o&&(i=Math.round(o/9525))}for(const o of Array.from(r.children))s(o)};if(s(t),!e)return"";const n=this.images.get(e);if(!n)return"";const l=i?` width="${i}"`:"";return`<img src="${n}" alt=""${l}>`}convertTable(t){let e='<table style="border-collapse:collapse;width:100%"><tbody>';for(const i of ht(t,"tr")){e+="<tr>";for(const s of ht(i,"tc")){const n=parseInt(q(B(s,"tcPr","gridSpan"))||"1",10)||1,l=n>1?` colspan="${n}"`:"";let r="";for(const o of Array.from(s.children))o.localName==="p"?r+=this.convertPara(o):o.localName==="tbl"&&(r+=this.convertTable(o));e+=`<td style="border:1px solid #b9c2cc"${l}>${r||"<br>"}</td>`}e+="</tr>"}return e+"</tbody></table>"}}async function gi(p){const t=p instanceof ArrayBuffer?p:await p.arrayBuffer(),e=ui(t),i=new TextDecoder,s=async y=>{const g=e.get(y);return g?new DOMParser().parseFromString(i.decode(await ne(t,g)),"application/xml"):null},n=await s("word/document.xml"),l=n==null?void 0:n.getElementsByTagName("*");let r=null;if(l){for(const y of Array.from(l))if(y.localName==="body"){r=y;break}}if(!r)throw new Error("word/document.xml missing or invalid");const o=new Map,c=new Map,d=await s("word/_rels/document.xml.rels");if(d)for(const y of Array.from(d.getElementsByTagName("*"))){if(y.localName!=="Relationship")continue;const g=y.getAttribute("Id")||"",x=y.getAttribute("Target")||"",w=y.getAttribute("Type")||"";/hyperlink/i.test(w)?o.set(g,x):/image/i.test(w)&&c.set(g,x)}const u=new Map;for(const[y,g]of c){const x=g.startsWith("/")?g.slice(1):"word/"+g.replace(/^\.\//,""),w=e.get(x);if(!w)continue;const E=(x.split(".").pop()||"").toLowerCase(),I=pi[E];if(I)try{u.set(y,`data:${I};base64,${mi(await ne(t,w))}`)}catch{}}const m=new Map,b=await s("word/numbering.xml");if(b){const y=new Map,g=Array.from(b.getElementsByTagName("*"));for(const x of g){if(x.localName!=="abstractNum")continue;const w=q(x,"abstractNumId"),E=ht(x,"lvl").find(H=>q(H,"ilvl")==="0")||ht(x,"lvl")[0],I=E?q(B(E,"numFmt")):"";y.set(w,I==="bullet"?"ul":"ol")}for(const x of g){if(x.localName!=="num")continue;const w=q(x,"numId"),E=q(B(x,"abstractNumId"));m.set(w,y.get(E)||"ul")}}return new fi(o,u,m).convertBody(r)}const vi=["nw","ne","sw","se"],Ct=["img-left","img-right","img-top","img-center"],wt={"img-left":"tplimgleft","img-right":"tplimgright","img-top":"tplimgtop","img-center":"tplimgcenter"},bi={"img-left":h.tplleft,"img-right":h.tplright,"img-top":h.tpltop,"img-center":h.tplcenter},yi=".tox,.pop,.tblctx,.imgctx,.selctx,.dlg";let Z=null,X=null,Et=0,re=!1;function at(){clearTimeout(Et),X=null,Z&&Z.classList.remove("show")}function xi(p){const t=p.dataset.tip;if(!t)return;X=p,clearTimeout(Et);const e=Z&&Z.classList.contains("show")?60:350;Et=window.setTimeout(()=>{if(X!==p||!document.contains(p))return;Z||(Z=document.createElement("div"),Z.className="etip",document.body.appendChild(Z)),Z.textContent=t,Z.classList.add("show");const i=p.getBoundingClientRect(),s=Z.offsetWidth,n=Z.offsetHeight;let l=i.left+i.width/2-s/2;l=Math.max(6,Math.min(l,innerWidth-s-6));let r=i.bottom+7;r+n>innerHeight-6&&(r=i.top-n-7),Z.style.left=l+"px",Z.style.top=r+"px"},e)}function Ci(){re||(re=!0,document.addEventListener("mouseover",p=>{const t=p.target,e=t.closest?t.closest("[title],[data-tip]"):null;if(!e||!e.closest(yi)||e.closest(".earea")){e!==X&&at();return}const i=e.getAttribute("title");i&&(e.dataset.tip=i,e.removeAttribute("title"),e.getAttribute("aria-label")||e.setAttribute("aria-label",i)),e!==X&&xi(e)}),document.addEventListener("mouseout",p=>{X&&!X.contains(p.relatedTarget)&&at()}),document.addEventListener("mousedown",at,!0),addEventListener("scroll",at,!0))}const wi=/[\u0590-\u05FF\u0600-\u06FF\u0750-\u077F\u0780-\u07BF\u08A0-\u08FF\uFB1D-\uFB4F\uFB50-\uFDFF\uFE70-\uFEFF]/,Ti=new RegExp("\\p{L}","u"),Ei="p,div,li,td,th,blockquote,h1,h2,h3,h4,h5,h6,pre,figcaption";function Si(p){for(const t of p){if(wi.test(t))return"rtl";if(Ti.test(t))return"ltr"}return null}function ce(p){let t="";return p.childNodes.forEach(e=>{if(e.nodeType===Node.TEXT_NODE)t+=e.nodeValue||"";else if(e.nodeType===Node.ELEMENT_NODE){const i=e,s=(i.getAttribute("dir")||"").toLowerCase();if(s==="rtl"||s==="ltr")return;t+=ce(i)}}),t}var W;let Mi=(W=class{constructor(t){this.lang="en",this.contentClass="fable-content-"+W.instanceCounter++,this.contentStyleEl=null,this.savedRange=null,this.foreColor="#000000",this.backColor="#FACC15",this.openPop=null,this.subStack=[],this.popAnchor=null,this.dlgOvl=null,this.tblActive=null,this.tblCorner=null,this.tblColBars=[],this.tblCtx=null,this.tblCellMark=null,this.tblOpMark=null,this.tblOpMarkKind=null,this.imgActive=null,this.imgHandles=[],this.imgCtx=null,this.imgHideTimer=null,this.phActive=null,this.phCtx=null,this.phUploadTarget=null,this.vidActive=null,this.vidCtx=null,this.vidHideTimer=null,this.vphActive=null,this.vphCtx=null,this.vphUploadTarget=null,this.selCtx=null,this.tbrMore=null,this.tbrExpanded=!1,this.codeActive=null,this.codeCtx=null,this.tplActive=null,this.tplCtx=null,this.revisions=[],this.revTimer=null,this.draftTimer=null,this.draftStorageKey="",this.listeners=[],this.isDestroyed=!1,this.options={target:t.target,language:t.language||"en",height:t.height??302,initialContent:t.initialContent??"<p><br></p>",onChange:t.onChange||(()=>{}),onReady:t.onReady||(()=>{}),menubar:t.menubar??!0,toolbar:t.toolbar??!0,statusbar:t.statusbar??!0,readonly:t.readonly??!1,draftKey:t.draftKey??(typeof location<"u"?location.pathname:"default"),fontFamilyFormats:t.fontFamilyFormats??Ue,imageFileTypes:t.imageFileTypes??["image/jpeg","image/jpg","image/png","image/gif","image/bmp","image/webp"],videoFileTypes:t.videoFileTypes??["video/mp4","video/webm","video/ogg"]},this.imageUploadHandler=t.imageUploadHandler,this.onImageUploadError=t.onImageUploadError,this.videoUploadHandler=t.videoUploadHandler,this.onVideoUploadError=t.onVideoUploadError,this.contentStyle=t.contentStyle,this.applyTheme(t),this.lang=this.options.language,this.draftStorageKey="tmclone-draft:"+this.options.draftKey,this.initDOM(),this.bindEvents(),this.initUI(),this.recordRevision(),this.options.onReady(this)}t(t){const e=xt(this.lang)[t];return typeof e=="string"?e:e.join(",")}tArr(t){return xt(this.lang)[t]}dir(){return xt(this.lang).dir}initDOM(){const t=this.options.target;t.innerHTML="",t.classList.add("tox-root"),this.shell=document.createElement("div"),this.shell.className="tox",this.menubar=document.createElement("div"),this.menubar.className="mnb",this.toolbar=document.createElement("div"),this.toolbar.className="tbr",this.ed=document.createElement("div"),this.ed.className="earea "+this.contentClass,this.ed.setAttribute("contenteditable",(!this.options.readonly).toString()),this.ed.spellcheck=!0,this.ed.innerHTML=this.options.initialContent,this.ed.style.height=this.options.height+"px",this.statusbar=document.createElement("div"),this.statusbar.className="sbar",this.statusbar.innerHTML=`
31
31
  <span class="mid"></span>
32
32
  <span class="words"></span>
33
33
  <span class="grip">
34
34
  <svg viewBox="0 0 12 12"><path d="M11 1 1 11M11 6 6 11M11 11h0"/></svg>
35
35
  </span>
36
- `,this.sbHelp=this.statusbar.querySelector(".mid"),this.sbWords=this.statusbar.querySelector(".words");const e=this.statusbar.querySelector(".grip");this.bindGrip(e),this.shell.appendChild(this.menubar),this.shell.appendChild(this.toolbar),this.shell.appendChild(this.ed),this.shell.appendChild(this.statusbar),this.contentStyle&&(this.contentStyleEl=document.createElement("style"),this.contentStyleEl.textContent=this.scopeContentStyle(this.contentStyle),this.shell.appendChild(this.contentStyleEl)),t.appendChild(this.shell),Ci(),this.options.statusbar||(this.statusbar.style.display="none"),this.imgInput=document.createElement("input"),this.imgInput.type="file",this.imgInput.accept=this.options.imageFileTypes.join(","),this.imgInput.style.display="none",t.appendChild(this.imgInput),this.vidInput=document.createElement("input"),this.vidInput.type="file",this.vidInput.accept=this.options.videoFileTypes.join(","),this.vidInput.style.display="none",t.appendChild(this.vidInput),this.docInput=document.createElement("input"),this.docInput.type="file",this.docInput.accept=".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document",this.docInput.style.display="none",t.appendChild(this.docInput)}applyTheme(t){const e=document.documentElement;t.primaryColor&&e.style.setProperty("--fable-primary",t.primaryColor),t.toolbarGroupBackground&&e.style.setProperty("--fable-tgrp-bg",t.toolbarGroupBackground),t.uiFontFamily&&e.style.setProperty("--fable-ui-font",t.uiFontFamily)}scopeContentStyle(t){return t.replace(/\bbody\b/g,"."+this.contentClass)}bindGrip(t){let e=0,i=0;const s=n=>{e=n.clientY,i=this.ed.offsetHeight,n.preventDefault();const l=o=>{this.ed.style.height=Math.max(120,i+o.clientY-e)+"px"},r=()=>{window.removeEventListener("mousemove",l),window.removeEventListener("mouseup",r)};window.addEventListener("mousemove",l),window.addEventListener("mouseup",r)};t.addEventListener("mousedown",s),this.listeners.push(()=>t.removeEventListener("mousedown",s))}bindEvents(){if(this.onDoc("mousedown",t=>{this.openPop&&!this.openPop.contains(t.target)&&!this.popAnchor.contains(t.target)&&!(this.openSubEl&&this.openSubEl.contains(t.target))&&this.closePop()}),this.onDoc("keydown",t=>{t.key==="Escape"&&(this.closePop(),this.closeDlg())}),this.onDoc("selectionchange",()=>{const t=window.getSelection();t&&this.ed.contains(t.anchorNode)?(this.saveSel(),this.refreshState(),this.updateSelToolbar(t),this.positionCellMarker()):this.clearSelToolbar()}),this.on(this.ed,"input",()=>{this.refreshState(),this.onChange(),this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx()}),this.on(this.ed,"keydown",t=>{t.altKey&&t.key==="0"&&(t.preventDefault(),this.helpDlg()),(t.key==="Delete"||t.key==="Backspace")&&this.phActive&&(t.preventDefault(),this.removeImgPlaceholder()),(t.key==="Delete"||t.key==="Backspace")&&this.vphActive&&(t.preventDefault(),this.removeVphPlaceholder()),t.key==="`"&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&this.tryCodeTyping(t),t.key==="Enter"&&!t.shiftKey&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&this.tryExitBlockquote(t)}),this.on(this.ed,"paste",t=>this.handlePaste(t)),this.on(this.ed,"drop",t=>{var n,l,r,o;t.preventDefault();const e=t.target,i=(n=e.closest)==null?void 0:n.call(e,".img-ph:not(.vid-ph)");if(i&&this.ed.contains(i)&&!this.options.readonly){const c=Array.from(((l=t.dataTransfer)==null?void 0:l.files)||[]).find(d=>d.type.startsWith("image/"));c&&this.readImageFileInto(c,i);return}const s=(r=e.closest)==null?void 0:r.call(e,".vid-ph");if(s&&this.ed.contains(s)&&!this.options.readonly){const c=Array.from(((o=t.dataTransfer)==null?void 0:o.files)||[]).find(d=>d.type.startsWith("video/"));c&&this.readVideoFileInto(c,s)}}),this.on(this.ed,"dragover",t=>t.preventDefault()),this.on(this.ed,"mousedown",t=>{var d,u,m,b,y,g,x;const e=t.target,i=(d=e.closest)==null?void 0:d.call(e,"table");i&&this.ed.contains(i)?this.selectTableForResize(i):this.clearTableHandles();const s=(u=e.closest)==null?void 0:u.call(e,".img-ph:not(.vid-ph)");s&&this.ed.contains(s)&&!this.options.readonly?(t.preventDefault(),this.ed.focus(),this.selectImgPlaceholder(s)):this.clearImgPlaceholderSel();const n=(m=e.closest)==null?void 0:m.call(e,".vid-ph");n&&this.ed.contains(n)&&!this.options.readonly?(t.preventDefault(),this.ed.focus(),this.selectVphPlaceholder(n)):this.clearVphPlaceholderSel();const l=(b=e.closest)==null?void 0:b.call(e,".tpl");l&&this.ed.contains(l)&&!this.options.readonly?this.selectTemplate(l):this.clearTplSel();const r=(y=e.closest)==null?void 0:y.call(e,"pre.code-block");r&&this.ed.contains(r)&&!this.options.readonly?(t.preventDefault(),this.selectCodeEl(r)):this.clearCodeSel();const o=(g=e.closest)==null?void 0:g.call(e,"img");o&&this.ed.contains(o)&&!this.options.readonly?(t.preventDefault(),this.selectImage(o)):this.clearImageHandles();const c=(x=e.closest)==null?void 0:x.call(e,"video, .video-embed");c&&this.ed.contains(c)&&!this.options.readonly?(t.preventDefault(),this.selectVideo(c)):this.clearVidHandles()}),this.on(this.ed,"mouseover",t=>{var i,s;if(this.options.readonly)return;const e=(s=(i=t.target).closest)==null?void 0:s.call(i,"img");e&&this.ed.contains(e)&&(this.cancelImgHide(),this.selectImage(e))}),this.on(this.ed,"mouseout",t=>{var s,n,l,r;const e=(n=(s=t.target).closest)==null?void 0:n.call(s,"img");if(!e)return;const i=t.relatedTarget;i&&((l=this.imgCtx)!=null&&l.contains(i)||this.imgHandles.some(o=>o.contains(i))||((r=i.closest)==null?void 0:r.call(i,"img"))===e)||this.scheduleImgHide()}),this.on(this.ed,"scroll",()=>{this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx()}),this.onWin("scroll",()=>{this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx(),this.repositionSelToolbar()},!0),this.onWin("resize",()=>{this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx(),this.repositionSelToolbar(),this.updateToolbarOverflow()}),typeof ResizeObserver<"u"){const t=new ResizeObserver(()=>this.updateToolbarOverflow());t.observe(this.shell),this.listeners.push(()=>t.disconnect())}this.on(this.imgInput,"change",()=>{var s;const t=(s=this.imgInput.files)==null?void 0:s[0];if(!t)return;const e=this.phUploadTarget;if(this.phUploadTarget=null,e&&this.ed.contains(e)){this.readImageFileInto(t,e);return}const i=new FileReader;i.onload=()=>{this.restoreSel(),document.execCommand("insertHTML",!1,`<img src="${i.result}" title="${t.name.replace(/"/g,"")}" alt="">`),this.onChange()},i.readAsDataURL(t)}),this.on(this.vidInput,"change",()=>{var s;const t=(s=this.vidInput.files)==null?void 0:s[0];if(!t)return;const e=this.vphUploadTarget;if(this.vphUploadTarget=null,e&&this.ed.contains(e)){this.readVideoFileInto(t,e);return}const i=new FileReader;i.onload=()=>{this.restoreSel(),document.execCommand("insertHTML",!1,`<video controls src="${i.result}" title="${t.name.replace(/"/g,"")}"></video>`),this.onChange()},i.readAsDataURL(t)}),this.on(this.docInput,"change",()=>{var e;const t=(e=this.docInput.files)==null?void 0:e[0];t&&this.importWordFile(t).catch(()=>alert(this.t("importfail")))}),this.onDoc("mousedown",t=>{this.ed.contains(t.target)||t.target===this.tblCorner||this.tblColBars.includes(t.target)||this.tblCtx&&this.tblCtx.contains(t.target)||this.imgHandles.includes(t.target)||this.imgCtx&&this.imgCtx.contains(t.target)||this.phCtx&&this.phCtx.contains(t.target)||this.tplCtx&&this.tplCtx.contains(t.target)||this.selCtx&&this.selCtx.contains(t.target)||this.vphCtx&&this.vphCtx.contains(t.target)||this.vidCtx&&this.vidCtx.contains(t.target)||this.codeCtx&&this.codeCtx.contains(t.target)||this.openPop&&this.openPop.contains(t.target)||this.openSubEl&&this.openSubEl.contains(t.target)||(this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar())})}on(t,e,i){t.addEventListener(e,i),this.listeners.push(()=>t.removeEventListener(e,i))}onDoc(t,e){document.addEventListener(t,e),this.listeners.push(()=>document.removeEventListener(t,e))}onWin(t,e,i){window.addEventListener(t,e,i),this.listeners.push(()=>window.removeEventListener(t,e,i))}getContent(){return this.ed.innerHTML}getContentForEmail(){const t=(l,r)=>{const o=(l.getAttribute("style")||"").trim();l.setAttribute("style",o?o.replace(/;?$/,"; ")+r:r)},e=document.createElement("div");e.innerHTML=this.ed.innerHTML;let i=null;e.querySelectorAll("[dir]").forEach(l=>{const r=(l.getAttribute("dir")||"").toLowerCase();if(r!=="rtl"&&r!=="ltr")return;const o=r;i||(i=o),/text-align\s*:/i.test(l.getAttribute("style")||"")||t(l,`text-align:${o==="rtl"?"right":"left"}`)}),e.querySelectorAll(Ei).forEach(l=>{const r=(l.getAttribute("dir")||"").toLowerCase();if(r==="rtl"||r==="ltr")return;const o=Si(ce(l));if(!o)return;i||(i=o),l.setAttribute("dir",o);const c=/text-align\s*:/i.test(l.getAttribute("style")||"");t(l,c?`direction:${o}`:`direction:${o};text-align:${o==="rtl"?"right":"left"}`)});const s=i||this.ed.getAttribute("dir")||this.dir();return e.querySelectorAll("table:not([dir])").forEach(l=>{l.setAttribute("dir",s),/direction\s*:/i.test(l.getAttribute("style")||"")||t(l,`direction:${s}`)}),`<div dir="${s}" style="direction:${s};text-align:${s==="rtl"?"right":"left"}">${e.innerHTML}</div>`}setContent(t){this.ed.innerHTML=t||"<p><br></p>",this.refreshState(),this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar(),this.onChange()}insertContent(t){this.restoreSel(),document.execCommand("insertHTML",!1,t),this.saveSel(),this.refreshState(),this.onChange()}setLanguage(t){this.lang=t,this.initUI()}focus(){this.ed.focus()}async importWordFile(t){const e=await gi(t);this.recordRevision(),this.setContent(e),this.recordRevision()}restoreDraft(){let t=null;try{t=localStorage.getItem(this.draftStorageKey)}catch{}if(!t)return!1;try{const e=JSON.parse(t);return e.html?(this.recordRevision(),this.setContent(e.html),!0):!1}catch{return!1}}getRevisions(){return this.revisions.slice()}destroy(){this.isDestroyed||(this.isDestroyed=!0,this.revTimer!=null&&window.clearTimeout(this.revTimer),this.draftTimer!=null&&window.clearTimeout(this.draftTimer),this.closePop(),this.closeDlg(),this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar(),this.listeners.forEach(t=>t()),this.listeners=[],this.shell&&this.shell.parentNode&&this.shell.parentNode.removeChild(this.shell),this.imgInput&&this.imgInput.parentNode&&this.imgInput.parentNode.removeChild(this.imgInput),this.vidInput&&this.vidInput.parentNode&&this.vidInput.parentNode.removeChild(this.vidInput),this.docInput&&this.docInput.parentNode&&this.docInput.parentNode.removeChild(this.docInput),this.contentStyleEl=null)}saveSel(){const t=window.getSelection();t&&t.rangeCount&&this.ed.contains(t.anchorNode)&&(this.savedRange=t.getRangeAt(0).cloneRange())}restoreSel(){if(!this.savedRange){this.ed.focus();return}this.ed.focus();const t=window.getSelection();t&&(t.removeAllRanges(),t.addRange(this.savedRange))}exec(t,e){this.restoreSel(),document.execCommand("styleWithCSS",!1,t!=="fontSize"?"true":"false"),document.execCommand(t,!1,e??void 0),this.saveSel(),this.refreshState(),this.onChange()}closestBlock(t){for(;t&&t!==this.ed;){if(t.nodeType===1&&/^(P|DIV|H[1-6]|LI|PRE|BLOCKQUOTE|TD|TH)$/i.test(t.tagName))return t;t=t.parentNode}return null}tryExitBlockquote(t){const e=window.getSelection();if(!e||!e.isCollapsed||!e.anchorNode||!this.ed.contains(e.anchorNode))return;const i=this.closestBlock(e.anchorNode);if(!i||i.tagName==="BLOCKQUOTE"||(i.textContent||"").trim()!=="")return;const s=i.closest("blockquote");if(!s||!this.ed.contains(s)||i!==s.lastElementChild)return;t.preventDefault();const n=document.createElement("p");n.appendChild(document.createElement("br")),s.after(n),i.remove(),s.firstElementChild||s.remove();const l=document.createRange();l.setStart(n,0),l.collapse(!0),e.removeAllRanges(),e.addRange(l),this.saveSel(),this.onChange()}selectedBlocks(){const t=window.getSelection();if(!t||!t.rangeCount||!this.ed.contains(t.anchorNode))return[];const e=t.getRangeAt(0),i=Array.from(this.ed.querySelectorAll("p,h1,h2,h3,h4,h5,h6,li,pre,blockquote,td,th")).filter(s=>e.intersectsNode(s));if(!i.length){const s=this.closestBlock(t.anchorNode);if(s)return[s]}return i}onChange(){this.options.onChange(this.ed.innerHTML),this.scheduleRevision(),this.scheduleDraftSave()}recordRevision(){const t=this.ed.innerHTML,e=this.revisions[this.revisions.length-1];e&&e.html===t||(this.revisions.push({time:Date.now(),html:t}),this.revisions.length>30&&this.revisions.shift())}scheduleRevision(){this.revTimer!=null&&window.clearTimeout(this.revTimer),this.revTimer=window.setTimeout(()=>{this.revTimer=null,this.recordRevision()},1500)}scheduleDraftSave(){this.draftTimer!=null&&window.clearTimeout(this.draftTimer),this.draftTimer=window.setTimeout(()=>{this.draftTimer=null;try{localStorage.setItem(this.draftStorageKey,JSON.stringify({time:Date.now(),html:this.ed.innerHTML}))}catch{}},800)}revisionDlg(){this.recordRevision(),this.dialog(this.t("revhistory"),t=>{if(!this.revisions.length){t.innerHTML=`<p style="color:#556">${this.t("revempty")}</p>`;return}const e=document.createElement("div");e.className="revwrap";const i=document.createElement("div");i.className="revlist";const s=document.createElement("div");s.className="revprev";const n=document.createElement("button");n.type="button",n.className="revrestore",n.textContent=this.t("restore");let l=this.revisions.length-1;const r=new Intl.DateTimeFormat(this.lang==="ar"?"ar-AE":"en-GB",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),o={},c=d=>{l=d,this.revisions.forEach((u,m)=>{var b;return(b=o[m])==null?void 0:b.classList.toggle("on",m===d)}),s.innerHTML=this.revisions[d].html,n.disabled=d===this.revisions.length-1};for(let d=this.revisions.length-1;d>=0;d--){const u=this.revisions[d],m=document.createElement("button");m.type="button";const b=(new DOMParser().parseFromString(u.html,"text/html").body.textContent||"").trim(),y=b?b.split(/\s+/).length:0,g=d===this.revisions.length-1;m.innerHTML=`<span>${g?this.t("currentver"):r.format(new Date(u.time))}</span><span class="wc">${y} ${this.t("words")}</span>`,m.addEventListener("click",()=>c(d)),o[d]=m,i.appendChild(m)}i.append(n),n.addEventListener("click",()=>{const d=this.revisions[l];d&&(this.recordRevision(),this.setContent(d.html),this.recordRevision(),this.closeDlg())}),e.append(i,s),t.appendChild(e),c(l)})}closeSub(){var t;(t=this.openSubEl)==null||t.remove(),this.openSubEl=null}closePop(){var t;this.closeSub(),this.openPop&&(this.openPop.remove(),this.openPop=null,(t=this.popAnchor)==null||t.classList.remove("open"),this.popAnchor=null,this.setOpTarget(null))}openSubFor(t,e){this.closeSub();const i=document.createElement("div");i.className="pop sub",i.dir=this.dir(),t.subBuild?t.subBuild(i):t.sub&&this.menuItems(i,t.sub),i.addEventListener("mousedown",o=>{o.target.tagName!=="INPUT"&&o.preventDefault()}),document.body.appendChild(i);const s=e.getBoundingClientRect();let l=this.dir()==="rtl"?s.left-i.offsetWidth+2:s.right-2;l=Math.max(8,Math.min(l+scrollX,scrollX+innerWidth-i.offsetWidth-8));let r=s.top+scrollY-6;r=Math.max(8+scrollY,Math.min(r,scrollY+innerHeight-i.offsetHeight-8)),i.style.left=l+"px",i.style.top=r+"px",this.openSubEl=i}popup(t,e,i){if(this.openPop&&this.popAnchor===t){this.closePop();return}this.closePop();const s=document.createElement("div");s.className="pop"+(i?" "+i:""),s.dir=this.dir(),e(s),document.body.appendChild(s);const n=t.getBoundingClientRect();s.style.minWidth=Math.max(160,Math.round(n.width))+"px",s.style.top=n.bottom+scrollY+2+"px";let r=this.dir()==="rtl"?n.right-s.offsetWidth:n.left;r=Math.max(8,Math.min(r+scrollX,scrollX+innerWidth-s.offsetWidth-8)),s.style.left=r+"px",s.addEventListener("mousedown",o=>{o.target.tagName!=="INPUT"&&o.preventDefault()}),this.openPop=s,this.popAnchor=t,t.classList.add("open")}menuItems(t,e){e.forEach(i=>{if(i==="|"){t.insertAdjacentHTML("beforeend",'<div class="sep"></div>');return}const s=!!(i.sub||i.subBuild),n=document.createElement("button");n.className="mi"+(i.on?" on":""),n.innerHTML=`<span class="ic">${i.icon||""}</span><span class="prev" ${i.previewStyle?`style="${i.previewStyle}"`:""}>${i.label}</span>${i.shortcut?`<span class="sc">${i.shortcut}</span>`:""}${s?`<span class="subarrow">${h.chev}</span>`:""}`,n.addEventListener("click",()=>{i.action&&(this.closePop(),i.action())}),n.addEventListener("mouseenter",()=>{var l;s?this.openSubFor(i,n):this.openSubEl&&t!==this.openSubEl&&this.closeSub(),(l=i.hover)==null||l.call(i,!0)}),n.addEventListener("mouseleave",()=>{var l;return(l=i.hover)==null?void 0:l.call(i,!1)}),t.appendChild(n)})}tbtn(t,e,i,s){const n=document.createElement("button");return n.className="tbtn",n.type="button",n.title=e,n.innerHTML=t,s&&(n.dataset.id=s),n.addEventListener("mousedown",l=>l.preventDefault()),n.addEventListener("click",i),n}stepBtn(t){const e=t>0?"+":"−",i=t>0?h.fontsizeup:h.fontsizedown,s=this.tbtn(i,this.t("fontsize")+" "+e,()=>this.stepFontSize(t));return s.addEventListener("mousedown",()=>this.saveSel()),s}menuTbtn(t,e,i,s){const n=this.tbtn(t,e,()=>i(n),s);return n.classList.add("hasmenu"),n.insertAdjacentHTML("beforeend",h.chev),n.addEventListener("mousedown",()=>this.saveSel()),n}colorChips(){const t=s=>{const n=document.createElement("button");return n.type="button",n.className="cchip",n.title=s,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n},e=Qe.map(s=>{const n=t(this.t("forecolor"));return n.style.background=s,n.addEventListener("click",()=>this.applyColor("fore",s)),n}),i=t(this.t("forecolor"));return i.classList.add("more"),i.dataset.cb="fore",i.innerHTML=h.chev,i.addEventListener("click",()=>this.colorMenu(i,"fore")),[...e,i]}group(...t){const e=document.createElement("div");return e.className="tgrp",t.forEach(i=>{i.classList.add("gbtn"),e.appendChild(i)}),e}tsel(t,e,i,s){const n=document.createElement("button");return n.className="tsel "+t,n.type="button",n.dataset.id=e,n.innerHTML=`<span class="lbl empty">${i||""}</span>${h.chev}`,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n.addEventListener("click",()=>s(n)),n}setListStyle(t,e){var n,l;this.restoreSel();const i=window.getSelection();if(!i)return;let s=(n=this.closestBlock(i.anchorNode))==null?void 0:n.closest(t);s||(this.exec(t==="ol"?"insertOrderedList":"insertUnorderedList"),s=(l=this.closestBlock(i.anchorNode))==null?void 0:l.closest(t)),s&&(s.style.listStyleType=e),this.saveSel(),this.onChange()}listMenu(t,e){var c;const i=e==="ol"?"insertOrderedList":"insertUnorderedList",s=e==="ol"?[["lower-alpha",h.ol_alpha],["lower-roman",h.ol_roman],["upper-alpha",h.ol_alphau],["upper-roman",h.ol_romanu]]:[["circle",h.ul_circle],["square",h.ul_square]],n=this.tArr(e==="ol"?"liststyles_ol":"liststyles_ul").slice(1),l=window.getSelection(),r=l?(c=this.closestBlock(l.anchorNode))==null?void 0:c.closest(e):null,o=r?r.style.listStyleType:"";this.popup(t,d=>{this.menuItems(d,[{label:this.t(e==="ol"?"numlist":"bullist"),icon:e==="ol"?h.numlist:h.bullist,on:document.queryCommandState(i),action:()=>this.exec(i)}]),d.insertAdjacentHTML("beforeend",'<div class="sep"></div>');const u=document.createElement("div");u.className="mi-grid",s.forEach(([m,b],y)=>{const g=document.createElement("button");g.className="mi"+(o===m?" on":""),g.innerHTML=`<span class="ic">${b}</span><span class="prev">${n[y]}</span>`,g.addEventListener("click",()=>{this.closePop(),this.setListStyle(e,m)}),u.appendChild(g)}),d.appendChild(u)})}buildPaletteInto(t,e,i){const s=document.createElement("div");s.className="cpal",Ge.forEach(u=>{const m=document.createElement("button");m.type="button",m.style.background=u,m.title=u,m.addEventListener("click",()=>{this.closePop(),i(u)}),s.appendChild(m)}),t.appendChild(s),t.insertAdjacentHTML("beforeend",'<div class="sep"></div>');const n=document.createElement("div");n.className="cfoot";const l=/^#[0-9a-f]{6}$/i.test(e)?e:"#000000",r=document.createElement("div");r.className="cswatch cur",r.title=this.t("currentcolor"),r.style.background=l,r.innerHTML=h.check;const o=document.createElement("button");o.type="button",o.className="cswatch nocolor",o.title=this.t("removecolor"),o.addEventListener("click",()=>{this.closePop(),i(null)});const c=document.createElement("label");c.className="cswatch cwheel",c.title=this.t("customcolor"),c.innerHTML=h.palette;const d=document.createElement("input");d.type="color",d.value=l,d.addEventListener("change",()=>{this.closePop(),i(d.value)}),c.appendChild(d),n.append(r,o,c),t.appendChild(n)}colorMenu(t,e){this.popup(t,i=>{const s=e==="fore"?this.foreColor:this.backColor;this.buildPaletteInto(i,s,n=>this.applyColor(e,n))},e==="fore"?"pop-forecolor":"pop-backcolor")}applyColor(t,e){t==="fore"?(this.foreColor=e||"#000000",this.exec("foreColor",e||"#000000")):(this.backColor=e||"transparent",this.exec("hiliteColor",e||"transparent")),this.syncColorSwatches(this.toolbar),this.selCtx&&this.syncColorSwatches(this.selCtx)}syncColorSwatches(t){t.querySelectorAll("[data-cb=fore]").forEach(e=>e.style.background=this.foreColor),t.querySelectorAll("[data-cb=back]").forEach(e=>e.style.background=this.backColor)}fontItems(){return this.options.fontFamilyFormats.map(([t,e])=>({label:t,previewStyle:`font-family:${e}`,on:this.currentFont()===t,action:()=>this.exec("fontName",e)}))}fontMenu(t){this.popup(t,e=>this.menuItems(e,this.fontItems()))}sizeItems(){return ze.map(t=>({label:t,on:this.currentSize()===t,action:()=>this.applyFontSize(t)}))}sizeMenu(t){this.popup(t,e=>this.menuItems(e,this.sizeItems()))}ensureSizeTarget(){const t=window.getSelection();if(!t)return;if(!t.rangeCount){const l=document.createRange();l.selectNodeContents(this.ed),l.collapse(!0),t.addRange(l)}if(!t.isCollapsed)return;const e=t.getRangeAt(0),i=e.startContainer;if(i.nodeType===3){const l=i.data;let r=e.startOffset,o=e.startOffset;for(;r>0&&/\S/.test(l[r-1]);)r--;for(;o<l.length&&/\S/.test(l[o]);)o++;if(o>r){const c=document.createRange();c.setStart(i,r),c.setEnd(i,o),t.removeAllRanges(),t.addRange(c),this.savedRange=c.cloneRange();return}}const s=document.createTextNode("​");e.insertNode(s);const n=document.createRange();n.setStart(s,0),n.setEnd(s,1),t.removeAllRanges(),t.addRange(n),this.savedRange=n.cloneRange()}applyFontSize(t){this.restoreSel(),this.ensureSizeTarget(),document.execCommand("styleWithCSS",!1,"false"),document.execCommand("fontSize",!1,"7");const e=[];if(this.ed.querySelectorAll('font[size="7"]').forEach(i=>{const s=document.createElement("span");for(s.style.fontSize=t;i.firstChild;)s.appendChild(i.firstChild);i.replaceWith(s),e.push(s)}),e.length){const i=document.createRange();i.setStart(e[0],0),i.setEnd(e[e.length-1],e[e.length-1].childNodes.length);const s=window.getSelection();s&&(s.removeAllRanges(),s.addRange(i))}this.saveSel(),this.refreshState(),this.onChange()}stepFontSize(t){const e=parseInt(this.currentSize(),10)||14,i=Math.min(Ye,Math.max(Xe,e+t));i!==e&&this.applyFontSize(i+"px")}transformCase(t){this.restoreSel();const e=window.getSelection();if(!e||!e.rangeCount||e.isCollapsed)return;const i=e.getRangeAt(0),s=document.createTreeWalker(this.ed,NodeFilter.SHOW_TEXT),n=[];let l;for(;l=s.nextNode();)i.intersectsNode(l)&&n.push(l);n.forEach(r=>{const o=r===i.startContainer?i.startOffset:0,c=r===i.endContainer?i.endOffset:r.data.length;if(c<=o)return;const d=r.data.slice(o,c);let u=d;t==="lower"?u=d.toLowerCase():t==="upper"?u=d.toUpperCase():u=d.replace(/(^|\s)(\S)/g,(m,b,y)=>b+y.toUpperCase()),r.replaceData(o,c-o,u)}),this.saveSel(),this.refreshState(),this.onChange()}caseItems(){return[{label:this.t("lowercase"),icon:h.lowercaseic,action:()=>this.transformCase("lower")},{label:this.t("uppercase"),icon:h.uppercaseic,action:()=>this.transformCase("upper")},{label:this.t("capitalize"),icon:h.capitalizeic,action:()=>this.transformCase("capitalize")}]}caseMenu(t){this.popup(t,e=>this.menuItems(e,this.caseItems()))}applyBlockStyle(t,e){this.restoreSel();const i=this.selectedBlocks(),s=t==="lineHeight"?"line-height":t==="wordSpacing"?"word-spacing":"letter-spacing";i.forEach(n=>{e?n.style[t]=e:n.style.removeProperty(s)}),this.saveSel(),this.onChange()}currentBlockStyle(t){const e=window.getSelection(),i=e?this.closestBlock(e.anchorNode):null;return i&&i.style[t]||""}blockStyleItems(t,e){const i=this.currentBlockStyle(t);return[{label:this.t("normal"),on:!i,action:()=>this.applyBlockStyle(t,"")},...e.map(s=>({label:s,on:i===s,action:()=>this.applyBlockStyle(t,s)}))]}lineHeightMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("lineHeight",Kt)))}wordSpacingMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("wordSpacing",Jt)))}letterSpacingMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("letterSpacing",te)))}closestAnchor(){const t=window.getSelection();let e=t&&this.ed.contains(t.anchorNode)?t.anchorNode:null;for(;e&&e!==this.ed;){if(e.nodeType===1&&e.tagName==="A")return e;e=e.parentNode}return null}linkDlg(){this.saveSel();const t=this.closestAnchor();let e;const i=[];t&&i.push({label:this.t("unlink"),action:()=>{const s=document.createRange();s.selectNodeContents(t);const n=window.getSelection();n&&(n.removeAllRanges(),n.addRange(s)),document.execCommand("unlink"),this.closeDlg(),this.onChange()}}),i.push({label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{const s=e.value.trim();if(this.closeDlg(),!s)return;if(t){t.setAttribute("href",s),this.onChange();return}this.restoreSel();const n=window.getSelection();!n||n.isCollapsed?document.execCommand("insertHTML",!1,`<a href="${s.replace(/"/g,"&quot;")}">${s.replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`):(document.execCommand("styleWithCSS",!1,"false"),document.execCommand("createLink",!1,s)),this.saveSel(),this.onChange()}}),this.dialog(this.t("linkttl"),s=>{const n=document.createElement("div");n.style.cssText="display:flex;align-items:center;gap:10px;margin:10px 0;min-width:360px";const l=document.createElement("span");l.style.cssText="width:60px;color:#556;flex:none",l.textContent=this.t("linkurl"),e=document.createElement("input"),e.type="url",e.placeholder="https://",e.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit",e.value=(t==null?void 0:t.getAttribute("href"))||"",n.append(l,e),s.appendChild(n),setTimeout(()=>e.focus(),0)},i)}blockItems(){return ie.map(([t])=>({label:this.blockLabel(t),previewStyle:t.startsWith("h")?`font-weight:700;font-size:${22-2*+t[1]}px`:t==="pre"?"font-family:monospace":"",on:this.currentBlock()===t,action:()=>this.exec("formatBlock","<"+t+">")}))}blocksMenu(t){this.popup(t,e=>this.menuItems(e,this.blockItems()))}alignItems(){return[["justifyLeft","alignleft",h.alignleft],["justifyCenter","aligncenter",h.aligncenter],["justifyRight","alignright",h.alignright],["justifyFull","alignjustify",h.alignjustify]].map(([e,i,s])=>({label:this.t(i),icon:s,on:document.queryCommandState(e),action:()=>this.exec(e)}))}blockLabel(t){return t==="p"?this.t("para"):t==="pre"?this.t("pre"):this.t("heading")+" "+t[1]}tableGrid(t,e){this.popup(t,i=>this.buildTableGridInto(i,e))}buildTableGridInto(t,e){{const i=document.createElement("div");i.className="tgridwrap";const s=document.createElement("div");s.className="tgrid";const n=document.createElement("div");n.className="tgridlbl",n.textContent="1 × 1";const l=[];for(let r=0;r<8;r++)for(let o=0;o<10;o++){const c=document.createElement("span");c.dataset.r=String(r),c.dataset.c=String(o),c.addEventListener("mouseenter",()=>{l.forEach(d=>d.classList.toggle("hot",+d.dataset.r<=r&&+d.dataset.c<=o)),n.textContent=o+1+" × "+(r+1)}),c.addEventListener("click",()=>{this.closePop(),this.insertTable(r+1,o+1),e==null||e()}),l.push(c),s.appendChild(c)}i.append(s,n),t.appendChild(i)}}insertTable(t,e){this.restoreSel();let i='<table style="border-collapse:collapse;width:100%;table-layout:fixed"><tbody>';for(let s=0;s<t;s++){i+="<tr>";for(let n=0;n<e;n++)i+='<td style="border:1px solid #b9c2cc"><br></td>';i+="</tr>"}i+="</tbody></table><p><br></p>",document.execCommand("insertHTML",!1,i),this.saveSel(),this.onChange()}setDir(t){this.restoreSel();const e=this.selectedBlocks();e.length?e.forEach(i=>i.setAttribute("dir",t)):this.ed.setAttribute("dir",t),this.saveSel(),this.refreshState(),this.onChange()}parseToolbarString(t){return t.split("|").map(e=>e.trim().split(/\s+/).filter(Boolean)).filter(e=>e.length>0)}buildToolbarRegistry(){const t=this.tbtn(h.tableic,this.t("quicktable"),()=>this.tableGrid(t)),e={undo:()=>this.tbtn(h.undo,this.t("undo"),()=>this.exec("undo")),redo:()=>this.tbtn(h.redo,this.t("redo"),()=>this.exec("redo")),preview:()=>this.tbtn(h.prevw,this.t("preview"),()=>this.previewDlg()),print:()=>this.tbtn(h.printic,this.t("print"),()=>this.printDoc()),importword:()=>this.tbtn(h.wordic,this.t("importword"),()=>this.pickWordDoc()),revhistory:()=>this.tbtn(h.historyic,this.t("revhistory"),()=>this.revisionDlg()),fontfamily:()=>this.tsel("w-font","fontsel","",i=>this.fontMenu(i)),fontsize:()=>this.tsel("w-size","sizesel","",i=>this.sizeMenu(i)),fontsizeincrease:()=>this.stepBtn(1),fontsizedecrease:()=>this.stepBtn(-1),bold:()=>this.tbtn(h.bold,this.t("bold"),()=>this.exec("bold"),"bold"),italic:()=>this.tbtn(h.italic,this.t("italic"),()=>this.exec("italic"),"italic"),underline:()=>this.tbtn(h.underline,this.t("underline"),()=>this.exec("underline"),"underline"),strikethrough:()=>this.tbtn(h.strikethrough,this.t("strikethrough"),()=>this.exec("strikeThrough"),"strikeThrough"),forecolor:()=>this.colorChips(),backcolor:()=>this.menuTbtn(h.backcolor+'<span class="colorbar" data-cb="back"></span>',this.t("backcolor"),i=>this.colorMenu(i,"back")),alignleft:()=>this.tbtn(h.alignleft,this.t("alignleft"),()=>this.exec("justifyLeft"),"justifyLeft"),aligncenter:()=>this.tbtn(h.aligncenter,this.t("aligncenter"),()=>this.exec("justifyCenter"),"justifyCenter"),alignright:()=>this.tbtn(h.alignright,this.t("alignright"),()=>this.exec("justifyRight"),"justifyRight"),alignjustify:()=>this.tbtn(h.alignjustify,this.t("alignjustify"),()=>this.exec("justifyFull"),"justifyFull"),bullist:()=>this.menuTbtn(h.bullist,this.t("bullist"),i=>this.listMenu(i,"ul"),"insertUnorderedList"),numlist:()=>this.menuTbtn(h.numlist,this.t("numlist"),i=>this.listMenu(i,"ol"),"insertOrderedList"),outdent:()=>this.tbtn(h.outdent,this.t("outdent"),()=>this.exec("outdent")),indent:()=>this.tbtn(h.indent,this.t("indent"),()=>this.exec("indent")),link:()=>this.tbtn(h.link,this.t("linkttl"),()=>this.linkDlg()),blockquote:()=>this.tbtn(h.quote,this.t("quote"),()=>this.toggleBlock("blockquote"),"blockquote"),code:()=>this.tbtn(h.inlinecodeic,this.t("code"),()=>this.toggleInlineCode(),"code"),codesample:()=>this.tbtn(h.codesampleic,this.t("codesample"),()=>this.codeDlg()),changecase:()=>this.menuTbtn(h.caseic,this.t("changecase"),i=>this.caseMenu(i)),lineheight:()=>this.menuTbtn(h.lineheight,this.t("lineheight"),i=>this.lineHeightMenu(i)),wordspacing:()=>this.menuTbtn(h.wordspacing,this.t("wordspacing"),i=>this.wordSpacingMenu(i)),letterspacing:()=>this.menuTbtn(h.letterspacing,this.t("letterspacing"),i=>this.letterSpacingMenu(i)),removeformat:()=>this.tbtn(h.clearformatic,this.t("removeformat"),()=>this.exec("removeFormat")),blocks:()=>this.tsel("w-block","blocksel",this.t("para"),i=>this.blocksMenu(i)),ltr:()=>this.tbtn(h.ltr,this.t("ltr"),()=>this.setDir("ltr"),"ltr"),rtl:()=>this.tbtn(h.rtl,this.t("rtl"),()=>this.setDir("rtl"),"rtl"),quickimage:()=>this.tbtn(h.image,this.t("quickimage"),()=>this.insertImagePlaceholder()),quickvideo:()=>this.tbtn(h.video,this.t("quickvideo"),()=>this.videoDlg()),quicktable:()=>t,template:()=>this.menuTbtn(h.templateic,this.t("template"),i=>this.templateMenu(i)),charmap:()=>this.tbtn(h.charic,this.t("charmap"),()=>this.charMap()),emoji:()=>this.tbtn(h.emojiic,this.t("emoji"),()=>this.emojiMap()),fullscreen:()=>this.tbtn(h.fullscreen,this.t("fullscreen"),()=>this.toggleFullscreen(),"fullscreen"),sourcecode:()=>this.tbtn(h.srcic,this.t("sourcecode"),()=>this.sourceDlg())};return e.styles=e.blocks,e.image=e.quickimage,e.media=e.quickvideo,e.table=e.quicktable,e}buildToolbar(){this.toolbar.innerHTML="";const t=this.options.toolbar===!0?We:this.options.toolbar,e=this.buildToolbarRegistry();this.parseToolbarString(t).forEach(i=>{const s=[];i.forEach(n=>{const l=e[n];if(!l){console.warn(`FableEditor: unknown toolbar item "${n}"`);return}const r=l();Array.isArray(r)?s.push(...r):s.push(r)}),s.length&&this.toolbar.appendChild(this.group(...s))}),this.tbrMore=this.tbtn(h.more,this.t("more"),()=>{this.tbrExpanded=!this.tbrExpanded,this.updateToolbarOverflow()}),this.tbrMore.classList.add("tbr-more"),this.toolbar.appendChild(this.tbrMore),this.syncColorSwatches(this.toolbar),this.updateToolbarOverflow()}updateToolbarOverflow(){const t=this.toolbar;if(!this.tbrMore)return;t.classList.add("tbr-measure");const e=t.scrollWidth>t.clientWidth+1;t.classList.remove("tbr-measure");const i=this.shell.offsetWidth<W.TBR_COLLAPSE_MAX;if(!e||!i){this.tbrExpanded=!1,t.classList.remove("collapsible","expanded"),this.tbrMore.classList.remove("on");return}t.classList.add("collapsible"),t.classList.toggle("expanded",this.tbrExpanded),this.tbrMore.classList.toggle("on",this.tbrExpanded)}mItem(t,e,i,s){return{label:this.t(t),icon:e,action:i,shortcut:s}}buildMenubar(){this.menubar.innerHTML="";const t={file:[this.mItem("newdoc",h.newic,()=>{this.recordRevision(),this.ed.innerHTML="<p><br></p>",this.onChange()}),"|",this.mItem("importword",h.wordic,()=>this.pickWordDoc()),this.mItem("restoredraft",h.draftic,()=>{this.restoreDraft()||alert(this.t("draftempty"))}),this.mItem("revhistory",h.historyic,()=>this.revisionDlg()),"|",this.mItem("preview",h.prevw,()=>this.previewDlg()),this.mItem("print",h.printic,()=>this.printDoc(),"Ctrl+P")],edit:[this.mItem("undo",h.undo,()=>this.exec("undo"),"Ctrl+Z"),this.mItem("redo",h.redo,()=>this.exec("redo"),"Ctrl+Y"),"|",this.mItem("cut",h.cutic,()=>this.exec("cut"),"Ctrl+X"),this.mItem("copy",h.copyic,()=>this.exec("copy"),"Ctrl+C"),this.mItem("paste",h.pasteic,()=>alert(this.t("pastehint")),"Ctrl+V"),"|",this.mItem("selectall",h.selall,()=>this.exec("selectAll"),"Ctrl+A")],view:[this.mItem("fullscreen",h.fullscreen,()=>this.toggleFullscreen()),this.mItem("preview",h.prevw,()=>this.previewDlg()),this.mItem("sourcecode",h.srcic,()=>this.sourceDlg())],insert:[this.mItem("link",h.link,()=>this.linkDlg()),this.mItem("image",h.image,()=>this.insertImagePlaceholder()),this.mItem("video",h.video,()=>this.videoDlg()),{label:this.t("inserttable"),icon:h.tableic,action:()=>this.tableGrid(this.menubar.querySelector('[data-menu-key="table"]')||this.menubar)},this.mItem("codesample",h.codesampleic,()=>this.codeDlg()),{label:this.t("template"),icon:h.templateic,subBuild:s=>this.buildTemplatePickInto(s)},this.mItem("hr",h.hric,()=>this.exec("insertHorizontalRule")),"|",this.mItem("charmap",h.charic,()=>this.charMap()),this.mItem("emoji",h.emojiic,()=>this.emojiMap()),this.mItem("datetime",h.dateic,()=>this.exec("insertText",new Date().toLocaleString(this.lang==="ar"?"ar-AE":"en-GB"))),"|",{label:this.t("pagebreak"),icon:h.pbic,action:()=>{this.restoreSel(),document.execCommand("insertHTML",!1,'<hr class="pagebreak"><p><br></p>'),this.onChange()}},this.mItem("nbsp",h.nbspic,()=>this.exec("insertText"," "))],format:[this.mItem("bold",h.bold,()=>this.exec("bold"),"Ctrl+B"),this.mItem("italic",h.italic,()=>this.exec("italic"),"Ctrl+I"),this.mItem("underline",h.underline,()=>this.exec("underline"),"Ctrl+U"),this.mItem("strikethrough",h.strikethrough,()=>this.exec("strikeThrough")),this.mItem("superscript",h.superscriptic,()=>this.exec("superscript")),this.mItem("subscript",h.subscriptic,()=>this.exec("subscript")),this.mItem("code",h.inlinecodeic,()=>this.toggleInlineCode()),this.mItem("quote",h.quote,()=>this.toggleBlock("blockquote")),"|",{label:this.t("fontfamily"),subBuild:s=>this.menuItems(s,this.fontItems())},{label:this.t("fontsize"),subBuild:s=>this.menuItems(s,this.sizeItems())},{label:this.t("blocks"),subBuild:s=>this.menuItems(s,this.blockItems())},{label:this.t("align"),subBuild:s=>this.menuItems(s,this.alignItems())},{label:this.t("lineheight"),icon:h.lineheight,subBuild:s=>this.menuItems(s,this.blockStyleItems("lineHeight",Kt))},{label:this.t("wordspacing"),icon:h.wordspacing,subBuild:s=>this.menuItems(s,this.blockStyleItems("wordSpacing",Jt))},{label:this.t("letterspacing"),icon:h.letterspacing,subBuild:s=>this.menuItems(s,this.blockStyleItems("letterSpacing",te))},"|",{label:this.t("forecolor"),icon:h.palette,subBuild:s=>this.buildPaletteInto(s,this.foreColor,n=>this.applyColor("fore",n))},{label:this.t("backcolor"),icon:h.backcolor,subBuild:s=>this.buildPaletteInto(s,this.backColor,n=>this.applyColor("back",n))},"|",this.mItem("bullist",h.bullist,()=>this.exec("insertUnorderedList")),this.mItem("numlist",h.numlist,()=>this.exec("insertOrderedList")),this.mItem("outdent",h.outdent,()=>this.exec("outdent")),this.mItem("indent",h.indent,()=>this.exec("indent")),"|",this.mItem("ltr",h.ltr,()=>this.setDir("ltr")),this.mItem("rtl",h.rtl,()=>this.setDir("rtl")),"|",{label:this.t("changecase"),icon:h.caseic,sub:this.caseItems()},"|",this.mItem("clearformat",h.clearformatic,()=>this.exec("removeFormat"))],tools:[this.mItem("sourcecode",h.srcic,()=>this.sourceDlg()),this.mItem("wordcount",h.wcic,()=>this.wordCountDlg())],table:[{label:this.t("inserttable"),icon:h.tableic,subBuild:s=>this.buildTableGridInto(s)},"|",{label:this.t("cell"),sub:[{label:this.t("cellprops"),icon:h.tableic,action:()=>this.cellPropsDlg()},{label:this.t("cellbg"),icon:h.palette,subBuild:s=>this.buildCellFillInto(s)}]},{label:this.t("row"),sub:[{label:this.t("rowabove"),icon:h.rowbefore,action:()=>this.tableOp("rowabove"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("rowbelow"),icon:h.rowafter,action:()=>this.tableOp("rowbelow"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("delrow"),icon:h.rowdelete,action:()=>this.tableOp("delrow"),hover:s=>this.setOpTarget(s?"row":null)},"|",{label:this.t("moverowup"),icon:h.moverowup,action:()=>this.tableMove("rowup"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("moverowdown"),icon:h.moverowdown,action:()=>this.tableMove("rowdown"),hover:s=>this.setOpTarget(s?"row":null)},"|",{label:this.t("rowprops"),icon:h.tableic,action:()=>this.rowPropsDlg(),hover:s=>this.setOpTarget(s?"row":null)}]},{label:this.t("column"),sub:[{label:this.t("colbefore"),icon:h.colbefore,action:()=>this.tableOp("colbefore"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("colafter"),icon:h.colafter,action:()=>this.tableOp("colafter"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("delcol"),icon:h.coldelete,action:()=>this.tableOp("delcol"),hover:s=>this.setOpTarget(s?"col":null)},"|",{label:this.t("movecolleft"),icon:h.movecolleft,action:()=>this.tableMove("colleft"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("movecolright"),icon:h.movecolright,action:()=>this.tableMove("colright"),hover:s=>this.setOpTarget(s?"col":null)},"|",{label:this.t("colprops"),icon:h.tableic,action:()=>this.colPropsDlg(),hover:s=>this.setOpTarget(s?"col":null)}]},"|",{label:this.t("tablepropsttl"),icon:h.tableic,action:()=>{const s=this.currentCell();if(!s){alert(this.t("nocell"));return}this.tblActive=s.closest("table"),this.tablePropsDlg()}},{label:this.t("deltable"),icon:h.trash,action:()=>this.tableOp("deltable")}],help:[this.mItem("helpttl",h.helpic,()=>this.helpDlg(),"Alt+0")]},e=this.options.menubar===!0?Ve:this.options.menubar,i=new Set;e.split(/\s+/).filter(Boolean).forEach(s=>{if(i.has(s))return;if(i.add(s),!t[s]){console.warn(`FableEditor: unknown menubar item "${s}"`);return}const n=document.createElement("button");n.type="button",n.textContent=this.t(s),n.dataset.menuKey=s,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n.addEventListener("click",()=>this.popup(n,l=>this.menuItems(l,t[s]))),this.menubar.appendChild(n)})}tableOp(t){var o,c,d;this.restoreSel();const e=window.getSelection();if(!e)return;const i=((o=this.closestBlock(e.anchorNode))==null?void 0:o.closest("td,th"))||(e.anchorNode&&e.anchorNode.nodeType===1?(d=(c=e.anchorNode).closest)==null?void 0:d.call(c,"td,th"):null);if(!i)return;const s=i.parentElement,n=i.closest("table"),l=Array.from(s.children).indexOf(i),r=()=>{const u=s.cloneNode(!1);return Array.from(s.children).forEach(m=>{const b=document.createElement("td"),y=m.getAttribute("style");y&&b.setAttribute("style",y),b.style.removeProperty("background-color"),b.innerHTML="<br>",u.appendChild(b)}),u};if(t==="rowabove"&&s.before(r()),t==="rowbelow"&&s.after(r()),t==="delrow"){const u=s.parentElement;s.remove(),u.querySelector("tr")||n.remove()}(t==="colbefore"||t==="colafter")&&n.querySelectorAll("tr").forEach(u=>{const m=u.children[Math.min(l,u.children.length-1)],b=document.createElement("td"),y=m.getAttribute("style");y&&b.setAttribute("style",y),b.style.removeProperty("width"),b.style.removeProperty("background-color"),b.innerHTML="<br>",t==="colbefore"?m.before(b):m.after(b)}),t==="delcol"&&(n.querySelectorAll("tr").forEach(u=>{var m;return(m=u.children[l])==null?void 0:m.remove()}),n.querySelector("td,th")||n.remove()),t==="deltable"&&n.remove(),this.onChange(),this.positionTableHandles()}tableMove(t){this.restoreSel();const e=this.currentCell();if(!e)return;const i=e.parentElement,s=e.closest("table"),n=Array.from(i.children).indexOf(e);if(t==="rowup"){const o=i.previousElementSibling;o&&o.before(i)}if(t==="rowdown"){const o=i.nextElementSibling;o&&o.after(i)}t==="colleft"&&n>0&&s.querySelectorAll("tr").forEach(o=>{const c=o.children[n],d=o.children[n-1];c&&d&&d.before(c)}),t==="colright"&&s.querySelectorAll("tr").forEach(o=>{const c=o.children[n],d=o.children[n+1];c&&d&&d.after(c)});const l=document.createRange();l.selectNodeContents(e),l.collapse(!0);const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(l)),this.saveSel(),this.onChange(),this.positionTableHandles(),this.positionCellMarker()}alignTable(t){const e=this.tblActive;e&&(e.style.marginLeft=t==="left"?"0":"auto",e.style.marginRight=t==="right"?"0":"auto",this.onChange(),this.positionTableHandles())}buildCellFillInto(t){const e=s=>{const n=this.currentCell();if(!n){alert(this.t("nocell"));return}this.setOrClear(n,"background-color",s||""),this.onChange()},i=this.currentCell();this.buildPaletteInto(t,this.cssToHex(i?i.style.backgroundColor:""),e)}cssToHex(t){const e=t.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);return e?"#"+e.slice(1,4).map(i=>(+i).toString(16).padStart(2,"0")).join(""):t}cellFillMenu(t){this.popup(t,e=>this.buildCellFillInto(e),"pop-cellbg")}applyTableProps(t,e){e.width?t.style.width=/^\d+$/.test(e.width)?e.width+"px":e.width:t.style.removeProperty("width");const i=Array.from(t.querySelectorAll("td,th"));e.cellpadding!==""?i.forEach(s=>s.style.padding=e.cellpadding+"px"):i.forEach(s=>s.style.removeProperty("padding")),e.cellspacing!==""?(t.style.borderCollapse="separate",t.style.borderSpacing=e.cellspacing+"px"):(t.style.borderCollapse="collapse",t.style.removeProperty("border-spacing")),e.border!==""&&+e.border>0?(t.style.border=e.border+"px solid #b9c2cc",i.forEach(s=>s.style.border=e.border+"px solid #b9c2cc")):(t.style.removeProperty("border"),i.forEach(s=>s.style.removeProperty("border"))),t.style.removeProperty("margin-left"),t.style.removeProperty("margin-right"),e.align==="center"?(t.style.marginLeft="auto",t.style.marginRight="auto"):e.align==="right"?(t.style.marginLeft="auto",t.style.marginRight="0"):e.align==="left"&&(t.style.marginLeft="0",t.style.marginRight="auto")}tablePropsDlg(){const t=this.tblActive;if(!t)return;let e,i,s,n,l;const r="display:flex;align-items:center;gap:10px;margin:10px 0",o="width:120px;color:#556;flex:none",c="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit",d=t.querySelector("td,th"),u=t.style.width||"",m=d&&d.style.padding?parseFloat(d.style.padding):"",b=t.style.borderSpacing?parseFloat(t.style.borderSpacing):"",y=t.style.borderWidth?parseFloat(t.style.borderWidth):"",g=t.style.marginLeft,x=t.style.marginRight,w=g==="auto"&&x==="auto"?"center":g==="auto"?"right":x==="auto"&&g==="0"?"left":"";this.dialog(this.t("tablepropsttl"),E=>{const I=(H,j)=>{const F=document.createElement("div");F.style.cssText=r;const _=document.createElement("span");_.style.cssText=o,_.textContent=this.t(H),F.append(_,j),E.appendChild(F)};e=document.createElement("input"),e.type="text",e.style.cssText=c,e.placeholder="e.g. 600px or 100%",e.value=u,I("tblwidth",e),i=document.createElement("input"),i.type="number",i.min="0",i.style.cssText=c,i.value=String(m),I("tblcellpadding",i),s=document.createElement("input"),s.type="number",s.min="0",s.style.cssText=c,s.value=String(b),I("tblcellspacing",s),n=document.createElement("input"),n.type="number",n.min="0",n.style.cssText=c,n.value=String(y),I("tblborder",n),l=document.createElement("select"),l.style.cssText=c,[["","alignnone"],["left","alignleft"],["center","aligncenter"],["right","alignright"]].forEach(([H,j])=>{const F=document.createElement("option");F.value=H,F.textContent=this.t(j),H===w&&(F.selected=!0),l.appendChild(F)}),I("tblalign",l)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.applyTableProps(t,{width:e.value.trim(),cellpadding:i.value.trim(),cellspacing:s.value.trim(),border:n.value.trim(),align:l.value}),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}currentCell(){let t=this.savedRange?this.savedRange.startContainer:null;if(!t||!this.ed.contains(t)){const e=window.getSelection();t=e&&this.ed.contains(e.anchorNode)?e.anchorNode:null}for(;t&&t!==this.ed;){if(t.nodeType===1&&/^(TD|TH)$/.test(t.tagName))return t;t=t.parentNode}return null}toHexColor(t){if(/^#[0-9a-fA-F]{6}$/.test(t))return t;const e=/rgba?\((\d+)[,\s]+(\d+)[,\s]+(\d+)/.exec(t);return e?"#"+[e[1],e[2],e[3]].map(i=>(+i).toString(16).padStart(2,"0")).join(""):""}formRow(t,e,i){const s=document.createElement("div");s.style.cssText="display:flex;align-items:center;gap:10px;margin:10px 0;min-width:360px";const n=document.createElement("span");n.style.cssText="width:120px;color:#556;flex:none",n.textContent=e,s.append(n,i),t.appendChild(s)}formInput(t,e=""){const i=document.createElement("input");return i.type="text",i.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit;min-width:0",i.value=t,i.placeholder=e,i}formSelect(t,e){const i=document.createElement("select");return i.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit;background:#fff",t.forEach(([s,n])=>{const l=document.createElement("option");l.value=s,l.textContent=n,s===e&&(l.selected=!0),i.appendChild(l)}),i}formBg(t){const e=document.createElement("div");e.style.cssText="flex:1;display:flex;align-items:center;gap:8px";const i=this.toHexColor(t),s=document.createElement("input");s.type="color",s.value=i||"#ffffff",s.style.cssText="width:36px;height:29px;border:1px solid #cfd6df;border-radius:4px;padding:1px;background:none;cursor:pointer";const n=document.createElement("label");n.style.cssText="display:flex;align-items:center;gap:6px;cursor:pointer;color:#556";const l=document.createElement("input");return l.type="checkbox",l.checked=!!i,n.append(l,document.createTextNode(this.t("fill"))),s.addEventListener("input",()=>l.checked=!0),e.append(s,n),{wrap:e,color:s,fill:l}}setOrClear(t,e,i){i?t.style.setProperty(e,/^(width|height)$/.test(e)&&/^\d+$/.test(i)?i+"px":i):t.style.removeProperty(e)}cellPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}let e,i,s,n,l;this.dialog(this.t("cellprops").replace("…",""),r=>{e=this.formInput(t.style.width,"e.g. 120px / 25%"),this.formRow(r,this.t("tblwidth"),e),i=this.formInput(t.style.height,"e.g. 40px"),this.formRow(r,this.t("tblheight"),i),s=this.formSelect([["",this.t("alignnone")],["left",this.t("alignleft")],["center",this.t("aligncenter")],["right",this.t("alignright")]],t.style.textAlign||""),this.formRow(r,this.t("tblalign"),s),n=this.formSelect([["",this.t("alignnone")],["top",this.t("valigntop")],["middle",this.t("valignmiddle")],["bottom",this.t("valignbottom")]],t.style.verticalAlign||""),this.formRow(r,this.t("valign"),n),l=this.formBg(t.style.backgroundColor||""),this.formRow(r,this.t("backcolor"),l.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.setOrClear(t,"width",e.value.trim()),this.setOrClear(t,"height",i.value.trim()),this.setOrClear(t,"text-align",s.value),this.setOrClear(t,"vertical-align",n.value),this.setOrClear(t,"background-color",l.fill.checked?l.color.value:""),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}rowPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}const e=t.parentElement;let i,s;this.dialog(this.t("rowprops").replace("…",""),n=>{i=this.formInput(e.style.height,"e.g. 40px"),this.formRow(n,this.t("tblheight"),i),s=this.formBg(e.style.backgroundColor||""),this.formRow(n,this.t("backcolor"),s.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.setOrClear(e,"height",i.value.trim()),this.setOrClear(e,"background-color",s.fill.checked?s.color.value:""),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}colPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}const e=t.parentElement,i=t.closest("table"),s=Array.from(e.children).indexOf(t),n=Array.from(i.rows).map(o=>o.cells[s]).filter(Boolean);let l,r;this.dialog(this.t("colprops").replace("…",""),o=>{l=this.formInput(t.style.width,"e.g. 120px / 25%"),this.formRow(o,this.t("tblwidth"),l),r=this.formBg(t.style.backgroundColor||""),this.formRow(o,this.t("backcolor"),r.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{n.forEach(o=>{this.setOrClear(o,"width",l.value.trim()),this.setOrClear(o,"background-color",r.fill.checked?r.color.value:"")}),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}closeDlg(){this.dlgOvl&&(this.dlgOvl.remove(),this.dlgOvl=null)}dialog(t,e,i){this.closeDlg(),this.closePop(),this.dlgOvl=document.createElement("div"),this.dlgOvl.className="ovl";const s=document.createElement("div");s.className="dlg",s.dir=this.dir(),s.innerHTML=`<header><span>${t}</span><button type="button">×</button></header>
36
+ `,this.sbHelp=this.statusbar.querySelector(".mid"),this.sbWords=this.statusbar.querySelector(".words");const e=this.statusbar.querySelector(".grip");this.bindGrip(e),this.shell.appendChild(this.menubar),this.shell.appendChild(this.toolbar),this.shell.appendChild(this.ed),this.shell.appendChild(this.statusbar),this.contentStyle&&(this.contentStyleEl=document.createElement("style"),this.contentStyleEl.textContent=this.scopeContentStyle(this.contentStyle),this.shell.appendChild(this.contentStyleEl)),t.appendChild(this.shell),Ci(),this.options.statusbar||(this.statusbar.style.display="none"),this.imgInput=document.createElement("input"),this.imgInput.type="file",this.imgInput.accept=this.options.imageFileTypes.join(","),this.imgInput.style.display="none",t.appendChild(this.imgInput),this.vidInput=document.createElement("input"),this.vidInput.type="file",this.vidInput.accept=this.options.videoFileTypes.join(","),this.vidInput.style.display="none",t.appendChild(this.vidInput),this.docInput=document.createElement("input"),this.docInput.type="file",this.docInput.accept=".docx,application/vnd.openxmlformats-officedocument.wordprocessingml.document",this.docInput.style.display="none",t.appendChild(this.docInput)}applyTheme(t){const e=document.documentElement;t.primaryColor&&e.style.setProperty("--fable-primary",t.primaryColor),t.toolbarGroupBackground&&e.style.setProperty("--fable-tgrp-bg",t.toolbarGroupBackground),t.uiFontFamily&&e.style.setProperty("--fable-ui-font",t.uiFontFamily)}scopeContentStyle(t){return t.replace(/\bbody\b/g,"."+this.contentClass)}bindGrip(t){let e=0,i=0;const s=n=>{e=n.clientY,i=this.ed.offsetHeight,n.preventDefault();const l=o=>{this.ed.style.height=Math.max(120,i+o.clientY-e)+"px"},r=()=>{window.removeEventListener("mousemove",l),window.removeEventListener("mouseup",r)};window.addEventListener("mousemove",l),window.addEventListener("mouseup",r)};t.addEventListener("mousedown",s),this.listeners.push(()=>t.removeEventListener("mousedown",s))}bindEvents(){if(this.onDoc("mousedown",t=>{this.openPop&&!this.openPop.contains(t.target)&&!this.popAnchor.contains(t.target)&&!this.subContains(t.target)&&this.closePop()}),this.onDoc("keydown",t=>{t.key==="Escape"&&(this.closePop(),this.closeDlg())}),this.onDoc("selectionchange",()=>{const t=window.getSelection();t&&this.ed.contains(t.anchorNode)?(this.saveSel(),this.refreshState(),this.updateSelToolbar(t),this.positionCellMarker()):this.clearSelToolbar()}),this.on(this.ed,"input",()=>{this.refreshState(),this.onChange(),this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx()}),this.on(this.ed,"keydown",t=>{t.altKey&&t.key==="0"&&(t.preventDefault(),this.helpDlg()),(t.key==="Delete"||t.key==="Backspace")&&this.phActive&&(t.preventDefault(),this.removeImgPlaceholder()),(t.key==="Delete"||t.key==="Backspace")&&this.vphActive&&(t.preventDefault(),this.removeVphPlaceholder()),t.key==="`"&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&this.tryCodeTyping(t),t.key==="Enter"&&!t.shiftKey&&!t.ctrlKey&&!t.metaKey&&!t.altKey&&this.tryExitBlockquote(t)}),this.on(this.ed,"paste",t=>this.handlePaste(t)),this.on(this.ed,"drop",t=>{var n,l,r,o;t.preventDefault();const e=t.target,i=(n=e.closest)==null?void 0:n.call(e,".img-ph:not(.vid-ph)");if(i&&this.ed.contains(i)&&!this.options.readonly){const c=Array.from(((l=t.dataTransfer)==null?void 0:l.files)||[]).find(d=>d.type.startsWith("image/"));c&&this.readImageFileInto(c,i);return}const s=(r=e.closest)==null?void 0:r.call(e,".vid-ph");if(s&&this.ed.contains(s)&&!this.options.readonly){const c=Array.from(((o=t.dataTransfer)==null?void 0:o.files)||[]).find(d=>d.type.startsWith("video/"));c&&this.readVideoFileInto(c,s)}}),this.on(this.ed,"dragover",t=>t.preventDefault()),this.on(this.ed,"mousedown",t=>{var d,u,m,b,y,g,x;const e=t.target,i=(d=e.closest)==null?void 0:d.call(e,"table");i&&this.ed.contains(i)?this.selectTableForResize(i):this.clearTableHandles();const s=(u=e.closest)==null?void 0:u.call(e,".img-ph:not(.vid-ph)");s&&this.ed.contains(s)&&!this.options.readonly?(t.preventDefault(),this.ed.focus(),this.selectImgPlaceholder(s)):this.clearImgPlaceholderSel();const n=(m=e.closest)==null?void 0:m.call(e,".vid-ph");n&&this.ed.contains(n)&&!this.options.readonly?(t.preventDefault(),this.ed.focus(),this.selectVphPlaceholder(n)):this.clearVphPlaceholderSel();const l=(b=e.closest)==null?void 0:b.call(e,".tpl");l&&this.ed.contains(l)&&!this.options.readonly?this.selectTemplate(l):this.clearTplSel();const r=(y=e.closest)==null?void 0:y.call(e,"pre.code-block");r&&this.ed.contains(r)&&!this.options.readonly?(t.preventDefault(),this.selectCodeEl(r)):this.clearCodeSel();const o=(g=e.closest)==null?void 0:g.call(e,"img");o&&this.ed.contains(o)&&!this.options.readonly?(t.preventDefault(),this.selectImage(o)):this.clearImageHandles();const c=(x=e.closest)==null?void 0:x.call(e,"video, .video-embed");c&&this.ed.contains(c)&&!this.options.readonly?(t.preventDefault(),this.selectVideo(c)):this.clearVidHandles()}),this.on(this.ed,"mouseover",t=>{var i,s;if(this.options.readonly)return;const e=(s=(i=t.target).closest)==null?void 0:s.call(i,"img");e&&this.ed.contains(e)&&(this.cancelImgHide(),this.selectImage(e))}),this.on(this.ed,"mouseout",t=>{var s,n,l,r;const e=(n=(s=t.target).closest)==null?void 0:n.call(s,"img");if(!e)return;const i=t.relatedTarget;i&&((l=this.imgCtx)!=null&&l.contains(i)||this.imgHandles.some(o=>o.contains(i))||((r=i.closest)==null?void 0:r.call(i,"img"))===e)||this.scheduleImgHide()}),this.on(this.ed,"scroll",()=>{this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx()}),this.onWin("scroll",t=>{var s;const e=t.target;e instanceof Node&&((((s=this.openPop)==null?void 0:s.contains(e))??!1)||this.subContains(e))||this.closePop(),this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx(),this.repositionSelToolbar()},!0),this.onWin("resize",()=>{this.positionTableHandles(),this.positionImageHandles(),this.positionImgPhCtx(),this.positionTplCtx(),this.positionVphCtx(),this.positionVidCtx(),this.positionCodeCtx(),this.repositionSelToolbar(),this.updateToolbarOverflow()}),typeof ResizeObserver<"u"){const t=new ResizeObserver(()=>this.updateToolbarOverflow());t.observe(this.shell),this.listeners.push(()=>t.disconnect())}this.on(this.imgInput,"change",()=>{var s;const t=(s=this.imgInput.files)==null?void 0:s[0];if(!t)return;const e=this.phUploadTarget;if(this.phUploadTarget=null,e&&this.ed.contains(e)){this.readImageFileInto(t,e);return}const i=new FileReader;i.onload=()=>{this.restoreSel(),document.execCommand("insertHTML",!1,`<img src="${i.result}" title="${t.name.replace(/"/g,"")}" alt="">`),this.onChange()},i.readAsDataURL(t)}),this.on(this.vidInput,"change",()=>{var s;const t=(s=this.vidInput.files)==null?void 0:s[0];if(!t)return;const e=this.vphUploadTarget;if(this.vphUploadTarget=null,e&&this.ed.contains(e)){this.readVideoFileInto(t,e);return}const i=new FileReader;i.onload=()=>{this.restoreSel(),document.execCommand("insertHTML",!1,`<video controls src="${i.result}" title="${t.name.replace(/"/g,"")}"></video>`),this.onChange()},i.readAsDataURL(t)}),this.on(this.docInput,"change",()=>{var e;const t=(e=this.docInput.files)==null?void 0:e[0];t&&this.importWordFile(t).catch(()=>alert(this.t("importfail")))}),this.onDoc("mousedown",t=>{this.ed.contains(t.target)||t.target===this.tblCorner||this.tblColBars.includes(t.target)||this.tblCtx&&this.tblCtx.contains(t.target)||this.imgHandles.includes(t.target)||this.imgCtx&&this.imgCtx.contains(t.target)||this.phCtx&&this.phCtx.contains(t.target)||this.tplCtx&&this.tplCtx.contains(t.target)||this.selCtx&&this.selCtx.contains(t.target)||this.vphCtx&&this.vphCtx.contains(t.target)||this.vidCtx&&this.vidCtx.contains(t.target)||this.codeCtx&&this.codeCtx.contains(t.target)||this.openPop&&this.openPop.contains(t.target)||this.subContains(t.target)||(this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar())})}on(t,e,i){t.addEventListener(e,i),this.listeners.push(()=>t.removeEventListener(e,i))}onDoc(t,e){document.addEventListener(t,e),this.listeners.push(()=>document.removeEventListener(t,e))}onWin(t,e,i){window.addEventListener(t,e,i),this.listeners.push(()=>window.removeEventListener(t,e,i))}getContent(){return this.ed.innerHTML}getContentForEmail(){const t=(l,r)=>{const o=(l.getAttribute("style")||"").trim();l.setAttribute("style",o?o.replace(/;?$/,"; ")+r:r)},e=document.createElement("div");e.innerHTML=this.ed.innerHTML;let i=null;e.querySelectorAll("[dir]").forEach(l=>{const r=(l.getAttribute("dir")||"").toLowerCase();if(r!=="rtl"&&r!=="ltr")return;const o=r;i||(i=o),/text-align\s*:/i.test(l.getAttribute("style")||"")||t(l,`text-align:${o==="rtl"?"right":"left"}`)}),e.querySelectorAll(Ei).forEach(l=>{const r=(l.getAttribute("dir")||"").toLowerCase();if(r==="rtl"||r==="ltr")return;const o=Si(ce(l));if(!o)return;i||(i=o),l.setAttribute("dir",o);const c=/text-align\s*:/i.test(l.getAttribute("style")||"");t(l,c?`direction:${o}`:`direction:${o};text-align:${o==="rtl"?"right":"left"}`)});const s=i||this.ed.getAttribute("dir")||this.dir();return e.querySelectorAll("table:not([dir])").forEach(l=>{l.setAttribute("dir",s),/direction\s*:/i.test(l.getAttribute("style")||"")||t(l,`direction:${s}`)}),`<div dir="${s}" style="direction:${s};text-align:${s==="rtl"?"right":"left"}">${e.innerHTML}</div>`}setContent(t){this.ed.innerHTML=t||"<p><br></p>",this.refreshState(),this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar(),this.onChange()}insertContent(t){this.restoreSel(),document.execCommand("insertHTML",!1,t),this.saveSel(),this.refreshState(),this.onChange()}setLanguage(t){this.lang=t,this.initUI()}focus(){this.ed.focus()}async importWordFile(t){const e=await gi(t);this.recordRevision(),this.setContent(e),this.recordRevision()}restoreDraft(){let t=null;try{t=localStorage.getItem(this.draftStorageKey)}catch{}if(!t)return!1;try{const e=JSON.parse(t);return e.html?(this.recordRevision(),this.setContent(e.html),!0):!1}catch{return!1}}getRevisions(){return this.revisions.slice()}destroy(){this.isDestroyed||(this.isDestroyed=!0,this.revTimer!=null&&window.clearTimeout(this.revTimer),this.draftTimer!=null&&window.clearTimeout(this.draftTimer),this.closePop(),this.closeDlg(),this.clearTableHandles(),this.clearImageHandles(),this.clearImgPlaceholderSel(),this.clearTplSel(),this.clearVphPlaceholderSel(),this.clearVidHandles(),this.clearCodeSel(),this.clearSelToolbar(),this.listeners.forEach(t=>t()),this.listeners=[],this.shell&&this.shell.parentNode&&this.shell.parentNode.removeChild(this.shell),this.imgInput&&this.imgInput.parentNode&&this.imgInput.parentNode.removeChild(this.imgInput),this.vidInput&&this.vidInput.parentNode&&this.vidInput.parentNode.removeChild(this.vidInput),this.docInput&&this.docInput.parentNode&&this.docInput.parentNode.removeChild(this.docInput),this.contentStyleEl=null)}saveSel(){const t=window.getSelection();t&&t.rangeCount&&this.ed.contains(t.anchorNode)&&(this.savedRange=t.getRangeAt(0).cloneRange())}restoreSel(){if(!this.savedRange){this.ed.focus();return}this.ed.focus();const t=window.getSelection();t&&(t.removeAllRanges(),t.addRange(this.savedRange))}exec(t,e){this.restoreSel(),document.execCommand("styleWithCSS",!1,t!=="fontSize"?"true":"false"),document.execCommand(t,!1,e??void 0),this.saveSel(),this.refreshState(),this.onChange()}closestBlock(t){for(;t&&t!==this.ed;){if(t.nodeType===1&&/^(P|DIV|H[1-6]|LI|PRE|BLOCKQUOTE|TD|TH)$/i.test(t.tagName))return t;t=t.parentNode}return null}tryExitBlockquote(t){const e=window.getSelection();if(!e||!e.isCollapsed||!e.anchorNode||!this.ed.contains(e.anchorNode))return;const i=this.closestBlock(e.anchorNode);if(!i||i.tagName==="BLOCKQUOTE"||(i.textContent||"").trim()!=="")return;const s=i.closest("blockquote");if(!s||!this.ed.contains(s)||i!==s.lastElementChild)return;t.preventDefault();const n=document.createElement("p");n.appendChild(document.createElement("br")),s.after(n),i.remove(),s.firstElementChild||s.remove();const l=document.createRange();l.setStart(n,0),l.collapse(!0),e.removeAllRanges(),e.addRange(l),this.saveSel(),this.onChange()}selectedBlocks(){const t=window.getSelection();if(!t||!t.rangeCount||!this.ed.contains(t.anchorNode))return[];const e=t.getRangeAt(0),i=Array.from(this.ed.querySelectorAll("p,h1,h2,h3,h4,h5,h6,li,pre,blockquote,td,th")).filter(s=>e.intersectsNode(s));if(!i.length){const s=this.closestBlock(t.anchorNode);if(s)return[s]}return i}onChange(){this.options.onChange(this.ed.innerHTML),this.scheduleRevision(),this.scheduleDraftSave()}recordRevision(){const t=this.ed.innerHTML,e=this.revisions[this.revisions.length-1];e&&e.html===t||(this.revisions.push({time:Date.now(),html:t}),this.revisions.length>30&&this.revisions.shift())}scheduleRevision(){this.revTimer!=null&&window.clearTimeout(this.revTimer),this.revTimer=window.setTimeout(()=>{this.revTimer=null,this.recordRevision()},1500)}scheduleDraftSave(){this.draftTimer!=null&&window.clearTimeout(this.draftTimer),this.draftTimer=window.setTimeout(()=>{this.draftTimer=null;try{localStorage.setItem(this.draftStorageKey,JSON.stringify({time:Date.now(),html:this.ed.innerHTML}))}catch{}},800)}revisionDlg(){this.recordRevision(),this.dialog(this.t("revhistory"),t=>{if(!this.revisions.length){t.innerHTML=`<p style="color:#556">${this.t("revempty")}</p>`;return}const e=document.createElement("div");e.className="revwrap";const i=document.createElement("div");i.className="revlist";const s=document.createElement("div");s.className="revprev";const n=document.createElement("button");n.type="button",n.className="revrestore",n.textContent=this.t("restore");let l=this.revisions.length-1;const r=new Intl.DateTimeFormat(this.lang==="ar"?"ar-AE":"en-GB",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}),o={},c=d=>{l=d,this.revisions.forEach((u,m)=>{var b;return(b=o[m])==null?void 0:b.classList.toggle("on",m===d)}),s.innerHTML=this.revisions[d].html,n.disabled=d===this.revisions.length-1};for(let d=this.revisions.length-1;d>=0;d--){const u=this.revisions[d],m=document.createElement("button");m.type="button";const b=(new DOMParser().parseFromString(u.html,"text/html").body.textContent||"").trim(),y=b?b.split(/\s+/).length:0,g=d===this.revisions.length-1;m.innerHTML=`<span>${g?this.t("currentver"):r.format(new Date(u.time))}</span><span class="wc">${y} ${this.t("words")}</span>`,m.addEventListener("click",()=>c(d)),o[d]=m,i.appendChild(m)}i.append(n),n.addEventListener("click",()=>{const d=this.revisions[l];d&&(this.recordRevision(),this.setContent(d.html),this.recordRevision(),this.closeDlg())}),e.append(i,s),t.appendChild(e),c(l)})}closeSub(){this.closeSubFrom(0)}closeSubFrom(t){for(;this.subStack.length>t;)this.subStack.pop().remove()}subContains(t){return this.subStack.some(e=>e.contains(t))}subLevelOf(t){if(t===this.openPop)return 0;const e=this.subStack.indexOf(t);return e===-1?this.subStack.length:e+1}closePop(){var t;this.closeSub(),this.openPop&&(this.openPop.remove(),this.openPop=null,(t=this.popAnchor)==null||t.classList.remove("open"),this.popAnchor=null,this.setOpTarget(null))}openSubFor(t,e){const i=e.getBoundingClientRect(),s=e.closest(".pop");this.closeSubFrom(s?this.subLevelOf(s):0);const n=document.createElement("div");n.className="pop sub",n.dir=this.dir(),t.subBuild?t.subBuild(n):t.sub&&this.menuItems(n,t.sub),n.addEventListener("mousedown",c=>{c.target.tagName!=="INPUT"&&c.preventDefault()}),document.body.appendChild(n);let r=this.dir()==="rtl"?i.left-n.offsetWidth+2:i.right-2;r=Math.max(8,Math.min(r+scrollX,scrollX+innerWidth-n.offsetWidth-8));let o=i.top+scrollY-6;o=Math.max(8+scrollY,Math.min(o,scrollY+innerHeight-n.offsetHeight-8)),n.style.left=r+"px",n.style.top=o+"px",this.subStack.push(n)}popup(t,e,i){if(this.openPop&&this.popAnchor===t){this.closePop();return}this.closePop();const s=document.createElement("div");s.className="pop"+(i?" "+i:""),s.dir=this.dir(),e(s),document.body.appendChild(s);const n=t.getBoundingClientRect();s.style.minWidth=Math.max(160,Math.round(n.width))+"px";let l=n.bottom+scrollY+2;l=Math.max(8+scrollY,Math.min(l,scrollY+innerHeight-s.offsetHeight-8)),s.style.top=l+"px";let o=this.dir()==="rtl"?n.right-s.offsetWidth:n.left;o=Math.max(8,Math.min(o+scrollX,scrollX+innerWidth-s.offsetWidth-8)),s.style.left=o+"px",s.addEventListener("mousedown",c=>{c.target.tagName!=="INPUT"&&c.preventDefault()}),this.openPop=s,this.popAnchor=t,t.classList.add("open")}menuItems(t,e){e.forEach(i=>{if(i==="|"){t.insertAdjacentHTML("beforeend",'<div class="sep"></div>');return}const s=!!(i.sub||i.subBuild),n=document.createElement("button");n.className="mi"+(i.on?" on":""),n.innerHTML=`<span class="ic">${i.icon||""}</span><span class="prev" ${i.previewStyle?`style="${i.previewStyle}"`:""}>${i.label}</span>${i.shortcut?`<span class="sc">${i.shortcut}</span>`:""}${s?`<span class="subarrow">${h.chev}</span>`:""}`,n.addEventListener("click",()=>{i.action&&(this.closePop(),i.action())}),n.addEventListener("mouseenter",()=>{var l;s?this.openSubFor(i,n):this.closeSubFrom(this.subLevelOf(t)),(l=i.hover)==null||l.call(i,!0)}),n.addEventListener("mouseleave",()=>{var l;return(l=i.hover)==null?void 0:l.call(i,!1)}),t.appendChild(n)})}tbtn(t,e,i,s){const n=document.createElement("button");return n.className="tbtn",n.type="button",n.title=e,n.innerHTML=t,s&&(n.dataset.id=s),n.addEventListener("mousedown",l=>l.preventDefault()),n.addEventListener("click",i),n}stepBtn(t){const e=t>0?"+":"−",i=t>0?h.fontsizeup:h.fontsizedown,s=this.tbtn(i,this.t("fontsize")+" "+e,()=>this.stepFontSize(t));return s.addEventListener("mousedown",()=>this.saveSel()),s}menuTbtn(t,e,i,s){const n=this.tbtn(t,e,()=>i(n),s);return n.classList.add("hasmenu"),n.insertAdjacentHTML("beforeend",h.chev),n.addEventListener("mousedown",()=>this.saveSel()),n}colorChips(){const t=s=>{const n=document.createElement("button");return n.type="button",n.className="cchip",n.title=s,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n},e=Qe.map(s=>{const n=t(this.t("forecolor"));return n.style.background=s,n.addEventListener("click",()=>this.applyColor("fore",s)),n}),i=t(this.t("forecolor"));return i.classList.add("more"),i.dataset.cb="fore",i.innerHTML=h.chev,i.addEventListener("click",()=>this.colorMenu(i,"fore")),[...e,i]}group(...t){const e=document.createElement("div");return e.className="tgrp",t.forEach(i=>{i.classList.add("gbtn"),e.appendChild(i)}),e}tsel(t,e,i,s){const n=document.createElement("button");return n.className="tsel "+t,n.type="button",n.dataset.id=e,n.innerHTML=`<span class="lbl empty">${i||""}</span>${h.chev}`,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n.addEventListener("click",()=>s(n)),n}setListStyle(t,e){var n,l;this.restoreSel();const i=window.getSelection();if(!i)return;let s=(n=this.closestBlock(i.anchorNode))==null?void 0:n.closest(t);s||(this.exec(t==="ol"?"insertOrderedList":"insertUnorderedList"),s=(l=this.closestBlock(i.anchorNode))==null?void 0:l.closest(t)),s&&(s.style.listStyleType=e),this.saveSel(),this.onChange()}listMenu(t,e){var c;const i=e==="ol"?"insertOrderedList":"insertUnorderedList",s=e==="ol"?[["lower-alpha",h.ol_alpha],["lower-roman",h.ol_roman],["upper-alpha",h.ol_alphau],["upper-roman",h.ol_romanu]]:[["circle",h.ul_circle],["square",h.ul_square]],n=this.tArr(e==="ol"?"liststyles_ol":"liststyles_ul").slice(1),l=window.getSelection(),r=l?(c=this.closestBlock(l.anchorNode))==null?void 0:c.closest(e):null,o=r?r.style.listStyleType:"";this.popup(t,d=>{this.menuItems(d,[{label:this.t(e==="ol"?"numlist":"bullist"),icon:e==="ol"?h.numlist:h.bullist,on:document.queryCommandState(i),action:()=>this.exec(i)}]),d.insertAdjacentHTML("beforeend",'<div class="sep"></div>');const u=document.createElement("div");u.className="mi-grid",s.forEach(([m,b],y)=>{const g=document.createElement("button");g.className="mi"+(o===m?" on":""),g.innerHTML=`<span class="ic">${b}</span><span class="prev">${n[y]}</span>`,g.addEventListener("click",()=>{this.closePop(),this.setListStyle(e,m)}),u.appendChild(g)}),d.appendChild(u)})}buildPaletteInto(t,e,i){const s=document.createElement("div");s.className="cpal",Ge.forEach(u=>{const m=document.createElement("button");m.type="button",m.style.background=u,m.title=u,m.addEventListener("click",()=>{this.closePop(),i(u)}),s.appendChild(m)}),t.appendChild(s),t.insertAdjacentHTML("beforeend",'<div class="sep"></div>');const n=document.createElement("div");n.className="cfoot";const l=/^#[0-9a-f]{6}$/i.test(e)?e:"#000000",r=document.createElement("div");r.className="cswatch cur",r.title=this.t("currentcolor"),r.style.background=l,r.innerHTML=h.check;const o=document.createElement("button");o.type="button",o.className="cswatch nocolor",o.title=this.t("removecolor"),o.addEventListener("click",()=>{this.closePop(),i(null)});const c=document.createElement("label");c.className="cswatch cwheel",c.title=this.t("customcolor"),c.innerHTML=h.palette;const d=document.createElement("input");d.type="color",d.value=l,d.addEventListener("change",()=>{this.closePop(),i(d.value)}),c.appendChild(d),n.append(r,o,c),t.appendChild(n)}colorMenu(t,e){this.popup(t,i=>{const s=e==="fore"?this.foreColor:this.backColor;this.buildPaletteInto(i,s,n=>this.applyColor(e,n))},e==="fore"?"pop-forecolor":"pop-backcolor")}applyColor(t,e){t==="fore"?(this.foreColor=e||"#000000",this.exec("foreColor",e||"#000000")):(this.backColor=e||"transparent",this.exec("hiliteColor",e||"transparent")),this.syncColorSwatches(this.toolbar),this.selCtx&&this.syncColorSwatches(this.selCtx)}syncColorSwatches(t){t.querySelectorAll("[data-cb=fore]").forEach(e=>e.style.background=this.foreColor),t.querySelectorAll("[data-cb=back]").forEach(e=>e.style.background=this.backColor)}fontItems(){return this.options.fontFamilyFormats.map(([t,e])=>({label:t,previewStyle:`font-family:${e}`,on:this.currentFont()===t,action:()=>this.exec("fontName",e)}))}fontMenu(t){this.popup(t,e=>this.menuItems(e,this.fontItems()))}sizeItems(){return ze.map(t=>({label:t,on:this.currentSize()===t,action:()=>this.applyFontSize(t)}))}sizeMenu(t){this.popup(t,e=>this.menuItems(e,this.sizeItems()))}ensureSizeTarget(){const t=window.getSelection();if(!t)return;if(!t.rangeCount){const l=document.createRange();l.selectNodeContents(this.ed),l.collapse(!0),t.addRange(l)}if(!t.isCollapsed)return;const e=t.getRangeAt(0),i=e.startContainer;if(i.nodeType===3){const l=i.data;let r=e.startOffset,o=e.startOffset;for(;r>0&&/\S/.test(l[r-1]);)r--;for(;o<l.length&&/\S/.test(l[o]);)o++;if(o>r){const c=document.createRange();c.setStart(i,r),c.setEnd(i,o),t.removeAllRanges(),t.addRange(c),this.savedRange=c.cloneRange();return}}const s=document.createTextNode("​");e.insertNode(s);const n=document.createRange();n.setStart(s,0),n.setEnd(s,1),t.removeAllRanges(),t.addRange(n),this.savedRange=n.cloneRange()}applyFontSize(t){this.restoreSel(),this.ensureSizeTarget(),document.execCommand("styleWithCSS",!1,"false"),document.execCommand("fontSize",!1,"7");const e=[];if(this.ed.querySelectorAll('font[size="7"]').forEach(i=>{const s=document.createElement("span");for(s.style.fontSize=t;i.firstChild;)s.appendChild(i.firstChild);i.replaceWith(s),e.push(s)}),e.length){const i=document.createRange();i.setStart(e[0],0),i.setEnd(e[e.length-1],e[e.length-1].childNodes.length);const s=window.getSelection();s&&(s.removeAllRanges(),s.addRange(i))}this.saveSel(),this.refreshState(),this.onChange()}stepFontSize(t){const e=parseInt(this.currentSize(),10)||14,i=Math.min(Ye,Math.max(Xe,e+t));i!==e&&this.applyFontSize(i+"px")}transformCase(t){this.restoreSel();const e=window.getSelection();if(!e||!e.rangeCount||e.isCollapsed)return;const i=e.getRangeAt(0),s=document.createTreeWalker(this.ed,NodeFilter.SHOW_TEXT),n=[];let l;for(;l=s.nextNode();)i.intersectsNode(l)&&n.push(l);n.forEach(r=>{const o=r===i.startContainer?i.startOffset:0,c=r===i.endContainer?i.endOffset:r.data.length;if(c<=o)return;const d=r.data.slice(o,c);let u=d;t==="lower"?u=d.toLowerCase():t==="upper"?u=d.toUpperCase():u=d.replace(/(^|\s)(\S)/g,(m,b,y)=>b+y.toUpperCase()),r.replaceData(o,c-o,u)}),this.saveSel(),this.refreshState(),this.onChange()}caseItems(){return[{label:this.t("lowercase"),icon:h.lowercaseic,action:()=>this.transformCase("lower")},{label:this.t("uppercase"),icon:h.uppercaseic,action:()=>this.transformCase("upper")},{label:this.t("capitalize"),icon:h.capitalizeic,action:()=>this.transformCase("capitalize")}]}caseMenu(t){this.popup(t,e=>this.menuItems(e,this.caseItems()))}applyBlockStyle(t,e){this.restoreSel();const i=this.selectedBlocks(),s=t==="lineHeight"?"line-height":t==="wordSpacing"?"word-spacing":"letter-spacing";i.forEach(n=>{e?n.style[t]=e:n.style.removeProperty(s)}),this.saveSel(),this.onChange()}currentBlockStyle(t){const e=window.getSelection(),i=e?this.closestBlock(e.anchorNode):null;return i&&i.style[t]||""}blockStyleItems(t,e){const i=this.currentBlockStyle(t);return[{label:this.t("normal"),on:!i,action:()=>this.applyBlockStyle(t,"")},...e.map(s=>({label:s,on:i===s,action:()=>this.applyBlockStyle(t,s)}))]}lineHeightMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("lineHeight",Kt)))}wordSpacingMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("wordSpacing",Jt)))}letterSpacingMenu(t){this.popup(t,e=>this.menuItems(e,this.blockStyleItems("letterSpacing",te)))}closestAnchor(){const t=window.getSelection();let e=t&&this.ed.contains(t.anchorNode)?t.anchorNode:null;for(;e&&e!==this.ed;){if(e.nodeType===1&&e.tagName==="A")return e;e=e.parentNode}return null}linkDlg(){this.saveSel();const t=this.closestAnchor();let e;const i=[];t&&i.push({label:this.t("unlink"),action:()=>{const s=document.createRange();s.selectNodeContents(t);const n=window.getSelection();n&&(n.removeAllRanges(),n.addRange(s)),document.execCommand("unlink"),this.closeDlg(),this.onChange()}}),i.push({label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{const s=e.value.trim();if(this.closeDlg(),!s)return;if(t){t.setAttribute("href",s),this.onChange();return}this.restoreSel();const n=window.getSelection();!n||n.isCollapsed?document.execCommand("insertHTML",!1,`<a href="${s.replace(/"/g,"&quot;")}">${s.replace(/&/g,"&amp;").replace(/</g,"&lt;")}</a>`):(document.execCommand("styleWithCSS",!1,"false"),document.execCommand("createLink",!1,s)),this.saveSel(),this.onChange()}}),this.dialog(this.t("linkttl"),s=>{const n=document.createElement("div");n.style.cssText="display:flex;align-items:center;gap:10px;margin:10px 0;min-width:360px";const l=document.createElement("span");l.style.cssText="width:60px;color:#556;flex:none",l.textContent=this.t("linkurl"),e=document.createElement("input"),e.type="url",e.placeholder="https://",e.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit",e.value=(t==null?void 0:t.getAttribute("href"))||"",n.append(l,e),s.appendChild(n),setTimeout(()=>e.focus(),0)},i)}blockItems(){return ie.map(([t])=>({label:this.blockLabel(t),previewStyle:t.startsWith("h")?`font-weight:700;font-size:${22-2*+t[1]}px`:t==="pre"?"font-family:monospace":"",on:this.currentBlock()===t,action:()=>this.exec("formatBlock","<"+t+">")}))}blocksMenu(t){this.popup(t,e=>this.menuItems(e,this.blockItems()))}alignItems(){return[["justifyLeft","alignleft",h.alignleft],["justifyCenter","aligncenter",h.aligncenter],["justifyRight","alignright",h.alignright],["justifyFull","alignjustify",h.alignjustify]].map(([e,i,s])=>({label:this.t(i),icon:s,on:document.queryCommandState(e),action:()=>this.exec(e)}))}blockLabel(t){return t==="p"?this.t("para"):t==="pre"?this.t("pre"):this.t("heading")+" "+t[1]}tableGrid(t,e){this.popup(t,i=>this.buildTableGridInto(i,e))}buildTableGridInto(t,e){{const i=document.createElement("div");i.className="tgridwrap";const s=document.createElement("div");s.className="tgrid";const n=document.createElement("div");n.className="tgridlbl",n.textContent="1 × 1";const l=[];for(let r=0;r<8;r++)for(let o=0;o<10;o++){const c=document.createElement("span");c.dataset.r=String(r),c.dataset.c=String(o),c.addEventListener("mouseenter",()=>{l.forEach(d=>d.classList.toggle("hot",+d.dataset.r<=r&&+d.dataset.c<=o)),n.textContent=o+1+" × "+(r+1)}),c.addEventListener("click",()=>{this.closePop(),this.insertTable(r+1,o+1),e==null||e()}),l.push(c),s.appendChild(c)}i.append(s,n),t.appendChild(i)}}insertTable(t,e){this.restoreSel();let i='<table style="border-collapse:collapse;width:100%;table-layout:fixed"><tbody>';for(let s=0;s<t;s++){i+="<tr>";for(let n=0;n<e;n++)i+='<td style="border:1px solid #b9c2cc"><br></td>';i+="</tr>"}i+="</tbody></table><p><br></p>",document.execCommand("insertHTML",!1,i),this.saveSel(),this.onChange()}setDir(t){this.restoreSel();const e=this.selectedBlocks();e.length?e.forEach(i=>i.setAttribute("dir",t)):this.ed.setAttribute("dir",t),this.saveSel(),this.refreshState(),this.onChange()}parseToolbarString(t){return t.split("|").map(e=>e.trim().split(/\s+/).filter(Boolean)).filter(e=>e.length>0)}buildToolbarRegistry(){const t=this.tbtn(h.tableic,this.t("quicktable"),()=>this.tableGrid(t)),e={undo:()=>this.tbtn(h.undo,this.t("undo"),()=>this.exec("undo"),"undo"),redo:()=>this.tbtn(h.redo,this.t("redo"),()=>this.exec("redo"),"redo"),preview:()=>this.tbtn(h.prevw,this.t("preview"),()=>this.previewDlg()),print:()=>this.tbtn(h.printic,this.t("print"),()=>this.printDoc()),importword:()=>this.tbtn(h.wordic,this.t("importword"),()=>this.pickWordDoc()),revhistory:()=>this.tbtn(h.historyic,this.t("revhistory"),()=>this.revisionDlg()),fontfamily:()=>this.tsel("w-font","fontsel","",i=>this.fontMenu(i)),fontsize:()=>this.tsel("w-size","sizesel","",i=>this.sizeMenu(i)),fontsizeincrease:()=>this.stepBtn(1),fontsizedecrease:()=>this.stepBtn(-1),bold:()=>this.tbtn(h.bold,this.t("bold"),()=>this.exec("bold"),"bold"),italic:()=>this.tbtn(h.italic,this.t("italic"),()=>this.exec("italic"),"italic"),underline:()=>this.tbtn(h.underline,this.t("underline"),()=>this.exec("underline"),"underline"),strikethrough:()=>this.tbtn(h.strikethrough,this.t("strikethrough"),()=>this.exec("strikeThrough"),"strikeThrough"),forecolor:()=>this.colorChips(),backcolor:()=>this.menuTbtn(h.backcolor+'<span class="colorbar" data-cb="back"></span>',this.t("backcolor"),i=>this.colorMenu(i,"back")),alignleft:()=>this.tbtn(h.alignleft,this.t("alignleft"),()=>this.exec("justifyLeft"),"justifyLeft"),aligncenter:()=>this.tbtn(h.aligncenter,this.t("aligncenter"),()=>this.exec("justifyCenter"),"justifyCenter"),alignright:()=>this.tbtn(h.alignright,this.t("alignright"),()=>this.exec("justifyRight"),"justifyRight"),alignjustify:()=>this.tbtn(h.alignjustify,this.t("alignjustify"),()=>this.exec("justifyFull"),"justifyFull"),bullist:()=>this.menuTbtn(h.bullist,this.t("bullist"),i=>this.listMenu(i,"ul"),"insertUnorderedList"),numlist:()=>this.menuTbtn(h.numlist,this.t("numlist"),i=>this.listMenu(i,"ol"),"insertOrderedList"),outdent:()=>this.tbtn(h.outdent,this.t("outdent"),()=>this.exec("outdent")),indent:()=>this.tbtn(h.indent,this.t("indent"),()=>this.exec("indent")),link:()=>this.tbtn(h.link,this.t("linkttl"),()=>this.linkDlg()),blockquote:()=>this.tbtn(h.quote,this.t("quote"),()=>this.toggleBlock("blockquote"),"blockquote"),code:()=>this.tbtn(h.inlinecodeic,this.t("code"),()=>this.toggleInlineCode(),"code"),codesample:()=>this.tbtn(h.codesampleic,this.t("codesample"),()=>this.codeDlg()),changecase:()=>this.menuTbtn(h.caseic,this.t("changecase"),i=>this.caseMenu(i)),lineheight:()=>this.menuTbtn(h.lineheight,this.t("lineheight"),i=>this.lineHeightMenu(i)),wordspacing:()=>this.menuTbtn(h.wordspacing,this.t("wordspacing"),i=>this.wordSpacingMenu(i)),letterspacing:()=>this.menuTbtn(h.letterspacing,this.t("letterspacing"),i=>this.letterSpacingMenu(i)),removeformat:()=>this.tbtn(h.clearformatic,this.t("removeformat"),()=>this.exec("removeFormat")),blocks:()=>this.tsel("w-block","blocksel",this.t("para"),i=>this.blocksMenu(i)),ltr:()=>this.tbtn(h.ltr,this.t("ltr"),()=>this.setDir("ltr"),"ltr"),rtl:()=>this.tbtn(h.rtl,this.t("rtl"),()=>this.setDir("rtl"),"rtl"),quickimage:()=>this.tbtn(h.image,this.t("quickimage"),()=>this.insertImagePlaceholder()),quickvideo:()=>this.tbtn(h.video,this.t("quickvideo"),()=>this.videoDlg()),quicktable:()=>t,template:()=>this.menuTbtn(h.templateic,this.t("template"),i=>this.templateMenu(i)),charmap:()=>this.tbtn(h.charic,this.t("charmap"),()=>this.charMap()),emoji:()=>this.tbtn(h.emojiic,this.t("emoji"),()=>this.emojiMap()),fullscreen:()=>this.tbtn(h.fullscreen,this.t("fullscreen"),()=>this.toggleFullscreen(),"fullscreen"),sourcecode:()=>this.tbtn(h.srcic,this.t("sourcecode"),()=>this.sourceDlg())};return e.styles=e.blocks,e.image=e.quickimage,e.media=e.quickvideo,e.table=e.quicktable,e}buildToolbar(){this.toolbar.innerHTML="";const t=this.options.toolbar===!0?We:this.options.toolbar,e=this.buildToolbarRegistry();this.parseToolbarString(t).forEach(i=>{const s=[];i.forEach(n=>{const l=e[n];if(!l){console.warn(`FableEditor: unknown toolbar item "${n}"`);return}const r=l();Array.isArray(r)?s.push(...r):s.push(r)}),s.length&&this.toolbar.appendChild(this.group(...s))}),this.tbrMore=this.tbtn(h.more,this.t("more"),()=>{this.tbrExpanded=!this.tbrExpanded,this.updateToolbarOverflow()}),this.tbrMore.classList.add("tbr-more"),this.toolbar.appendChild(this.tbrMore),this.syncColorSwatches(this.toolbar),this.updateToolbarOverflow()}updateToolbarOverflow(){const t=this.toolbar;if(!this.tbrMore)return;t.classList.add("tbr-measure");const e=t.scrollWidth>t.clientWidth+1;t.classList.remove("tbr-measure");const i=this.shell.offsetWidth<W.TBR_COLLAPSE_MAX;if(!e||!i){this.tbrExpanded=!1,t.classList.remove("collapsible","expanded"),this.tbrMore.classList.remove("on");return}t.classList.add("collapsible"),t.classList.toggle("expanded",this.tbrExpanded),this.tbrMore.classList.toggle("on",this.tbrExpanded)}mItem(t,e,i,s){return{label:this.t(t),icon:e,action:i,shortcut:s}}buildMenubar(){this.menubar.innerHTML="";const t={file:[this.mItem("newdoc",h.newic,()=>{this.recordRevision(),this.ed.innerHTML="<p><br></p>",this.onChange()}),"|",this.mItem("importword",h.wordic,()=>this.pickWordDoc()),this.mItem("restoredraft",h.draftic,()=>{this.restoreDraft()||alert(this.t("draftempty"))}),this.mItem("revhistory",h.historyic,()=>this.revisionDlg()),"|",this.mItem("preview",h.prevw,()=>this.previewDlg()),this.mItem("print",h.printic,()=>this.printDoc(),"Ctrl+P")],edit:[this.mItem("undo",h.undo,()=>this.exec("undo"),"Ctrl+Z"),this.mItem("redo",h.redo,()=>this.exec("redo"),"Ctrl+Y"),"|",this.mItem("cut",h.cutic,()=>this.exec("cut"),"Ctrl+X"),this.mItem("copy",h.copyic,()=>this.exec("copy"),"Ctrl+C"),this.mItem("paste",h.pasteic,()=>alert(this.t("pastehint")),"Ctrl+V"),"|",this.mItem("selectall",h.selall,()=>this.exec("selectAll"),"Ctrl+A")],view:[this.mItem("fullscreen",h.fullscreen,()=>this.toggleFullscreen()),this.mItem("preview",h.prevw,()=>this.previewDlg()),this.mItem("sourcecode",h.srcic,()=>this.sourceDlg())],insert:[this.mItem("link",h.link,()=>this.linkDlg()),this.mItem("image",h.image,()=>this.insertImagePlaceholder()),this.mItem("video",h.video,()=>this.videoDlg()),{label:this.t("inserttable"),icon:h.tableic,action:()=>this.tableGrid(this.menubar.querySelector('[data-menu-key="table"]')||this.menubar)},this.mItem("codesample",h.codesampleic,()=>this.codeDlg()),{label:this.t("template"),icon:h.templateic,subBuild:s=>this.buildTemplatePickInto(s)},this.mItem("hr",h.hric,()=>this.exec("insertHorizontalRule")),"|",this.mItem("charmap",h.charic,()=>this.charMap()),this.mItem("emoji",h.emojiic,()=>this.emojiMap()),this.mItem("datetime",h.dateic,()=>this.exec("insertText",new Date().toLocaleString(this.lang==="ar"?"ar-AE":"en-GB"))),"|",{label:this.t("pagebreak"),icon:h.pbic,action:()=>{this.restoreSel(),document.execCommand("insertHTML",!1,'<hr class="pagebreak"><p><br></p>'),this.onChange()}},this.mItem("nbsp",h.nbspic,()=>this.exec("insertText"," "))],format:[this.mItem("bold",h.bold,()=>this.exec("bold"),"Ctrl+B"),this.mItem("italic",h.italic,()=>this.exec("italic"),"Ctrl+I"),this.mItem("underline",h.underline,()=>this.exec("underline"),"Ctrl+U"),this.mItem("strikethrough",h.strikethrough,()=>this.exec("strikeThrough")),this.mItem("superscript",h.superscriptic,()=>this.exec("superscript")),this.mItem("subscript",h.subscriptic,()=>this.exec("subscript")),this.mItem("code",h.inlinecodeic,()=>this.toggleInlineCode()),this.mItem("quote",h.quote,()=>this.toggleBlock("blockquote")),"|",{label:this.t("fontfamily"),subBuild:s=>this.menuItems(s,this.fontItems())},{label:this.t("fontsize"),subBuild:s=>this.menuItems(s,this.sizeItems())},{label:this.t("blocks"),subBuild:s=>this.menuItems(s,this.blockItems())},{label:this.t("align"),subBuild:s=>this.menuItems(s,this.alignItems())},{label:this.t("lineheight"),icon:h.lineheight,subBuild:s=>this.menuItems(s,this.blockStyleItems("lineHeight",Kt))},{label:this.t("wordspacing"),icon:h.wordspacing,subBuild:s=>this.menuItems(s,this.blockStyleItems("wordSpacing",Jt))},{label:this.t("letterspacing"),icon:h.letterspacing,subBuild:s=>this.menuItems(s,this.blockStyleItems("letterSpacing",te))},"|",{label:this.t("forecolor"),icon:h.palette,subBuild:s=>this.buildPaletteInto(s,this.foreColor,n=>this.applyColor("fore",n))},{label:this.t("backcolor"),icon:h.backcolor,subBuild:s=>this.buildPaletteInto(s,this.backColor,n=>this.applyColor("back",n))},"|",this.mItem("bullist",h.bullist,()=>this.exec("insertUnorderedList")),this.mItem("numlist",h.numlist,()=>this.exec("insertOrderedList")),this.mItem("outdent",h.outdent,()=>this.exec("outdent")),this.mItem("indent",h.indent,()=>this.exec("indent")),"|",this.mItem("ltr",h.ltr,()=>this.setDir("ltr")),this.mItem("rtl",h.rtl,()=>this.setDir("rtl")),"|",{label:this.t("changecase"),icon:h.caseic,sub:this.caseItems()},"|",this.mItem("clearformat",h.clearformatic,()=>this.exec("removeFormat"))],tools:[this.mItem("sourcecode",h.srcic,()=>this.sourceDlg()),this.mItem("wordcount",h.wcic,()=>this.wordCountDlg())],table:[{label:this.t("inserttable"),icon:h.tableic,subBuild:s=>this.buildTableGridInto(s)},"|",{label:this.t("cell"),sub:[{label:this.t("cellprops"),icon:h.tableic,action:()=>this.cellPropsDlg()},{label:this.t("cellbg"),icon:h.palette,subBuild:s=>this.buildCellFillInto(s)}]},{label:this.t("row"),sub:[{label:this.t("rowabove"),icon:h.rowbefore,action:()=>this.tableOp("rowabove"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("rowbelow"),icon:h.rowafter,action:()=>this.tableOp("rowbelow"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("delrow"),icon:h.rowdelete,action:()=>this.tableOp("delrow"),hover:s=>this.setOpTarget(s?"row":null)},"|",{label:this.t("moverowup"),icon:h.moverowup,action:()=>this.tableMove("rowup"),hover:s=>this.setOpTarget(s?"row":null)},{label:this.t("moverowdown"),icon:h.moverowdown,action:()=>this.tableMove("rowdown"),hover:s=>this.setOpTarget(s?"row":null)},"|",{label:this.t("rowprops"),icon:h.tableic,action:()=>this.rowPropsDlg(),hover:s=>this.setOpTarget(s?"row":null)}]},{label:this.t("column"),sub:[{label:this.t("colbefore"),icon:h.colbefore,action:()=>this.tableOp("colbefore"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("colafter"),icon:h.colafter,action:()=>this.tableOp("colafter"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("delcol"),icon:h.coldelete,action:()=>this.tableOp("delcol"),hover:s=>this.setOpTarget(s?"col":null)},"|",{label:this.t("movecolleft"),icon:h.movecolleft,action:()=>this.tableMove("colleft"),hover:s=>this.setOpTarget(s?"col":null)},{label:this.t("movecolright"),icon:h.movecolright,action:()=>this.tableMove("colright"),hover:s=>this.setOpTarget(s?"col":null)},"|",{label:this.t("colprops"),icon:h.tableic,action:()=>this.colPropsDlg(),hover:s=>this.setOpTarget(s?"col":null)}]},"|",{label:this.t("tablepropsttl"),icon:h.tableic,action:()=>{const s=this.currentCell();if(!s){alert(this.t("nocell"));return}this.tblActive=s.closest("table"),this.tablePropsDlg()}},{label:this.t("deltable"),icon:h.trash,action:()=>this.tableOp("deltable")}],help:[this.mItem("helpttl",h.helpic,()=>this.helpDlg(),"Alt+0")]},e=this.options.menubar===!0?Ve:this.options.menubar,i=new Set;e.split(/\s+/).filter(Boolean).forEach(s=>{if(i.has(s))return;if(i.add(s),!t[s]){console.warn(`FableEditor: unknown menubar item "${s}"`);return}const n=document.createElement("button");n.type="button",n.textContent=this.t(s),n.dataset.menuKey=s,n.addEventListener("mousedown",l=>{l.preventDefault(),this.saveSel()}),n.addEventListener("click",()=>this.popup(n,l=>this.menuItems(l,t[s]))),this.menubar.appendChild(n)})}tableOp(t){var o,c,d;this.restoreSel();const e=window.getSelection();if(!e)return;const i=((o=this.closestBlock(e.anchorNode))==null?void 0:o.closest("td,th"))||(e.anchorNode&&e.anchorNode.nodeType===1?(d=(c=e.anchorNode).closest)==null?void 0:d.call(c,"td,th"):null);if(!i)return;const s=i.parentElement,n=i.closest("table"),l=Array.from(s.children).indexOf(i),r=()=>{const u=s.cloneNode(!1);return Array.from(s.children).forEach(m=>{const b=document.createElement("td"),y=m.getAttribute("style");y&&b.setAttribute("style",y),b.style.removeProperty("background-color"),b.innerHTML="<br>",u.appendChild(b)}),u};if(t==="rowabove"&&s.before(r()),t==="rowbelow"&&s.after(r()),t==="delrow"){const u=s.parentElement;s.remove(),u.querySelector("tr")||n.remove()}(t==="colbefore"||t==="colafter")&&n.querySelectorAll("tr").forEach(u=>{const m=u.children[Math.min(l,u.children.length-1)],b=document.createElement("td"),y=m.getAttribute("style");y&&b.setAttribute("style",y),b.style.removeProperty("width"),b.style.removeProperty("background-color"),b.innerHTML="<br>",t==="colbefore"?m.before(b):m.after(b)}),t==="delcol"&&(n.querySelectorAll("tr").forEach(u=>{var m;return(m=u.children[l])==null?void 0:m.remove()}),n.querySelector("td,th")||n.remove()),t==="deltable"&&n.remove(),this.onChange(),this.positionTableHandles()}tableMove(t){this.restoreSel();const e=this.currentCell();if(!e)return;const i=e.parentElement,s=e.closest("table"),n=Array.from(i.children).indexOf(e);if(t==="rowup"){const o=i.previousElementSibling;o&&o.before(i)}if(t==="rowdown"){const o=i.nextElementSibling;o&&o.after(i)}t==="colleft"&&n>0&&s.querySelectorAll("tr").forEach(o=>{const c=o.children[n],d=o.children[n-1];c&&d&&d.before(c)}),t==="colright"&&s.querySelectorAll("tr").forEach(o=>{const c=o.children[n],d=o.children[n+1];c&&d&&d.after(c)});const l=document.createRange();l.selectNodeContents(e),l.collapse(!0);const r=window.getSelection();r&&(r.removeAllRanges(),r.addRange(l)),this.saveSel(),this.onChange(),this.positionTableHandles(),this.positionCellMarker()}alignTable(t){const e=this.tblActive;e&&(e.style.marginLeft=t==="left"?"0":"auto",e.style.marginRight=t==="right"?"0":"auto",this.onChange(),this.positionTableHandles())}buildCellFillInto(t){const e=s=>{const n=this.currentCell();if(!n){alert(this.t("nocell"));return}this.setOrClear(n,"background-color",s||""),this.onChange()},i=this.currentCell();this.buildPaletteInto(t,this.cssToHex(i?i.style.backgroundColor:""),e)}cssToHex(t){const e=t.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);return e?"#"+e.slice(1,4).map(i=>(+i).toString(16).padStart(2,"0")).join(""):t}cellFillMenu(t){this.popup(t,e=>this.buildCellFillInto(e),"pop-cellbg")}applyTableProps(t,e){e.width?t.style.width=/^\d+$/.test(e.width)?e.width+"px":e.width:t.style.removeProperty("width");const i=Array.from(t.querySelectorAll("td,th"));e.cellpadding!==""?i.forEach(s=>s.style.padding=e.cellpadding+"px"):i.forEach(s=>s.style.removeProperty("padding")),e.cellspacing!==""?(t.style.borderCollapse="separate",t.style.borderSpacing=e.cellspacing+"px"):(t.style.borderCollapse="collapse",t.style.removeProperty("border-spacing")),e.border!==""&&+e.border>0?(t.style.border=e.border+"px solid #b9c2cc",i.forEach(s=>s.style.border=e.border+"px solid #b9c2cc")):(t.style.removeProperty("border"),i.forEach(s=>s.style.removeProperty("border"))),t.style.removeProperty("margin-left"),t.style.removeProperty("margin-right"),e.align==="center"?(t.style.marginLeft="auto",t.style.marginRight="auto"):e.align==="right"?(t.style.marginLeft="auto",t.style.marginRight="0"):e.align==="left"&&(t.style.marginLeft="0",t.style.marginRight="auto")}tablePropsDlg(){const t=this.tblActive;if(!t)return;let e,i,s,n,l;const r="display:flex;align-items:center;gap:10px;margin:10px 0",o="width:120px;color:#556;flex:none",c="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit",d=t.querySelector("td,th"),u=t.style.width||"",m=d&&d.style.padding?parseFloat(d.style.padding):"",b=t.style.borderSpacing?parseFloat(t.style.borderSpacing):"",y=t.style.borderWidth?parseFloat(t.style.borderWidth):"",g=t.style.marginLeft,x=t.style.marginRight,w=g==="auto"&&x==="auto"?"center":g==="auto"?"right":x==="auto"&&g==="0"?"left":"";this.dialog(this.t("tablepropsttl"),E=>{const I=(H,j)=>{const F=document.createElement("div");F.style.cssText=r;const _=document.createElement("span");_.style.cssText=o,_.textContent=this.t(H),F.append(_,j),E.appendChild(F)};e=document.createElement("input"),e.type="text",e.style.cssText=c,e.placeholder="e.g. 600px or 100%",e.value=u,I("tblwidth",e),i=document.createElement("input"),i.type="number",i.min="0",i.style.cssText=c,i.value=String(m),I("tblcellpadding",i),s=document.createElement("input"),s.type="number",s.min="0",s.style.cssText=c,s.value=String(b),I("tblcellspacing",s),n=document.createElement("input"),n.type="number",n.min="0",n.style.cssText=c,n.value=String(y),I("tblborder",n),l=document.createElement("select"),l.style.cssText=c,[["","alignnone"],["left","alignleft"],["center","aligncenter"],["right","alignright"]].forEach(([H,j])=>{const F=document.createElement("option");F.value=H,F.textContent=this.t(j),H===w&&(F.selected=!0),l.appendChild(F)}),I("tblalign",l)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.applyTableProps(t,{width:e.value.trim(),cellpadding:i.value.trim(),cellspacing:s.value.trim(),border:n.value.trim(),align:l.value}),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}currentCell(){let t=this.savedRange?this.savedRange.startContainer:null;if(!t||!this.ed.contains(t)){const e=window.getSelection();t=e&&this.ed.contains(e.anchorNode)?e.anchorNode:null}for(;t&&t!==this.ed;){if(t.nodeType===1&&/^(TD|TH)$/.test(t.tagName))return t;t=t.parentNode}return null}toHexColor(t){if(/^#[0-9a-fA-F]{6}$/.test(t))return t;const e=/rgba?\((\d+)[,\s]+(\d+)[,\s]+(\d+)/.exec(t);return e?"#"+[e[1],e[2],e[3]].map(i=>(+i).toString(16).padStart(2,"0")).join(""):""}formRow(t,e,i){const s=document.createElement("div");s.style.cssText="display:flex;align-items:center;gap:10px;margin:10px 0;min-width:360px";const n=document.createElement("span");n.style.cssText="width:120px;color:#556;flex:none",n.textContent=e,s.append(n,i),t.appendChild(s)}formInput(t,e=""){const i=document.createElement("input");return i.type="text",i.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit;min-width:0",i.value=t,i.placeholder=e,i}formSelect(t,e){const i=document.createElement("select");return i.style.cssText="flex:1;border:1px solid #cfd6df;border-radius:6px;padding:7px 9px;font:14px inherit;background:#fff",t.forEach(([s,n])=>{const l=document.createElement("option");l.value=s,l.textContent=n,s===e&&(l.selected=!0),i.appendChild(l)}),i}formBg(t){const e=document.createElement("div");e.style.cssText="flex:1;display:flex;align-items:center;gap:8px";const i=this.toHexColor(t),s=document.createElement("input");s.type="color",s.value=i||"#ffffff",s.style.cssText="width:36px;height:29px;border:1px solid #cfd6df;border-radius:4px;padding:1px;background:none;cursor:pointer";const n=document.createElement("label");n.style.cssText="display:flex;align-items:center;gap:6px;cursor:pointer;color:#556";const l=document.createElement("input");return l.type="checkbox",l.checked=!!i,n.append(l,document.createTextNode(this.t("fill"))),s.addEventListener("input",()=>l.checked=!0),e.append(s,n),{wrap:e,color:s,fill:l}}setOrClear(t,e,i){i?t.style.setProperty(e,/^(width|height)$/.test(e)&&/^\d+$/.test(i)?i+"px":i):t.style.removeProperty(e)}cellPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}let e,i,s,n,l;this.dialog(this.t("cellprops").replace("…",""),r=>{e=this.formInput(t.style.width,"e.g. 120px / 25%"),this.formRow(r,this.t("tblwidth"),e),i=this.formInput(t.style.height,"e.g. 40px"),this.formRow(r,this.t("tblheight"),i),s=this.formSelect([["",this.t("alignnone")],["left",this.t("alignleft")],["center",this.t("aligncenter")],["right",this.t("alignright")]],t.style.textAlign||""),this.formRow(r,this.t("tblalign"),s),n=this.formSelect([["",this.t("alignnone")],["top",this.t("valigntop")],["middle",this.t("valignmiddle")],["bottom",this.t("valignbottom")]],t.style.verticalAlign||""),this.formRow(r,this.t("valign"),n),l=this.formBg(t.style.backgroundColor||""),this.formRow(r,this.t("backcolor"),l.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.setOrClear(t,"width",e.value.trim()),this.setOrClear(t,"height",i.value.trim()),this.setOrClear(t,"text-align",s.value),this.setOrClear(t,"vertical-align",n.value),this.setOrClear(t,"background-color",l.fill.checked?l.color.value:""),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}rowPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}const e=t.parentElement;let i,s;this.dialog(this.t("rowprops").replace("…",""),n=>{i=this.formInput(e.style.height,"e.g. 40px"),this.formRow(n,this.t("tblheight"),i),s=this.formBg(e.style.backgroundColor||""),this.formRow(n,this.t("backcolor"),s.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.setOrClear(e,"height",i.value.trim()),this.setOrClear(e,"background-color",s.fill.checked?s.color.value:""),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}colPropsDlg(){const t=this.currentCell();if(!t){alert(this.t("nocell"));return}const e=t.parentElement,i=t.closest("table"),s=Array.from(e.children).indexOf(t),n=Array.from(i.rows).map(o=>o.cells[s]).filter(Boolean);let l,r;this.dialog(this.t("colprops").replace("…",""),o=>{l=this.formInput(t.style.width,"e.g. 120px / 25%"),this.formRow(o,this.t("tblwidth"),l),r=this.formBg(t.style.backgroundColor||""),this.formRow(o,this.t("backcolor"),r.wrap)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{n.forEach(o=>{this.setOrClear(o,"width",l.value.trim()),this.setOrClear(o,"background-color",r.fill.checked?r.color.value:"")}),this.closeDlg(),this.onChange(),this.positionTableHandles()}}])}closeDlg(){this.dlgOvl&&(this.dlgOvl.remove(),this.dlgOvl=null)}dialog(t,e,i){this.closeDlg(),this.closePop(),this.dlgOvl=document.createElement("div"),this.dlgOvl.className="ovl";const s=document.createElement("div");s.className="dlg",s.dir=this.dir(),s.innerHTML=`<header><span>${t}</span><button type="button">×</button></header>
37
37
  <div class="body"></div><footer></footer>`,s.querySelector("header button").onclick=()=>this.closeDlg(),e(s.querySelector(".body")),(i||[{label:this.t("close"),primary:!0,action:()=>this.closeDlg()}]).forEach(n=>{const l=document.createElement("button");l.type="button",l.textContent=n.label,n.primary&&(l.className="pri"),l.onclick=n.action,s.querySelector("footer").appendChild(l)}),this.dlgOvl.appendChild(s),this.dlgOvl.addEventListener("mousedown",n=>{n.target===this.dlgOvl&&this.closeDlg()}),document.body.appendChild(this.dlgOvl)}sourceDlg(){let t;this.dialog(this.t("srcttl"),e=>{t=document.createElement("textarea"),t.value=this.ed.innerHTML.replace(/></g,`>
38
38
  <`),e.appendChild(t)},[{label:this.t("cancel"),action:()=>this.closeDlg()},{label:this.t("save"),primary:!0,action:()=>{this.ed.innerHTML=t.value,this.closeDlg(),this.onChange()}}])}helpDlg(){this.dialog(this.t("helpttl"),t=>{const e=[["Ctrl+B",this.t("bold")],["Ctrl+I",this.t("italic")],["Ctrl+U",this.t("underline")],["Ctrl+Z",this.t("undo")],["Ctrl+Y",this.t("redo")],["Ctrl+A",this.t("selectall")],["Alt+0",this.t("helpttl")]];t.innerHTML=`<p style="color:#556">${this.t("shortcuts")}</p>
39
39
  <table class="kbd">${e.map(i=>`<tr><td>${i[1]}</td><td><kbd>${i[0]}</kbd></td></tr>`).join("")}</table>`})}wordCountDlg(){this.dialog(this.t("wcttl"),t=>{var e;t.innerHTML=`<table class="kbd">