10 lines
63 KiB
JavaScript

/*!
* Tiny Enhanced Tables plugin
*
* Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc.
* Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/
*
* Version: 8.3.0-112
*/
!function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=n=e,(r=String).prototype.isPrototypeOf(o)||n.constructor?.name===r.name)?"string":t;var o,n,r})(t)===e,t=e=>t=>typeof t===e,o=e=>t=>e===t,n=e("string"),r=e("object"),s=e("array"),l=o(null),c=t("boolean"),a=o(void 0),i=e=>null==e,u=e=>!i(e),m=t("function"),d=t("number"),p=()=>{},g=e=>()=>e,h=e=>e,f=(e,t)=>e===t;function w(e,...t){return(...o)=>{const n=t.concat(o);return e.apply(null,n)}}const b=g(!1),v=g(!0);class y{tag;value;static singletonNone=new y(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return u(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const C=Array.prototype.slice,x=Array.prototype.indexOf,S=Array.prototype.push,T=(e,t)=>{return o=e,n=t,x.call(o,n)>-1;var o,n},R=(e,t)=>{for(let o=0,n=e.length;o<n;o++)if(t(e[o],o))return!0;return!1},O=(e,t)=>{const o=[];for(let n=0;n<e;n++)o.push(t(n));return o},D=(e,t)=>{const o=e.length,n=new Array(o);for(let r=0;r<o;r++){const o=e[r];n[r]=t(o,r)}return n},E=(e,t)=>{for(let o=0,n=e.length;o<n;o++)t(e[o],o)},k=(e,t)=>{const o=[],n=[];for(let r=0,s=e.length;r<s;r++){const s=e[r];(t(s,r)?o:n).push(s)}return{pass:o,fail:n}},A=(e,t)=>{const o=[];for(let n=0,r=e.length;n<r;n++){const r=e[n];t(r,n)&&o.push(r)}return o},N=(e,t)=>{if(0===e.length)return[];{let o=t(e[0]);const n=[];let r=[];for(let s=0,l=e.length;s<l;s++){const l=e[s],c=t(l);c!==o&&(n.push(r),r=[]),o=c,r.push(l)}return 0!==r.length&&n.push(r),n}},L=(e,t,o)=>(((e,t)=>{for(let o=e.length-1;o>=0;o--)t(e[o],o)})(e,((e,n)=>{o=t(o,e,n)})),o),P=(e,t,o)=>(E(e,((e,n)=>{o=t(o,e,n)})),o),$=(e,t)=>((e,t,o)=>{for(let n=0,r=e.length;n<r;n++){const r=e[n];if(t(r,n))return y.some(r);if(o(r,n))break}return y.none()})(e,t,b),M=(e,t)=>(e=>{const t=[];for(let o=0,n=e.length;o<n;++o){if(!s(e[o]))throw new Error("Arr.flatten item "+o+" was not an array, input: "+e);S.apply(t,e[o])}return t})(D(e,t)),W=(e,t)=>{for(let o=0,n=e.length;o<n;++o)if(!0!==t(e[o],o))return!1;return!0},j=(e,t)=>{const o=C.call(e,0);return o.sort(t),o},B=(e,t)=>t>=0&&t<e.length?y.some(e[t]):y.none(),I=e=>B(e,0),z=e=>B(e,e.length-1),F=(e,t)=>{for(let o=0;o<e.length;o++){const n=t(e[o],o);if(n.isSome())return n}return y.none()},V=Object.keys,H=Object.hasOwnProperty,q=(e,t)=>{const o=V(e);for(let n=0,r=o.length;n<r;n++){const r=o[n];t(e[r],r)}},_=(e,t)=>G(e,((e,o)=>({k:o,v:t(e,o)}))),G=(e,t)=>{const o={};return q(e,((e,n)=>{const r=t(e,n);o[r.k]=r.v})),o},U=(e,t)=>{const o=[];return q(e,((e,n)=>{o.push(t(e,n))})),o},K=e=>U(e,h),Q=e=>V(e).length,X=(e,t)=>Y(e,t)?y.from(e[t]):y.none(),Y=(e,t)=>H.call(e,t),J=e=>{for(const t in e)if(H.call(e,t))return!1;return!0},Z=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},ee="undefined"!=typeof window?window:Function("return this;")(),te=(e,t,o=f)=>e.exists((e=>o(e,t))),oe=(e,t,o)=>e.isSome()&&t.isSome()?y.some(o(e.getOrDie(),t.getOrDie())):y.none(),ne=e=>e.bind(h),re=(e,t)=>e?y.some(t):y.none(),se=(e,t)=>((e,t)=>{let o=null!=t?t:ee;for(let t=0;t<e.length&&null!=o;++t)o=o[e[t]];return o})(e.split("."),t),le=(e,t,o=0,n)=>{const r=e.indexOf(t,o);return-1!==r&&(!!a(n)||r+t.length<=n)},ce=(e=>t=>t.replace(e,""))(/^\s+|\s+$/g),ae=e=>!(e=>e.length>0)(e),ie=e=>{let t,o=!1;return(...n)=>(o||(o=!0,t=e.apply(null,n)),t)},ue=(e,t)=>{const{type:o,message:n}=t;e.notificationManager.open({type:o,text:n})},me=e=>{const t=(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type);t(e.message)},de=(e,t)=>{const{protect:o,allowList:n=[],blockList:r=[]}=null!=e?e:{};let s;return s=u(o)?o:n.length>0||r.length>0||t,{protect:s,allowList:n,blockList:r}},pe=e=>{const{protect:t,allowList:o,blockList:n}=null!=e?e:{};return e=>{const r=e.toLowerCase();return o.length>0?!R(o,(e=>e.toLowerCase()===r)):n.length>0?R(n,(e=>e.toLowerCase()===r)):t}},ge=e=>{const t=pe(e);return(e,o)=>{const n=((e,t)=>`${e}:${t}`)(o,e.toLowerCase());return t(n)}},he=(e,t,o,n)=>{const r=Reflect.get(e,"on"),s={protectedEventHandlers:[],cleanupScheduled:!1},l=(e,t)=>{n&&console.log(`[EventsProxy] ${e}`,t||"")},c=t=>{"invalid"===t&&s.protectedEventHandlers.length>0&&(l("Removing event handlers",s.protectedEventHandlers),E(s.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),s.protectedEventHandlers=[])},a=t.onStatusChange(c);return e.on("remove",a),(n,a,i)=>{l(`Adding event listener: ${n}`,{shouldProtect:o(n)});const u=((e,n)=>{const r=o(e),l=t.getStatus(),c=r&&"invalid"===l?p:n;return r&&s.protectedEventHandlers.push({name:e,callback:c}),c})(n,a);return s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{c(t.getStatus()),s.cleanupScheduled=!1}),0)),Reflect.apply(r,e,[n,u,i])}},fe=(e,t,o)=>n=>{const r="invalid"!==t.getStatus()&&u(o)?o(n):p,s=((e,t,o)=>{const n=e=>{"invalid"===e&&o.setEnabled(!1)},r=()=>n(t.getStatus());n(t.getStatus()),e.on("NodeChange",r);const s=t.onStatusChange(n);return()=>{e.off("NodeChange",r),s()}})(e,t,n);return e=>{null==r||r(e),s()}},we=(e,t,o)=>(...n)=>{var r;return"invalid"===e.getStatus()?o:null!==(r=null==t?void 0:t(...n))&&void 0!==r?r:o},be=(e,t)=>we(e,t,Promise.resolve([])),ve=(e,t)=>we(e,t,[]),ye=(e,t)=>we(e,t,!1),Ce=(e,t,o,r)=>{const s=t=>{const{command:s,value:l}=t,c=y.from(l).filter(n).map((e=>e.toLowerCase())),a=s.toLowerCase()===r.toLowerCase(),i=c.exists((e=>o.has(e))),u=c.exists((t=>t===e.queryCommandValue(r)));a&&i&&!u&&t.preventDefault()},l=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",s);const t=()=>{const t=e.queryCommandValue(r);o.has(t.toLowerCase())&&e.execCommand(r,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{l(),e.off("BeforeExecCommand",s)}))},xe=(e,t,o,r,s,l=!1)=>{const c=new Set,a=new Set,i=(e,t)=>{l&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,o)=>{Ce(e,t,o,"ToggleView")})(e,o,c),((e,t,o)=>{Ce(e,t,o,"ToggleSidebar")})(e,o,a);const u=(t,n,l,c)=>{const a=s(t,l);return i(`${c}: ${t}`,{spec:n,context:r,shouldProtect:a}),a?{...n,onSetup:fe(e,o,n.onSetup)}:n};return new Proxy(t,{get:(e,t,l)=>{const m=Reflect.get(e,t,l);if(!n(t))return m;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"button",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...o)=>{const[n,r,...s]=o,l=u(n,r,"menuitem",String(t));return Reflect.apply(m,e,[n,l,...s])};case"addAutocompleter":return(...n)=>{const[l,c,...a]=n,u=s(l,"autocompleter");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,fetch:be(o,c.fetch)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addSidebar":return(...o)=>{const[n,l,...c]=o,u=s(n,"sidebar");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){a.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...c])}return Reflect.apply(m,e,[n,l,...c])};case"addView":return(...o)=>{const[n,l,...a]=o,u=s(n,"view");if(i(`${String(t)}: ${n}`,{spec:l,context:r,shouldProtect:u}),u){c.add(n.toLowerCase());const t={...l};return Reflect.apply(m,e,[n,t,...a])}return Reflect.apply(m,e,[n,l,...a])};case"addContextMenu":return(...n)=>{const[l,c,...a]=n,u=s(l,"contextmenu");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,update:ve(o,c.update)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addContextToolbar":case"addContextForm":return(...n)=>{const[l,c,...a]=n,u=s(l,"contexttoolbar");if(i(`${String(t)}: ${l}`,{spec:c,context:r,shouldProtect:u}),u){const t={...c,predicate:ye(o,c.predicate)};return Reflect.apply(m,e,[l,t,...a])}return Reflect.apply(m,e,[l,c,...a])};case"addIcon":case"getAll":case"addContext":return m}}})},Se=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),Te=e=>(t,o)=>{e&&console.log(`[EditorProxy] ${t}`,o||"")},Re=(e,t)=>{const{statusProvider:o,uiContext:n,protection:r,debug:s=!1}=t,{events:l,commands:c,ui:a}=r;Te(s)("Creating enhanced editor with options:",{hasStatusProvider:!!o,uiContext:n,debug:s,protection:r});const{editorUiProxy:i,editorCommandsProxy:u,editorEventListenerProxy:d}=((e,t,o,n,r,s,l)=>{const c=s.protect?{...e.ui,registry:xe(e,e.ui.registry,t,o,ge(s),l)}:e.ui,a=n.protect?((e,t,o,n,r)=>{const s={protectedCommands:[],cleanupScheduled:!1},l=(e,t)=>{r&&console.log(`[CommandsProxy] ${e}`,t||"")},c=(e,t)=>{const r=n(e),l=o.getStatus();return r&&s.protectedCommands.push(e),r&&"invalid"===l?p:t},a=t=>{"invalid"===t&&s.protectedCommands.length>0&&(l("Removing commands",s.protectedCommands),E(s.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),s.protectedCommands=[])},i=()=>{s.cleanupScheduled||(s.cleanupScheduled=!0,window.setTimeout((()=>{a(o.getStatus()),s.cleanupScheduled=!1}),0))},u=o.onStatusChange(a);return e.on("remove",u),new Proxy(t,{get:(e,o,r)=>{if(l(`Accessing property: ${String(o)}`),"addCommand"===o){const s=Reflect.get(e,o,r);return(e,o,...r)=>{l(`Adding command: ${e}`,{shouldProtect:n(e)});const a=c(e,o);return i(),Reflect.apply(s,t,[e,a,...r])}}if("addCommands"===o){const n=Reflect.get(e,o,r);return(e,o="exec")=>{l(`Adding commands (${o})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===o});const r="exec"!==o?e:_(e,((e,t)=>c(t,e)));return i(),Reflect.apply(n,t,[r,o])}}return Reflect.get(e,o,r)}})})(e,e.editorCommands,t,pe(n),l):e.editorCommands;return{editorUiProxy:c,editorCommandsProxy:a,editorEventListenerProxy:r.protect?he(e,t,pe(r),l):e.on.bind(e)}})(e,o,n||"",c,l,a,s),g=((e,t,o,n)=>(r,s,l)=>{const c=String(s);if("on"===s)return Te(n)("on intercepted"),o;if(Se.has(c))return Te(n)(`${c} intercepted`),t[c].bind(t);if("editorCommands"===s)return Te(n)("editorCommands accessed"),t;if("ui"===s)return Te(n)("ui accessed"),e;const a=Reflect.get(r,s,l);return m(a)?a.bind(r):a})(i,u,d,s);return new Proxy(e,{get:g,set:(e,t,o,n)=>Reflect.set(e,t,o,n),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,o)=>Reflect.defineProperty(e,t,o),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},Oe=e=>parseInt(e,10),De=(e,t)=>{const o=e-t;return 0===o?0:o>0?1:-1},Ee=(e,t,o)=>({major:e,minor:t,patch:o}),ke=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?Ee(Oe(t[1]),Oe(t[2]),Oe(t[3])):Ee(0,0,0)},Ae=(e,t)=>!!e&&-1===((e,t)=>{const o=De(e.major,t.major);if(0!==o)return o;const n=De(e.minor,t.minor);if(0!==n)return n;const r=De(e.patch,t.patch);return 0!==r?r:0})((e=>ke((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),ke(t)),Ne=ke("8.3.0"),Le=`${Ne.major}.${Ne.minor}.0`,Pe=`${Ne.major+1}.0.0`,$e=(e,t)=>{const{setup:o,protection:n}=t;return(r,s)=>{if(!((e,t)=>Ae(e,Le)?(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE.`),!1):!!Ae(e,Pe)||(console.error(`The "${t}" plugin requires at least version ${Le} of TinyMCE but less than ${Pe}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const o=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),n=e.options.get("online_license_key");return i(n)&&"gpl"===o})(e)&&(((e,t)=>{const{console:o,editor:n}=t;u(n)&&(e._skinLoaded?ue(e,n):e.on("SkinLoaded",(()=>{ue(e,n)}))),u(o)&&me(o)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(r,e))return{};const l=(e=>{const{protect:t=!0,events:o,commands:n,ui:r,api:s}=null!=e?e:{};return{protect:t,events:de(o,false),commands:de(n,true),ui:de(r,true),api:de(s,true)}})(n),c=((e="pre-validation")=>{const t=Z(e),o=new Set;let n=!1;const{enableLogging:r=!1}={},s=(e,...t)=>{r&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const n=t.get();if(n===e)return s("Status unchanged:",e),!1;t.set(e),s("Status changed:",n,"->",e);const r={currentStatus:e,previousStatus:n},l=Array.from(o);return E(l,(e=>{e(r.currentStatus,r.previousStatus)})),!0},onStatusChange:e=>(o.add(e),s("Callback registered, total listeners:",o.size),()=>{o.delete(e)&&s("Callback unregistered, remaining listeners:",o.size)}),getStatus:t.get,hasListeners:()=>o.size>0,destroy:()=>{n||(s("Destroying StatusProvider, clearing",o.size,"listeners"),o.clear(),n=!0)}}})(),a=((e,t,o)=>{const n=`commercial-license-${t}`;return e.ui.registry.addContext(n,(()=>"invalid"!==o.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{o.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),o.setStatus("invalid")})),{ui:{context:n}}})(r,e,c),d=l.protect?Re(r,{statusProvider:c,uiContext:a.ui.context,debug:t.debug||!1,protection:l}):r,p=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,o)=>{"invalid"===t&&e(t,o)}))}}))(e,c);return((e,t,o,n)=>{if(t.protect&&t.api.protect&&u(e)){const s=pe(t.api);return(r=e=>"invalid"===o.getStatus()&&s(e),(e,t)=>_(e,((e,o)=>m(e)?(...n)=>{if(r(o.toLowerCase())){const e=`Method "${u(t)?`${t}.`:""}${o}" is not available due to license key restrictions.`,n=new Error(e);throw console.error(e),n}return e(...n)}:e)))(e,n)}var r;return e})(o(d,s,p),l,c,e)}},Me=["tfoot","thead","tbody","colgroup"],We=(e,t,o)=>({element:e,rowspan:t,colspan:o}),je=(e,t,o)=>({element:e,cells:t,section:o}),Be=(e,t,o)=>({element:e,isNew:t,isLocked:o}),Ie=(e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}),ze=(e,t)=>Ie(e.element,t,e.section,e.isNew),Fe=(e,t)=>e.cells[t],Ve=(e,t)=>Fe(e,t).element,He=e=>{const t=k(e,(e=>"colgroup"===e.section));return{rows:t.fail,cols:t.pass}},qe=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},_e={fromHtml:(e,t)=>{const o=(t||document).createElement("div");if(o.innerHTML=e,!o.hasChildNodes()||o.childNodes.length>1){const t="HTML does not have a single root node";throw console.error(t,e),new Error(t)}return qe(o.childNodes[0])},fromTag:(e,t)=>{const o=(t||document).createElement(e);return qe(o)},fromText:(e,t)=>{const o=(t||document).createTextNode(e);return qe(o)},fromDom:qe,fromPoint:(e,t,o)=>y.from(e.dom.elementFromPoint(t,o)).map(qe)},Ge=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}},Ue=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,Ke=(e,t)=>e.dom===t.dom,Qe=Ge,Xe=()=>Ye(0,0),Ye=(e,t)=>({major:e,minor:t}),Je={nu:Ye,detect:(e,t)=>{const o=String(t).toLowerCase();return 0===e.length?Xe():((e,t)=>{const o=((e,t)=>{for(let o=0;o<e.length;o++){const n=e[o];if(n.test(t))return n}})(e,t);if(!o)return{major:0,minor:0};const n=e=>Number(t.replace(o,"$"+e));return Ye(n(1),n(2))})(e,o)},unknown:Xe},Ze=(e,t)=>{const o=String(t).toLowerCase();return $(e,(e=>e.search(o)))},et=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,tt=e=>t=>le(t,e),ot=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>le(e,"edge/")&&le(e,"chrome")&&le(e,"safari")&&le(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,et],search:e=>le(e,"chrome")&&!le(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>le(e,"msie")||le(e,"trident")},{name:"Opera",versionRegexes:[et,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:tt("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:tt("firefox")},{name:"Safari",versionRegexes:[et,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(le(e,"safari")||le(e,"mobile/"))&&le(e,"applewebkit")}],nt=[{name:"Windows",search:tt("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>le(e,"iphone")||le(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:tt("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:tt("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:tt("linux"),versionRegexes:[]},{name:"Solaris",search:tt("sunos"),versionRegexes:[]},{name:"FreeBSD",search:tt("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:tt("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],rt={browsers:g(ot),oses:g(nt)},st=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isEdge:n("Edge"),isChromium:n("Chromium"),isIE:n("IE"),isOpera:n("Opera"),isFirefox:n("Firefox"),isSafari:n("Safari")}},lt=()=>st({current:void 0,version:Je.unknown()}),ct=st,at=e=>{const t=e.current,o=e.version,n=e=>()=>t===e;return{current:t,version:o,isWindows:n("Windows"),isiOS:n("iOS"),isAndroid:n("Android"),isMacOS:n("macOS"),isLinux:n("Linux"),isSolaris:n("Solaris"),isFreeBSD:n("FreeBSD"),isChromeOS:n("ChromeOS")}},it=()=>at({current:void 0,version:Je.unknown()}),ut=at,mt=e=>window.matchMedia(e).matches;let dt=ie((()=>((e,t,o)=>{const n=rt.browsers(),r=rt.oses(),s=t.bind((e=>((e,t)=>F(t.brands,(t=>{const o=t.brand.toLowerCase();return $(e,(e=>o===e.brand?.toLowerCase())).map((e=>({current:e.name,version:Je.nu(parseInt(t.version,10),0)})))})))(n,e))).orThunk((()=>((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(n,e))).fold(lt,ct),l=((e,t)=>Ze(e,t).map((e=>{const o=Je.detect(e.versionRegexes,t);return{current:e.name,version:o}})))(r,e).fold(it,ut),c=((e,t,o,n)=>{const r=e.isiOS()&&!0===/ipad/i.test(o),s=e.isiOS()&&!r,l=e.isiOS()||e.isAndroid(),c=l||n("(pointer:coarse)"),a=r||!s&&l&&n("(min-device-width:768px)"),i=s||l&&!a,u=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(o),m=!i&&!a&&!u;return{isiPad:g(r),isiPhone:g(s),isTablet:g(a),isPhone:g(i),isTouch:g(c),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:g(u),isDesktop:g(m)}})(l,s,e,o);return{browser:s,os:l,deviceType:c}})(window.navigator.userAgent,y.from(window.navigator.userAgentData),mt)));const pt=Object.getPrototypeOf,gt=e=>{const t=se("ownerDocument.defaultView",e);return r(e)&&((e=>((e,t)=>{const o=((e,t)=>se(e,t))(e,t);if(null==o)throw new Error(e+" not available on this browser");return o})("HTMLElement",e))(t).prototype.isPrototypeOf(e)||/^HTML\w*Element$/.test(pt(e).constructor.name))},ht=e=>e.dom.nodeName.toLowerCase(),ft=e=>e.dom.nodeType,wt=e=>t=>ft(t)===e,bt=e=>8===ft(e)||"#comment"===ht(e),vt=wt(1),yt=wt(3),Ct=wt(9),xt=wt(11),St=e=>t=>vt(t)&&ht(t)===e,Tt=e=>_e.fromDom(e.dom.ownerDocument),Rt=e=>y.from(e.dom.parentNode).map(_e.fromDom),Ot=(e,t)=>{const o=m(t)?t:b;let n=e.dom;const r=[];for(;null!==n.parentNode&&void 0!==n.parentNode;){const e=n.parentNode,t=_e.fromDom(e);if(r.push(t),!0===o(t))break;n=e}return r},Dt=e=>y.from(e.dom.previousSibling).map(_e.fromDom),Et=e=>y.from(e.dom.nextSibling).map(_e.fromDom),kt=e=>D(e.dom.childNodes,_e.fromDom),At=e=>_e.fromDom(e.dom.host),Nt=(e,t)=>{Rt(e).each((o=>{o.dom.insertBefore(t.dom,e.dom)}))},Lt=(e,t)=>{Et(e).fold((()=>{Rt(e).each((e=>{$t(e,t)}))}),(e=>{Nt(e,t)}))},Pt=(e,t)=>{(e=>(e=>{const t=e.dom.childNodes;return y.from(t[0]).map(_e.fromDom)})(e))(e).fold((()=>{$t(e,t)}),(o=>{e.dom.insertBefore(t.dom,o.dom)}))},$t=(e,t)=>{e.dom.appendChild(t.dom)},Mt=(e,t)=>{Nt(e,t),$t(t,e)},Wt=(e,t)=>{E(t,((o,n)=>{const r=0===n?e:t[n-1];Lt(r,o)}))},jt=(e,t)=>{E(t,(t=>{$t(e,t)}))},Bt=(e,t,o)=>{if(!(n(o)||c(o)||d(o)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",o,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,o+"")},It=(e,t,o)=>{Bt(e.dom,t,o)},zt=(e,t)=>{const o=e.dom;q(t,((e,t)=>{Bt(o,t,e)}))},Ft=(e,t)=>{const o=e.dom.getAttribute(t);return null===o?void 0:o},Vt=(e,t)=>y.from(Ft(e,t)),Ht=(e,t)=>{e.dom.removeAttribute(t)},qt=e=>P(e.dom.attributes,((e,t)=>(e[t.name]=t.value,e)),{}),_t=e=>{e.dom.textContent="",E(kt(e),(e=>{Gt(e)}))},Gt=e=>{const t=e.dom;null!==t.parentNode&&t.parentNode.removeChild(t)},Ut=e=>{const t=kt(e);t.length>0&&Wt(e,t),Gt(e)},Kt=(e,t)=>_e.fromDom(e.dom.cloneNode(t)),Qt=e=>void 0!==e.style&&m(e.style.getPropertyValue),Xt=e=>{const t=yt(e)?e.dom.parentNode:e.dom;if(null==t||null===t.ownerDocument)return!1;const o=t.ownerDocument;return(e=>{const t=(e=>_e.fromDom(e.dom.getRootNode()))(e);return xt(o=t)&&u(o.dom.host)?y.some(t):y.none();var o})(_e.fromDom(t)).fold((()=>o.body.contains(t)),(n=Xt,r=At,e=>n(r(e))));var n,r},Yt=(e,t,o)=>{((e,t,o)=>{if(!n(o))throw console.error("Invalid call to CSS.set. Property ",t,":: Value ",o,":: Element ",e),new Error("CSS value must be a string: "+o);Qt(e)&&e.style.setProperty(t,o)})(e.dom,t,o)},Jt=(e,t)=>{const o=e.dom,n=window.getComputedStyle(o).getPropertyValue(t);return""!==n||Xt(e)?n:Zt(o,t)},Zt=(e,t)=>Qt(e)?e.style.getPropertyValue(t):"",eo=(e,t)=>{const o=e.dom,n=Zt(o,t);return y.from(n).filter((e=>e.length>0))},to=(e,t)=>{((e,t)=>{Qt(e)&&e.style.removeProperty(t)})(e.dom,t),te(Vt(e,"style").map(ce),"")&&Ht(e,"style")},oo=(e,t,o)=>((e,t)=>(e=>{const t=parseFloat(e);return isNaN(t)?y.none():y.some(t)})(e).getOr(t))(Jt(e,t),o),no=(e=>{const t=t=>{const o=(e=>{const t=e.dom;return Xt(e)?t.getBoundingClientRect().width:t.offsetWidth})(t);if(o<=0||null===o){const o=Jt(t,e);return parseFloat(o)||0}return o},o=(e,t)=>P(t,((t,o)=>{const n=Jt(e,o),r=void 0===n?0:parseInt(n,10);return isNaN(r)?t:t+r}),0);return{set:(t,o)=>{if(!d(o)&&!o.match(/^[0-9]+$/))throw new Error(e+".set accepts only positive integer values. Value was "+o);const n=t.dom;Qt(n)&&(n.style[e]=o+"px")},get:t,getOuter:t,aggregate:o,max:(e,t,n)=>{const r=o(e,n);return t>r?t-r:0}}})("width"),ro=e=>no.get(e),so=e=>no.getOuter(e),lo=e=>(e=>{const t=e.dom;return((e,t,o,n)=>t-oo(e,`padding-${o}`,0)-oo(e,`padding-${n}`,0)-oo(e,`border-${o}-width`,0)-oo(e,`border-${n}-width`,0))(e,t.getBoundingClientRect().width||t.offsetWidth,"left","right")})(e),co=(e,t)=>({left:e,top:t,translate:(o,n)=>co(e+o,t+n)}),ao=co,io=(e,t)=>void 0!==e?e:void 0!==t?t:0,uo=e=>{const t=e.dom.ownerDocument,o=t.body,n=t.defaultView,r=t.documentElement;if(o===e.dom)return ao(o.offsetLeft,o.offsetTop);const s=io(n?.pageYOffset,r.scrollTop),l=io(n?.pageXOffset,r.scrollLeft),c=io(r.clientTop,o.clientTop),a=io(r.clientLeft,o.clientLeft);return mo(e).translate(l-a,s-c)},mo=e=>{const t=e.dom,o=t.ownerDocument.body;return o===t?ao(o.offsetLeft,o.offsetTop):Xt(e)?(e=>{const t=e.getBoundingClientRect();return ao(t.left,t.top)})(t):ao(0,0)},po=(e=>{const t=t=>e(t)?y.from(t.dom.nodeValue):y.none();return{get:o=>{if(!e(o))throw new Error("Can only get text value of a text node");return t(o).getOr("")},getOption:t,set:(t,o)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=o}}})(yt),go=e=>po.get(e),ho=(e,t)=>po.set(e,t),fo=(e,t)=>{const o=Ft(e,t);return void 0===o||""===o?[]:o.split(" ")},wo=(e,t,o)=>{let n=e.dom;const r=m(o)?o:b;for(;n.parentNode;){n=n.parentNode;const e=_e.fromDom(n);if(t(e))return y.some(e);if(r(e))break}return y.none()},bo=(e,t,o)=>wo(e,(e=>Ge(e,t)),o),vo=(e,t)=>(e=>$(e.dom.childNodes,(e=>{return o=_e.fromDom(e),Ge(o,t);var o})).map(_e.fromDom))(e),yo=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?y.none():y.from(o.querySelector(e)).map(_e.fromDom)})(t,e),Co=(e,t,o)=>((e,t,o,n,r)=>((e,t)=>Ge(e,t))(o,n)?y.some(o):m(r)&&r(o)?y.none():t(o,n,r))(0,bo,e,t,o),xo=e=>void 0!==e.dom.classList,So=(e,t=!1)=>{return Xt(e)?e.dom.isContentEditable:(o=e,Co(o,"[contenteditable]")).fold(g(t),(e=>"true"===To(e)));var o},To=e=>e.dom.contentEditable,Ro=e=>e.dom.textContent,Oo=(e,t)=>{let o=[];return E(kt(e),(e=>{t(e)&&(o=o.concat([e])),o=o.concat(Oo(e,t))})),o},Do=(e,t,o)=>((e,o,n)=>A(Ot(e,n),(e=>Ge(e,t))))(e,0,o),Eo=(e,t)=>(e=>A(kt(e),(e=>Ge(e,t))))(e),ko=(e,t)=>((e,t)=>{const o=void 0===t?document:t.dom;return Ue(o)?[]:D(o.querySelectorAll(e),_e.fromDom)})(t,e),Ao=["img","br"],No=e=>{return(t=e,po.getOption(t)).filter((e=>0!==e.trim().length||e.indexOf("\xa0")>-1)).isSome()||T(Ao,ht(e))||(e=>{return vt(t=e)&&gt(t.dom)&&"false"===Ft(e,"contenteditable");var t})(e);var t},Lo={unsupportedLength:["em","ex","cap","ch","ic","rem","lh","rlh","vw","vh","vi","vb","vmin","vmax","cm","mm","Q","in","pc","pt","px"],fixed:["px","pt"],relative:["%"],empty:[""]},Po=(()=>{const e="[0-9]+",t="[eE][+-]?"+e,o=e=>`(?:${e})?`,n=["Infinity",e+"\\."+o(e)+o(t),"\\."+e+o(t),e+o(t)].join("|");return new RegExp(`^([+-]?(?:${n}))(.*)$`)})(),$o=(e,t)=>y.from(Po.exec(e)).bind((e=>{const o=Number(e[1]),n=e[2];return((e,t)=>R(t,(t=>R(Lo[t],(t=>e===t)))))(n,t)?y.some({value:o,unit:n}):y.none()})),Mo=e=>D(e,g(0)),Wo=e=>(t,o,n,r)=>{if(e(n)){const e=Math.max(r,t[o]-Math.abs(n)),s=Math.abs(e-t[o]);return n>=0?s:-s}return n},jo=Wo((e=>e<0)),Bo=Wo(v),Io=()=>{const e=(e,t,o,n,r)=>{const s=Bo(e,n>=0?o:t,n,r);return((e,t,o,n,r)=>r(e.slice(0,t)).concat(n).concat(r(e.slice(o))))(e,t,o+1,[s,-s],Mo)};return{resizeTable:(e,t,o)=>{o&&e(t)},clampTableDelta:(e,t,o,n,r)=>{if(r){if(o>=0)return o;{const t=P(e,((e,t)=>e+t-n),0);return Math.max(-t,o)}}return jo(e,t,o,n)},calcLeftEdgeDeltas:e,calcMiddleDeltas:(t,o,n,r,s,l)=>e(t,n,r,s,l),calcRightEdgeDeltas:(e,t,o,n,r,s)=>{if(s)return Mo(e);{const t=n/e.length;return D(e,g(t))}},calcRedestributedWidths:(e,t,o,n)=>({delta:0,newSizes:e})}},zo=(e,t,o=0)=>Vt(e,t).map((e=>parseInt(e,10))).getOr(o),Fo=e=>St("col")(e)?zo(e,"span",1)>1:(e=>zo(e,"colspan",1))(e)>1,Vo=g(10),Ho=(e,t)=>qo(e,t,v),qo=(e,t,o)=>M(kt(e),(e=>Ge(e,t)?o(e)?[e]:[]:qo(e,t,o))),_o=(e,t)=>((e,t,o=b)=>o(t)?y.none():T(e,ht(t))?y.some(t):bo(t,e.join(","),(e=>Ge(e,"table")||o(e))))(["td","th"],e,t),Go=e=>Ho(e,"th,td"),Uo=e=>Ge(e,"colgroup")?Eo(e,"col"):M(Xo(e),(e=>Eo(e,"col"))),Ko=(e,t)=>Co(e,"table",t),Qo=e=>Ho(e,"tr"),Xo=e=>Ko(e).fold(g([]),(e=>Eo(e,"colgroup"))),Yo=e=>Rt(e).map((e=>{const t=ht(e);return(e=>T(Me,e))(t)?t:"tbody"})).getOr("tbody"),Jo="data-snooker-locked-cols",Zo=e=>Vt(e,Jo).bind((e=>y.from(e.match(/\d+/g)))).map((e=>((e,t)=>{const o={};for(let n=0,r=e.length;n<r;n++){const r=e[n];o[String(r)]=t(r,n)}return o})(e,v))),en=(e,t)=>e+","+t,tn=e=>{const t={},o=[],n=I(e).map((e=>e.element)).bind(Ko).bind(Zo).getOr({});let r=0,s=0,l=0;const{pass:c,fail:a}=k(e,(e=>"colgroup"===e.section));E(a,(e=>{const c=[];E(e.cells,(e=>{let o=0;for(;void 0!==t[en(l,o)];)o++;const r=((e,t)=>Y(e,t)&&void 0!==e[t]&&null!==e[t])(n,o.toString()),a=((e,t,o,n,r,s)=>({element:e,rowspan:t,colspan:o,row:n,column:r,isLocked:s}))(e.element,e.rowspan,e.colspan,l,o,r);for(let n=0;n<e.colspan;n++)for(let r=0;r<e.rowspan;r++){const e=o+n,c=en(l+r,e);t[c]=a,s=Math.max(s,e+1)}c.push(a)})),r++,o.push(je(e.element,c,e.section)),l++}));const{columns:i,colgroups:u}=z(c).map((e=>{const t=(e=>{const t={};let o=0;return E(e.cells,(e=>{const n=e.colspan;O(n,(r=>{const s=o+r;t[s]=((e,t,o)=>({element:e,colspan:t,column:o}))(e.element,n,s)})),o+=n})),t})(e),o=((e,t)=>({element:e,columns:t}))(e.element,K(t));return{colgroups:[o],columns:t}})).getOrThunk((()=>({colgroups:[],columns:{}}))),m=((e,t)=>({rows:e,columns:t}))(r,s);return{grid:m,access:t,all:o,columns:i,colgroups:u}},on=e=>{const t=(e=>{const t=Qo(e);return o=[...Xo(e),...t],n=Yo,D(o,(e=>{if("colgroup"===ht(e)){const t=D(Uo(e),(e=>{const t=zo(e,"span",1);return We(e,1,t)}));return je(e,t,"colgroup")}{const t=D(Go(e),(e=>{const t=zo(e,"rowspan",1),o=zo(e,"colspan",1);return We(e,t,o)}));return je(e,t,n(e))}}));var o,n})(e);return tn(t)},nn=tn,rn=(e,t,o)=>y.from(e.access[en(t,o)]),sn=(e,t,o)=>{const n=((e,t)=>{const o=M(e.all,(e=>e.cells));return A(o,t)})(e,(e=>o(t,e.element)));return n.length>0?y.some(n[0]):y.none()},ln=e=>K(e.columns),cn=e=>V(e.columns).length>0,an=(e,t)=>y.from(e.columns[t]),un=(e,t,o)=>Be(o(e.element,t),!0,e.isLocked),mn=()=>({transformRow:h,transformCell:un}),dn=(e,t=v)=>{const o=e.grid,n=O(o.columns,h),r=O(o.rows,h);return D(n,(o=>pn((()=>M(r,(t=>rn(e,t,o).filter((e=>e.column===o)).toArray()))),(e=>1===e.colspan&&t(e.element)),(()=>rn(e,0,o)))))},pn=(e,t,o)=>{const n=e();return $(n,t).orThunk((()=>y.from(n[0]).orThunk(o))).map((e=>e.element))},gn=(e,t)=>({col:e,x:t}),hn=e=>uo(e).left+so(e),fn=e=>uo(e).left,wn=(e,t)=>gn(e,fn(t)),bn=(e,t)=>gn(e,hn(t)),vn=(e,t,o)=>{if(0===o.length)return[];const n=D(o.slice(1),((t,o)=>t.map((t=>e(o,t))))),r=o[o.length-1].map((e=>t(o.length-1,e)));return n.concat([r])},yn=(Cn={delta:h,edge:fn,positions:e=>vn(wn,bn,e)},xn={delta:e=>-e,edge:hn,positions:e=>vn(bn,wn,e)},e=>"rtl"===(e=>"rtl"===Jt(e,"direction")?"rtl":"ltr")(e)?xn:Cn);var Cn,xn;const Sn=e=>yn(e).edge(e),Tn=St("col"),Rn=(e,t,o)=>{const n=(r=e,y.from(r.dom.parentElement).map(_e.fromDom)).getOrThunk((()=>(e=>{const t=e.dom.body;if(null==t)throw new Error("Body is not available yet");return _e.fromDom(t)})(Tt(e))));var r;return t(e)/o(n)*100},On=(e,t)=>{Yt(e,"width",t+"px")},Dn=(e,t)=>{Yt(e,"width",t+"%")},En=e=>((e,t)=>eo(e,t).orThunk((()=>Vt(e,t).map((e=>e+"px")))))(e,"width"),kn=e=>Rn(e,ro,lo),An=e=>{return Tn(e)?Math.round(ro(e)):oo(t=e,"width",t.dom.offsetWidth);var t},Nn=(e,t,o)=>{Yt(e,"width",t+o)},Ln=g(/(\d+(\.\d+)?)%/),Pn=St("col"),$n=(e,t,o,n,r,s)=>e.filter(n).fold((()=>s(((e,t)=>{if(t<0||t>=e.length-1)return y.none();const o=e[t].fold((()=>{const o=(e=>{const t=C.call(e,0);return t.reverse(),t})(e.slice(0,t));return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:0}))),n=e[t+1].fold((()=>{const o=e.slice(t+1);return F(o,((e,t)=>e.map((e=>({value:e,delta:t+1})))))}),(e=>y.some({value:e,delta:1})));return o.bind((e=>n.map((t=>{const o=t.delta+e.delta;return Math.abs(t.value-e.value)/o}))))})(o,t))),(e=>r(e))),Mn=(e,t,o,n)=>{const r=dn(e),s=cn(e)?(e=>D(ln(e),(e=>y.from(e.element))))(e):r,l=[y.some(Sn(t))].concat(D(((e,t)=>yn(t).positions(e,t))(r,t),(e=>e.map((e=>e.x))))),c=(a=Fo,e=>!a(e));var a;return D(s,((e,t)=>$n(e,t,l,c,(e=>{if((e=>{const t=dt().browser,o=t.isChromium()||t.isFirefox();return!Pn(e)||o})(e))return o(e);{const e=((e,t)=>null!=e?t(e):y.none())(r[t],h);return $n(e,t,l,c,(e=>n(y.some(Math.round(ro(e))))),n)}}),n)))},Wn=(e,t,o)=>Mn(e,t,An,(e=>e.getOrThunk(o.minCellWidth))),jn=(e,t)=>()=>Xt(e)?t(e):parseFloat(eo(e,"width").getOr("0")),Bn=e=>En(e).fold((()=>(e=>{const t=jn(e,ro),o=g(0);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:o,singleColumnWidth:g([0]),minCellWidth:o,setElementWidth:p,adjustTableWidth:p,isRelative:!0,label:"none"}})(e)),(t=>{return o=e,n=t,null!==Ln().exec(n)?(e=>{const t=jn(e,(e=>parseFloat((e=>Rn(e,ro,lo)+"%")(e)))),o=jn(e,ro);return{width:t,pixelWidth:o,getWidths:(t,o)=>((e,t,o)=>Mn(e,t,kn,(e=>e.fold((()=>o.minCellWidth()),(e=>e/o.pixelWidth()*100)))))(t,e,o),getCellDelta:e=>e/o()*100,singleColumnWidth:(e,t)=>[100-e],minCellWidth:()=>Vo()/o()*100,setElementWidth:Dn,adjustTableWidth:o=>{const n=t();Dn(e,n+o/100*n)},isRelative:!0,label:"percent"}})(o):(e=>{const t=jn(e,ro);return{width:t,pixelWidth:t,getWidths:(t,o)=>Wn(t,e,o),getCellDelta:h,singleColumnWidth:(e,t)=>[Math.max(Vo(),e+t)-e],minCellWidth:Vo,setElementWidth:On,adjustTableWidth:o=>{const n=t()+o;On(e,n)},isRelative:!1,label:"pixel"}})(o);var o,n})),In=(e,t,o,n)=>{o===n?Ht(e,t):It(e,t,o)},zn=(e,t,o)=>{z(Eo(e,t)).fold((()=>Pt(e,o)),(e=>Lt(e,o)))},Fn=(e,t)=>{const o=[],n=[],r=e=>D(e,(e=>{e.isNew&&o.push(e.element);const t=e.element;return _t(t),E(e.cells,(e=>{e.isNew&&n.push(e.element),In(e.element,"colspan",e.colspan,1),In(e.element,"rowspan",e.rowspan,1),$t(t,e.element)})),t})),s=e=>M(e,(e=>D(e.cells,(e=>(In(e.element,"span",e.colspan,1),e.element))))),l=(t,o)=>{const n=((e,t)=>{const o=vo(e,t).getOrThunk((()=>{const o=_e.fromTag(t,Tt(e).dom);return"thead"===t?zn(e,"caption,colgroup",o):"colgroup"===t?zn(e,"caption",o):$t(e,o),o}));return _t(o),o})(e,o),l=("colgroup"===o?s:r)(t);jt(n,l)},c=(t,o)=>{t.length>0?l(t,o):(t=>{vo(e,t).each(Gt)})(o)},a=[],i=[],u=[],m=[];return E(t,(e=>{switch(e.section){case"thead":a.push(e);break;case"tbody":i.push(e);break;case"tfoot":u.push(e);break;case"colgroup":m.push(e)}})),c(m,"colgroup"),c(a,"thead"),c(i,"tbody"),c(u,"tfoot"),{newRows:o,newCells:n}},Vn=(e,t)=>{if(0===e.length)return 0;const o=e[0],n=(e=>{for(let r=0,s=e.length;r<s;r++)if(n=e[r],!t(o.element,n.element))return y.some(r);var n;return y.none()})(e);return n.getOr(e.length)},Hn=(e,t)=>{const o=D(e,(e=>D(e.cells,b)));return D(e,((n,r)=>{const s=M(n.cells,((n,s)=>{if(!1===o[r][s]){const u=((e,t,o,n)=>{const r=((e,t)=>e[t])(e,t),s="colgroup"===r.section,l=Vn(r.cells.slice(o),n),c=s?1:Vn(((e,t)=>D(e,(e=>Fe(e,t))))(e.slice(t),o),n);return{colspan:l,rowspan:c}})(e,r,s,t);return((e,t,n,r)=>{for(let s=e;s<e+n;s++)for(let e=t;e<t+r;e++)o[s][e]=!0})(r,s,u.rowspan,u.colspan),[(l=n.element,c=u.rowspan,a=u.colspan,i=n.isNew,{element:l,rowspan:c,colspan:a,isNew:i})]}return[];var l,c,a,i}));return((e,t,o,n)=>({element:e,cells:t,section:o,isNew:n}))(n.element,s,n.section,n.isNew)}))},qn=(e,t)=>F(e.all,(e=>$(e.cells,(e=>Ke(t,e.element))))),_n=(e,t,o)=>{const n=(e=>{const t=[],o=e=>{t.push(e)};for(let t=0;t<e.length;t++)e[t].each(o);return t})(D(t.selection,(t=>_o(t).bind((t=>qn(e,t))).filter(o))));return re(n.length>0,n)},Gn=(e,t,o,n,r,s,l,c,a)=>{const i=on(s),u=y.from(a?.section).getOrThunk(mn),m=t(i,l).map((t=>{const o=((e,t)=>((e,t,o)=>{const n=[];E(e.colgroups,(r=>{const s=[];for(let n=0;n<e.grid.columns;n++){const r=an(e,n).map((e=>Be(e.element,o,!1))).getOrThunk((()=>Be(t.colGap(),!0,!1)));s.push(r)}n.push(Ie(r.element,s,"colgroup",o))}));for(let r=0;r<e.grid.rows;r++){const s=[];for(let n=0;n<e.grid.columns;n++){const l=rn(e,r,n).map((e=>Be(e.element,o,e.isLocked))).getOrThunk((()=>Be(t.gap(),!0,!1)));s.push(l)}const l=e.all[r],c=Ie(l.element,s,l.section,o);n.push(c)}return n})(e,t,!1))(i,c),n=e(o,t,Ke,r(c),u),s=(e=>{const t=P(He(e).rows,((e,t)=>(E(t.cells,((t,o)=>{t.isLocked&&(e[o]=!0)})),e)),{}),o=U(t,((e,t)=>parseInt(t,10)));return j(o)})(n.grid);return{info:t,grid:(l=n.grid,Hn(l,Ke)),cursor:n.cursor,lockedColumns:s};var l}));return m.bind((e=>{const t=Fn(s,e.grid),r=y.from(a?.sizing).getOrThunk((()=>Bn(s))),l=y.from(a?.resize).getOrThunk(Io);return o(s,e.grid,e.info,{sizing:r,resize:l,section:u}),n(s),Ht(s,Jo),e.lockedColumns.length>0&&It(s,Jo,e.lockedColumns.join(",")),y.some({cursor:e.cursor,newRows:t.newRows,newCells:t.newCells})}))},Un=(e,t)=>_o(t.element).bind((t=>qn(e,t))),Kn=(e,t)=>_n(e,t,v),Qn=(e,t)=>W(t,(t=>((e,t)=>qn(e,t).exists((e=>!e.isLocked)))(e,t))),Xn=(e,t)=>((e,t)=>t.mergable)(0,t).filter((t=>Qn(e,t.cells))),Yn=(e,t)=>((e,t)=>t.unmergable)(0,t).filter((t=>Qn(e,t))),Jn={...(e=>{if(!s(e))throw new Error("cases must be an array");if(0===e.length)throw new Error("there must be at least one case");const t=[],o={};return E(e,((n,r)=>{const l=V(n);if(1!==l.length)throw new Error("one and only one name per case");const c=l[0],a=n[c];if(void 0!==o[c])throw new Error("duplicate key detected:"+c);if("cata"===c)throw new Error("cannot have a case named cata (sorry)");if(!s(a))throw new Error("case arguments must be an array");t.push(c),o[c]=(...o)=>{const n=o.length;if(n!==a.length)throw new Error("Wrong number of arguments to case "+c+". Expected "+a.length+" ("+a+"), got "+n);return{fold:(...t)=>{if(t.length!==e.length)throw new Error("Wrong number of arguments to fold. Expected "+e.length+", got "+t.length);return t[r].apply(null,o)},match:e=>{const n=V(e);if(t.length!==n.length)throw new Error("Wrong number of arguments to match. Expected: "+t.join(",")+"\nActual: "+n.join(","));if(!W(t,(e=>T(n,e))))throw new Error("Not all branches were specified when using match. Specified: "+n.join(", ")+"\nRequired: "+t.join(", "));return e[c].apply(null,o)},log:e=>{console.log(e,{constructors:t,constructor:c,params:o})}}}})),o})([{none:[]},{only:["index"]},{left:["index","next"]},{middle:["prev","index","next"]},{right:["prev","index"]}])},Zn=(e,t)=>cn(e)?((e,t)=>{const o=ln(e);return D(o,((e,o)=>({element:e.element,width:t[o],colspan:e.colspan})))})(e,t):((e,t)=>{const o=(e=>M(e.all,(e=>e.cells)))(e);return D(o,(e=>{const o=((e,t,o)=>{let n=0;for(let r=e;r<t;r++)n+=void 0!==o[r]?o[r]:0;return n})(e.column,e.column+e.colspan,t);return{element:e.element,width:o,colspan:e.colspan}}))})(e,t),er=(e,t,o)=>{const n=Zn(e,t);E(n,(e=>{o.setElementWidth(e.element,e.width)}))},tr=(e,t)=>{if(!Fo(e)){const o=(e=>En(e).bind((e=>$o(e,["fixed","relative","empty"]))))(e);o.each((o=>{const n=o.value/2;Nn(e,n,o.unit),Nn(t,n,o.unit)}))}},or=St("col"),nr=St("colgroup"),rr=e=>({element:e,colspan:zo(e,"colspan",1),rowspan:zo(e,"rowspan",1)}),sr=(e,t=rr)=>{const o=o=>{if((e=>"tr"===ht(e)||nr(e))(o))return nr((r={element:o}).element)?e.colgroup(r):e.row(r);{const r=o,s=(t=>or(t.element)?e.col(t):e.cell(t))(t(r));return n=y.some({item:r,replacement:s}),s}var r};let n=y.none();return{getOrInit:(e,t)=>n.fold((()=>o(e)),(n=>t(e,n.item)?n.replacement:o(e)))}};var lr=["body","p","div","article","aside","figcaption","figure","footer","header","nav","section","ol","ul","li","table","thead","tbody","tfoot","caption","tr","td","th","h1","h2","h3","h4","h5","h6","blockquote","pre","address"],cr=()=>({up:g({selector:bo,closest:Co,predicate:wo,all:Ot}),down:g({selector:ko,predicate:Oo}),styles:g({get:Jt,getRaw:eo,set:Yt,remove:to}),attrs:g({get:Ft,set:It,remove:Ht,copyTo:(e,t)=>{const o=qt(e);zt(t,o)}}),insert:g({before:Nt,after:Lt,afterAll:Wt,append:$t,appendAll:jt,prepend:Pt,wrap:Mt}),remove:g({unwrap:Ut,remove:Gt}),create:g({nu:_e.fromTag,clone:e=>_e.fromDom(e.dom.cloneNode(!1)),text:_e.fromText}),query:g({comparePosition:(e,t)=>e.dom.compareDocumentPosition(t.dom),prevSibling:Dt,nextSibling:Et}),property:g({children:kt,name:ht,parent:Rt,document:e=>{return(t=e,Ct(t)?t:Tt(t)).dom;var t},isText:yt,isComment:bt,isElement:vt,isSpecial:e=>{const t=ht(e);return T(["script","noscript","iframe","noframes","noembed","title","style","textarea","xmp"],t)},getLanguage:e=>vt(e)?Vt(e,"lang"):y.none(),getText:go,setText:ho,isBoundary:e=>!!vt(e)&&("body"===ht(e)||T(lr,ht(e))),isEmptyTag:e=>!!vt(e)&&T(["br","img","hr","input"],ht(e)),isNonEditable:e=>vt(e)&&"false"===Ft(e,"contenteditable")}),eq:Ke,is:Qe});const ar=(e,t)=>({element:e,offset:t}),ir=(e,t,o)=>e.property().isText(t)&&0===e.property().getText(t).trim().length||e.property().isComment(t)?o(t).bind((t=>ir(e,t,o).orThunk((()=>y.some(t))))):y.none(),ur=(e,t)=>e.property().isText(t)?e.property().getText(t).length:e.property().children(t).length,mr=(e,t)=>{const o=ir(e,t,e.query().prevSibling).getOr(t);if(e.property().isText(o))return ar(o,ur(e,o));const n=e.property().children(o);return n.length>0?mr(e,n[n.length-1]):ar(o,ur(e,o))},dr=mr,pr=cr(),gr=(e,t,o,n)=>{const r=t(e,o);return L(n,((o,n)=>{const r=t(e,n);return hr(e,o,r)}),r)},hr=(e,t,o)=>t.bind((t=>o.filter(w(e.eq,t)))),fr=cr(),wr={scope:["row","col"]},br=e=>()=>{const t=_e.fromTag("td",e.dom);return $t(t,_e.fromTag("br",e.dom)),t},vr=e=>()=>_e.fromTag("col",e.dom),yr=e=>()=>_e.fromTag("colgroup",e.dom),Cr=e=>()=>_e.fromTag("tr",e.dom),xr=(e,t,o)=>{const n=((e,t)=>{const o=((e,t)=>{const o=_e.fromTag(t),n=qt(e);return zt(o,n),o})(e,t),n=kt((e=>Kt(e,!0))(e));return jt(o,n),o})(e,t);return q(o,((e,t)=>{null===e?Ht(n,t):It(n,t,e)})),n},Sr=(e,t,o)=>{return(n=e,((e,t)=>{const o=e=>{for(let n=0;n<e.childNodes.length;n++){const r=_e.fromDom(e.childNodes[n]);if(t(r))return y.some(r);const s=o(e.childNodes[n]);if(s.isSome())return s}return y.none()};return o(e.dom)})(n,No)).map((n=>{const r=o.join(","),s=Do(n,r,(t=>Ke(t,e)));return L(s,((e,t)=>{const o=Kt(t,!1);return $t(e,o),o}),t)})).getOr(t);var n},Tr=(e,t,o)=>{const n=(e,t)=>{((e,t)=>{const o=e.dom,n=t.dom;Qt(o)&&Qt(n)&&(n.style.cssText=o.style.cssText)})(e.element,t),to(t,"height"),1!==e.colspan&&to(t,"width")};return{col:o=>{const r=_e.fromTag(ht(o.element),t.dom);return n(o,r),e(o.element,r),r},colgroup:yr(t),row:Cr(t),cell:r=>{const s=_e.fromTag(ht(r.element),t.dom),l=o.getOr(["strong","em","b","i","span","font","h1","h2","h3","h4","h5","h6","p","div"]),c=l.length>0?Sr(r.element,s,l):s;return $t(c,_e.fromTag("br")),n(r,s),((e,t)=>{q(wr,((o,n)=>Vt(e,n).filter((e=>T(o,e))).each((e=>It(t,n,e)))))})(r.element,s),e(r.element,s),s},replace:xr,colGap:vr(t),gap:br(t)}},Rr=e=>on(e).grid,Or=(e,t,o,n,r)=>D(e,(e=>{const s=t>0&&t<e.cells.length&&n(Ve(e,t-1),Ve(e,t)),l=((e,t,o,n,r,s,l)=>{if("colgroup"!==o&&n)return Fe(e,t);{const t=Fe(e,r);return Be(l(t.element,s),!0,!1)}})(e,t,e.section,s,o,n,r);return((e,t,o)=>((e,t,o)=>{const n=e.cells,r=n.slice(0,t),s=n.slice(t),l=r.concat(o).concat(s);return ze(e,l)})(e,t,[o]))(e,t,l)})),Dr=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),Er=e=>So(e,!0),kr=e=>{0===Go(e).length&&Gt(e)},Ar=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{const n=He(e).rows;return y.from(n[t]?.cells[o]?.element).filter(Er).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(Er(t),t)})))))(n)))})(e,t,o)),Nr=(e,t,o,n)=>{const r=t.detail,s=r.column,l=r.column,c=Or(e,l,s,o,n.getOrInit);return Ar(c,r.row,l)},Lr=(e,t,o,n)=>{const r=Dr(t.details),s=((e,t)=>M(e,(e=>{const o=e.cells,n=L(t,((e,t)=>t>=0&&t<e.length?e.slice(0,t).concat(e.slice(t+1)):e),o);return n.length>0?[Ie(e.element,n,e.section,e.isNew)]:[]})))(e,D(r,(e=>e.column))),l=s.length>0?s[0].cells.length-1:0;return Ar(s,r[0].row,Math.min(r[0].column,l))},Pr=(e,t,o,n)=>((e,t,o,n,r)=>{const s=nn(t),l=n.getWidths(s,n),c=n.pixelWidth(),{newSizes:a,delta:i}=r.calcRedestributedWidths(l,c,o.pixelDelta,n.isRelative);er(s,a,n),n.adjustTableWidth(i)})(0,t,o,n.sizing,n.resize),$r=(e,t)=>{const o=dn(e),n=Dr(t);return P(n,((e,t)=>e+o[t.column].map(so).getOr(0)),0)},Mr=(e,t)=>((e,t)=>_n(e,t,(e=>!e.isLocked)))(e,t).map((t=>({details:t,pixelDelta:-$r(e,t)}))),Wr=(e,t,o,n)=>Gn(Nr,((e,t)=>Un(e,t).filter((e=>!R([e],(e=>0===e.column&&e.isLocked)))).map((t=>({detail:t,pixelDelta:$r(e,[t])})))),Pr,p,sr,e,t,o,n),jr=(e,t,o,n)=>Gn(Lr,Mr,Pr,kr,sr,e,t,o,n),Br=(e,t)=>t.column>=e.startCol&&t.column+t.colspan-1<=e.finishCol&&t.row>=e.startRow&&t.row+t.rowspan-1<=e.finishRow,Ir=(e,t,o)=>((e,t,o)=>{const n=sn(e,t,Ke),r=sn(e,o,Ke);return n.bind((e=>r.map((t=>{return o=e,n=t,{startRow:Math.min(o.row,n.row),startCol:Math.min(o.column,n.column),finishRow:Math.max(o.row+o.rowspan-1,n.row+n.rowspan-1),finishCol:Math.max(o.column+o.colspan-1,n.column+n.colspan-1)};var o,n}))))})(e,t,o).bind((t=>((e,t)=>{let o=!0;const n=w(Br,t);for(let r=t.startRow;r<=t.finishRow;r++)for(let s=t.startCol;s<=t.finishCol;s++)o=o&&rn(e,r,s).exists(n);return o?y.some(t):y.none()})(e,t))),zr=(e,t,o)=>{const n=Fr(e);return Ir(n,t,o)},Fr=on,Vr=e=>_e.fromDom(e.getBody()),Hr=e=>t=>Ke(t,Vr(e)),qr=e=>_e.fromDom(e.selection.getStart()),_r=e=>bo(e,"table"),Gr=(e,t,o)=>yo(e,t).bind((t=>yo(e,o).bind((e=>{return(o=_r,n=[t,e],((e,t,o)=>o.length>0?((e,t,o,n)=>n(e,t,o[0],o.slice(1)))(e,t,o,gr):y.none())(fr,((e,t)=>o(t)),n)).map((o=>({first:t,last:e,table:o})));var o,n})))),Ur=h,Kr=e=>{const t=(e,t)=>Vt(e,t).exists((e=>parseInt(e,10)>1));return e.length>0&&W(e,(e=>t(e,"rowspan")||t(e,"colspan")))?y.some(e):y.none()},Qr=(e,t,o)=>{return t.length<=1?y.none():(n=e,r=o.firstSelectedSelector,s=o.lastSelectedSelector,Gr(n,r,s).bind((e=>{const t=e=>Ke(n,e),o="thead,tfoot,tbody,table",r=bo(e.first,o,t),s=bo(e.last,o,t);return r.bind((t=>s.bind((o=>Ke(t,o)?zr(e.table,e.first,e.last):y.none()))))}))).map((e=>({bounds:e,cells:t})));var n,r,s},Xr="data-mce-first-selected",Yr="data-mce-last-selected",Jr={firstSelectedSelector:"td["+Xr+"],th["+Xr+"]",lastSelectedSelector:"td["+Yr+"],th["+Yr+"]"},Zr=e=>({element:e,mergable:y.none(),unmergable:y.none(),selection:[e]}),es=(e,t,o)=>({element:o,mergable:Qr(t,e,Jr),unmergable:Kr(e),selection:Ur(e)}),ts=e=>(t,o)=>{const n=ht(t),r="col"===n||"colgroup"===n?Ko(s=t).bind((e=>((e,t)=>((e,t)=>{const o=ko(e,t);return o.length>0?y.some(o):y.none()})(e,t))(e,Jr.firstSelectedSelector))).fold(g(s),(e=>e[0])):t;var s;return Co(r,e,o)},os=ts("th,td,caption"),ns=ts("th,td"),rs=e=>{return t=e.model.table.getSelectedCells(),D(t,_e.fromDom);var t},ss=St("th"),ls=(e,t)=>e&&t?"sectionCells":e?"section":"cells",cs=e=>{const t=A(e,(e=>ss(e.element)));return 0===t.length?y.some("td"):t.length===e.length?y.some("th"):y.none()},as=e=>{const t=D(e,(e=>(e=>{const t="thead"===e.section,o=te(cs(e.cells),"th");return"tfoot"===e.section?{type:"footer"}:t||o?{type:"header",subType:ls(t,o)}:{type:"body"}})(e).type)),o=T(t,"header"),n=T(t,"footer");if(o||n){const e=T(t,"body");return!o||e||n?o||e||!n?y.none():y.some("footer"):y.some("header")}return y.some("body")},is={structure:!1,style:!0},us={structure:!0,style:!1},ms=(e,t,o)=>({value:t+1}),ds=(e,t,o)=>{const n="A".charCodeAt(0),r=[];let s=t;for(;s>=0;)r.push(String.fromCharCode(n+s%26)),s=Math.floor(s/26)-1;return{value:r.reverse().join("")}},ps=e=>e.options.get("advtable_value_series"),gs=e=>{const t=parseFloat(e);return re(!(isNaN(t)||isNaN(e)),t)},hs=(e,t)=>e<t?-1:e>t?1:0,fs=(e,t)=>oe(gs(e),gs(t),hs).getOrThunk((()=>((e,t)=>e.localeCompare(t))(e,t))),ws=e=>{const t=(e=>y.from(e.options.get("table_clone_elements")))(e),o=(o,n,r,s)=>(l,a,i,u,m=!1)=>{const d=_e.fromDom(e.getDoc()),p=Tr(r,d,t);return n(l)?o(l,a,p).bind((t=>{E(t.newRows,(t=>{((e,t)=>{e.dispatch("NewRow",{node:t})})(e,t.dom)})),E(t.newCells,(t=>{((e,t)=>{e.dispatch("NewCell",{node:t})})(e,t.dom)}));const o=((t,o,n,r)=>{const s=n.filter((e=>Xt(e)&&c(e))).or(o.cursor);return s.fold((()=>{const o=Go(t);return I(o).filter(Xt).map((o=>{const n=e.dom.createRng();return n.selectNode(o.dom),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n),It(o,"data-mce-selected","1")),n}))}),(o=>{const n=e.dom.createRng(),s=dr(pr,o);return n.setStart(s.element.dom,s.offset),n.setEnd(s.element.dom,s.offset),r&&(e.model.table.clearSelectedCells(t.dom),e.selection.setRng(n)),y.some(n)}))})(l,t,i,u);return Xt(l)&&((e=>{Ht(e,"data-mce-style");const t=e=>Ht(e,"data-mce-style");E(Go(e),t),E(Uo(e),t),E(Qo(e),t)})(l),m||((e,t,o)=>{e.dispatch("TableModified",{...o,table:t})})(e,l.dom,s)),o.map((e=>({rng:e,effect:s})))})):y.none()},c=e=>So(e,!0),a=(e,t,o)=>((e,t)=>({grid:e,cursor:t}))(e,((e,t,o)=>{var n,r;const s=He(e).rows;return y.from(null===(r=null===(n=s[t])||void 0===n?void 0:n.cells[o])||void 0===r?void 0:r.element).filter(c).orThunk((()=>(e=>F(e,(e=>F(e.cells,(e=>{const t=e.element;return re(c(t),t)})))))(s)))})(e,t,o)),i=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=N(s,(e=>e.section)),c=D(l,(e=>N(e,(e=>{const o=Fe(e,t).element;return ht(o)})))),a=M(c,(e=>M(e,(e=>{const r=Fe(e[0],t).element;return"th"===ht(r)?e:(e=>{const r=D(e,(e=>{const o=Fe(e,t).element;return{row:e,text:y.from(Ro(o)).getOr("")}})),s=j(r,((e,t)=>{const r=o(e.text,t.text);return n?r:-1*r}));return D(s,(e=>e.row))})(e)}))));return[...r,...a]},u=(e,t,o,n)=>{const{cols:r,rows:s}=He(e),l=s[t].cells,c=D(l,(e=>{const t=e.element;return y.from(Ro(t)).getOr("")})),a=St("th"),i=D(s,(e=>{const t=D(e.cells,((e,t)=>({cell:e,column:t,reference:l[t],referenceText:c[t]})));return{...e,zippedCells:t}})),u=D(i,(e=>{const t=N(e.zippedCells,(e=>{const t=e.reference.element;return ht(t)})),r=M(t,(e=>{const t=e[0].reference.element;if(a(t))return D(e,(e=>e.cell));{const{pass:t,fail:r}=k(e,(e=>e.cell.isLocked)),s=j(r,((e,t)=>{const r=o(e.referenceText,t.referenceText);return n?r:-1*r})),l=P(t,((e,t)=>{const o=t.column,n=e.slice(0,o),r=e.slice(o);return n.concat([t]).concat(r)}),s);return D(l,(e=>e.cell))}}));return Ie(e.element,r,e.section,e.isNew)}));return[...r,...u]},m=i,f=u,w=(e,t,o,n,r)=>{const{cols:s,rows:l}=He(e),c=l.slice(0,t),a=[...s,...l.slice(t,o+1)];return{beforeRows:c,afterRows:l.slice(o+1,e.length),selectionGridBefore:a.map((e=>({...e,cells:e.cells.slice(0,n)}))),selectionGrid:a.map((e=>({...e,cells:e.cells.slice(n,r+1)}))),selectionGridAfter:a.map((e=>({...e,cells:e.cells.slice(r+1,e.cells.length)})))}},b=(e,t)=>{const o=D(t,((t,o)=>{const n=e.selectionGridBefore[o].cells,r=e.selectionGridAfter[o].cells;return{...t,cells:n.concat(t.cells).concat(r)}})),{cols:n,rows:r}=He(o);return[...n,...e.beforeRows,...r,...e.afterRows]},C=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),u=i(a.selectionGrid,t-r,l,c);return b(a,u)},x=(e,t,o,n,r,s,l,c)=>{const a=w(e,o,n,r,s),i=u(a.selectionGrid,t-o,l,c);return b(a,i)},S=e=>P(e,((e,t)=>R(e,(e=>e.row===t.row))?e:e.concat([t])),[]).sort(((e,t)=>e.row-t.row)),T=e=>P(e,((e,t)=>R(e,(e=>e.column===t.column))?e:e.concat([t])),[]).sort(((e,t)=>e.column-t.column)),O=e=>P(e,((e,t)=>R(e,(e=>Ke(e.element,t.element)))?e:e.concat([t])),[]),A=e=>{const t=r(e.attributes)?U(e.attributes,((e,t)=>l(e)?e=>Ht(e,t):o=>It(o,t,e))):[];return[...t,...((e,t)=>{if(s(e)){for(let o=0,n=e.length;o<n;++o)if(!t(e[o]))return!1;return!0}return!1})(e.classes,n)?D(e.classes,(e=>t=>((e,t)=>{xo(e)?e.dom.classList.add(t):((e,t)=>{((e,t,o)=>{const n=fo(e,t).concat([o]);It(e,t,n.join(" "))})(e,"class",t)})(e,t)})(t,e))):[],t=>{const o=Ro(t)||"",r=(s=e.value,d(s)?String(s):n(s)?s:void 0);var s;const l=n(r)?r:o;ae(l)?((e,t)=>{const o=Tt(e).dom,n=_e.fromDom(o.createDocumentFragment()),r=((e,t)=>{const o=(t||document).createElement("div");return o.innerHTML=e,kt(_e.fromDom(o))})(t,o);jt(n,r),_t(e),$t(e,n)})(t,"<br>"):((e,t)=>{e.dom.textContent=t})(t,l)}]},L=(e,t,o,n,r,s,l,c)=>{let a;E(t,((t,i)=>{const u=t.element,m={sectionType:s(i),cellType:ht(u),getRowType:l(i),getColType:c(i),classes:(g=u,xo(g)?(e=>{const t=e.dom.classList,o=new Array(t.length);for(let e=0;e<t.length;e++){const n=t.item(e);null!==n&&(o[e]=n)}return o})(g):(e=>fo(e,"class"))(g)),prev:null==a?void 0:a.raw,direction:o},d=e(m,n(i),r(i)),p=A(d);var g;E(p,(e=>e(u))),a=d}))},$=(e,t,o,n,r)=>{const s=C(e,r,0,e.length,r,r,o,n);return a(s,t[0].row,t[0].column)},W=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=C(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},B=(e,t,o,n,r)=>{const s=m(e,r,o,n);return a(s,t.row,t.column)},z=(e,t,o,n,r)=>{const s=x(e,r,r,r,0,e[t[0].row].cells.length,o,n);return a(s,t[0].row,t[0].column)},V=(e,t,o,n,r)=>{const s=S(t),l=T(t),c=x(e,r,s[0].row,s[s.length-1].row,l[0].column,l[l.length-1].column,o,n);return a(c,t[0].row,t[0].column)},H=(e,t,o,n,r)=>{const s=f(e,r,o,n);return a(s,t.row,t.column)},q=(e,t,o,n)=>{const r=He(e).rows,s=D(r,(e=>Fe(e,n))),l=O(s),c=ie((()=>cs(l).getOr("")));return L(o,l,"column",h,g(n),(e=>r[e].section),(e=>ie((()=>{const t=r[e];return as([{cells:t.cells,section:t.section}]).getOr("")}))),(e=>c)),a(e,t.row,t.column)},_=(e,t,o,n)=>{const r=He(e).rows,s=r[n],l=O(s.cells),c=ie((()=>as([{cells:s.cells,section:s.section}]).getOr("")));return L(o,l,"row",g(n),h,(e=>s.section),(e=>c),(e=>ie((()=>{const t=D(r,(t=>Fe(t,e)));return cs(t).getOr("")})))),a(e,t.row,t.column)},G=(e,t,o,n,r)=>(s,l,c)=>Gn(((r,s)=>e(r,s,t,o,n)),r,p,p,sr,s,l,c),K=(e,t,o,n)=>(r,s,l)=>Gn(((n,r)=>e(n,r,t,o)),n,p,p,sr,r,s,l),Q=o(Wr,v,tr,us),X=o(jr,(t=>0==("table"===ht(Vr(e)))||Rr(t).columns>1),p,us);return{sortColumnRowsAsc:e=>o(G($,fs,!0,e,Kn),v,p,us),sortColumnRowsDesc:e=>o(G($,fs,!1,e,Kn),v,p,us),sortSelectionRowsAsc:e=>o(G(W,fs,!0,e,Kn),v,p,us),sortSelectionRowsDesc:e=>o(G(W,fs,!1,e,Kn),v,p,us),sortTableRowsAsc:e=>o(G(B,fs,!0,e,Un),v,p,us),sortTableRowsDesc:e=>o(G(B,fs,!1,e,Un),v,p,us),sortRowColumnsAsc:e=>o(G(z,fs,!0,e,Kn),v,p,us),sortRowColumnsDesc:e=>o(G(z,fs,!1,e,Kn),v,p,us),sortSelectionColumnsAsc:e=>o(G(V,fs,!0,e,Kn),v,p,us),sortSelectionColumnsDesc:e=>o(G(V,fs,!1,e,Kn),v,p,us),sortTableColumnsAsc:e=>o(G(H,fs,!0,e,Un),v,p,us),sortTableColumnsDesc:e=>o(G(H,fs,!1,e,Un),v,p,us),insertColumnBefore:Q,deleteColumn:X,populateColumn:(e,t)=>o(K(q,t,e,Un),v,p,is),populateRow:(e,t)=>o(K(_,t,e,Un),v,p,is)}},bs="data-snooker-locked-cols",vs=e=>Vt(e,bs).map((e=>M(e.split(","),(e=>{const t=parseInt(e,10);return isNaN(t)?[]:[t]})))).getOr([]),ys=(e,t)=>It(e,bs,j(t).join(",")),Cs=(e,t)=>{const o=vs(e);T(o,t)||ys(e,o.concat([t]))},xs=(e,t)=>{const o=vs(e);ys(e,A(o,(e=>t!==e)))},Ss="data-snooker-col-series",Ts=e=>Vt(e,Ss),Rs=(e,t)=>te(Ts(e).map((e=>e.toLowerCase())),t.toLowerCase()),Os=e=>((e,t)=>{const o=e.dom;return!(!o||!o.hasAttribute)&&o.hasAttribute(t)})(e,Ss),Ds=e=>{const t=Bn(e),o=on(e),n=rn(o,0,0).bind((e=>{const t=e.element;return $o(Jt(t,"width"),["fixed"])})).map((e=>28-e.value)).getOr(0);((e,t,o,n,r)=>{const s=on(e),l=r.getCellDelta(t),c=r.getWidths(s,r),a=0==s.grid.columns-1,i=n.clampTableDelta(c,0,l,r.minCellWidth(),a),u=((e,t,o,n,r)=>{const s=e.slice(0),l=(e=>0===e.length?Jn.none():1===e.length?Jn.only(0):Jn.left(0,1))(e),c=g(D(s,g(0)));return l.fold(c,(e=>n.singleColumnWidth(s[e],o)),((e,t)=>r.calcLeftEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)),((e,t,l)=>r.calcMiddleDeltas(s,e,t,l,o,n.minCellWidth(),n.isRelative)),((e,t)=>r.calcRightEdgeDeltas(s,e,t,o,n.minCellWidth(),n.isRelative)))})(c,0,i,r,n),m=D(u,((e,t)=>e+c[t]));er(s,m,r),n.resizeTable(r.adjustTableWidth,i,a)})(e,n,0,Io(),t)},Es=(e,t,o,n,r)=>{((e,t)=>{const o=R(vs(e),(e=>0===e));o&&xs(e,0),t(),o&&Cs(e,1)})(e,(()=>{o.column(0,t.insertColumnBefore,!0,!0),Ds(e),ks(e,t,o,n,r)}))},ks=(e,t,o,n,r)=>{o.table(e,0,0,t.populateColumn(0,((e,t,o)=>{const n=r.generator(e,t,o);return{raw:n,value:n.value,classes:n.classes,attributes:{contenteditable:"false",...n.attributes,"data-mce-resize":!1===r.resizable?"false":null}}})),!0,!0),((e,t)=>{It(e,Ss,t)})(e,n),Cs(e,0)},As=e=>Ko(qr(e),Hr(e)),Ns=(e,t)=>{e.execCommand("mceTableToggleSeries",!1,t)},Ls=(e,t,o)=>t.onSetupCellOrRowToggle((()=>((e,t)=>As(e).exists((e=>ae(t)?!Os(e):Rs(e,t))))(e,o))),Ps=(e,t)=>({type:"togglemenuitem",text:"None",onAction:()=>{(e=>As(e).bind(Ts))(e).each((t=>{Ns(e,{name:t})}))},onSetup:Ls(e,t,"")}),$s=(e,t,o,n,r)=>({type:"togglemenuitem",text:o,value:n,icon:r,onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)}),Ms=(e,t,o)=>U(o,((o,n)=>{const r=y.from(o.title).getOrThunk((()=>{return""===(e=n)?"":e.charAt(0).toUpperCase()+e.substring(1);var e}));return $s(e,t,r,n)})),Ws=e=>t=>{const o=t.getData();t.close(),e.undoManager.transact((()=>{e.execCommand("mceSortTableAdvanced",!1,o),e.focus(),e.addVisual()}))},js=e=>{const t={type:"listbox",name:"sortby",label:"Sort by",items:[{text:"Column",value:"column"},{text:"Row",value:"row"}]},o=Z(y.none()),n=t=>({type:"listbox",name:"roworcol",label:"column"===t?"Column":"Row",items:"column"===t?(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishCol+1-t.startCol:t.columns;return O(n,(o=>{const n=t.limit?t.startCol:0,r=(e=>{let t=e,o="";for(;Math.floor(t)>0;)--t,o+=String.fromCharCode("A".charCodeAt(0)+t%26),t/=26;return o.split("").reverse().join("")})(o+n+1);return{text:e.translate(["Column {0}",r]),value:`${o+n}`}}))})():(()=>{const t=o.get().getOrDie("state must be present"),n=t.limit?t.finishRow+1-t.startRow:t.rows;return O(n,(o=>{const n=t.limit?t.startRow:0,r=(o+n+1).toString();return{text:e.translate(["Row {0}",r]),value:`${o+n}`}}))})()}),r=e=>({type:"listbox",name:"sort",label:"Sort",items:["column"===e?{text:"Column",value:"column"}:{text:"Row",value:"row"},{text:"Selection",value:"selection"},{text:"Table",value:"table"}]}),s={type:"listbox",name:"order",label:"Order",items:[{text:"Ascending",value:"ascending"},{text:"Descending",value:"descending"}]},l=e=>({type:"panel",items:[{type:"grid",columns:2,items:[t,n(e),r(e),s]}]}),c=e=>({title:"Advanced Sort",size:"normal",body:l(e),buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"sort",text:"Sort",primary:!0}]}),a=()=>{o.set(y.none())},i=(t,n)=>{if("sortby"===n.name){const n=t.getData(),l=(r=n,s=o.get().getOrDie("state must be present"),"column"===r.sortby?{sortby:"column",roworcol:`${s.startCol}`,sort:"row"===r.sort?"column":r.sort,order:r.order}:{sortby:"row",roworcol:`${s.startRow}`,sort:"column"===r.sort?"row":r.sort,order:r.order}),u={...c(n.sortby),onChange:i,onClose:a,onSubmit:Ws(e),initialData:l};t.redial(u),t.focus("sortby")}var r,s};ns(qr(e)).each((t=>{Ko(t,Hr(e)).each((n=>{const r=es(rs(e),n,t),s=t=>{o.set(y.some(t));const n={sortby:"column",roworcol:`${t.startCol}`,sort:"column",order:"ascending"},r={...c("column"),onChange:i,onClose:a,onSubmit:Ws(e),initialData:n};e.windowManager.open(r)},l=Rr(n);r.mergable.fold((()=>{zr(n,t,t).each((e=>{const t={...e,...l,limit:!1};s(t)}))}),(e=>{const t={...e.bounds,...l,limit:!0};s(t)}))}))}))},Bs=(e,t,o,r)=>{const s=e=>"selection"===e,l=e=>"ascending"===e,c=t=>Ko(t,Hr(e)),a=()=>ns(qr(e),Hr(e)).bind((e=>c(e).bind((t=>zr(t,e,e))))),i=()=>a().map((e=>e.startCol)),u=()=>a().map((e=>e.startRow)),m=t=>(...o)=>{e.mode.isReadOnly()||t(...o)};e.addCommand("mceSortTableByColumnAsc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsAsc(e))}))}))),e.addCommand("mceSortTableByColumnDesc",m((()=>{i().each((e=>{o.selection(t.sortTableRowsDesc(e))}))}))),e.addCommand("mceSortTableByRowAsc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsAsc(e))}))}))),e.addCommand("mceSortTableByRowDesc",m((()=>{u().each((e=>{o.selection(t.sortTableColumnsDesc(e))}))}))),e.addCommand("mceSortTableAdvanced",m(((e,n)=>(e=>{const n=parseInt(e.roworcol,10);"column"===e.sortby?((e,n)=>{(e=>"column"===e)(e.sort)?l(e.order)?o.selection(t.sortColumnRowsAsc(n)):o.selection(t.sortColumnRowsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionRowsAsc(n)):o.selection(t.sortSelectionRowsDesc(n)):l(e.order)?o.selection(t.sortTableRowsAsc(n)):o.selection(t.sortTableRowsDesc(n))})(e,n):((e,n)=>{(e=>"row"===e)(e.sort)?l(e.order)?o.selection(t.sortRowColumnsAsc(n)):o.selection(t.sortRowColumnsDesc(n)):s(e.sort)?l(e.order)?o.selection(t.sortSelectionColumnsAsc(n)):o.selection(t.sortSelectionColumnsDesc(n)):l(e.order)?o.selection(t.sortTableColumnsAsc(n)):o.selection(t.sortTableColumnsDesc(n))})(e,n)})(n)))),e.addCommand("mceAdvancedTableSort",(()=>js(e))),e.addCommand("mceTableToggleSeries",m(((s,l)=>{const a=y.from(l.name).filter(n),i=c(qr(e));oe(a,i,((e,n)=>{Rs(n,e)?((e,t,o)=>{xs(e,0),(e=>{Ht(e,Ss)})(e),o.column(0,t.deleteColumn,!0,!0)})(n,t,o):X(r,e).each((r=>{(Os(n)?ks:Es)(n,t,o,e,r)}))}))})))},Is=e=>{const t=Z(y.none()),o=Z([]);let n=y.none();const r=St("caption"),s=()=>os(qr(e),Hr(e)).bind((t=>ne(oe(Ko(t),os((e=>_e.fromDom(e.selection.getEnd()))(e),Hr(e)).bind(Ko),((o,n)=>Ke(o,n)?r(t)?y.some(Zr(t)):y.some(es(rs(e),o,t)):y.none()))))),l=e=>Ko(e.element).map((t=>{const o=on(t),n=Kn(o,e).getOr([]),r=P(n,((e,t)=>(t.isLocked&&(e.onAny=!0,0===t.column?e.onFirst=!0:t.column+t.colspan>=o.grid.columns&&(e.onLast=!0)),e)),{onAny:!1,onFirst:!1,onLast:!1});return{mergeable:Xn(o,e).isSome(),unmergeable:Yn(o,e).isSome(),locked:r}})),c=()=>{t.set(ie(s)()),n=t.get().bind(l),E(o.get(),(e=>e()))},a=e=>(e(),o.set(o.get().concat([e])),()=>{o.set(A(o.get(),(t=>t!==e)))}),i=(o,n)=>a((()=>t.get().fold((()=>{o.setEnabled(!1)}),(t=>{o.setEnabled(!n(t)&&!e.mode.isReadOnly())}))));return e.on("NodeChange ExecCommand TableSelectorChange",c),{onSetupTable:e=>i(e,(e=>!1)),onSetupCellOrRow:e=>i(e,(e=>r(e.element))),onSetupColumn:e=>t=>i(t,(t=>r(t.element)||(e=>n.exists((t=>t.locked[e])))(e))),onSetupCellOrRowToggle:o=>n=>((o,n,s)=>a((()=>t.get().fold((()=>{o.setEnabled(!1),o.setActive(!1)}),(t=>{o.setEnabled(!(e=>r(e.element))(t)&&!e.mode.isReadOnly()),o.setActive(s(t))})))))(n,0,o),resetTargets:c,targets:()=>t.get()}};((e,t)=>{const{i18n:o=!0}=t;o&&tinymce.PluginManager.requireLangPack(e,"ar,bg-BG,ca,cs,da,de,el,es,eu,fa,fi,fr-FR,he-IL,hi,hr,hu-HU,id,it,ja,kk,ko-KR,ms,nb-NO,nl,pl,pt-BR,pt-PT,ro,ru,sk,sl-SI,sv-SE,th-TH,tr,uk,vi,zh-CN,zh-TW"),tinymce.PluginManager.add(e,$e(e,t))})("advtable",{setup:e=>{(e=>{(0,e.options.register)("advtable_value_series",{processor:"object",default:{numeric:{title:"Numeric",update:!0,resizable:!1,generator:ms},alpha:{title:"Alpha",update:!0,resizable:!1,generator:ds}}})})(e);const t=ws(e),o=Is(e),n=(e=>{const t=t=>{e.focus()},o=t=>Ko(t,Hr(e)),n=(n,r,s,l,c)=>{ns(qr(e)).each((e=>{o(e).each((o=>{const a=on(o),i=(e,t)=>sn(a,e,Ke).map((e=>e[t])),u=n.orThunk((()=>i(e,"row"))),m=r.orThunk((()=>i(e,"column"))),d=ne(oe(u,m,((e,t)=>rn(a,e,t).map((e=>e.element)))));d.bind((t=>{const n=Zr(t);return s(o,n,re(l,e),!0,c)})).each(t)}))}))};return{selection:(n,r)=>{ns(qr(e)).each((s=>{o(s).each((o=>{const l=es(rs(e),o,s);n(o,l,y.none(),!0,r).each(t)}))}))},row:(e,t,o,r)=>n(y.some(e),y.none(),t,o,r),column:(e,t,o,r)=>n(y.none(),y.some(e),t,o,r),table:(o,n,r,s,l,c)=>{const a=on(o),i=rn(a,n,r).map((e=>e.element)),u=ns(qr(e)),m=u.bind((e=>sn(a,e,Ke))).isSome(),d=i.bind((e=>{const t=Zr(e),n=m&&l?u:y.none();return s(o,t,n,m,c)}));d.each(t)}}})(e),r=ps(e);return Bs(e,t,n,r),((e,t,o,n)=>{const r=()=>Ko(qr(e),Hr(e)),s=(s,l=v)=>{const c=Ts(s),a=c.bind((e=>X(n,e)));oe(c,a,((n,c)=>{1===on(s).grid.columns?r().exists((e=>Ke(s,e)))?e.execCommand("mceTableDelete"):e.undoManager.transact((()=>{Gt(s)})):!0===c.update&&l()&&ks(s,t,o,n,c)}))};e.on("TableModified",(e=>{const t=_e.fromDom(e.table);s(t,(()=>!1!==e.structure))})),e.on("PreInit",(()=>{((e,t)=>{const o=e=>{const t=[];return i(e)?t:((e=>"thead"===e.name||"tbody"===e.name||"tfoot"===e.name)(e)?t.push(...o(e.firstChild)):"tr"===e.name&&t.push(e),t.concat(o(e.next)))},n=e=>o(e.firstChild);e.parser.addAttributeFilter(Ss,(e=>{var o;for(const r of e)if("table"===r.name){const e=r.attr(Ss);if(!1===(null===(o=t[e])||void 0===o?void 0:o.resizable)){const e=n(r);for(const t of e)u(t.firstChild)&&t.firstChild.attr("data-mce-resize","false")}}}))})(e,n)})),e.on("init",(()=>{const t=()=>{const t=ns(qr(e),Hr(e));return e.selection.isCollapsed()&&t.exists((t=>e.dom.isEmpty(t.dom)))};e.on("ExecCommand",(e=>{const o=e.command.toLowerCase();"delete"!==o&&"forwarddelete"!==o||!t()||r().each(s)}),!0),e.on("keyup",(e=>{const o=e.keyCode;8!==o&&46!==o||!t()||r().each(s)}))}))})(e,t,n,r),e.hasPlugin("table")&&(((e,t)=>{const o=(t,o)=>()=>e.execCommand(t,!1,o),n=t.onSetupCellOrRow,r=[{type:"menuitem",text:"Sort table by column ascending",onAction:o("mceSortTableByColumnAsc"),onSetup:n},{type:"menuitem",text:"Sort table by column descending",onAction:o("mceSortTableByColumnDesc"),onSetup:n},{type:"separator"},{type:"menuitem",text:"Advanced sort...",onAction:()=>js(e),onSetup:n}];e.ui.registry.addNestedMenuItem("advtablesort",{type:"nestedmenuitem",text:"Sort",getSubmenuItems:g(r)});const s=ps(e);if(1===Q(s)){const o=V(s)[0];e.ui.registry.addToggleMenuItem("advtablerownumbering",$s(e,t,"Row numbering",o,"table-row-numbering"))}else J(s)||e.ui.registry.addNestedMenuItem("advtablerownumbering",{type:"nestedmenuitem",text:"Row numbering",icon:"table-row-numbering",getSubmenuItems:()=>{const o=Ps(e,t),n=Ms(e,t,s);return[o].concat(n)}})})(e,o),((e,t)=>{const o=ps(e);if(1===Q(o)){const n=V(o)[0];e.ui.registry.addToggleButton("advtablerownumbering",{type:"togglebutton",tooltip:"Row numbering",icon:"table-row-numbering",onAction:()=>Ns(e,{name:n}),onSetup:Ls(e,t,n)})}else J(o)||e.ui.registry.addMenuButton("advtablerownumbering",{type:"menubutton",icon:"table-row-numbering",tooltip:"Row numbering",fetch:n=>{const r=Ps(e,t),s=Ms(e,t,o);return n([r].concat(s))},onSetup:t.onSetupCellOrRow})})(e,o)),{}}})}();